连接互联网上网络的路由协议固有的不安全性对保护用户和网站之间通信的基础设施构成了直接威胁。
边界网关协议 (BGP) 被计算机网络运营商用来交换有关其拥有的互联网协议 (IP) 地址以及如何路由的信息。该协议是在互联网规模较小且运营商之间隐式信任而无需任何形式的验证的情况下设计的。
如果一个运营商或自治系统 (AS) 公布其不拥有的 IP 地址块的路由,并且其上游提供商将信息传递给其他提供商,则用于这些地址的流量可能会发送到流氓运营商。
当恶意行为者故意实施此类事件时,此类事件称为 BGP 劫持;当由人为错误或错误配置引起时,此类事件称为路由泄漏,并且这种情况越来越常见。它们的影响可以是本地的,也可以是全球的,具体取决于它们的具体情况。
尽管有可以防止此类事件的最佳安全实践,但并非世界各地的所有网络运营商都实施了这些实践。未实施这些安全措施的网络也最有可能存在容易受到黑客攻击的边界网关路由器。
周三在拉斯维加斯举行的黑帽安全会议上,有两场专门讨论 BGP 劫持的演讲,强调了该主题对安全社区的重要性。在其中一篇文章中,俄罗斯安全研究人员 Artyom Gavrichenkov 展示了攻击者如何执行 BGP 劫持攻击,这种攻击只会影响一小部分地理区域,但可以帮助他们欺骗证书颁发机构为他们不拥有的域名颁发有效证书。
为了实现这一点,攻击者需要选择一个目标网站,该网站的 IP 地址是位于世界不同地区的 AS 的一部分。例如,亚洲的攻击者可能决定以 Facebook 为目标。然后,他们需要选择一个距离发起攻击的流氓自治系统非常接近的本地证书颁发机构 (CA)。
攻击的目标是让证书颁发机构的 ISP 相信 Facebook 的 IP 地址属于流氓 AS,而不是 Facebook 的真实 AS。选择较远目标的目的是降低真正的 AS 注意到劫持的可能性 - 本质上是互联网的一小部分认为 Facebook 是不同网络的一部分。
为域获取 TLS 证书的过程涉及证明请求该证书的人拥有对该域名的控制权。此检查可以通过多种方式自动完成:将 CA 提供的特殊页面上传到托管域名的服务器,以便 CA 可以检查该域名是否存在;向域的 WHOIS 记录中列出的电子邮件地址发送电子邮件;或者为域创建域名系统 TXT 记录。只需其中一种方法就足以确认所有权。
在托管域的服务器上创建页面是使用 BGP 劫持攻击最容易通过的检查。攻击者需要设置 Web 服务器、创建页面,然后公布 Facebook IP 地址的恶意路由。这些路由将在区域内传播,影响证书颁发机构,并欺骗其相信该页面实际上托管在 Facebook 的域上。然后 CA 将颁发 SSL 证书。
这个欺诈性但有效的数字证书可以用来对世界各地的 Facebook 用户发起中间人攻击,而不仅仅是发生 BGP 劫持的地区。
加夫里琴科夫说,当前支撑网络安全通信的数字证书基础设施没有考虑路由缺陷。他说,由于它内置于从台式电脑到嵌入式设备和移动电话的所有设备中,因此无法轻易更改。
根本问题在于互联网路由协议和缺乏实施推荐的安全实践。然而,BGP 劫持问题早已为人所知,研究人员认为该问题也不太可能很快得到解决。
谷歌提出的证书透明度框架或某些浏览器中实现的证书固定机制等努力可以帮助检测何时颁发恶意证书,但这更多的是一种解决方法,而不是修复方法,因为它们尚未广泛采用。
