浅析局域网内ARP攻击与防护

2021-04-01 14:04仇虹施俊宇涂秋月
计算机与网络 2021年1期
关键词:报文数据包发给

仇虹 施俊宇 涂秋月

摘要:地址解析协议(ARP)攻击是局域网内较常见的网络攻击事件,ARP攻击可能导致网络故障或信息泄露,一旦网络中出现了ARP攻击事件,网络运维人员需花费大量的时间和精力处理。针对常见的ARP攻击事件,对ARP工作原理进行了介绍,使用eNSP模拟了局域网环境,用Scapy构建ARP报文并实现了ARP欺骗攻击和泛洪攻击,结合网络运维经验梳理了常用ARP攻击的防范手段。

关键词:地址解析协议;Scapy;欺骗攻击;泛洪攻击

中图分类号:TP393文献标志码:A文章编号:1008-1739(2021)01-56-4

0引言

互联网使用了TCP/IP协议,在设计之初主要考虑的是互通性和开放性,未重视安全性,使得TCP/IP协议族中部分协议有漏洞。ARP是TCP/IP中网络层的重要协议,是连接硬件和网络的桥梁[1]。ARP建立在局域网主机相互信任的基础上,设计初衷是方便进行数据的传输、提高效率,并没有安全验证手段,为病毒或黑客实施ARP攻击提供了可乘之机。ARP攻击是局域网中最常见的攻击方式之一,ARP欺骗攻击和泛洪攻击是常见的攻击方式,对网络安全构成严重威胁。

1 ARP工作原理

在网络的数据链路层只能看见MAC帧,链路层以上的数据都被封装在MAC帧中,MAC帧包含源MAC地址和目的MAC地址,在实际局域网络中传送数据时,根据MAC地址寻找目的主机。已知一台主机的IP地址,要发送数据时需要找到对方的MAC地址,这时就需要用到ARP。

ARP负责将网络层中的IP地址解析为链路层的MAC地址。ARP报文封装在MAC帧中,ARP报文格式如图1所示,总长度为28 Byte[2]。

每台主机都有一个ARP高速缓存,保存着本局域网内已知主机和路由器的IP地址和MAC地址映射表,这些映射关系可更新且有生存周期。当一台主机发送数据时,若目标主机的MAC地址在ARP缓存表中不存在,会将包含目标IP地址信息的ARP请求广播给网络中的所有主机,接收返回消息以確定目标IP地址的物理地址。收到返回消息后将该IP地址和MAC地址存入本机ARP缓存中并保留一定时间,以便下次请求时直接查询ARP缓存。

但ARP建立在网络中主机完全信任的基础上,有严重的安全缺陷。ARP地址转换表依赖于计算机中高速缓冲存储器动态更新,高速缓冲存储器更新受到更新周期限制,只保存最近使用地址的映射关系。局域网上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。攻击者若发送伪造的ARP Request报文或ARP Reply报文,便可能会造成网络通道阻塞、网络设备的承载过重以及网络的通信质量不佳等情况[3]。

2构建局域网环境

在实际环境中实施ARP攻击的可能是非法接入的主机、中木马病毒的合法主机或远程入侵的黑客等。使用eNSP软件模拟局域网环境,如图2所示,物理机通过Cloud1对局域网实施ARP攻击,在拓扑图中标为PCA。PC1,PC2,PC3,PCA处于同一局域网,通过路由器R2连接外网,PC4是外网的主机,各主机IP及MAC地址如表1所示。

3 ARP攻击的实现

3.1扫描局域网内在线的主机

攻击者在攻击前一般需要探测网络环境,发现所有在线的主机。首先攻击主机向整个网络发送ARP数据包,收到 ARP广播的主机自动回复ARP Reply数据包,攻击主机根据收到的ARP回复包可判断出局域网内存活主机的情况。

使用Python调用Scapy可方便构造ARP数据包,2层地址设为广播地址,3层地址设为网络地址,即整个局域网段,变量为设置的ARP数据包[4]:

使用srp()函数发送ARP数据包,收到ARP回复包存入

变量。, unreplay=srp( , iface=wifi, timeout=5)。扫描结果如图3所示。扫描结果中的192.168.24.254是网关地址,其余4个均是主机的地址,扫描结果与表1内容一致。

3.2伪造ARP request报文欺骗主机

PC1要访问PC3,会先广播一个ARP请求报文,PC3收到后会返回一个ARP回复报文。若PCA发送的ARP Request报文以PC1的IP为源IP地址、PC3的IP为目标IP地址,PC3收到后就会更新其ARP缓存表,将PC1的IP和PCA的MAC地址写入缓存表,使得PC3发给PC1的数据都会发给PCA,从而达到欺骗的目的。

实施攻击前查看PC3的ARP缓存表,如图4所示,此时PC1与PC3是能正常通信的。

此时PC3的ARP缓存表已发生了变化,192.168.24.3(PC1)对应的MAC地址变成PCA的MAC地址。PC3发往PC1的数据实际上都发给了PCA,PC3与PC1已不能正常通信。

使用Wireshark抓包,如图6所示,发现PC3发往PC1的ICMP数据的目的MAC地址为PCA的地址,PC3发给PC1的数据实际上全发给了PCA,使得PC3无法和PC1正常通信。

PC4为外网计算机,IP地址为192.168.10.2,正常情况下PC1可以访问PC4,此时ARP缓存表里的网关MAC地址是正常的,如图7所示。

发送下面的ARP Request包,PC1的ARP缓存表中网关的MAC地址被改成了PCA的MAC地址,如图8所示。被攻击后,PC1不能访问外网,PC1发往网关的数据包实际上发给了PCA。

Ether (dst=54:89:98:F5:18:FF,src=00:50:56:c0:00:01)/ARP(psrc=192.168.24.254,pdst=192.168.24.3,op=1)。

3.3伪造ARP Reply报文欺骗网关

PCA通过发送伪造的ARP Reply报文可更改网关的ARP缓存表,从而达到欺骗网关的目的。构建ARP数据包:=Ether(dst=54:89:98:03:27:7B,src=00:50:56:c0:00:01)/ARP (psrc=192. 168.24.3,pdst=192.168.24.254, op=2)。

psrc设为PC1的IP, pdst为网关IP, dst为网关MAC地址,src为PCA的MAC地址,op设为2表示ARP回复报文。发送该数据包,R2的G0/0/0口(即网关)收到ARP Reply报文后会更改其ARP缓存表,如图9所示。

网关被欺骗后,使用Wireshark软件抓包分析可知,PC1发送出去的数据包是正常的,但外网经网关发给PC1的数据的MAC地址被改为了PCA的MAC地址,也就是说PC1请求的数据均被发给了PCA,如图10和图11所示。

3.4 ARP泛洪攻击

通过向网关发送大量ARP报文,会导致主机和网关的ARP缓存中正常表项被覆盖或缓存表被写满,导致用户无法上网、网关也无法正常响应。持续发送大量虚假的ARP Request报文,会覆盖用户主机正常的ARP表项,在主机查看ARP缓存表如圖12所示。

持续发送ARP Reply报文,会覆盖住R2的ARP缓存表,如图13所示。导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网。

在ARP攻击前,R2的CPU使用率为6%,在ARP攻击期间,CPU使用率急剧上升,LSW1的CPU使用率变为23%,R2的CPU使用率变为46%,显然ARP泛洪攻击给网络设备造成了沉重负担,如图14和图15所示。

4 ARP攻击的防范措施

4.1设置静态ARP地址绑定

在每个用户主机上采用IP地址和物理地址静态绑定的方法,可固定IP地址和MAC地址的对应关系。在PC1上运行命令“ARPs 192.168.24.3 54-89-98-F5-18-FF”[5],IP地址和MAC地址的对应关系会固定写入ARP缓存中,系统不会自动清空。使用Scapy再发送伪造的ARP包时,PC1中静态ARP缓存表不会被覆盖或改写,可有效保护主机抵御ARP欺骗攻击。

4.2交换机上设置端口绑定

在交换机中的配置命令:[Huawei]user-bind static ip-address 192.168.24.3 mac-address 5489-98f5-18FF interface G0/0/1,允许PC1通过交换机的G0/0/1口发出数据,若PCA的地址和端口在交换机中没有绑定,PCA发出的数据会被交换机丢弃,使得PCA发出的伪造的ARP数据不能影响局域网。在交换机上设定地址、端口绑定,可防止非法用户接入网,因其IP与MAC地址与绑定不符而被丢弃,即使冒用了合法用户的IP和MAC地址,发到交换机的数据也会因接口不匹配不被转发。交换机上设定地址、端口绑定,在安全性要求较高的部门有广泛的应用。但该方法的缺点也十分明显,会使网络灵活性较差,新增主机及主机更换位置、更改IP地址都需要重新配置交换机,会给网络维护人员带来较重的负担。

4.3使用ARP防护工具

使用ARP防火墙也可以保护主机免受ARP攻击。当主机中出现ARP病毒或遭受ARP攻击时会提示用户,并能显示攻击者的MAC地址。使用ARP防火墙,可有效阻止ARP攻击,对外来ARP攻击提供有效保护的同时,还能阻止局域网内的ARP攻击对外造成威胁[6]。

5结束语

由于IPv4网络中ARP协议存在漏洞,使得ARP攻击成为常见的网络安全事件,ARP欺骗攻击和泛洪攻击都是局域网内常见的攻击方式,ARP欺骗攻击可造成用户数据的泄露,ARP泛洪攻击容易引起网络故障。作为网络运维人员需熟练掌握ARP工作机制、对常见的ARP攻击方式要有深刻的认识,在出现ARP攻击事件时能够快速找到攻击源并阻断攻击,尽量降低ARP攻击对网络的影响。网络维护人员还需通过合理的防范措施,预防ARP攻击事件的发生。

参考文献

[1]边浩江.ARP欺骗的侦测及防御方法的研究与实现[D].昆明:昆明理工大学,2015.

[2]谢希仁.计算机网络:第6版[M].北京:电子工业出版社, 2013.

[3]郭会茹,杨斌,牛立全.ARP攻击原理分析及其安全防范措施[J].网络安全技术与应用,2015(6):5-6.

[4]李兆斌,茅方毅,王瑶君,等.Scapy在网络设备安全性测试中的应用[J].北京电子科技学院学报,2016,24(4):73-77.

[5]黄学毛.论局域网中ARP攻击及防范措施[J].电脑知识与技术,2016(2),31-32.

[6]崔婷.局域網中ARP的攻击及防范措施[J].网络安全技术与应用,2019(5):26-27.

猜你喜欢
报文数据包发给
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
满足法规要求的车载终端数据包加密方案分析
基于报文类型的限速值动态调整
C#串口高效可靠的接收方案设计
当不被人理解的时候……
用户设备进行组播路径追踪的方法及系统
原则
网络数据包的抓取与识别