BGP劫持的原理及防御详解
揭开BGP劫持的神秘面纱
深入了解互联网的心脏,我们会发现一种叫做BGP劫持的现象。这并非一种科幻概念,而是真实存在的网络攻击手段。那么,究竟什么是BGP劫持呢?简单来说,攻击者通过恶意手段改变互联网流量的正常路由,这就是BGP劫持。他们是如何做到的呢?答案是宣布他们并不真正拥有或控制的IP地址组(被称为IP前缀)的所有权。
想象一下,如果高速公路上的路标被恶意更改,引导车辆驶向错误的出口,那么BGP劫持就类似于这样的情景。整个互联网是由众多网络组成的,这些网络被称为“自治系统(AS)”。这些系统基于一个假设运行:BGP协议是建立在互联网络真正告知其拥有哪些IP地址的基础上的。BGP劫持几乎无法完全阻止。
那么,什么是BGP呢?BGP即边界网关协议,是Internet的路由协议。它就像一个导航仪,指导路由从一个IP地址高效传输到另一个IP地址。当用户访问网站时,请求和响应会在用户的IP地址和网站的IP地址之间来回传递。在这个过程中,DNS(域名系统)服务器提供IP地址,而BGP则提供了快速访问这些IP地址的路线。可以说,如果DNS是互联网的地址簿,那么BGP就是这本地址簿的详细路线图。
接下来,我们来了解一下自治系统(AS)。AS是由单个组织管理的大型网络或网络组。这些系统内有多个子网,但都遵循相同的路由策略。通常是Internet服务提供商(ISP)或拥有自己网络的大型组织。每个AS都被分配了一个独特的自治系统编号(ASN),以便识别。
为什么BGP如此重要呢?正是因为它的存在,互联网的大规模增长才得以实现。由多个大型网络组成的互联网并没有中央控制机构来指导数据包如何到达其目的地。而BGP就扮演了这个角色,它为数据包选择了一条高效、快速的路线。如果没有BGP,网络流量可能会耗费大量时间才能到达目的地,或者根本无法到达。
那么,BGP是如何被劫持的呢?当AS宣布它并不控制的IP前缀的路由时,这个公告可以在互联网上传播,并被添加到BGP路由器的路由表中。只要没有人注意到并纠正这个路由,这些IP的流量就会被错误地路由到该AS。为了使BGP劫持成功,路由公告必须宣布一个更具体的路线或提供更短的路由。并且,不是任何人都可以宣布BGP路由到更大的互联网,必须由AS的运营商或已经破坏AS的威胁行为者发布通知。
似乎令人惊讶的是,一些大型网络或网络组的运营商(包括许多ISP)会进行这种恶意活动。在全球超过80,000个自治系统的背景下,有些运营商可能并不值得信赖。BGP劫持并不总是容易检测。不良行为者可能会伪装他们的活动,或者宣布那些不太可能被监控的未使用IP段。
当BGP被劫持后,会发生什么呢?后果可能包括互联网流量被错误地引导、监控、拦截或导向虚假网站。垃圾邮件发送者也可能利用这种机会欺骗合法IP发送垃圾邮件。对于用户来说,页面加载时间会增加,因为请求和响应不会遵循最有效的网络路由,甚至可能不必要地遍历全世界。在最好的情况下,流量只是占用了一个不必要的长路径,增加了延迟。BGP在网络劫持案例中的现实应用
曾经有一些真实的网络事件让我们深刻认识到BGP(边界网关协议)的劫持风险。在2018年4月,俄罗斯的一家提供商宣布了一些实际上是Route53 Amazon DNS服务器的IP前缀。这一行为导致了一场精心策划的BGP劫持事件,黑客借此机会将用户重定向到他们控制的虚假网站,从而成功地窃取了大约152,000美元的加密货币。具体来说,黑客通过BGP劫持,接管了亚马逊的DNS查询,将DNS查询引导至他们控制的服务器,并返回错误的IP地址,诱使用户访问虚假网站。
BGP劫持事件并非总是出于恶意目的,有时它们也会无意中发生,并对全球互联网产生广泛影响。令人印象深刻的是,在2008年,巴基斯坦的电信机构试图通过更新其网站的BGP路线来审查国内的Youtube访问。由于一次看似简单的操作失误,新的航线被宣布给上游供应商,并扩散到整个互联网。结果,Youtube的所有网络请求都被导向了巴基斯坦电信,导致几乎整个互联网网站的中断,使得ISP服务商措手不及。
用户和网络如何防御BGP劫持?
除了持续监控互联网流量的路由情况,用户和网络的防御手段相对有限。以下是一些关键的防御措施:
IP段前缀过滤:网络应该谨慎接受IP段前缀声明,并且只针对特定的网络接受,而不是整个Internet。这样可以预防意外的路由劫持,但在实践中实施这一措施相当困难。
BGP劫持检测:增加的延迟、网络性能下降和异常的互联网流量都可能是BGP劫持的迹象。大型网络会密切监控BGP更新,以确保其客户不受延迟影响。一些安全研究人员也在积极监控互联网流量并分享他们的发现。
增强BGP的安全性:虽然BGP是为了使Internet正常运行而设计的,但它并不具备天生的安全性。目前,整个互联网正在探索如BGPsec等安全路由解决方案,但尚未得到广泛应用。BGP仍然存在着内在的脆弱性。
了解和监控BGP的动态至关重要,尤其是在网络安全的背景下。用户和网络的防御策略也需要不断更新和改进,以应对日益复杂的网络攻击。