为什么要花很长时间才能确保Internet路由安全?
路由安全事件仍然可以跳过已部署的安全防御措施。
摘要
虽然BGP在Internet通信中起着至关重要的作用,但它仍然极易受到攻击。在过去的几年中,发生了一系列路由事件,突显了路由的脆弱性。
介绍
近二十年来,人们一直知道BGP的安全问题并提出了许多解决方案,其中大多数应用简单且易于理解的加密技术或白名单技术。但是,其中许多解决方案仍未在全球Internet中部署(或未完全部署),并且脆弱性仍然存在。为什么要花这么长时间保护BGP?这个问题的答案在于,BGP是跨组织和国家边界运行的全球协议。因此,它缺乏一个可以授权部署安全解决方案的集中式授权机构。相反,每个组织都可以自动决定将在其自己的网络中部署的路由安全解决方案。因此,部署成为数千个独立运营网络之间的协调游戏;由于许多安全解决方案除非大量的网络部署,否则它们无法很好地工作,这使情况更加复杂。
路由入门
BGP使网络能够路由到目标IP前缀。
- 最长前缀匹配路由。
- 自治系统。BGP允许自治系统(ASes)发现到目标IP前缀的路由。 AS是由不同组织运营的大型自治网络。每个AS均分配有不同的AS编号,并且分配了一组IP前缀。 AS是分配给它的前缀的来源。每个BGP公告都包含邻居AS用于到达目标IP前缀的AS级别路径。
- 业务关系和路由策略。如果AS学习到特定IP前缀的多条路由,则使用其本地路由策略选择一条最优先的路由。 BGP为AS提供了非常灵活的选择路由的方式。路由决策通常与给定时刻的路由性能无关;相反,它们基于业务关系:第一个是客户与提供者之间的关系,其中客户AS向提供商AS付费以发送和接收流量。 Level3和Verizon Wireless具有客户与提供商的关系。第二个相关业务关系是免结算对等,其中两个AS同意免费互转彼此的流量。
BGP 攻击
BGP缺乏基本的身份验证机制,使其极易受到攻击。
劫持
BGP缺乏对IP前缀分配给自治系统进行身份验证的机制。
前缀劫持
劫持AS产生与合法分配受害者IP前缀的AS完全相同的前缀。由劫持AS发出的虚假BGP通告将在整个路由系统中传播,其他AS将使用其本地策略在到达合法起源AS的路由和由劫持AS生成的虚假路由之间进行选择。
子前缀劫持
劫持AS会生成受害IP前缀的子前缀,即受害IP前缀所覆盖的前缀。子前缀劫持是一个非常棘手的攻击,可以潜在地允许劫持者拦截发往受害者IP前缀的100%的网络流量。
如果前缀(/ 24)比合法路由(/ 22)长,则最长前缀匹配路由意味着伪路由总是比原始路由更被偏好。
出于合理的原因,多个AS可能会创建一个前缀(例如,AS级拓扑的不同部分中的多个AS可能会发起一个前缀来减少延迟,因此其他AS可以获取“前缀”)。在某些情况下,只有前缀的合法持有者才能绝对确定前缀已被劫持。
技术的革新和技术的滥用在矛盾的并存中发展。共用前缀本是一个负载均衡的技术,却被黑客用于BGP攻击。
路由泄露
不涉及宣布虚假路由。取而代之的是,肇事者宣布一条实际上正在使用的合法路线,但向太多邻居宣布该路线。然后,来自选择该泄漏路线的邻居的大量流量淹没了肇事者。
路由事件的影响
事故可能以不同的方式影响路由选择,可分为黑洞或拦截。
黑洞
在一个黑洞中,网络流量在犯罪者AS处停止,并且从未到达其合法目的地。出现黑洞是因为BGP路由决策通常与路由的瞬时性能无关。黑洞会导致最终用户可见的网络中断。
拦截
当犯罪者AS截获受害者IP前缀的流量,然后将其静默传递给合法的源AS时,就会发生流量拦截。拦截对最终用户是不可见的。只要犯罪者拥有到合法原始AS的有效路由,并且有足够的网络容量来转移它所吸引的额外流量,路由泄漏和劫持都会导致流量拦截。
防御
通过基于简单加密或白名单技术的安全解决方案,可以消除许多此类事件。
前缀过滤
前缀过滤是一种白名单技术,用于过滤伪造的BGP通告。
优点:前缀过滤既简单又有效。由于前缀过滤器是一个简单的白名单,因此它通常不会给路由器带来很大的计算负担。
挑战:前缀过滤仅适用于客户链接。前缀过滤器通常只过滤来自客户AS的BGP公告;这是因为前缀过滤器是基于被过滤的AS仅向过滤AS通告少量IP前缀的假设而建立的。前缀过滤通常不用于过滤来自提供商或无结算对等方的BGP公告。
白名单和黑名单机制通常还是最主要的过滤技术,可以通过布隆过滤器加速。布隆过滤器可以确认查找不存在,但是无法确认查找存在。
RPKI:加密来源验证
前缀过滤的问题导致了许多替代安全解决方案的开发。
RPKI提供了从分配的IP前缀到授权在BGP中进行授权的AS的可信映射。为此,RPKI建立一个授权机构的密码层次结构,以分配和细分IP地址空间,并授权其在BGP中的使用。
优点:
- 防止劫持。路由器使用此白名单来过滤被劫持的BGP路由(即具有未经授权的原始AS的路由)。
- 有效的激励措施。 RPKI还避免了困扰前缀过滤的两个问题:它可用于过滤任何邻居(而不仅仅是邻居客户)发出的BGP通告,并且避免了不合理的部署动机。
挑战:
- RPKI删除和配置错误。部署RPKI的主要挑战来自滥用RPKI本身。
- 可以规避RPKI,不幸的是RPKI无法预防某些类型的攻击,首先是路由泄漏。
BGP-SEC:加密路径验证
每个AS对每个BGP消息进行数字签名。 BGP-SEC消息上的签名包括
- 前缀和AS级路径;
- 接收到BGP-SEC消息的AS的AS号;
- 从该路径上的先前AS收到的所有已签名消息。
优点:无路径缩短攻击。BGP-SEC消除了路径缩短攻击。
挑战:
- 在线加密。路由器必须进行密码签名并验证其发送的每个BGP消息。如此高的计算开销(可能要求路由器使用加密硬件加速器进行升级)可能会减慢BGPSEC的部署。
- 因为除非该路径上的所有AS将其签名都应用于消息,否则AS无法验证AS级别路径的正确性(并因此过滤虚假路由)。这意味着BGP-SEC的安全优势仅在路径上的每个AS都部署了BGPSEC后才适用。
结论
今天,我们生活在一个不完美的世界中,路由安全事件仍然可以绕过已部署的安全防御,并且没有任何一个路由安全解决方案是应对路由攻击的灵丹妙药。
但是研究表明,将RPKI与前缀过滤结合使用可以显着提高路由安全性。两种解决方案均基于白名单技术,并且可以减少受前缀劫持,路由泄漏和路径缩短攻击影响的AS数量。
尽管我们继续朝着基于协议的路由安全防御迈进,但路由安全的下一个前沿领域很可能是强化Internet路由器中使用的软件和硬件。