忆龙2009:MFF防ARP攻击设计

一、ARP协议工作原理
      
TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
       TCP/IP
协议栈维护着一个ARP cache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARP request广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARP reply后,更新ARP cacheARP cache有老化机制。
二、ARP协议的缺陷
       ARP
协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP requestARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做中间人
三、常见ARP欺骗形式

1、  假冒ARP reply包(单播)
XXX,I have IP YYY and my MAC is ZZZ!

2、  假冒ARP reply包(广播)
   Hello everyone! I have IP YYY and my MAC is ZZZ!
  
向所有人散布虚假的IP/MAC

3、   假冒ARP request(广播)
   I  have IP XXX and my MAC is YYY.
   Who has IP ZZZ? tell me please!
  
表面为找IP ZZZMAC,实际是广播虚假的IPMAC映射(XXX,YYY

4、  假冒ARP request(单播)
  
已知IP ZZZMAC
   Hello IP ZZZ! I have IP  XXX and my MAC is YYY.

5、   假冒中间人
  
欺骗主机(MACMMM)上启用包转发  
  
向主机AAA发假冒
ARP Reply:
AAA,I have IP BBB and my MAC is MMM,
     
向主机BBB发假冒
ARP Reply:
       BBB,I have IP AAA and my MAC is MMM

四、用MFF解决ARP攻击问题

MFF的基本工作原理是建立在ARP代答基础之上的。其主要原理如下:

(1)       MFF基于VLAN发挥作用,当二层交换设备上启用了MFF功能之后,该VLAN下的所有ARP报文,包括请求及应答报文,都会交由CPU处理。

(2)       设备的网络侧会接具有三层转发能力的设备,称之为网关(允许有多个),设备自动学习到该网关的IPMAC,用户侧所有目的MAC非网关MAC的报文均会被丢弃。

(3)       用户侧发送数据报前,必然会有ARP请求,设备会用网关的MAC进行代答,以后用户就用该网关MAC作为目的MAC发送数据,所有数据报文均会送到网关进行三层转发,起到二层隔离的作用。

(4)       设备通过一定的机制监视ARP报文,刷新ARP维护表,供ARP代答时使用。

 

MFF已经从逻辑上对以上五种情况进行了隔离,因此用户无法利用以上方法直接修改被攻击对象的ARP表项。用户只能请求到网关的MAC地址,同时自己的IP-MAC会被设备自动记录,用户已经不具备通过广播的形式通知其它用户修改ARP表的能力。

由于MFF进行代答的数据是建立在ARP学习的基础之上的,所以如果对每个ARP报文不加甄别进行学习,就有可能会留下漏洞而遭受ARP攻击。

以下是针对ARP攻击在MFF上所进行的设计。

(1)       将网络侧端口作为信任端口,即网络侧的ARP报文是可以信任的。

(2)       收到用户侧的ARP Request,查表,如果Sender IPSender MAC出现在网络侧端口时,则认为该请求报文是非法的。有人想仿冒网关进行攻击。

(3)       收到用户侧的ARP Response,查表,如果Sender IPSender MAC出现在网络侧端口时,则认为该请求报文是非法的。有人想仿冒网关进行攻击。

(4)       校验ARP报文的各个字段,对不合法的报文拒绝处理。

 

你可能感兴趣的:(设计)