解析ARP病毒攻击技术与防御策略
扫描二维码
随时随地手机看文章
【摘 要】ARP病毒位列十大病毒排行榜第四位,而且目前ARP地址欺骗技术已经被越来越多的病毒所采用,成为病毒发展的一个新趋势。本文还较深入和直观地介绍了ARP协议的基本原理、基本工作过程、ARP欺骗技术以及其对策,
【关键词】arp协议 arp欺骗
近年来,arp攻击十分频繁,ARP病毒位列十大病毒排行榜第四位,而且目前ARP地址欺骗技术已经被越来越多的病毒所采用,成为病毒发展的一个新趋势。如何防范arp攻击越来越受到了网管的重视。
一、ARP协议工作原理
在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
TCP/IP协议栈维护着一个ARP cache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARP request广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARP reply后,更新ARP cache.ARP cache有老化机制。
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
二、ARP病毒分析
当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。
下面就BKDR_NPFECT.A病毒进行分析
1.病毒的组件
本文研究的病毒样本有三个组件构成:
%windows%““SYSTEM32““LOADHW.EXE(108,386 bytes)……病毒组件释放者”
%windows%““System32““drivers““npf.sys(119,808 bytes)……“发ARP欺骗包的驱动程序”
%windows%““System32““msitinit.dll (39,952 bytes)……“命令驱动程序发ARP欺骗包的控制者”
2.病毒运作基理
LOADHW.EXE执行时会释放两个组件npf.sys和msitinit.dll。
LOADHW.EXE释放组件后即终止运行。
注意:病毒假冒成winPcap的驱动程序,并提供winPcap的功能。客户若原先装有winPcap,npf.sys将会被病毒文件覆盖掉。随后msitinit.dll将npf.sys注册(并监视)为内核级驱动设备:“NetGroup Packet Filter Driver”msitinit.dll还负责发送指令来操作驱动程序npf.sys (如发送APR欺骗包,抓包,过滤包等)以下从病毒代码中提取得服务相关值:BinaryPathName="system32““drivers““npf.sys"StartType= SERVICE_AUTO_STARTServiceType=SERVICE_KERNEL_DRIVERDesiredAccess= SERVICE_ALL_ACCESSDisplayName = "NetGroup Packet Filter Driver"ServiceName = "Npf"并将LOADHW.EXE注册为自启动程序:[HKEY_LOCAL_MACHINE““SOFTWARE““Microsoft“““CurrentVersion““RunOnce] dwMyTest =LOADHW.EXE注:由于该项位于RunOnce下,该注册表启动项在每次执行后,即会被系统自动删除。
三、查找ARP攻击源头
定位ARP攻击源头
主动定位方式:因为所有的ARP攻击源都会有其特征——网卡会处于混杂模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器有可能就是“元凶”。
被动定位方式:在局域网发生ARP攻击时,查看交换机的动态ARP表中的内容,确定攻击源的MAC地址;也可以在局域居于网中部署Sniffer工具,定位ARP攻击源的MAC。
使用NBTSCAN可以取到PC的真实IP地址、机器名和MAC地址,如果有“ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP、机器名和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段,即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。
四、arp防御对策
各种网络安全的对策都是相对的,主要要看网管平时对网络安全的重视性了。下面介始一些相应的对策:
1.在系统中建立静态ARP表,建立后对本身自已系统影响不大的,对网络影响较大,破坏了动态ARP解析过程。静态ARP协议表不会过期的,我们用“arp–d”命令清除ARP表,即手动删除。但是有的系统的静态ARP表项可以被动态刷新,如Solaris系统,那样的话依靠静态ARP表项并不能对抗ARP欺骗攻击,相反纵容了ARP欺骗攻击,因为虚假的静态ARP表项不会自动超时消失。
2.在相对系统中禁止某个网络接口做ARP解析(对抗ARP欺骗攻击),可以做静态ARP协议设置(因为对方不会响应ARP请求报文)如:arp -s XXX.XXX.XX.X 08-00-20-a8-2e-ac。
在绝大多数操作系统如:Unix、BSD、NT等,都可以结合“禁止相应网络接口做ARP解析”和“使用静态ARP表”的设置来对抗ARP欺骗攻击。而Linux系统,其静态ARP表项不会被动态刷新,所以不需要“禁止相应网络接口做ARP解析”即可对抗ARP欺骗攻击。
参考文献:
[1]徐冠军.一个ARP欺骗问题的分析和解决办法[J].江苏通信技术,2005,[!--empirenews.page--]
郭浩,郭涛.一种基于ARP欺骗的中间人攻击方法及防范[J].信息安全与通信保密,2005,