BGP劫持原理及如何防御

专注IP定位
• 阅读 488

互联网跟人类社会一样,都通过特定的规则和法律来确保社会的正常运行。BGP协议就是互联网中的“规则”之一。BGP用于在不同的自治系统(AS)之间交换路由信息,当两个AS需要交换路由信息时,每个AS都必须指定一个运行BGP的节点,来代表AS与其他的AS交换路由信息。

BGP劫持原理及如何防御

但这些规则可能会被人为或意外打破。破坏 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 路径。

例如下图:

BGP劫持原理及如何防御

当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 相同的前缀:

BGP劫持原理及如何防御

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 基础设施。

点赞
收藏
评论区
推荐文章
特处士 特处士
2年前
什么是路由器?
路由器(路由器)是连接两个或两个以上网络的硬件设备,充当网络之间的网关,是读取每个数据包中的地址,然后决定如何传输的专用智能网络设备。它可以理解不同的协议,例如局域网使用的以太网协议和互联网使用的TCP/IP协议。这样,路由器(https://ww
专注IP定位 专注IP定位
2年前
度量BGP监测源数量对AS可见性的影响
首先,本文介绍了两个公开的BGP数据源项目情况;其次,从可见AS数量和可见AS边关系数量两个方面来分析度量BGP监测源中对等AS的可见性。1、BGP数据源介绍BGP数据源有2个公开的项目,分别是RIPERIS和RouteViews,
其他专业领域的AWS认证有哪些?
除了云从业者、架构师、运维人员、开发人员四种身份外,还为其他专业领域的人提供认证考试。AWS认证的高级网络适合执行复杂网络任务的个人。主要从网络设计/规划的角度,考生使用AWS设计、开发和部署高可用的网络架构,使用执行工具自动执行AWS组网任务。其中很大一部分是在学习AWS直连、VPN、弹性负载均衡器、VPC、BGP路由协议等网络的知识。这次考试的难度仅次于
good123 good123
3年前
RIP路由协议
动态路由定义:各个路由器之间运行某种协议(算法),通过收发数据包的形式获取未知路径(路由器交换信息)。动态路由的特点减少了管理任务占用了网络带宽动态路由协议概述路由器协议:路由器之间用来交换信息的语言。度量值:跳数、带宽、负载、时延、可靠性、成本路由器通过度量值来确定最优路由路径收敛使所有路由表都达到一致状态的过程静态路由和动态路由的关系网络中静态路由和动态
Wesley13 Wesley13
3年前
VRF
VRFVirtualroutingforwarding,虚拟路由转发表,简称VPN。他能在两个site之间建立两个不用的路由表,相互隔离,把每台交换机逻辑上分成多台虚拟交换机,即多VPN路由转发实力。一般用于区分不同业务流量,不同的业务走不同的路由表,从而互相独立,达到控制设备全局路由流量走向的目的。Vlan1960:10.130.229
Wesley13 Wesley13
3年前
IP设置方法的步骤分解
需要设置本地IP一般是在内网中,如常见的路由器与交换机等网络环境中就经常需要设置本地连接ip。下面就一起来学习下本地连接ip设置详细步骤吧。下面以windowsxp系统为例,windows7设置方法与此相同,唯一不同的是在windowsxp网络属性中我们选择TCP/IP协议,而windows7系统中选择IPV4协议,其实都是一样的,只是两系统写法不一
Stella981 Stella981
3年前
DHCP自动获取ip地址实验
一:实验环境1.1:华为ensp软件1.2:PC机和路由器及交换机初始化状态的PC机和初始化状态的路由器,交换机二:实验过程2.1:配置设备在ensp中,将PC机和路由器及交换机按图示做成拓扑图。!DHCP自动获取ip地址实验(https://s4.51cto.com/images/blog/202005/2
存储资源盘活系统,“盘活”物联网架构难题(上)
物联网Internetofthings(IoT),是一种与物有关的互联网,通过射频识别、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理
Linux Bridge和Tap关系详解
Bridge(桥)是Linux上用来做TCP/IP二层协议交换的设备,与现实世界中的交换机功能相似。Bridge设备实例可以和Linux上其他网络设备实例连接,既attach一个从设备,类似于在现实世界中的交换机和一个用户终端之间连接一根网线。当有数据到达时,Bridge会根据报文中的MAC信息进行广播、转发、丢弃处理。