ARP欺骗攻击与防御策略探究
2018-04-13徐书欣赵景
徐书欣 赵景
摘 要: 在局域网中,如何防止ARP欺骗攻击成为防御网络入侵的重点内容之一。主要剖析如何针对ARP欺骗攻击进行有效检测和防御。为此,首先论述ARP工作原理和ARP协议在局域网内及局域网间的通信过程;然后通过对其欺骗特点和表现形式进行比较分析的方法,使用户对ARP协议自身存在的缺陷有了清晰认识;通过对ARP欺骗攻击的原理、受到欺骗时网络表现形式的剖析,得到两种欺骗检测方法;最后根据网络遭到ARP欺骗攻击时的表现形式,得出如何进行有效防御ARP欺骗攻击的结论。
关键词: ARP; 工作原理; 欺骗攻击; 协议; 检测方法; 防御策略
中图分类号: TN915.08?34; TP393.08 文献标识码: A 文章编号: 1004?373X(2018)08?0078?05
Abstract: In the local area network (LAN), how to prevent ARP spoofing attacks becomes one of the key contents of network intrusion prevention. Effective detection and defense against ARP spoofing attack are mainly analyzed. The ARP working principle and its communication process within a LAN and among LANs are expounded. The method of comparative analysis of spoofing attack characteristics and manifestations is used to enable users to have a clear understanding of the shortcomings of the ARP. Two spoofing detection methods are obtained by analyzing the principle of ARP spoofing attack and manifestations of spoofed network. How to effectively prevent ARP spoofing attacks is obtained according to the manifestations of network attacked by ARP spoofing.
Keywords: ARP; working principle; spoofing attack; protocol; detection method; defense strategy
随着互联网技术在人们的工作、生活等各个领域的广泛应用,各种病毒和黑客攻击也随之而来,它们往往利用网络协议设计上的缺陷,对网络进行攻击,窃取用户的机密信息。ARP欺骗攻击就是利用ARP协议的缺陷进行的一种非法攻击[1?2],攻击者常常把自己伪装成“中间人”,获取局域网内的所有报文信息,其原理相对简单,具体实现也比较容易,目前使用十分广泛,攻击者常常利用这种手段监听数据信息,影响客户端网络连接的通畅。
1 ARP工作原理
1.1 MAC地址
MAC地址是数据链路层上的地址,也叫网络设备的物理地址[3],它是由网络设备制造商在生产时写在硬件内部的,不可更改,且全世界独一无二。MAC地址由48位二进制数表示,其中前24位是生产该设备的厂商的标识,后24位表示该网络设备在出厂时的序号,由于每个不同的网络设备厂商都有不同的标识符,并且该厂商生产出来的每个网络设备都是按照序号不断变化的,这就保证了世界上所有的网络设备都有惟一的MAC地址。一个完整的MAC地址一般采用12个十六进制数来表示[4],每两个数字一组,用冒号隔开,其中前3组数字是厂商标识,后3组数字是网络设备序号。
1.2 ARP协议
在OSI模型中,第1层到第3层用于创建两个网络设备间的物理连接,第4层到第7层主要在软件,即协议和数据方面负责网络的可操作性,ARP(Address Resolution Protocol)协议也称地址解析协议[5],其主要作用就是将计算机的网络地址转化为物理地址,属于链路层的协议。在以太网中,局域网中的数据包从一台主机传递到另一台主机不是根据IP地址来确定接口的,而是依照48位的以太网地址(硬件地址)来确定。所以,系统内核(如驱动)必须知道目的端的以太网地址才能把数据发送出去。
ARP协议有ARP请求包和ARP应答包两种数据包[6],其中ARP请求包是一个目标主机IP地址的以太网广播数据包,它表示其想与目的IP通信,让网络告之目的IP的MAC地址。当目标主机收到ARP请求包,发现请求解析的IP地址与本机IP地址相同,就会返回一個包含其IP地址和MAC地址的ARP应答包,从而使源、目标主机进行通信。
在整个网络中,每台主机、网关都有一个ARP缓存表[7],用于存储其他主机或网关的IP地址与MAC地址的对应关系。ARP缓存表分为静态的和动态的两种。如果IP地址与MAC地址的对应关系是静态的,则此对应关系不能被修改;如果是动态的,IP地址与MAC地址的对应关系可以被修改[4]。
1.3 ARP协议的工作过程
下面从局域网内通信和局域网间通信两个方面探讨ARP协议的工作过程。
1.3.1 一个局域网内的通信
假设一个局域网内有主机A、主机B和网关C,网络拓扑结构如图1所示,它们的IP地址和MAC地址如表1所示。
当主机A(192.168.0.2)要与主机B(192.168.0.3)通信时,主机A首先检查其ARP缓存表中是否存在主机B(192.168.0.3)对应的物理地址(MAC地址),如果存在,直接使用对应的物理地址进行通信,否则,主机A(192.168.0.2)就在局域网中发送广播地址的ARP请求包,其主要意思就是请把192.168.0.3的物理地址发送给自己(192.168.0.2)。广播地址就会把这个请求包对局域网内的所有主机进行广播,但是只有IP地址为192.168.0.3这台主机才会应答这个ARP请求包,并回应192.168.0.2一个ARP应答包,告知192.168.0.3的物理地址是33?33?33?33?33?33。通过广播主机A就得到了主机B对应的物理地址,并且把这个对应的关系存放在自己的ARP缓存表中[8]。以后主机A与主机B之间的信息传递就依靠两者缓存表中的这条记录来进行通信,通信停止2 min后就会从ARP缓存表中删除这个对应关系。
如果主機A(192.168.0.2)要与主机C(10.1.0.2)进行通信,由于它们处在不同的网段,因此,它们之间必须通过网关E来进行转发后才能进行通信。主机A首先检查自己的ARP缓存表里是否有网关D(192.168.0.1)对应的物理地址,如果有就直接与网关通信,如果没有就通过ARP请求获得网关D对应的物理地址,然后再由网关D通过路由将数据包送到网关E(10.1.0.1)。网关E在收到这个数数据帧后发现是送给主机C(10.1.0.2)的,于是就检查自己的ARP缓存表,查看里面是否有主机C对应的物理地址,如果没有就使用ARP协议获得,如果有就使用该物理地址与主机C进行数据传递。
1.4 ARP欺骗攻击原理
网络中的主机在实施ARP缓存表的机制中存在一个明显的缺陷[9],就是当网络中的某台主机在收到一个ARP应答包后,不去验证自己是否曾经发送过这个ARP请求,而是直接将ARP应答包里的物理地址与IP地址对应的关系替换掉自己ARP缓存表里原有的信息。ARP欺骗攻击正是利用ARP协议自身的这一明显漏洞来进行渗透攻击,达到在全交换环境下进行数据实时监听,这种攻击方式也经常被病毒、木马或者黑客等有特殊目的的攻击者所使用。
攻击者所在的主机B(192.168.1.3)向网关C发送ARP应答包说:我是192.168.1.2(主机A的IP地址),我的MAC地址是03?03?03?03?03?03(攻击者的MAC地址),主机B同时向主机A发送ARP应答包说:我是192.168.1.1(网关C的IP地址),我的MAC地址是03?03?03?03?03?03(攻击者的MAC地址)。由于主机A的缓存表中网关C的IP地址已与攻击者的MAC地址建立了对应关系,这样,主机A发给网关C的数据就会被发送到攻击者的主机B,同时网关C发给主机A的数据也会被发送到主机B,因此,攻击者B就成了主机A与C之间的“中间人”,可以按照攻击者的目的随意进行破坏了。
在局域网内进行ARP欺骗攻击非常有效,其主要危害有:造成同一网段的其他用户无法正常上网(频繁掉线或者网速缓慢)[10];通过捕获进而嗅探到交换式局域网内传递的所有信息,从而截取自己感兴趣的机密数据;通过对传递的数据进行修改,造成用户得到一些垃圾数据(如在用户访问的页面中植入垃圾广告等);通过欺骗攻击进而控制局域网内所有客户端,监听数据传递等,相当于“网管”的效果。
1.5 ARP攻击的特点
1) 攻击成本小。不需要特殊的网络设备,攻击者只要能够将计算机接入网络,就能对网络内的主机实施ARP攻击。
2) 技术要求低[10]。由于ARP协议本身比较简单,安全漏洞明显,攻击者只要了解ARP协议原理,就能够利用相关的攻击软件或者自己编写软件进行攻击。
3) 难以追踪攻击源。虽然攻击者处在网络内部,但由于ARP数据包只在IP层进行传送,如果没有专门的工具,用户很难发现自己被攻击。另外,许多攻击者都伪造了主机的IP地址和MAC地址,甚至假冒其他主机的地址来实施攻击,使查找攻击主机变得更加困难。
2 ARP欺骗攻击的检测与防御
2.1 遭受ARP欺骗攻击的表现
当用户的计算机出现以下现象时,有可能正在遭受ARP欺骗攻击:用户使用网络时频繁掉线,无法正常使用;网络访问速度突然变得缓慢;用户在使用ARP命令进行检查时,发现与真实的网关物理地址不一致;使用嗅探工具时(如Sniffer)发现局域网内存在许多未知的ARP应答包。
在局域网中用户可以通过两种方法来判断攻击主机的物理地址:一是使用ARP?a命令,当用户在结果中发现网关的物理地址与正确的网关物理地址不一致,此时就可以肯定受到了ARP欺骗攻击,那么这个虚假的网关物理地址就是黑客欺骗用户的攻击主机物理地址;二是用户使用嗅探工具进行抓包时,如果发现大量的以网关IP地址发送的ARP响应包,这个包中所指定的物理地址就是攻击主机的物理地址。
2.2 ARP攻击的检测
ARP攻击的检测方法主要有手动检测和动态检测。手动检测是通过人工去查看网络设备和主机中的相关信息,分析判断网络中是否存在ARP欺骗,而动态检测指的是利用专门的软件工具对网络中的ARP攻击进行检测。
2.2.1 手动检测
1) 查看ARP缓存。如果用户知道正确的网关MAC地址,通过ARP?a命令来查看主机中的高速缓存,当看到的网关MAC地址与正确的MAC地址不同时,就可以判斷得出该主机受到了ARP欺骗攻击,那么这个虚假的网关物理地址就是攻击主机的物理地址。另外,如果在ARP缓存中发现多个IP地址对应的MAC地址是相同的,而网络中并没有使用ARP代理,则可以判断该主机已经被实施了ARP欺骗。
2) 在交换机上查看转发表。如果交换机的某个端口直接与一台主机相连,但在转发表上发现该端口对应着多个MAC,则基本可以判断该主机正在实施ARP攻击。或者,已知某台主机的MAC地址和其所在的交换机端口,但在转发表上二者不在同一个映射项中,则可以判断网络中存在ARP欺骗。
3) 在网关中查看ARP映射。网关中存储有主机IP地址与MAC地址之间的映射,如果已知某台主机的IP地址和MAC地址,但在网关的映射表中发现某个映射的IP地址相同,而MAC地址不同,或者MAC地址相同,但IP地址不同,则可以判断网络中存在ARP欺骗。
4) 抓包分析。使用Sniffer等软件抓取网络中的数据包,通过以下几个原则来判断网络中是否存在ARP欺骗。
对于ARP请求报文,观察其报文内(源IP地址和源MAC地址)映射是否与已知的映射一致,如果不一致,可以判断该报文是欺骗报文。另外,如果某台主机频繁地对一台主机发送ARP请求报文,而目的主机已经做出了应答,也可以判断该主机在实施ARP欺骗。
对于ARP应答报文,检查其报文内(源IP和源MAC地址)以及(目的IP和目的MAC地址)映射是否与已知的映射一致,如果不一致,可以判断该报文是欺骗报文。同时,如果发现某台主机没有接收到ARP请求报文的情况下发送ARP应答报文也可以判断该主机在实施ARP欺骗。
2.2.2 动态检测
动态检测包括主动检测和被动检测。主动检测指的是在接收到的ARP报文后,构造特定的报文发送到网络中,根据响应报文来对接收到的ARP报文进行判断的检测方法,目前主要应用为ARP防火墙。被动检测则只对网络中传输的ARP报文进行分析,而不向外发送报文。
2.3 ARP欺骗攻击的防范
1) MAC地址绑定。由于ARP欺骗攻击是通过虚构IP地址和MAC地址欺骗目标主机,从而更改ARP缓存中的路由表进行攻击的,因此,只要将局域网中每一台计算机的IP地址与MAC地址绑定,就能有效地防御ARP欺骗攻击。
2) 使用静态ARP缓存来绑定关系,如果需要更新ARP缓存表,使用手工进行更新,以保障黑客无法进行ARP欺骗攻击。
3) 在确保ARP服务器不被攻击者所控制的情况下,使用ARP服务器来搜索自己的ARP转换表来响应其他客户端的ARP广播。
4) 在有条件的情况下通过使用ARP防火墙等防护ARP欺骗的工具来进行ARP欺骗攻击的保护。
5) 及时发现正在进行ARP欺骗的客户端并立即对其采取隔离措施。
6) 划分VLAN。在使用三层交换机的网络中,可以通过划分VLAN的方法减小ARP攻击的影响范围。VLAN可以不考虑网络的实际地理位置,用户可以根据不同客户端的功能、应用等将其从逻辑上划分在一个相对独立的组中,每个客户端的主机都连接在支持VLAN的交换机端口上,同一个VLAN内的主机形成一个广播域,不同VLAN之间的广播报文能够得到有效的隔离。由于ARP攻击不能跨网段完成,因此,这种方法能够有效地将ARP攻击限制在一定范围内。但其缺点是增加了网络管理的复杂度,而且无法适应网络的动态变化。
3 结 语
本文首先论述ARP工作原理和ARP协议在局域网内及局域网间的通信过程,然后通过对其欺骗特点和表现形式进行比较分析的方法,使用户对ARP协议自身存在的缺陷有了清晰认识;通过对ARP欺骗攻击的原理、受到欺骗时网络表现形式的剖析,得到两种欺骗检测方法;最后根据网络遭到ARP欺骗攻击时的表现形式,得出如何进行有效防御ARP欺骗攻击的结论。
参考文献
[1] 钱志远.基于计算机网络安全防ARP攻击的研究[J].通讯世界,2017(1):99?100.
QIAN Zhiyuan. Research on ARP attack prevention based on computer network security [J]. Telecom world, 2017(1): 99?100.
[2] 王松滨.ARP攻击与局域网安全[J].电子技术与软件工程,2016(23):219.
WANG Songbin. ARP attack and LAN security [J]. Electronic technology &; software engineering, 2016(23): 219.
[3] 韩利凯.基于ARP欺骗的网络攻击分析及防范[J].西安文理学院学报(自然科学版),2012,15(4):84?86.
HAN Likai. An analysis of network attack based on ARP spoofing and precautions [J]. Journal of Xian University of Arts and Science (Natural science edition), 2012, 15(4): 84?86.
[4] 马英瑞,王冬星,张丽华,等.基于局域网ARP病毒攻击与防御措施的研究[J].大庆师范学院学报,2016,36(6):24?27.
MA Yingrui, WANG Dongxing, ZHANG Lihua, et al. Research of ARP virus attack and defense measures based on the LAN [J]. Journal of Daqing Normal University, 2016, 36(6): 24?27.
[5] 智阳光,胡曦明,马苗.浅析ARP攻击原理及其防御[J].网络安全技术与应用,2017(7):30?32.
ZHI Yangguang, HU Ximing, MA Miao. Analysis of ARP attack principle and defense [J]. Network security technology &; application, 2017(7): 30?32.
[6] 龚小勇,童均.网络安全运行与维护[M].2版.北京:高等教育出版社,2015.
GONG Xiaoyong, TONG Jun. Network security operation and maintenance [M]. 2nd ed. Beijing: Higher Education Press, 2015.
[7] 鲁先志,武春岭.信息安全技术基础[M].北京:高等教育出版社,2016.
LU Xianzhi, WU Chunling. Information security technology foundation [M]. Beijing: Higher Education Press, 2016.
[8] 戴志刚.网络机房的ARP欺骗防范[J].信息与电脑(理论版),2017(22):185?186.
DAI Zhigang. ARP spoofing defense of network computer room [J]. China computer &; communication (Theory edition), 2017(22): 185?186.
[9] 成燚.信号安全网中ARP的攻击分析及防护探讨[J].上海铁道科技,2017(3):140?141.
CHENG Yi. ARP attack analysis and protection in signal security network [J]. Shanghai railway science &; technology, 2017(3): 140?141.
[10] 王帅鹏.ARP病毒入侵的途径与防御[J].科学技术创新,2017(28):124?125.
WANG Shuaipeng. Paths and defense of ARP virus intrusion [J]. Scientific and technological innovation, 2017(28): 124?125.