深剖ARP协议的“欺骗行为”
IP地址的工作不单单是IP协议来完成的,其中还有很多细小的协议来协助这个工作。那么其中恶名昭住的ARP协议也是其中的一名。为什么说它恶名昭住?因为针对这个协议的漏洞和攻击一直是我们安全问题的重要防范对象。
一、ARP协议工作原理
在TCP IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
TCP IP协议栈维护着一个ARP cache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARP request广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARP reply后,更新ARP cache.ARP cache有老化机制。
二、ARP协议的缺陷
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或ARP广播包(包括ARP request和ARP 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(广播)
Ihave IP XXX and my MAC is YYY.
Who has IP ZZZ? tell me please!
表面为找IP ZZZ的MAC,实际是广播虚假的IP、MAC映射(XXX,YYY)
4、假冒ARP request(单播)
已知IP ZZZ的MAC
Hello IP ZZZ! I have IPXXX and my MAC is YYY.
5、假冒中间人
欺骗主机(MAC为MMM)上启用包转发
向主机AAA发假冒ARP Reply:
AAA,I have IP BBB and my MAC is MMM,
向主机BBB发假冒ARP Reply: