网络攻击与防御技术
摘要: 自开学以来,经常遭受ARP攻击,瑞星ARP防火墙经常报警,有时
网络速度时快时慢,极其不稳定,甚至登不上网。本文介绍了ARP攻击的原理
以及由此引发的网络安全问
,并且结合实际情况,提出在校园网实施多层次的
防范方法,最后介绍了一些实用性较强且操作简单的检测和抵御攻击的有效方法
关键词:ARP攻击; 网络安全; 防范措施;
一、ARP的基本知识
1、 什么是ARP?
ARP
是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能即使通过目标设备的IP地址,查询目标设备的MAC地址,以保证通讯的顺利进行。
在局域网中,通过ARP协议来完成IP地址转换成第二层物理地址。
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)发送数据为例。当发送数据时,主机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就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。 从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标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,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个
。
D直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了
二、ARP欺骗的原理
在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效的保证数据传输的一对一性,也就是说主机A与主机C之间的通讯只通过网关1和网关1,象主机B之类的是无法截获A与C之间的通讯信息的。但是在ARP缓存表的实现机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。如下图所示:
这就导致主机B截取主机A与主机C之间的数据通信成为可能。首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是03-03-03-03-03-03,主机A收到这个包后并没有去验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成03-03-03-03-03-03,同时主机B向网关1发送一个ARP响应包说192.168.1.2的MAC是03-03-03-03-03-03,同样网关1也没有去验证这个包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成03-03-03-03-03-03。当主机A想要与主机C通
讯时,它直接把应该发送给网关1(192.168.1.1)的数据包发送到03-03-03-03-03-03这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真正的网关1,当从主机C返回的数据包到达网关1后,网关1也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地址的数据发往03-03-03-03-03-03这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通讯,这样就成功的实现了一次ARP欺骗攻击。因此简单点说ARP欺骗的目的就是为了实现全交换环境下的数据监听与篡改。到这里我们可以知道要完成一次有效的ARP欺骗的关键点就是双向欺骗,也就是说欺骗者必须同时对网关和主机进行欺骗
三、ARP欺骗的危害
影响局域网正常运行——局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上网现在转由通过被控主机转发上网,由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢。而由于ARP表存在老化机制,这就导致在某段时候主机能获得正确的网关MAC直到新的欺骗完成,这两种情况的交替过程中,主机显示的状况就是时断时续。泄露用户敏感信息——大部分时候这些信息是黑客们所感兴趣的东西(如游戏帐号和密码、QQ号和密码、网银帐号和密码等)
四、ARP的防范与控制
1、主机静态绑定网关MAC
方法:使用arp命令静态绑定网关MAC,
如下:
arp ,s 网关IP 网关MAC
如果觉得每次手动输入比较复杂,您可以编写一个简单的批处理文件然后让它每次开机时自动运行,
批处理文件如下:
----------------------------------- @echo off
echo "arp set"
arp -d
arp ,s 网关IP 网关MAC
exit
------------------------------------ 2、网关使用IP+MAC绑定模式
方法:交换机启用静态ARP绑定功能,将用户的IP与MAC进行静态绑定,防止ARP欺骗发生
3使用防ARP攻击的软件
(1)下载360安全卫士,开启木马防火墙(2)下载并安装Anti ARP Sniffer