2022年ARP攻击防御 .pdf
至于原理,就是病毒通过修改mac 本机 mac 地址,伪装成网关,然后网内其它机器要通过网关上网的话,就会连到有病毒的机器。病毒会每隔几分钟掉一次线,于是网内的其它机器掉线以后(比如玩网游的)要重新输入用户名密码登陆,这时病毒就会检索数据包,盗取用户名和密码。户受到一种名为ARP 欺骗木马程序(病毒)的攻击(ARP 是Address Resolution Protocol地址解析协议 的缩写),极大地影响了政务网用户的正常使用,给整个政务网的安全带来严重的隐患。一、故障现象通常上网计算机的网关设为192.168.X.254,这个地址是核心交换机(三层交换机)的 IP 地址。将网关改为路由器的IP 地址 192.168.X.253 后可正常上网。病毒发作时其症状表现为计算机网络连接正常,却无法打开网页;或由于ARP 欺骗的木马程序(病毒)发作时发出大量的数据包,导致政务网用户上网不稳定,时断时通。中毒机器在局域网中发送假的APR 应答包进行APR 欺骗,造成其他客户机无法获得网关和其他客户机的网卡真实MAC 地址,导致无法上网。计算机重新启动后短时间内可以上网,稍过一会儿就出现只有网络连接,但打不开网页的现象。定位 ARP 攻击源头和防御方法1定位 ARP 攻击源头主动定位方式:因为所有的ARP 攻击源都会有其特征网卡会处于混杂模式,可以通过ARPKiller 这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器有可能就是“元凶”。定位好机器后,再做病毒信息收集,提交给趋势科技做分析处理。标注:网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它。这实际就是Sniffer 工作的基本原理:让网卡接收一切它所能接收的数据。被动定位方式:在局域网发生ARP 攻击时,查看交换机的动态ARP 表中的内容,确定攻击源的 MAC 地址;也可以在局域居于网中部署Sniffer 工具,定位ARP 攻击源的MAC。也可以直接Ping 网关 IP,完成 Ping 后,用 ARP a查看网关IP 对应的 MAC 地址,此 MAC地址应该为欺骗的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 地址。NBTSCAN 的使用范例:假设查找一台MAC 地址为“000d870d585f”的病毒主机。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -1)将压缩包中的nbtscan.exe 和 cygwin1.dll 解压缩放到c:下。2)在 Windows 开始运行打开,输入 cmd(windows98 输入“command”),在出现的DOS窗口中输入:C:btscan-r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。3)通 过 查 询IP-MAC对 应 表,查 出“000d870d585f”的 病 毒 主 机 的IP地 址 为“192.168.16.223”。通过上述方法,我们就能够快速的找到病毒源,确认其MAC 机器名和IP 地址。2防御方法a.使用可防御ARP 攻击的三层交换机,绑定端口-MAC-IP,限制 ARP 流量,及时发现并自动阻断 ARP 攻击端口,合理划分 VLAN,彻底阻止盗用IP、MAC 地址,杜绝 ARP 的攻击。b.对于经常爆发病毒的网络,进行Internet 访问控制,限制用户对网络的访问。此类ARP 攻击程序一般都是从Internet 下载到用户终端,如果能够加强用户上网的访问控制,就能极大的减少该问题的发生。c.在发生ARP 攻击时,及时找到病毒攻击源头,并收集病毒信息,可以使用趋势科技的SIC2.0,同时收集可疑的病毒样本文件,一起提交到趋势科技的TrendLabs 进行分析,TrendLabs 将以最快的速度提供病毒码文件,从而可以进行ARP 病毒的防御。案例 2 要想了解 ARP 欺骗攻击的原理,首先就要了解什么是ARP 协议。ARP 是地址转换协议的英文缩写,它是一个链路层协议,工作在OSI 模型的第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。我们知道,二层的以太网交换设备并不能识别32 位的 IP 地址,它们是以48 位以太网地址(就是我们常说的MAC 地址)传输以太网数据包的。因此 IP 地址与 MAC 地址之间就必须存在一种对应关系,而ARP 协议就是用来确定这种对应关系的协议。ARP 工作时,首先请求主机发送出一个含有所希望到达的IP 地址的以太网广播数据包,然后目标 IP 的所有者会以一个含有IP 和 MAC 地址对的数据包应答请求主机。这样请求主机就能获得要到达的IP 地址对应的MAC 地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP 通信。ARP 缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统这个时间为2 分钟,而Cisco 路由器的这个时间为5 分钟),就会被删除。通过下面的例子我们可以很清楚地看出ARP 的工作机制。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -假定有如下五个IP 地址的主机或者网络设备,它们分别是:主机 A 192.168.1.2 主机 B 192.168.1.3 网关 C 192.168.1.1 主机 D 10.1.1.2 网关 E 10.1.1.1 假如主机 A 要与主机B 通信,它首先会检查自己的ARP 缓存中是否有192.168.1.3这个地址对应的MAC 地址,如果没有它就会向局域网的广播地址发送ARP 请求包,大致的意思是 192.168.1.3的 MAC 地址是什么请告诉192.168.1.2,而广播地址会把这个请求包广播给局域网内的所有主机,但是只有192.168.1.3这台主机才会响应这个请求包,它会回应192.168.1.2一个 ARP 包,大致的意思是192.168.1.3的 MAC 地址是 02-02-02-02-02-02。这样的话主机A 就得到了主机B 的 MAC 地址,并且它会把这个对应的关系存在自己的ARP缓存表中。之后主机A 与主机 B 之间的通信就依靠两者缓存表里的MAC 地址来通信了,直到通信停止后2 分钟,这个对应关系才会从表中被删除。再来看一个非局域网内部的通信过程。假如主机A 需要和主机D 进行通信,它首先会发现这个主机 D 的 IP 地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查自己的ARP 缓存表里是否有网关192.168.1.1对应的 MAC 地址,如果没有就通过ARP 请求获得,如果有就直接与网关通信,然后再由网关C 通过路由将数据包送到网关E,网关 E 收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP 缓存,看看里面是否有10.1.1.2 对应的 MAC 地址,如果没有就使用ARP 协议获得,如果有就是用该 MAC 地址与主机D 通信。通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC 地址,IP 地址与 MAC对应的关系依靠ARP 表,每台主机(包括网关)都有一个ARP 缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B 之类的是无法截获A 与 D 之间的通信信息的。但是主机在实现ARP 缓存表的机制中存在一个不完善的地方,当主机收到一个ARP 的应答包后,它并不会去验证自己是否发送过这个ARP 请求,而是直接将应答包里的MAC 地址与 IP 对应的关系替换掉原有的ARP 缓存表里的相应信息。这就导致主机B 截取主机A与主机 D 之间的数据通信成为可能。首先主机 B 向主机 A 发送一个ARP 应答包说 192.168.1.1的 MAC 地址是02-02-02-02-02-02,主机 A 收到这个包后并没有去验证包的真实性而是直接将自己ARP列表中的192.168.1.1的 MAC 地址替换成02-02-02-02-02-02,同时主机B 向网关 C 发送一个 ARP 响应包说192.168.1.2的 MAC 是 02-02-02-02-02-02,同样,网关 C 也没有去验证这个包的真实性就把自己ARP 表中的 192.168.1.2的 MAC 地址替换成02-02-02-02-02-02。当主机 A 想要与主机D 通信时,它直接把应该发送给网关192.168.1.1名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -的数据包发送到02-02-02-02-02-02这个 MAC 地址,也就是发给了主机B,主机 B 在收到这个包后经过修改再转发给真正的网关C,当从主机D 返回的数据包到达网关C 后,网关也使用自己ARP 表中的 MAC,将发往192.168.1.2这个 IP 地址的数据发往02-02-02-02-02-02这个 MAC 地址也就是主机B,主机 B 在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次ARP 欺骗攻击。因此简单点说,ARP 欺骗的目的就是为了实现全交换环境下的数据监听。大部分的木马或病毒使用 ARP 欺骗攻击也是为了达到这个目的。如何发现及清除局域网内一旦有ARP 的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过 ARP 攻击者控制的主机。其他用户原来直接通过网关上网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外ARP 欺骗需要不停地发送ARP 应答包,会造成网络拥塞。一旦怀疑有ARP 攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP 应答包,并且将所有的IP 地址都指向同一个MAC 地址,那么就说明存在ARP 欺骗攻击,并且这个 MAC 地址就是用来进行ARP 欺骗攻击的主机MAC 地址,我们可以查出它对应的真实IP 地址,从而采取相应的控制措施。另外,我们也可以到路由器或者网关交换机上查看IP地址与 MAC 地址的对应表,如果发现某一个MAC 对应了大量的IP 地址,那么也说明存在ARP 欺骗攻击,同时通过这个MAC 地址查出用来ARP 欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。如何防范?我们可以采取以下措施防范ARP 欺骗。(1)在客户端使用arp 命令绑定网关的真实MAC 地址命令如下:arp-d*(先清除错误的ARP 表)arp-s 192.168.1.1 03-03-03-03-03-03(静态指定网关的MAC 地址)(2)在交换机上做端口与MAC 地址的静态绑定。(3)在路由器上做IP 地址与 MAC 地址的静态绑定。(4)使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC 映射表。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -(5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。ARP 工作原理如下:在 TCP/IP 协议中,A 给 B 发送 IP 包,在包头中需要填写B 的 IP 为目标地址,但这个 IP 包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B 的MAC 地址.计算机 A 是如何得知B 的 MAC 地址的呢?解决问题的关键就在于ARP 协议。在 A 不知道 B 的 MAC 地址的情况下,A 就广播一个ARP 请求包,请求包中填有B 的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B 会给出ARP 应答包,包中就填充上了B 的 MAC 地址,并回复给A。A 得到 ARP 应答后,将 B 的 MAC 地址放入本机缓存,便于下次使用。本机 MAC 缓存是有生存期的,生存期结束后,将再次重复上面的过程。ARP 协议并不只在发送了ARP 请求才接收ARP 应答。当计算机接收到ARP 应答数据包的时候,就会对本地的ARP 缓存进行更新,将应答中的IP 和 MAC 地址存储在ARP 缓存中。因此,当局域网中的某台机器B 向 A 发送一个自己伪造的ARP 应答,而如果这个应答是B冒充 C 伪造来的,即IP 地址为 C 的 IP,而 MAC 地址是伪造的,则当A 接收到 B 伪造的ARP 应答后,就会更新本地的ARP 缓存,这样在 A 看来 C 的 IP 地址没有变,而它的 MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP 地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC 地址在 A 上被改变成一个不存在的MAC 地址,这样就会造成网络不通,导致A 不能 Ping 通 C!这就是一个简单的ARP 欺骗。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -