第1章:劫持威胁认知——BGP劫持到底是什么?
大家好,我是老张。在BGP这个圈子里摸爬滚打了十几年,今天咱们来聊聊一个让所有网络工程师都头疼的话题——BGP劫持。
说实话,我第一次遇到BGP劫持时,整个人是懵的。那会儿还在运营商干,半夜被电话叫醒,说某条国际链路流量异常。我盯着路由表看了半天,才发现问题出在哪。嗯,从那以后,我就把BGP安全当成了必修课。
1.1 什么是BGP劫持?
BGP劫持,说白了就是攻击者通过非法手段,篡改或伪造BGP路由信息,让互联网流量走错路。你想想看,BGP协议本身设计的时候就没考虑安全——它完全信任邻居发来的路由更新。这就给了坏人可乘之机。
核心定义:BGP劫持是指攻击者通过发布虚假的BGP路由公告,非法控制或重定向IP流量,导致合法网络无法正常通信或流量被窃听。
我在项目中遇到过最典型的场景:攻击者冒充某个IP前缀的合法所有者,向邻居宣告“这个IP段归我管”。结果呢?所有发往该IP段的流量,都先经过攻击者的网络。这就是劫持的本质。
1.2 劫持的常见类型
根据我的经验,BGP劫持主要分三类。咱们一个一个说。
1.2.1 前缀劫持(Prefix Hijacking)
这是最常见的一种。攻击者直接宣告一个不属于自己的IP前缀,而且通常宣告得更具体(更小的掩码),或者路径更短。BGP选路规则里,最具体匹配优先,所以流量就被拐跑了。
避坑指南:我曾经见过一个案例,攻击者把/24的前缀拆成多个/25来宣告,结果合法路由直接被覆盖。所以,监控你的前缀是否被“细化”宣告,是基本功。
1.2.2 路径劫持(Path Hijacking)
这种更隐蔽。攻击者不直接抢前缀,而是篡改AS_PATH属性,假装自己是合法路径上的一个中转节点。流量经过他那里时,他就可以做手脚。
为什么会这样?因为BGP只检查AS_PATH是否形成环路,但不验证路径的真实性。攻击者只要在AS_PATH里插入自己的AS号,就能“合法”地出现在路径中。
1.2.3 AS_PATH篡改(AS_PATH Manipulation)
这个和路径劫持有点像,但更侧重于“缩短路径”。攻击者通过删除或压缩AS_PATH,让路由看起来更优。BGP选路时,AS_PATH越短越优先,所以流量就过来了。
| 劫持类型 | 攻击手法 | 检测难度 | 危害程度 |
|---|---|---|---|
| 前缀劫持 | 宣告不属于自己的前缀 | 中等 | 高 |
| 路径劫持 | 伪造AS_PATH插入自身 | 较高 | 高 |
| AS_PATH篡改 | 缩短或删除AS_PATH | 高 | 中高 |
1.3 真实案例:YouTube劫持事件
说到真实案例,2008年的YouTube劫持事件必须提。这是我入行后第一个震撼到我的BGP安全事件。
当时,巴基斯坦电信(AS17557)想要屏蔽国内对YouTube的访问。他们本意是在内部路由表中添加一条指向“黑洞”的路由。但操作失误,这条路由通过BGP传播到了全球互联网。
你猜怎么着?巴基斯坦电信宣告的/22前缀,比YouTube官方宣告的/24更具体。按照BGP规则,全球流量哗啦啦地涌向了巴基斯坦。YouTube服务瘫痪了将近两小时。
注意:这个案例告诉我们两件事:第一,BGP劫持不一定是恶意的,操作失误也能造成同样后果;第二,前缀长度在BGP选路中优先级极高,保护好自己的前缀粒度是关键。
我个人习惯把这个案例作为培训的第一课。因为它完美展示了BGP劫持的威力——一个国家的内部操作失误,能让全球服务瘫痪。
1.4 知识体系总览
下面这张图,是我梳理的BGP劫持知识体系。你可以把它当作本章的思维导图。
这张图把本章的核心内容串起来了。从定义到类型,再到真实案例,最后落到核心要点。你保存下来,后面几章都会用到这个框架。
1.5 小结
好了,第一章就聊到这儿。咱们回顾一下:BGP劫持的本质是路由信息的非法篡改;三种常见类型各有特点;YouTube事件告诉我们,操作失误也能引发全球级事故。
下一章,我会带你深入BGP协议细节,看看攻击者到底是怎么动手脚的。到时候咱们再细聊。