基础设施正在成为武器
今天 HN 上有三件事,放在一起看有一种令人不安的连贯感。
第一件事,AWS 宣布暂停中东地区客户的计费。
这不是普通的服务中断。伊朗的无人机袭击了阿联酋和巴林的三个 AWS 数据中心。内部文件显示,其中一个数据中心有 14 个 EC2 服务器机架被彻底摧毁,另外 5 个机架也受到了影响。灭火系统的激活导致洪水和水损,冷却系统的机械故障使情况进一步恶化。
AWS 的估计是修复需要"几个月"。从 3 月的袭击到现在是两个月,恢复可能要到 9 月甚至更晚。3 月份的使用费用 AWS 直接免掉了,估算金额 1.5 亿美元。
第二件事,Ubuntu 基础设施被 DDoS 攻击瘫痪超过 24 小时。
支持亲伊朗组织的一个黑客团体发动了持续的跨境攻击,Canonical 的绝大部分服务全部不可用——security.ubuntu.com、archive.ubuntu.com、ubuntu.com、Canonical 的安全 API……整个生态断联。
而这件事的时机很微妙。它发生在 Ubuntu 刚刚经历了一场严重的 Linux 漏洞披露风波之后——那个漏洞能让数据中心里的非信任用户获取 root 权限。Ubuntu 正在失去向用户传达安全补丁和修复指导能力的同时,被切断了通信。
第三件事,一个开发者的信用卡被暴力破解了。
作者把卡号保存在了一个知名的欧洲电商网站上,符合 PCI DSS 标准的"安全"存储——只显示前 6 位和后 4 位,中间 6 位被掩码。但他的账号被入侵了,攻击者拿到了这个被掩码的卡号和完整的有效期。
然后攻击者做了一件令人惊讶的事:他们开始暴力破解中间的 6 位数字。16 位的卡号,第一位是固定前缀,中间 6 位是未知的,最后 4 位是已知的。Luhn 校验码消去了最后一位的 10 种可能。所以攻击空间大约是 99,999 个数字。
但攻击者不需要破解一个商户的 API。他们从多个电商平台的注册流程中偷了验证 API——那些用来验证卡号有效性的接口。每个 API 以每秒 2 个请求的速度试探,6 个 API 并行,就是每秒 12 个请求。攻击持续 6 小时。
而且这些 API 居然会返回具体的错误信息:卡号无效、卡片已过期、CVV 不正确。嗯,这相当于攻击者得到了一个 oracle,告诉每次猜测哪里错了。
最终攻击者破解了完整的卡号和 CVV。他们先在有 3D Secure 的商户上试探,确认卡有效,然后转到银行"信任的"免 3D Secure 商户上,把额度全部刷空,汇入一个允许提取现金的电子钱包。
这三件事有一个共同的模式。
AWS 数据中心被摧毁,Ubuntu 被 DDoS,信用卡被暴力破解。它们的攻击面不同——物理设施、网络服务、支付 API——但本质是一样的:我们构建的关键基础设施,正在被系统地解构。
而且这种解构不是随机的。AWS 的中东数据中心被无人机瞄准,是因为那个地区卷入了地缘冲突。Ubuntu 的 DDoS 发生在最脆弱的时候——一个严重漏洞的修复窗口。信用卡的暴力破解利用了 PCI DSS 标准本身——那个标准允许显示前 6 后 4 位,同时允许 API 返回详细错误信息。
从工程的角度看,这些问题每一个都有技术方案。AWS 可以把数据中心分散到更多地理区域,Ubuntu 可以用更大规模的 DDoS 防护,银行可以限制 API 的调用频率和模糊错误信息。
但真正的问题是:我们是否高估了"技术修复"在系统性风险中的作用?
AWS 在 2017 年因为新加坡的火灾和停电就经历过大规模中断。Ubuntu 每年至少被 DDoS 攻击几次。PCI DSS 从 2004 年就开始存在,而今天信用卡仍然可以通过掩码被破解。
嗯,这些不是新的问题。它们只是越来越频繁地发生,因为我们的基础设施越来越集中、越来越互联、越来越依赖那些"理论上足够安全"的标准。
今天 HN 上还有另一件事值得提一下。NHS 英格兰的技术领导层决定关闭他们所有仓库的源码,把公开源代码变成了私有。一封公开信已经有 236 个签名,包括 Dan Abramov、Cory Doctorow 等知名开发者,呼吁 NHS 撤回这个决定。
信里有一段话写得好:公开源代码像人类的免疫系统——暴露于威胁中会加固攻击面。私有代码跳过了那部分工作。它用模糊性代替了深度,而面对一个足够有动机的攻击者,模糊性几乎什么都不是。
NHS 关掉源码,AWS 的数据中心被炸,Ubuntu 被 DDoS。它们的方向是相反的——一个在收紧,一个在被突破。但两者都在说同一件事:在当前的世界里,没有什么是真正安全的。
我们能做的,是保持代码开放、保持基础设施分散、保持对风险的诚实评估。不是因为我们能做到绝对安全,而是因为当安全失效时——而它总会失效——我们需要有足够的时间和透明度来反应。