在今年的DefCon国际黑客大会上,安全研究员安东·卡佩拉山(5Nines数据的数据中心和网络主管)和亚历克斯·皮里苏瓦(Pilosoft的首席执行官)对经过修改的新版本边界网关协议(BGP)进行了说明。关于丹·卡明斯基的错误,我在文章“域名系统:互联网非常幸运地逃过了一劫”中做过详细的说明,这导致了通过边界网关协议进行的窃听行为越来越受到人们的关注。
边界网关协议的工作原理
边界网关协议运行在互联网服务提供商的路由器上,属于属于一种“幕后”协议。我们都知道互联网是一个庞大的互联网络,边界网关协议的路由就是建立联系的桥梁,它可以让路由器知道如何以及向哪里传输互联网流量。相邻的路由器在边界网关协议被称做邻居。边界网关协议的邻居之间采用的是活跃连接,以便进行信息交换。一旦边界网关协议的路由表发生了变换,路由器会将变动信息自动发送给所有的邻居。在边界网关协议中,由于互联网是一个非常弹性的网状网,所以邻居的概念是很大的一个部分。
由于互联网是一个网状网络的结果,所以每条路线总是会有多种选择。因此,对于路由器来说,它们是怎么挑选邻居的呢?第一,边界网关协议的每个条目都包含了几个参数,用来对不同性质的路线进行分析。下一步,一个算法将利用这些参数里选择出最佳路线。其中的一些参数是weight、local preference、origin和AS_path(请记住这一个)。这些并不是全部,边界网关协议会检查更多的参数,但这个是最重要的,并且也是最根本的设计缺陷所在,导致窃听行为成为可能。
为了找到最佳路线,边界网关协议会对每个网络的间隔进行考虑。举例来说,一个路由器正在寻找网络地址10.10.10.25。从边界网关协议的路由表中,它可以找到进入1o.xxx.xxx.xxx网络的路线。不过,它还发现了另一条可以进入10.10.xxx.xxx网络的路线。因为进入10.10.xxx.xxx网络是一条比较好的路线,路由器将选择它,将数据包发送到10.10.xxx.xxx网络的路由器上。每个路由器都将重复上面的步骤,直至互联网流量到达预定的目的地。
边界网关协议的设计缺陷
现在我们对边界网关协议的工作模式有了清晰的了解,下面我就说明一下为什么边界网关协议的设计缺陷会导致攻击者的重定向和窃听成为可能。基本上,由于边界网关协议中的路由条目的邻居的数量是非常多。因此,路由器只是假设边界网关协议的路由条目是正确的,并通过这条路径传输数据包。
但攻击者会肆无忌惮地利用这种信任,以便进行边界网关协议的重定向攻击。窃听者所有要做的仅仅是比边界网关协议官方提供的邻居细化的网络地址(例如使用10.10.25.xxx之类更接近真实的网络IP地址)。在伪装的边界网关协议数据包传播后,攻击者的网络不用很长的时间就可以得到传输的数据流了。
YouTube的中断事件
边界网关协议的重定向攻击并不是什么新出现的事件,实际上你们中许多人也许还记得发在过去两个月的时间里,YouTube的中断事件。这起事件就是由于在巴基斯坦的一家互联网服务提供商偶然误操作的一次边界网关协议重定向造成的。如果你希望重新了解这起事件(我就这么做了),信息世界的文章“YouTube的中断凸现互联网大问题”在这里可以阅读。此外,事件的具体细节和互动式显示过程可以在RIPE NCC(负责整个欧洲地区的IP地址资源分配与管理的组织)的网站上找到。
自治系统的路由器
如果已经访问了RIPE的网站,你就可发现象AS17557之类的路由器命名符。自治系统号码(ASN)被分配到每个自治系统(AS)以便来进行识别。简单的说,每个自治系统是一个单独实体,可以对路由信息控制进行处理。该实体负责维护控制范围内所有采用边界网关协议的路由器提供的服务。
本文来源:IT世界网 作者:佚名