← 全部文章

安全

攻击者拿下三个国家代码注册局,签发出有效的 Google 证书。链条上没有任何环节出故障

攻击者入侵了 .gh、.sl 和 .as 的第三方运营方,改写权威 DNS 记录,并借此为 Google 与 YouTube 的域名取得了受公共信任的 HTTPS 证书。Google 表示自家系统与签发证书的 CA 都没有做错什么——问题恰恰就在这里。

MAI
取自 google.com 上 Chrome 首页的 Google Chrome 官方宣传图片。

Google 的 Chrome Secure Web and Networking 团队在 10 月 6 日披露,攻击者通过入侵运营方,拿下了三个国家代码顶级域——.gh(加纳)、.sl(塞拉利昂)和 .as(美属萨摩亚)。掌握这些域的权威 DNS 记录后,攻击者为自己并不拥有的域名取得了有效且受公共信任的 HTTPS 证书,其中数个属于 Google。

值得注意的不是证书被错发了,而是就现有证据看,链条上没有任何环节出故障。

这些事件并不涉及 Google 系统被入侵。[...] 鉴于攻击的性质,我们没有理由认为签发相关证书的证书颁发机构(CA)做错了什么。

Google 的系统未被触碰。CA 执行了它们被要求执行的校验,而校验通过了。攻击者只是占据了这些校验所查询的那个位置。

签发了什么

Google 没有点出任何一张证书。The Hacker News 在 10 月 7 日查阅证书透明度(CT)日志,找到至少 12 张,覆盖 7 个域名,签发时间集中在 9 月下旬的六天内。

ccTLD证书数签发日期
.gh(加纳)29 月 22 日
.sl(塞拉利昂)69 月 25 日
.as(美属萨摩亚)49 月 27 日

其中 11 张来自 Let's Encrypt,1 张来自 ZeroSSL。.gh 的两张与那张 ZeroSSL 证书于 9 月 26 日吊销,其余九张在 10 月 1 日吊销。涉及的名称包括 google.com.gh、google.sl、google.as,以及 YouTube 的域名。由于检索的名称范围有限,真实总数很可能更高。Let's Encrypt 在自家社区论坛确认了签发事实,其员工工程师 Matthew McPherrin 写道:

是的,确实签发了面向 Google 和 YouTube 的证书,现已全部吊销。

域名验证只是在向 DNS 提一个问题

公共网络上几乎每一张证书,都是在通过域名控制验证后签发的,而这项验证只问一件事:申请者能否证明自己控制该名称——通常是在 DNS 中发布一个由 CA 指定的值。这项校验被刻意设计得廉价且完全自动化。它是 HTTPS 在十年间从少数流量扩张到几乎全部流量的原因,并不是设计缺陷。

但它同时意味着:对一个名称的权限,就落在对 DNS 的权限所在之处。如果攻破的不是单个域名而是注册局,那么就验证而言,你成了其下一切的所有者——整个国家级命名空间一次到手,包括那些所有者多年未曾登录的防御性注册。这就是受影响范围远超 Google 的原因。Google 称,在审查 CT 数据后,它发现了其他受影响的组织,其中包括「知名全球品牌和广泛使用的在线服务」,并在 Chrome 中同样拦截了它们的证书。

Chrome 做了什么,以及它自己承认的局限

Chrome 把这些未经授权的证书推入其紧急拦截清单 CRLSets,与签发 CA 一同推进吊销以便非 Chrome 客户端也受益,并扫描 CT 日志查看是否还有新的签发。Google 明确表示,Chrome 用户无需采取任何行动。

对两处缺口,它说得同样明确:它「无法保证我们的分析已识别出每一个受影响的域名」;而 CRLSets 保护的只有 Chrome。

不应依赖浏览器端的干预来保护你的用户

域名持有者实际能做的事

Google 的建议是:对整个域名组合做 CT 监控——包括停放域名和区域性域名;以及发布限制性的 CAA 记录,绑定到特定的 ACME 账户与验证方式。两件事都值得做,但都不是预防。Google 自己也承认,当攻击者掌握 DNS 时,CAA 无法阻止签发;它的价值出现在事后——在正当控制权恢复之后,拒绝对缓存验证结果的重复使用。

这就引出一个不舒服的结论:在注册局层面的劫持进行期间,域名持有者没有任何预防手段。唯一能够预防的是注册局运营方,而多数受影响的品牌从未评估过其安全状况,也无从施加影响。正因如此,Google 所指向的结构性药方——通过 Chrome Root Program 缩短证书有效期、减少对缓存域名验证的复用——并不是针对劫持本身的修复,而是针对 DNS 恢复之后劫持还能继续获利多久的修复。

仍然未知

是谁所为、三家运营方如何被攻破、这些注册局现在是否安全。三者均未发表声明。也没有证据公开表明任何一张证书被用于拦截流量——不过对于一组大多只是重定向到 Google 主要服务的名称而言,「未观察到滥用」的分量比在别处要小。Google 称已在可能的范围内联系了其他受影响组织,但未点名任何一家。

实务上的结论范围很窄,却值得立刻去做:如果你在 .gh、.sl 或 .as 之下持有名称——包括当年出于防御目的注册后就遗忘的那些——去读一读自己 9 月下旬的 CT 日志记录。

Sources: Chrome's Response to Recent ccTLD Registry Hijacks — Google Security Blog · Attackers Hijack .gh, .sl, and .as Registries to Obtain Certificates for Google Domains — The Hacker News · Attackers hijacked top-level domains, minted fake security certs for Google and other orgs — The Register · Hackers hijack Google domains after breaching ccTLD registries — BleepingComputer · Hackers hijack three country-code domain registries — Help Net Security · Chrome's Response to Recent ccTLD Registry Hijacks — Let's Encrypt Community

继续阅读