今天BOSS让我总结ARP欺骗的原理和防范策略,在这里把总结的结果贴出来吧。求人品,求速转正。
ARP原理:
在局域网内部,各主机之间以MAC地址作为标识通信对象的标志。然而,有时通信发起的主机并不知道目标主机的MAC地址,仅知道其IP地址。ARP协议就是将IP地址转换MAC地址的协议。
主机A要向主机B发起通信,先本地的ARP缓存表,如果找到了B的IP地址对应的MAC地址,就会使用MAC B进行数据传输。如果未找到,则A广播一个ARP Request报文(携带主机A的IP地址IPa和物理地址MACa),请求IP地址为IPb的主机B的物理地址MACb。同一局域网内的所有主机包括B都收到ARP Request报文,但只有主机B发现报文中的目的IP,即IPb,是本机的IP地址。于是向A主机发回一个ARP Reply报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据。
因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP缓存表采用老化的机制,在一段时间里表中的某一个表项没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询的速度。
ARP欺骗原理:
黑客C经过收到A发出的ARP Request广播报文,能够偷听到A的 (IP, MAC) 地址, 黑客C就伪装为B,告诉A (受害者) 一个假MAC地址(这个假地址是C的MAC地址),使得A在发送给B的数据包都被黑客C截取,而A, B 浑然不知。
欺骗种类:
1、截获网关发出的数据。
欺骗源通过ARP报文通知网关一系列错误的内网MAC-IP地址关系,并按照一定的频率不断进行,使网关的ARP缓存表中不能保存正常的地址信息中,结果网关的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
2、伪造网关
欺骗源把自己伪装成网关,向局域网内的主机发送ARP应答或免费ARP报文。使得局域网内的主机误以为欺骗源的MAC是网关MAC地址。使得原本流向网关的数据都被错误地发送到欺骗源。
3、伪造主机
欺骗源C把自己伪装成局域网内的另一台主机B,使得局域网内发往B的报文都流向了C。伪造主机的过程与伪造网关类似。
4、跨网段的ARP攻击
把ARP欺骗与ICMP重定向相结合。假设A,B在同一网段,C在另一网段,C要欺骗A,自己是B。C发送一个TIP为A,SMAC为C,SIP为B的ARP应答报文到网关,网关会把MACc---IPb的对应关系学习到自己的ARP缓存表中,同时把ARP应答转发到A。A更新自己的ARP缓存 IPb --- MACc, A要向IPb发送报文时,网关发现IPb不在与A同一网段内,而在C所在的网段,于是发送ICMP重定应报文给A,告诉A“IPb的不在同一网段内,下一跳为网关”,A在自己的路由表中添加一个表项,把IPb的报文都发往路由器。这样C就能截获A发往B的报文。
防范技术:
1、在网关和主机上设备静态ARP表项,这样欺骗ARP报文携带的信息与静态表项不同,会被忽略。
仅适合于小规模局域网,不适合于DHCP
2、在交换机上限制每个端口的ARP表项数量。端口上仅能够学习有限数量的ARP表项。如果设置为1,则只允许一个ARP表项被学习,伪装的MAC地址就无法通过交换机。对上述[欺骗种类1]比较有较。
3、与DHCP结合
DHCP snooping的过程中,会建立DHCP表项,主机的的IP以及用户MAC、VID、PORT、租约时间等信息组成用户记录表项,从而形成DHCP Snooping 的用户数据库。DHCP可以很清楚地知道给哪个MAC分配了哪个IP。
交换机收到ARP报文时,将收到ARP报文的源IP、源MAC、端口号、VLAN ID信息同DHCP-Snooping数据库的用户信息进行匹配。如果一致则认为合法ARP报文,按既有流程处理;否则视为非法ARP报文,丢弃处理。
4、在交换机端收集所有ARP报文信息,一但MAC和对应的IP有变动,发出警告。