《2022年ARP攻击原理及解决方法 .pdf》由会员分享,可在线阅读,更多相关《2022年ARP攻击原理及解决方法 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ARP网络攻击原理及解决方法李锐1, 黄崇林2(1、新疆派犨泰克石油科技有限公司,新疆阜康,831511; 2、 准东采油厂信息所新疆阜康831511)摘要 : 介绍了 ARP网络协议,比较深入地分析了ARP攻击的原理,提出了预防ARP攻击的解决方案。关键词:IP 地址;MAC 地址;ARP 网络协议0 引言目前造成网络不安全的主要因素是系统、协议及数据库等的设计上存在缺陷。网络互连一般采用TCP/IP 协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全问题考虑不多, 协议中有很多的安全漏洞,可能被一些另有图谋的黑客所利用并发起攻击。因此若要保证网络安全、可靠, 则必须熟知黑客网络攻
2、击的一般过程。只有这样方可在黒客攻击前做好必要的防备,从而确保网络运行的安全和可靠。本文将主要讨论网络上常见的ARP攻击的原理和解决办法。不久前,准东采油厂局域网内部分网络用户上网时常出现无规律地断线和IP 地址冲突的情况。经过分析,我们发现出现这种现象的网络计算机都是出现在局域网内的一个VLAN段中,我们对该VLAN网络做了抓包分析,发现该网段的ARP协议出现了异常,初步判断这是一个网络ARP攻击。1 ARP网络协议原理要了解 ARP攻击的原理,我们先来了解一下ARP协议。 ARP协议即地址解析协议Address Resolution Protocol,ARP协议是将IP 地址与网络物理地址
3、一一对应的协议。负责 IP 地址和网卡实体地址(MAC)之间的转换。也就是将网络层(IP 层,相当于ISO OSI 的第三层)地址解析为数据连接层(MAC 层,相当于ISO OSI 的第二层)的MAC 地址。如果您对网路七层协定有比较清晰的理解的话,应该知道各个层级之间都使用其各自的协定。一张ARP的表,用来支持在MAC 地址和 IP 地址之间的一一对应关系。它提供两者的相互转换。在以太网( Ethernet )中,一个网络设备要和另一个网络设备进行直接通信,除了知道目标设备的网络层逻辑地址(如IP 地址)外,还要知道目标设备的第二层物理地址(MAC地址) 。ARP协议的基本功能就是通过目标设
4、备的IP 地址,查询目标设备的MAC 地址,以保证通信的顺利进行。当一个网络设备需要和另一个网络设备通信时,它首先把目标设备的IP 地址与自己的子网掩码进行 与 操作,以判断目标设备与自己是否位于同一网段内。如果目标设备在同一网段内,并且源设备没有获得与目标IP 地址相对应的MAC 地址信息,则源设备以第二层广播的形式(目标MAC 地址为全 1)发送 ARP请求报文,在ARP请求报文中包含了源设备与目标设备的IP 地址。同一网段中的所有其他设备都可以收到并分析这个ARP请求报文,如果某设备发现报文中的目标IP 地址与自己的IP 地址相同,则它向源设备发回ARP响应报文,通过该报文使源设备获得目
5、标设备的MAC 地址信息。如果目标设备与源设备不在同一网段,则源设备首先把IP 分组发向自己的缺省网关(Default Gateway) ,由缺省网关对该分组进行转发。如果源设备没有关于缺省网关的MAC信息, 则它同样通过ARP协议获取缺省网关的MAC 地址信息。 为了减少广播量,网络设备通过 ARP表在缓存中保存IP 与 MAC 地址的映射信息。在一次ARP的请求与响应过程中,通信双方都把对方的MAC 地址与 IP 地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。 ARP表使用老化机制,删除在一段时间内没有使用过的IP 与 MAC 地址的映射关系。还有当传送过来的包要传向一个LA
6、N的主机时, 当它到达网关时, 网关要求ARP程序找到物理主机或与IP 地址相对应的MAC 地址。 ARP程序在缓存中寻找,如果找到地址,就提名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 供此地址,以便让此包转换成相应的长度和格式,以传送到此主机。如果未找到,ARP程序就在网上广播一个特殊格式的消息,看哪个机器知道与这个IP 地址相关的MAC 地址。如果一台机器发现那是自己的IP 地址,它就发送回应,这样就指出了相应的地址。A
7、RP程序就更新自己的缓存然后发送此包到回应的MAC 地址。因为不同协议的相应处理方法不同,所以有不同网络的地址解析请求。也有反向地址解析协议(RARP )供不知道IP 地址的主机从ARP缓存中获得IP 地址。我们还是来通过实验更加深入直观地了解ARP协议的工作原理吧。我们假设有两台主机: A机的 IP 地址是 192.168.0.1,MAC 地址是 52-54-ab-27-82-83 。B机的 IP 地址是 192.168.0.2, MAC 地址是 52-54-ab-27-82-84 。当主机 A想与主机 B进行通讯时,A机只知道 B机的 IP 地址是 192.168.0.2,当数据包封装到
8、MAC 层时他如何知道B的 MAC地址呢, 一般的 OS中是这样做的, 在 OS的内核中保存一分 MAC 地址表,就是我们前面提到的。用arp -a就可以看见这个表的内容了,例如: C:/arp -a Interface: 192.168.0.X on Interface 0 x1000002 Internet Address Physical Address Type 192.168.0.1 52-54-ab-27-82-83 dynamic 其中表内有IP 和 MAC 地址的对应关系,当要进行通讯时,系统先查看这个表中是否有相关的表项,如果有就直接使用,如果没有系统就会发出一个ARP请求包
9、 ,这个包的目的地址为fff.fff.fff.fff的广播地址,他的作用就是询问局域网内IP 地址为 192.168.0.2的主机的 MAC 地址,就像是A在局域网中发信息找一个IP 地址为 192.168 .0.2的主机 MAC 地址,同样 A机把自已的MAC 地址告诉出去是52-54-ab-27-82-83 ,随后所有主机都会接收到这个包,但只有IP 为 192.168.0.2的主机 B才会响应一个ARP应答包给主机A,B 机会回信息给 A机说他的 MAC地址是 52-54-ab-27-82-84,这样主机 A就知道主机B的 MAC 地址了,于时他就可以封包发送了,同时主机A将 B的 MA
10、C 地址放入 ARP缓冲中,隔一定时间就将其删除,确保不断更新。2 ARP攻击原理每台安装有TCP/IP 协议的电脑里都有一个ARP缓存表,表里的IP 地址与 MAC 地址是一一对应的,如下表所示。主机IP 地址MAC 地址A 192.168.16.1 aa-aa-aa-aa-aa-aa B 192.168.16.2 bb-bb-bb-bb-bb-bb C 192.168.16.3 cc-cc-cc-cc-cc-cc D 192.168.16.4 dd-dd-dd-dd-dd-dd 我们以主机A(192.168.16.1)向主机 B(192.168.16.2)发送数据为例。当发送数据时,主机
11、A 会在自己的ARP 缓存表中寻找是否有目标IP 地址。如果找到了,也就知道了目标MAC 地址,直接把目标MAC 地址写入帧里面发送就可以了;如果在ARP 缓存表中没有找到相对应的IP 地址,主机A 就会在网络上发送一个广播,目标MAC 地址是“ FF -FF-FF-FF-FF- FF” ,这表示向同一网段内的所有主机发出这样的询问:“192.168.16.2 的MAC 地址是什么? ” 网络上其他主机并不响应ARP 询问,只有主机B 接收到这个帧时,才向主机 A 做出这样的回应:“192.168.16.2的 MAC 地址是 bb-bb-bb-bb-bb- bb” 。这样,主机A 就知道了主机
12、B 的 MAC 地址,它就可以向主机B 发送信息了。同时它还更新了自己的ARP 缓存表, 下次再向主机B 发送信息时, 直接从 ARP 缓存表里查找就可以了。ARP 缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除, 这样可以大大减少 ARP 缓存表的长度,加快查询速度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 从上面可以看出,ARP 协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的A
13、RP 欺骗。对目标A 进行欺骗, A 去 Ping 主机 C 却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C 的 MAC 地址骗为DD-DD-DD-DD-DD-DD,于是 A 发送到 C 上的数据包都变成发送给D 的了。 这不正好是D能够接收到A 发送的数据包了么,嗅探成功。A 对这个变化一点都没有意识到,但是接下来的事情就让A 产生了怀疑。因为A 和 C连接不上了。 D 对接收到 A 发送给 C 的数据包可没有转交给C。做 “man in the middle”,进行 ARP 重定向。打开D 的 IP 转发功能, A 发送过来的数据包,转发给C,好比一个路由
14、器一样。不过,假如D 发送 ICMP 重定向的话就中断了整个计划。D 直接进行整个包的修改转发,捕获到A 发送给 C 的数据包,全部进行修改后再转发给C,而 C 接收到的数据包完全认为是从A 发送来的。 不过,C 发送的数据包又直接传递给A, 倘若再次进行对C 的 ARP欺骗。现在 D 就完全成为A 与 C 的中间桥梁了, 对于 A 和 C 之间的通讯就可以了如指掌了。3 ARP攻击检测网络管理中心首先要建立所有上网计算机的MAC 地址库,将MAC 地址和 IP 地址进行绑定。使用 Sniffer或者一些其他嗅探软件可得到当前网络中ARP地址缓存表, 在 ARP欺骗木马开始运行的时候,局域网所
15、有或部分主机的MAC 地址更新为病毒主机的MAC 地址(即扫描得出的列表中所有或部分主机的MAC 地址一致为病毒主机的MAC 地址) 。另一种方法,在受攻击的网络计算机中进入到虚拟的DOS 模式下 ping 自己的网关,然后用 arp -a 命令可以看到缓存中网关对应的MAC 地址,然后记录下来。记录的MAC 地址如果和正常上网计算机的地址不同,那么该MAC 地址为攻击发起者的地址。4 ARP协议欺骗技术相应对策解决 ARP 攻击对策很多,可以根据网络具体情况采取不同的对策。我们主要采用了交换机端口与MAC 绑定:交换机工作在数据链路层的MAC 子层,传输的是帧,通常用于连接两个或多个以太网段
16、。交换机在接收到以太帧后,从以太帧的源MAC 地址字段 逆向 学习到去源站的路径,并生成、完善和维护着一个MAC 地址与端口的映射表,在这个表中记录着交换机每个端口绑定的 MAC 地址。交换机以帧中的目的地址查找MAC 地址表各项,如有匹配项则按该表项指定的端口路径转发帧,如无相应表项则向除源端口以外的所有端口广播转发帧。帧中的源和目的地址都是物理地址,即MAC 地址。将交换机的MAC 地址与端口绑定,终端用户如果擅自改动本机网卡的MAC 地址,该机器的网络访问将因其MAC 地址被交换机认定为非法而无法实现,自然也就不会对局域网造成干扰了。以思科 2950A 交换机为例、登录进入交换机,输入管
17、理口令进入全局配置模式,键入命令:(config) #mac address table static MAC 地址 vlanVLAN 号 interface模块号端口号表该命令可分配一个静态的MAC 地址给某些端口,即使重自交换机,这个地址也仍然会存在。从此,该端口只允许这个MAC 地址对应的设备连接在该端口上进行通信。用户通过注册表等方式更改MAC 地址后,交换机拒绝为其通信。这样从根本上防止了ARP 攻击的源头。5 结束语由此可见, 针对系统、网络协议及数据库等,无论是其自身的设计缺陷,还是由于人为的因素产生的各种安全漏洞,都可能被一些另有图谋的黑客所利用并发起攻击。因此若要保证网络安全、 可靠, 则必须熟知黑客网络攻击的一般过程。只有这样方可在黒客攻击前做好名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 必要的防备,从而确保网络运行的安全和可靠。参考文献名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -