你在这里

arp攻击及其防范

Forums: 

什么是ARP

        ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在OSI7层结构中的数据链路层,在数据链路层和物理层联系,同时对上层提供服务。IP数据包常通过以太网发送,但是以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址(也就是在同一个子网中)。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。因此可见ARP在局域网中是底层协议,一旦有问题就会导致局域网不正常,甚至使整个网络瘫痪。


Arp运作过程

       在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其它主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09。”这样,主机A就知道了主机B的MAC地址,它更新自己的ARP缓存表,并使用得到的Mac地址给B发送信息。



ARP的攻击主要有以下几种方式

  1. 欺骗攻击
        这是比较常见的攻击,通过发送伪造的ARP包来欺骗路由和目标主机,让目标主机认为这是一个合法的主机.便完成了欺骗.这种欺骗多发生在同一网段内。
  2. 交换环境的嗅探
        在最初的小型局域网中我们使用HUB来进行互连,这是一种广播的方式,每个包都会经过网内的每台主机,通过使用软件,就可以嗅谈到整个局域网的数据.现在的网络多是交换环境,网络内数据的传输被锁定的特定目标.既已确定的目标通信主机.在ARP欺骗的基础之上,可以把自己的主机伪造成一个中间转发站来监听两台主机之间的通信.
  3. MAC泛洪
        这是一个比较危险的攻击,可以溢出交换机的ARP表,使整个网络不能正常通信,就是攻击者不断发送ARP地址到交换机上,使交换机的Mac表填满,最后导致网络不能新加机器。
  4. 基于ARP的D.O.S.攻击
        这是新出现的一种攻击方式,D.O.S又称拒绝服务攻击,当大量的连接请求被发送到一台主机时,由于主机的处理能力有限,不能为正常用户提供服务,便出现拒绝服务.这个过程中如果用ARP来隐藏自己,在被攻击主机的日志上就不会出现真实的IP.攻击的同时,也不会影响到本机.

检查方法


    当发现局域网变慢的时候可以尝试查看本机的arp缓存列表(windows 环境下使用arp -a可以看所有Arp 缓存),当有多个ip地址指向同一个Mac地址的时候就可以断定那个Mac地址的电脑在进行Arp攻击。如果计算机Arp缓存中有很多ip Mac地址对应表(正常情况下是2~3个,超过10个就很有可能本机在发送大量的ARP广播包)。而没有做特别的操作的时候可以认为本机在进行Arp攻击。



防范方法


  1. IP+MAC访问控制.
        单纯依靠IP或MAC来建立信任关系是不安全,理想的安全关系建立在IP+MAC的基础上.这也是做绑定IP和MAC的原因之一.
  2. 静态ARP缓存表.
        每台主机都有一个临时存放IP-MAC的对应表ARP攻击就通过更改这个缓存来达到欺骗的目的,使用静态的ARP来绑定正确的MAC是一个有效的方法.在windows xp环境的命令行下使用arp -a可以查看当前的ARP缓存表,arp -s ipAddress MacAddress可以添加静态缓存。
  3. ARP 高速缓存超时设置
        在ARP高速缓存中的表项一般都要设置超时值,缩短这个这个超时值可以有效的防止ARP表的溢出.
  4. 主动查询
        在某个正常的时刻,做一个IP和MAC对应的数据库,以后定期检查当前的IP和MAC对应关系是否正常.定期检测交换机的流量列表,查看丢包率.