路由欺骗攻击检测与溯源:OSPF虚假LSA注入检测
大家好,我是老周。今天咱们聊聊路由协议攻击里最让人头疼的一类——欺骗攻击。说实话,干网络安全这么多年,我见过太多因为路由被篡改导致全网瘫痪的案例。你想想看,一个错误的LSA注入,能让整个网络的数据包都走错路,这可不是闹着玩的。
我个人习惯把路由欺骗攻击分成三大类:OSPF的LSA注入、BGP的路径篡改、还有IS-IS的Level欺骗。今天咱们就一个一个来拆解。
OSPF虚假LSA注入检测
OSPF这协议,说白了就是靠LSA来交换路由信息的。攻击者一旦能伪造LSA,那整个网络的路由表就乱套了。我记得有一次在客户现场,全网突然出现大量路由环路,查了半天才发现是有人注入了虚假的Type 5 LSA。
检测虚假LSA,我一般看三个关键点:
- 序列号异常:正常的LSA序列号是递增的。如果突然出现一个序列号特别大或者特别小的LSA,那就要警惕了。我曾经遇到过攻击者直接填了个0x7FFFFFFF,这明显是人为构造的。
- 校验和错误:OSPF的LSA头部有校验和字段。攻击者伪造LSA时,校验和往往对不上。我建议在路由器上开启LSA校验和验证,这能过滤掉大部分伪造包。
- LSA老化时间:正常LSA的老化时间从0开始递增,最大到3600秒。如果收到一个老化时间异常(比如直接是3600)的LSA,那基本可以判定是伪造的。
实战检测命令(Cisco设备):
show ip ospf database
show ip ospf database self-originate
debug ip ospf lsa-checksum
我习惯先用show ip ospf database看看有没有序列号异常的LSA,再用debug抓一下校验和错误。嗯,这里要注意,debug命令在生产环境慎用,CPU会飙高。
避坑指南:我曾经在排查一个OSPF邻居震荡问题时,发现是某台交换机的LSA老化时间计算有bug,导致每隔30分钟就发一次老化时间归零的LSA。这跟攻击行为很像,但其实是设备缺陷。所以遇到异常LSA,先确认是不是设备本身的问题。
BGP路径篡改检测
BGP的路径篡改,说白了就是攻击者通过伪造AS_PATH或者Next_Hop来劫持流量。这招在互联网上特别常见,我见过最狠的一次,攻击者把某个/24网段的流量全引到了自己的服务器上。
检测BGP路径篡改,我主要看两个地方:
- AS_PATH异常:正常的AS_PATH应该是连续的、可追溯的。如果出现重复的AS号、或者AS_PATH长度突然变短,那就要小心了。我个人习惯用
bgp bestpath as-path multipath-relax这个命令来放宽AS_PATH检查,但生产环境慎用。 - Next_Hop验证:Next_Hop必须是可达的,而且通常应该是直连邻居的接口地址。如果Next_Hop指向了一个非直连的地址,那基本可以判定是攻击。我建议开启
neighbor x.x.x.x next-hop-self,强制让路由器自己作为下一跳。
重要提醒:BGP的路径篡改检测不能只靠路由器自身。我建议配合BGP监测系统(比如BGPmon)来实时分析路由更新。曾经有个客户,他们的BGP路由被篡改了整整两天才发现,就是因为没有外部监测手段。
IS-IS Level-1/Level-2欺骗检测
IS-IS的Level欺骗,这招比较隐蔽。攻击者通过伪造Level-1或者Level-2的LSP,让路由器误以为自己是某个区域的边界路由器,从而把流量引到错误的方向。
检测方法其实跟OSPF类似,但有几个特殊点:
- LSP序列号检查:跟OSPF一样,序列号异常就是危险信号。
- Level标识验证:检查LSP中的Level字段是否跟发送路由器的实际角色一致。我遇到过攻击者把Level-1路由器伪装成Level-2,然后注入大量外部路由。
- 邻居关系验证:IS-IS的邻居关系建立是有严格流程的。如果发现某个路由器突然跟多个不同Level的路由器建立了邻居,那就要查查是不是被欺骗了。
IS-IS检测命令(Juniper设备):
show isis database
show isis adjacency
show isis route
我一般先用show isis database看看有没有异常的LSP,再用show isis adjacency确认邻居关系是否正常。嗯,这里要注意,IS-IS的LSP老化时间默认是1200秒,如果发现老化时间异常,也要警惕。
核心逻辑框架
为了让大家更直观地理解这三种攻击的检测思路,我画了一张图:
这张图把三种攻击的检测点和溯源方法串起来了。你想想看,不管是OSPF、BGP还是IS-IS,核心思路其实都一样——找到异常的路由更新,然后顺着邻居关系往回查,直到找到源头。
个人经验:我建议大家在部署路由协议时,就把这些检测机制配置好。别等到出事了再临时抱佛脚。我曾经有个客户,全网跑了三年OSPF,从来没检查过LSA序列号,结果被攻击了才发现连基本的校验都没开。
好了,这一章的内容就到这里。路由欺骗攻击的检测,说白了就是「找异常、追源头」。下一章咱们聊聊具体的溯源工具和实战案例。
公众号:蓝海资料掘金营,微信deep3321