3、路由泄露类型:前缀劫持、AS路径篡改、路由策略绕过

好,咱们直接切入正题。路由泄露这玩意儿,说白了就是BGP在“说瞎话”。它把不该说的路由说出去了,或者把路径信息给改了。我在现网摸爬滚打这么多年,见过的泄露类型基本就三大类:前缀劫持、AS路径篡改、路由策略绕过。咱们一个一个拆开讲。

3.1 前缀劫持(Prefix Hijacking)

这是最“粗暴”的一种。攻击者或者配置失误的设备,直接宣告一个不属于自己的IP前缀。你想想看,互联网上那么多路由器,谁先收到谁信。我当年在运营商做维护时,就碰到过一次小运营商误宣告了Google的8.8.8.0/24段,结果全网一半的流量都跑到了他们那儿。

核心原理:BGP选路只看最具体前缀和最短AS路径。只要你的前缀更具体,或者路径更短,流量就会拐到你这边来。

前缀劫持又分两种:

  • 精确劫持:宣告完全相同的IP前缀。比如别人有/24,你也宣告/24。这时候就看谁的AS路径短,或者谁的MED值小。
  • 子网劫持:宣告一个更具体的前缀。比如别人有/24,你宣告一个/25。BGP最长匹配原则会优先选你的/25,流量直接被你截胡。

我的经验:我曾经在IDC机房排查过一次流量异常。用户投诉说访问某个电商网站特别慢。我一查BGP表,发现那个/24前缀竟然从三个不同的AS学到了。其中一个AS路径只有2跳,明显是假的。后来确认是某家小宽带商配置错误,把别人的路由给导进来了。

3.2 AS路径篡改(AS Path Manipulation)

这种手法更“阴险”。攻击者不直接抢你的前缀,而是修改AS_PATH属性。比如,他可以在自己的路由更新里,故意把AS路径缩短,或者插入一些不存在的AS号。

为什么会这样?因为BGP防环机制依赖AS_PATH。如果路径被篡改,防环就失效了。我记得有一次做安全审计,发现某个AS竟然宣告了一条路径为“100 200 300”的路由,但实际查一下,AS 200和AS 300根本没有互联。这就是典型的AS路径伪造。

篡改方式 具体操作 攻击效果
路径缩短 删除中间AS号,让路径看起来更短 吸引流量,绕过正常选路
路径插入 插入不存在的AS号,破坏防环 造成路由黑洞或环路
路径替换 用合法AS号替换自己的AS号 伪装成其他网络,窃取流量

注意:AS路径篡改很难被常规的BGP策略检测到。因为路由器只检查AS_PATH是否包含自己的AS号,不会验证路径的真实性。我曾经见过一个案例,攻击者把路径从“64500 65000”改成了“64500 65001”,结果所有去往65000的流量都绕道了。排查了整整两天才找到根因。

3.3 路由策略绕过(Policy Bypass)

这种类型最“隐蔽”。它不直接改前缀或路径,而是利用路由策略的漏洞。说白了,就是你的过滤规则没写严,被人钻了空子。

常见的绕过方式有:

  • 默认路由泄露:有些网络为了省事,会宣告0.0.0.0/0。如果过滤不严,默认路由可能被泄露到上游,造成流量黑洞。
  • 私有AS号泄露:64512-65535是私有AS号,本不该出现在公网。但有些配置错误会把私有AS号的路由发出去。
  • 未注册前缀泄露:IRR(互联网路由注册)库里没有记录的前缀,被错误地宣告出去。

避坑指南:我曾经接手过一个项目,客户说他们的BGP邻居总是收到一些奇怪的路由。我上去一看,发现他们的入方向过滤策略只检查了AS_PATH长度,没检查前缀是否属于客户。结果隔壁AS把一堆不该来的路由全灌进来了。后来我加了一条前缀列表过滤,问题立刻解决。

嗯,这里要注意。路由策略绕过往往不是恶意攻击,而是配置疏忽。但后果一样严重。我建议你在部署BGP时,至少做到以下几点:

  1. 对所有EBGP邻居启用前缀列表过滤,只允许宣告你拥有的前缀。
  2. 启用AS_PATH验证,拒绝包含私有AS号或未注册AS号的路由。
  3. 使用RPKI(资源公钥基础设施)验证前缀的合法性。

说白了,这三种泄露类型,核心都是BGP的信任模型出了问题。BGP默认信任所有邻居,但现实世界没这么美好。你想想看,如果每个AS都老老实实说话,那互联网就不会有这么多路由问题了。可惜,总有人“说瞎话”。

我的习惯:每次做BGP部署,我都会在测试环境里模拟一遍这三种泄露。用GNS3或者EVE-NG搭个拓扑,故意宣告错误的前缀,看看监控能不能抓到。只有验证过检测机制有效,我才敢上生产。这招帮我避过好几次坑。

路由泄露三大类型关系图 路由泄露 BGP信任模型缺陷 前缀劫持 宣告不属于自己的前缀 精确劫持 / 子网劫持 AS路径篡改 缩短/插入/替换AS_PATH 路由策略绕过 利用过滤规则漏洞 默认路由/私有AS/未注册前缀 三种类型均可能导致流量劫持、路由黑洞或网络性能下降

这张图把三种泄露类型的关系理清楚了。你看,它们都源于BGP的信任模型缺陷,但攻击手法和检测方式各不相同。前缀劫持靠前缀列表和RPKI防,AS路径篡改靠路径验证和IRR防,路由策略绕过则要靠严格的过滤策略和审计。

我个人习惯,每次排查路由泄露问题时,先看BGP表里有没有异常的前缀,再看AS_PATH是否合理,最后检查策略配置。三步走下来,基本能定位90%的问题。剩下的10%,嗯,那就得抓包分析了。