当前位置:首页 > 焦点

内网arp攻击检测工具

凌晨两点,内网公司群里炸了锅。击检具运维老张发了一张截图,测工整个办公网段两百多台机器,内网ARP表里的击检具网关MAC地址全变成了同一个陌生值——00:0c:29:xx:xx:xx。那台虚拟机的测工MAC前缀,是内网VMware的。有人拿虚拟机开了个抓包工具,击检具伪装成网关,测工把整个公司的内网流量都“过”了一遍。

这不是击检具电影桥段。ARP协议本身就不带认证,测工谁喊一嗓子“我是内网网关”,内网里的击检具机器就信谁。攻击工具用起来比想象中简单,测工一条命令就能让全楼断网,或者更阴险的——默默把流量转发到攻击者机器上,密码、聊天记录、文件传输,全裸奔。

检测这类攻击,最笨的办法是盯网关。正常网络里,网关MAC地址是固定的。你写个脚本,每秒ping一次网关,然后查ARP缓存,比对MAC是否变化。变了就报警。但这个方法有个坑——攻击者如果做了静态ARP绑定,你的脚本就瞎了。他照样能劫持流量,只是你查不到变化。

所以得换个思路。看流量特征。ARP攻击的典型特征是广播风暴,攻击者为了维持欺骗,会不停发送伪造的ARP应答包。你可以在交换机上做端口镜像,把流量导出来,用Wireshark抓包,过滤出arp.duplicate-address-detected或者统计每秒的ARP请求数量。正常网络每秒几个,攻击时能飙到几百。这个阈值得自己调,小公司和大厂完全不是一个量级。

还有个更实用的土办法——查IP和MAC的对应关系。你去路由器上看看DHCP租约记录,再对比实际抓到的ARP表。如果某个IP对应了两个不同的MAC,或者一个MAC对应了多个IP,基本就是有猫腻。我见过最离谱的一次,攻击者用同一张网卡绑了三十多个IP,扫描器一跑,全暴露了。

工具本身不复杂。Python写个脚本,用scapy库发ARP请求,收集响应,然后跟已知的合法映射表比对。十分钟能写出来。但真正难的是部署——你得知道哪些IP是合法的,得维护一张白名单。有些公司懒得做,结果就是每次攻击都靠人肉排查,管理员跑断腿。

有个细节很多人忽略。ARP攻击检测工具最好跑在独立的物理机上,别用虚拟机。虚拟机的虚拟网卡有时会自带奇怪的MAC行为,容易误报。我自己吃过这个亏,写好的检测脚本在VMware里跑,天天报警,最后发现是虚拟交换机自己发的免费ARP,跟攻击半点关系没有。

再提一嘴,别迷信商业软件。很多所谓的内网安全设备,检测ARP攻击的算法就是比对MAC地址表,跟开源工具没本质区别。你花几万块买的盒子,可能还不如一个跑在树莓派上的脚本灵活。当然,大型网络里需要集中管理,那是另一回事。

最后说个反直觉的事。有些攻击者会故意触发ARP攻击,然后立刻停止,制造网络瞬断的假象。等你重启交换机或者清ARP缓存的时候,他再发起真正的攻击。所以检测工具不能只看瞬时数据,得记录历史趋势。哪台机器频繁在凌晨三点发起ARP请求,那大概率不是什么好鸟。

工具是死的,人是活的。抓包、分析、比对,这些动作背后是你对网络的理解程度。别指望装个软件一劳永逸,内网安全这活儿,永远得留个心眼。

分享到: