第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劫持知识体系。你可以把它当作本章的思维导图。

BGP劫持威胁认知 什么是BGP劫持 劫持的常见类型 真实案例 前缀劫持 路径劫持 AS_PATH篡改 YouTube劫持事件 核心要点:BGP信任模型是劫持的根源 前缀粒度、AS_PATH验证、操作规范是防护三大支柱

这张图把本章的核心内容串起来了。从定义到类型,再到真实案例,最后落到核心要点。你保存下来,后面几章都会用到这个框架。

1.5 小结

好了,第一章就聊到这儿。咱们回顾一下:BGP劫持的本质是路由信息的非法篡改;三种常见类型各有特点;YouTube事件告诉我们,操作失误也能引发全球级事故。

下一章,我会带你深入BGP协议细节,看看攻击者到底是怎么动手脚的。到时候咱们再细聊。