今天我主要想和大家一起了解一下什么是ARP欺骗?下面来看我慢慢解释~
一.ARP欺骗的概念ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》
二.ARP欺骗的运作原理1.由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果
2.简单案例分析:
这里用一个最简单的案例来说明ARP欺骗的核心步骤。假设在一个LAN里,只有三台主机A、B、C,且C是攻击者。
攻击者聆听局域网上的MAC地址。它只要收到两台主机洪泛的ARP Request,就可以进行欺骗活动。
主机A、B都洪泛了ARP Request.攻击者现在有了两台主机的IP、MAC地址,开始攻击。
攻击者发送一个ARP Reply给主机B,把此包protocol header里的sender IP设为A的IP地址,sender mac设为攻击者自己的MAC地址。
主机B收到ARP Reply后,更新它的ARP表,把主机A的MAC地址(IP_A, MAC_A)改为(IP_A, MAC_C)。
当主机B要发送数据包给主机A时,它根据ARP表来封装数据包的Link报头,把目的MAC地址设为MAC_C,而非MAC_A。
当交换机收到B发送给A的数据包时,根据此包的目的MAC地址(MAC_C)而把数据包转发给攻击者C。
攻击者收到数据包后,可以把它存起来后再发送给A,达到偷听效果。攻击者也可以篡改数据后才发送数据包给A,造成伤害。
三、ARP欺骗的危害1、ARP(地址解析协议)是以广播的方式发送ARP请求的,只要是同一个网段内的主机都可以接收到,这就让攻击者有了可乘之机。攻击者可以发送大量的“ARP请求包”,阻塞正常的网络带宽,使局域网中有限的网络资源,被这些无用的广播信息所占用,造成网络拥堵。
2、ARP(地址解析协议)没有安全认证机制,局域网内的所有主机是建立在互相信任的基础上的,攻击者可以发送错误的“IP地址/MAC地址”的映射关系。只要攻击者持续不断地发出伪造的“ARP请求包”,就能更改目标主机“本地ARP缓存表”中的IP地址/MAC地址条目,造成网络中断或者中间人攻击。
四、 ARP欺骗的防御措施1. 不要把网络安全信任关系,单纯地建立在IP基础上或MAC基础上,理想的关系应该建立在“IP MAC”基础上。
2.设置添加静态的“ARP映射表”,不要让主机刷新设定好的“ARP映射表”。
3. 除非很有必要,否则停止使用ARP(地址解析协议),将ARP(地址解析协议)作为永久条目保存在“ARP映射表”中。
4.使用ARP服务器,通过该服务器查找自己的“ARP映射表”,以此来响应其他机器的ARP请求广播,并确保这台ARP服务器不被黑。
5.IP的传输,使用“proxy”代理。
6. 使用硬件屏蔽主机,设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目)。
7. 使用防火墙连续监控网络。注意有使用SNMP(简单网络管理协议)的情况下,ARP欺骗有可能导致陷阱包丢失。
8.若感染ARP病毒,可以通过“清空ARP缓存、指定ARP对应关系、添加路由信息、使用防病毒软件”等方式解决。