一、路由协议基础与攻击面概述
大家好,我是你们的老朋友。今天咱们聊聊路由协议攻击溯源这件事。
说实话,干网络安全这么多年,我见过太多因为路由协议被攻击而翻车的案例。有一次,某大型企业的核心网络突然瘫痪,所有流量都指向了一个不存在的地址。嗯,后来查出来,就是OSPF路由欺骗搞的鬼。从那以后,我养成了一个习惯——每次做网络架构设计,第一件事就是先把路由协议的安全机制捋一遍。
1.1 路由协议工作原理回顾
先简单回顾一下三大主流路由协议。你想想看,它们本质上都是干同一件事——让路由器之间交换路由信息,找到去往目标网络的最佳路径。但具体怎么干,差别还挺大。
OSPF(开放最短路径优先)
OSPF 是个链路状态协议。说白了,每台路由器都把自己知道的链路信息广播出去,最后全网所有路由器都有一张完整的网络拓扑图。然后各自用 Dijkstra 算法算最短路径。
我个人习惯把 OSPF 比作「地图共享」——每个人把自己家门口的路况告诉大家,最后大家手里都有一张完整的地图。
关键点:OSPF 使用组播地址 224.0.0.5 和 224.0.0.6 通信,区域划分(Area)是它的核心设计。我在项目中遇到过,有人把整个网络都放在 Area 0 里,结果 LSDB 大到路由器内存爆掉。
BGP(边界网关协议)
BGP 是路径矢量协议,主要用于不同自治系统(AS)之间交换路由。它不关心链路状态,只关心「到某个目标网络,经过哪些 AS 号」。BGP 的路由决策基于属性,比如 AS_PATH、NEXT_HOP、LOCAL_PREF 等。
我记得有一次做 BGP 劫持溯源,攻击者故意篡改了 AS_PATH 属性,让流量绕道经过他的网络。嗯,这种攻击在现实世界中非常常见,2018 年比特币交易所被 BGP 劫持的案例就是典型。
避坑指南:我曾经在配置 BGP 时忘记设置 MD5 认证,结果隔壁机房的设备误发了路由更新,导致全网路由表混乱。从那以后,我所有 BGP 会话都强制开启 MD5 或 TCP-AO 认证。
IS-IS(中间系统到中间系统)
IS-IS 和 OSPF 很像,也是链路状态协议。但它的设计更灵活,最初是为 OSI 协议栈设计的,后来扩展到支持 IP。IS-IS 使用 CLNS 地址,不像 OSPF 那样依赖 IP 网络。
说实话,IS-IS 在运营商网络里用得特别多。我见过一个案例,攻击者伪造了 IS-IS 的 LSP(链路状态报文),导致整个骨干网络的路由表被污染。溯源的时候发现,攻击者是从一个未加密的管理接口入手的。
1.2 路由协议攻击分类
路由协议攻击,说白了就是攻击者利用协议本身的漏洞或配置缺陷,篡改路由信息,达到窃听、劫持、拒绝服务等目的。我把它分成三类:
| 攻击类型 | 攻击方式 | 典型场景 |
|---|---|---|
| 路由欺骗 | 伪造路由更新报文,注入虚假路由 | OSPF 伪造 LSA,BGP 伪造 UPDATE |
| 路由劫持 | 篡改合法路由,使流量绕道 | BGP 前缀劫持,IS-IS LSP 篡改 |
| 路由重放 | 捕获并重放合法路由报文 | OSPF 序列号重放,BGP 会话重放 |
路由欺骗
攻击者伪造路由协议报文,告诉邻居路由器「我是某条路径的最佳选择」。OSPF 里可以伪造 LSA,BGP 里可以伪造 UPDATE 消息。你想想看,如果攻击者伪造了一条指向 /0 的默认路由,所有流量都会经过他的设备。
我在项目中遇到过,某公司内部网络突然变慢,排查发现是一台被攻陷的交换机在广播伪造的 OSPF LSA,把默认路由指向了自己。嗯,这就是典型的路由欺骗。
路由劫持
路由劫持比欺骗更隐蔽。攻击者不是伪造新路由,而是篡改已有的合法路由。比如 BGP 劫持中,攻击者通过修改 AS_PATH 属性,让原本应该经过 A 的流量绕道经过 B。
注意:路由劫持最难溯源的地方在于——攻击者往往只篡改一个属性值,比如把 AS_PATH 缩短几个 AS 号。这种修改在日志里几乎看不出来,除非你有完整的路由历史记录。
路由重放
路由重放攻击比较老套,但依然有效。攻击者捕获一段合法的路由更新报文,然后在适当的时候重新发送。OSPF 有序列号机制防重放,但如果攻击者能预测序列号,或者捕获到序列号较大的报文,依然可以成功。
我记得有一次做渗透测试,我故意捕获了一个 OSPF 的 LSU 报文,然后等目标路由器重启后重放。结果它真的接受了这个「过期」的路由信息。嗯,这就是序列号预测的漏洞。
1.3 攻击溯源的基本概念与挑战
攻击溯源,说白了就是「谁干的、怎么干的、从哪里干的」。但路由协议攻击的溯源,比普通网络攻击难得多。
为什么会这样?有三个原因:
- 分布式特性:路由协议是分布式的,攻击可能来自网络中的任何一台设备。你很难确定攻击的源头是哪个路由器。
- 日志不完整:大多数路由器默认只记录路由变化的结果,不记录谁发来的更新。我见过太多案例,日志里只有「路由表已更新」,没有「更新来自哪个邻居」。
- 时间同步问题:溯源需要精确的时间戳。如果网络中的设备时间不同步,你根本没法把不同设备的日志串起来。
核心挑战:路由协议攻击的溯源,本质上是一个「逆向推理」的过程。你需要从路由表的变化出发,反向追踪到攻击者最初注入恶意路由的那台设备。这需要完整的网络拓扑、路由历史记录、以及设备日志的关联分析。
我个人习惯在做溯源之前,先问自己三个问题:
- 攻击者是通过哪个接口进入网络的?
- 攻击者使用了哪种路由协议?
- 攻击者篡改了哪些路由属性?
这三个问题能帮你快速缩小溯源范围。嗯,后面几章我会详细讲每个协议的溯源方法。
1.4 本章知识体系
下面这张图是我自己画的,把本章的核心知识点串起来了。你一看就明白:
这张图把本章的核心逻辑讲清楚了。三大协议各有特点,攻击方式也各不相同,但溯源时面临的挑战是共通的。嗯,后面几章我们会逐个击破。
个人建议:学路由协议攻击溯源,不要一上来就想着怎么抓攻击者。先搞清楚正常的路由协议是怎么工作的,再研究攻击者能从哪里下手。我见过太多人,连 OSPF 的 LSA 类型都没搞明白,就急着去溯源,结果越查越乱。
好了,第一章就到这里。记住一句话:路由协议攻击溯源,拼的不是工具,而是对协议本身的理解深度。下一章我们开始实战——OSPF 攻击的检测与溯源。
公众号:蓝海资料掘金营,微信deep3321