网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是BGP中毒?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

Border Gateway Protocol(BGP)是IETF提出的一种标准协议。它负责控制数据包从一台网络传输到另一台网络的过程。为了实现这一点,BGP需要在边缘路由器之间交换路由信息以及网络的可达性信息。同时,由于不同网络之间是相互依赖的,因此它们需要一种方式来相互通信。而BGP正是实现这一功能的工具。 BGP是一种具有高度可扩展性的路由协议。它除了最初用于传递互联网可达性信息之外,现在还可以承载与VPN、IPv6、多播以及其他各种类型的数据相关的路由信息。

所有的BGP路由器都拥有一个路由表,该表中包含了各个自治系统之间的最佳路由。路由器总是选择最直接、最短的路径来从某个自治系统到达另一个自治系统,从而以最少的网络跳数来到达目标地址。

BGP中毒是一种通过广播专门创建的BGP消息来发现那些不经过指定自治系统的其他可能路由的方法。这种方法会影响BGP中的自治系统环路抑制机制。

BGP中毒的工作原理:

在BGP通告中,自治系统前面不应加上那些不应该被交叉的自治系统。 这些自治系统在接收到被伪造的通告后,会拒绝采用该路径,同时也会撤销与邻居节点之间的路由关系。这是因为BGP采用了循环抑制机制来避免这种情况的发生。 例如,为了找到那些不会与自治系统P相交的路径,这些路径的方向上属于自治系统O所拥有的前缀p。此时,自治系统O可以声明一条包含P的自治路由,比如:(O P O) p)。 当此声明到达自治系统P时,自治系统P会放弃该路由,然后从其邻居系统中获取新的路由。这是因为,通过将自治系统编号前置到声明中,会导致自治系统内的路由出现循环。 因此,任何通往前缀“p”的路径都不会经过自治系统P,因为该自治系统已经被“毒化”了。

可以同时毒害多个自治系统。 实现这一目标的简单方法之一,就是将所有需要被毒化的自治系统都包含在声明中的自治系统路径中。例如:(O P1, P2, P3, … Pn O),其中P1、P2、P3、…、Pn就是那些需要被毒化的自治系统。 不过,当需要被“毒化”的自治系统数量较多时,这种方法就不适用了。因为BGP路由器会丢弃那些具有较长自治系统路径的BGP消息。 另一种方法是使用一组自治系统编号来作为容器,这些编号构成了一个无序的集合。通过这种方式,可以将所有需要被“毒化”的自治系统包含在这个集合中。例如:(O {P1, P2, P3, … Pn} O),其中{P1, P2, P3, … Pn}就是包含那些需要被“毒化”的自治系统的集合。 采用这种方法时,可以发送BGP通告消息,但这些通告消息的长度必须为3或更多。这样就能欺骗任意数量的自治系统。这种方法也被称为“自治系统集合填充法”。 不过,这种方法也存在一些问题。例如,那些包含大量自治系统地址的BGP消息会被BGP路由器过滤掉。 为了增加被“中毒”的自治系统数量,需要在自治系统路径中同时使用多个自治系统集。

BGP中毒的工作原理

如上述图片所示,显示器M所观察到的路径为:(S X N V) p) 以由自治系统V所指定的前缀“p”的方向前进。 为了找到从自治系统S出发,朝向p方向的其他路径,我们可以通过声明(V X V)来使自治系统X失效。 p)。 现在,循环阻止机制将会启动,从而将从自治系统X到自治系统V的路径移除。这样一来,自治系统S就会选择另一条通往前缀p的路径,即(S Y N V)。 p)。

预防措施:

  • IP前缀过滤。
  • 他们应该纳入相互认可的路由安全规范。
  • 前缀的数量应该受到限制。
  • 应实施身份验证检查点。
  • 应使用自动响应工具来处理相关事务。

BGP中毒的例子:

例如,几年前,某家服务提供商宣布了一些属于AWS的Amazon Route 53 DNS服务的IP地址。因此,那些试图登录加密货币相关网站的用户会被重定向到由恶意程序控制的虚假网站。这样一来,这些恶意程序就能窃取大约16万美元的Ethereum资产。

结论:

BGP poisoning可以帮助我们找到通往某个前缀的不同路由。这有助于我们找到自治系统的第二跳邻居。通过这些新发现的路由,我们还可以发现自治系统的新的第二跳邻居。这就是我们使用BGP poisoning的主要目的——即用来找到第二跳邻居的。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料