推荐期刊

解析ARP病毒攻击技术与防御策略

时间:2015-12-21 01:48:06 所属分类:计算机技术 浏览量:

【摘 要】ARP病毒位列十大病毒排行榜第四位,而且目前ARP地址欺骗技术已经被越来越多的病毒所采用,成为病毒发展的一个新趋势。本文还较深入和直观地介绍了ARP协议的基本原理、基本工作过程、ARP欺骗技术以及其对策, 【关键词】arp协议 arp欺骗 近年来,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,(06).
  [2]郭浩,郭涛.一种基于ARP欺骗的中间人攻击方法及防范[J].信息安全与通信保密,2005,(10).

转载请注明来自:http://www.zazhifabiao.com/lunwen/gcjs/jsjjs/36378.html