互联网跟人类社会一样,都通过特定的规定和法律来确保社会的失常运行。BGP协定就是互联网中的“规定”之一。BGP用于在不同的自治零碎(AS)之间替换路由信息,当两个AS须要替换路由信息时,每个AS都必须指定一个运行BGP的节点,来代表AS与其余的AS替换路由信息。
但这些规定可能会被人为或意外突破。毁坏 Internet 规定的最常见形式之一是 BGP 路由器通告不属于其本人的 AS 的前缀,也就是说,BGP路由器非法发表特定前缀,从而将流量从其预期目的地重定向到它本人的AS。这称为 BGP 路由劫持,也称为前缀劫持、路由劫持和 IP 劫持。
2018 年 4 月,歹意黑客颁布了一些属于 Amazon Web Services 的 IP 前缀,一些试图登录加密货币网站的用户被重定向到黑客所发明的虚伪网页之中,导致了超过 160,000 美元的损失。
除了歹意攻打,BGP 劫持的意外实例也可能产生严重后果。2008 年,巴基斯坦的一家 ISP 试图通过更新其 BGP 路由来审查 YouTube,因为在审查过程中配置谬误,整个互联网中的YouTube 流量路全都输送到了巴基斯坦 ISP,导致了寰球 YouTube 长达数小时的中断。
在理解 BGP 劫持之前,咱们须要先把握一些BGP的基础知识 。
BGP劫持之所以十分常见,很大一部分起因是因为BGP的设计者并未思考到BGP劫持的可能性,并且默认所有 BGP “谈话者”都在说真话。如果想要理解如何加重这种危险,首先要理解 BGP 前缀通告和 BGP 劫持的工作原理。
BGP 如何通告前缀?
AS 由多个路由器组成,并在其边界内蕴含特定的前缀或路由,向相邻的 AS 通告。BGP 路由器在整个 Internet 中流传这些前缀,并通过各种 AS 保护到该目的地的门路,每个 AS 负责向其街坊发表它领有并蕴含在其中的前缀,BGP 路由器中保护的 BGP 表,其中蕴含为达到该特定前缀必须通过的 AS 门路。
例如下图:
当AS 100须要与AS170建立联系时,首先须要将本人的前缀 195.25.0.0/23 通告给相邻的 AS。这样,当该信息达到 AS 170 时,路由表中的信息将包含:
前缀:195.25.0.0/23
AS_PATH: AS100 AS190
在这个过程中,如果AS 170 收到来自具备不同门路的此前缀,则会优先选择最短门路,即绿色虚线建立联系。(如红色虚线门路更长,穿梭的 AS 数量更多,假如之前所有的 BGP 属性都放弃不变,会通过最短门路,也就是绿色门路进行流传。)
在 AS 边缘与其余 AS 中的 BGP 路由器造成对等互连的是内部 BGP 或 eBGP 路由器,eBGP 路由器负责向其余 AS 通告前缀。
当“友好”AS 发表它实际上不受管制的IP前缀的路由时,就会产生 BGP 路由劫持。
例如,在下图中,AS 140 非法通告与 AS 100 雷同的前缀:
AS 140 中的歹意劫持者正在宣传不属于本人的 AS 的前缀,所有其余 AS 将收到两个具备雷同前缀的不同通告,后续的抉择将取决于 BGP 属性。
所以,AS_PATH 长度属性在 BGP 劫持中的具备十分重要的作用,假如所有先前的属性放弃不变,将装置最短 AS_PATH 的路由。如果 AS_PATH 相等,则由其余属性决定,例如最旧的门路或路由器 ID,这会导致路由的后果难以预测。在上图中,只有 AS 190 能够确保正确路由到 195.25.0.0/23 前缀。
此外,劫持者能够执行所谓的 AS_PATH 伪造,其中对目的地的通告 AS_PATH 进行批改,以便发往相干路由的流量将通过本地 AS。在这些状况下,非法 AS 蕴含在 AS_PATH 中,以便在将流量疏导至非法 AS 时更难检测到此类劫持。
那么BGP劫持会造成什么结果,劫机者又为什么要劫持呢?
BGP劫持可能导致互联网流量出错,被监控或拦挡,被“黑洞”,或者作为中间人攻打的一部分将流量导向虚伪网站。此外,垃圾邮件发送者能够应用BGP劫持或施行BGP劫持的AS网络,以坑骗非法IP以进行垃圾邮件。
另外,攻击者可能执行 BGP 路由劫持的起因包含:
- 回绝对特定在线服务的服务。
- 将流量重定向到伪造网页,以实现凭据、信用卡号和其余机密信息的网络钓鱼。
- 重定向流量以压倒某些服务。
- 为了毁坏而毁坏,进行无差别攻打。
BGP劫持是对 Internet 上正确路由操作的一个十分实在的潜在威逼。因而,采纳适当的机制和配置来避免此类攻打和事变十分重要。然而,咱们并不能间接防止BGP劫持的产生,除了继续监控互联网流量如何路由之外,用户和网络能够做很少的事件来避免BGP劫持。
IP段前缀过滤
大多数网络应该只在必要时承受IP段前缀申明,并且只应将其IP前缀申明到某些网络,而不是整个Internet。这样做有助于避免意外的路由劫持,并可能使AS不承受伪造的IP前缀申明; 然而,这在实践中很难施行。
BGP劫持检测
劫持检测能够采取多种形式。基线性能的变动,例如更大的提早、谬误的流量或性能的广泛降落是可能表明某种模式的劫持的初步迹象。此外,监控广告以及记录路线的可用性和停机工夫是发现劫持的重要方面。
更简单的零碎还能够剖析来自街坊的布告 AS 以查看被劫持的前缀是否蕴含在布告中,能够辨认前缀不匹配,并应用路径分析来确保正确的路由。
爱护 BGP
从 1989 年BGP首次面世以来,就在一直的倒退和改良。但直到在 2017 年引入 BGPsec 时,才进行了一些安全性的尝试,但尚未失去任何实质性采纳。所以,就目前而言,这个 30 多年的协定实质上依然很软弱,须要一些简单的监控机制来管制它。有可能有助于打击 BGP 路由劫持的一个方面是应用路由源受权 (ROA)。ROA 是加密签名的对象,可用于验证特定前缀是否源自非法 AS。ROA 由每个 AS 所有者与区域互联网注册机构 (RIR) 单干创立,RIR 提供生成它们所需的 RPKI 基础设施。