2. 攻击面分析:路由协议面临的安全威胁分类
聊到路由协议的攻击,很多人第一反应就是「有人发假路由」。其实远不止这么简单。我这些年做攻防演练,见过太多团队只盯着一种攻击方式打,结果被对手换个手法就突破了。今天咱们就把路由协议面临的威胁,掰开揉碎了讲清楚。
我个人习惯把路由协议的攻击分为四大类:欺骗、泛洪、篡改、重放。这四类基本覆盖了所有已知的攻击手法。你想想看,攻击者无非就是想让你相信假信息、让你处理不过来、改你的数据、或者把旧数据再放一遍。万变不离其宗。
2.1 欺骗攻击:让你相信假的东西
欺骗攻击,说白了就是攻击者伪装成合法设备,跟你建立信任关系。这是最基础也最危险的一类攻击。为什么?因为路由协议在设计时,很多都假设「邻居是可信的」。
我在一次金融客户的攻防演练中遇到过这种情况。攻击者通过ARP欺骗先拿到了一台接入层交换机的控制权,然后在这台交换机上跑了一个OSPF进程,向核心路由器发送伪造的LSA。结果呢?核心路由器以为有一条更优路径可以到达某个网段,就把流量全引过去了。攻击者轻松做了个中间人。
常见的欺骗攻击手法包括:
- 伪造路由源:攻击者冒充合法路由器发送路由更新。比如伪造BGP OPEN消息,建立非法BGP会话。
- 虚假邻居关系:在OSPF中伪造Hello报文,让合法路由器以为攻击者是邻居,从而交换路由信息。
- RIP中的路由注入:RIP协议没有认证机制(早期版本),攻击者随便发个UDP包就能注入路由。
2.2 泛洪攻击:让你忙不过来
泛洪攻击的目标不是让你相信假信息,而是让你「处理不过来」。路由协议需要维护邻居状态、处理更新报文、计算路由表。这些操作都需要CPU和内存资源。攻击者只要发送大量合法格式的报文,就能让路由器陷入瘫痪。
我记得有一次帮一个运营商排查故障。核心路由器CPU飙升到99%,OSPF邻居不断震荡。查了半天,发现是某个接入层设备被植入了恶意脚本,每秒向核心发送数千个Hello报文。核心路由器忙着处理这些报文,没空做正经事。这就是典型的泛洪攻击。
泛洪攻击的常见形式:
- LSA风暴:在OSPF网络中,攻击者不断生成新的LSA,迫使所有路由器重新计算SPF树。
- BGP路由表溢出:攻击者宣告大量虚假前缀,填满路由器的FIB表,导致正常路由无法安装。
- 邻居状态震荡:通过频繁发送/撤销Hello报文,让邻居关系在Up/Down之间反复切换。
2.3 篡改攻击:改你的数据
篡改攻击比欺骗更隐蔽。攻击者不伪造身份,而是截获合法报文后修改其中的内容。你想想看,如果攻击者能改掉路由更新中的度量值,会发生什么?
举个例子。在OSPF中,每条LSA都包含一个度量值(Cost)。攻击者如果截获了某条LSA,把Cost改成1(最小),那么所有路由器都会认为这条路径是最优的。流量全往这走,攻击者就能轻松做流量分析或拒绝服务。
我在一次红蓝对抗中干过类似的事。当时蓝方启用了OSPF认证,我以为没戏了。结果发现他们用的是MD5认证,但密钥是明文写在配置文件里的。我拿到配置文件后,直接伪造了带正确MD5摘要的LSA,把度量值全改成了最大值。结果蓝方的OSPF路由全部选择了次优路径,业务延迟飙升。他们查了两天没找到原因,最后发现是「认证被绕过」了。
篡改攻击的主要手法:
| 攻击类型 | 目标协议 | 篡改内容 | 后果 |
|---|---|---|---|
| 度量值篡改 | OSPF、RIP、EIGRP | Cost、Hop Count、Metric | 路由选路异常,流量被引导到攻击者控制的路径 |
| 路径属性篡改 | BGP | AS_PATH、MED、Local Preference | BGP选路策略被破坏,可能导致路由黑洞或流量劫持 |
| 序列号篡改 | OSPF、IS-IS | LSA序列号 | 使合法LSA被当作旧信息丢弃,导致路由表不一致 |
2.4 重放攻击:把旧数据当新的用
重放攻击很有意思。攻击者不需要伪造任何东西,只需要「录下来,再放一遍」。很多路由协议在设计时没有考虑报文的时效性,这就给了重放攻击可乘之机。
为什么会这样?因为路由协议通常假设网络环境是「实时」的。但攻击者可以抓包,把合法的路由更新报文保存下来,等一段时间后再重新发送。如果接收方没有检查时间戳或序列号,就会认为这是一条新的路由更新。
我曾经在实验室里做过一个测试。在OSPF网络中,我抓取了一条LSA更新报文。等这条LSA被撤销后(比如某条链路down了),我重新发送了之前抓到的旧LSA。结果呢?所有路由器都以为那条链路又恢复了,纷纷把流量往那条已经不存在的链路上发。业务中断了大概30秒,直到OSPF的LSA老化机制生效。
重放攻击的典型场景:
- 旧路由重放:攻击者保存合法的路由更新,在路由被撤销后重新发送,导致路由表出现「幽灵路由」。
- 认证序列号重放:某些协议使用递增序列号做防重放,但攻击者可以截获序列号后,在合法设备发送新报文之前抢先发送。
- BGP会话重置:攻击者重放旧的BGP OPEN消息,可能导致BGP会话重置,引发路由震荡。
2.5 四种攻击的关联与防御思路
这四种攻击不是孤立的。在实际攻防中,攻击者往往会组合使用。比如先做泛洪让你忙不过来,趁你处理能力下降时做欺骗攻击。或者先做重放拿到合法报文,再篡改后重新注入。
我个人习惯把防御思路总结为三个层次:
- 认证层:所有路由协议必须启用认证。能用加密认证就别用明文。密钥要定期更换。
- 完整性层:使用HMAC等机制确保报文在传输过程中没有被篡改。
- 时效性层:利用序列号、时间戳等机制防止重放攻击。
好了,这一章的内容就到这里。下一章我们会深入具体的攻击手法,从OSPF开始,一步步拆解攻击的细节和防御措施。