常见的TCP/IP体系协议安全隐患和应对方法(ARP,DHCP,TCP,DNS)
一、A RP
常见的ARP安全隐患和对应的预防方法
1.ARP泛洪攻击
ARP泛洪攻击就是攻击者通过伪造大量源IP地址变化的ARP报文频繁向网络中发送,使得交换机端口在接收到这些请求包后,频繁地处理这些ARP报文,占
用大量的系统资源和设备CPU资源。这样一一来,使设备的ARP表溢出(超出所
能存储的容量范围),合法用户的ARP报文就不能生成有效的ARP表项,导致正
常通信中断。另外,通过向设备发送大量目标IP地址不能解析的IP报文,使设备
反复地对目标IP地址进行解析,导致CPU负荷过重,也是泛洪攻击的一种。
在H3C设备中,可以通过限制VLAN中学习到的ARP表项数量来预防ARP 泛洪攻击。ARP报文限速功能来预防ARP泛洪攻击。在设备的指定VLAN接口,
配置允许学习动态ARP表项的最大个数。当该VLAN接口动态学习到的ARP表
项超过限定的最大值后,将不进行动态地址表项的学习,从而防止某一VLAN内
的恶意用户发动ARP泛洪攻击造成的危害。
2.“中间人攻击”
按照ARP协议的设计,一个主机即使收到的ARP应答并非自身请求得到的,也会将其IP地址和MAC地址的对应关系添加到自身的ARP映射表中。这样可以
减少网络上过多的ARP数据通信,但也为“ARP 欺骗”创造了条件。
如图17-1所示,Host A和Host C通过Switch进行通信。此时,如果有黑客(Host B)想探听Host A和Host C之间的通信,它可以分别给这两台主机发送伪造的ARP
应答报文,使Host A和Host C用MAC_B更新自身ARP映射表中与对方IP地址
相应的表项。此后,Host A 和Host C之间看似“直接”的通信,实际上都是通过
黑客所在的主机间接进行的,即Host B担当了“中间人”的角色,可以对信息进
行了窃取和篡改。这种攻击方式就称作“中间人(Man-In-The-Middle)攻击。
为了防止黑客或攻击者通过ARP报文实施“中间人”攻击,在一些H3C交换机中(如S3100、S5600系列等)支持ARP入侵检测功能。启用了ARP入侵检测
功能后,对于ARP信任端口,不进行用户合法性检查;对于ARP非信任端口,需
要进行用户合法性检查,以防止仿冒用户的攻击。
用户合法性检查是根据ARP报文中源IP地址和源MAC地址检查用户是否是所属VLAN所在端口上的合法用户,包括基于IP Source Guard静态绑定表项的检
查、基于DHCP Snooping安全表项的检查、基于802.1X安全表项的检查和OUI
MAC地址的检查。
首先进行基于IP Source Guard静态绑定表项检查。如果找到了对应源IP地址和源MAC地址的静态绑定表项,认为该ARP报文合法,进行转发。如果找到了
对应源IP地址的静态绑定表项但源MAC地址不符,认为该ARP报文非法,进行
丢弃。如果没有找到对应源IP地址的静态绑定表项,继续进行DHCP Snooping安
全表项、802.1X安全表项和MAC地址检查。
在基于IP Source Guard静态绑定表项检查之后进行基于DHCP Snooping安全表项、802.1X安全表项和MAC地址检查,只要符合三者中任何一个,就认为该ARP报文合法,进行转发。其中,MAC地址检查指的是,只要ARP报文的源MAC 地址为MAC地址,并且使能了V oice VLAN功能,就认为是合法报文,检查通过。
如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。
开启ARP入侵检测功能以后,用户可以通过配置ARP严格转发功能,使从指定VLAN的非信任端口上接收的合法ARP请求报文只能通过已配置的信任端口进行转发;而从非信任端口上接收的合法ARP应答报文,首先按照报文中的目的MAC地址进行转发,若目的MAC地址不在MAC地址表中,则将此ARP应答报文通过信任端口进行转发。
但是开启了ARP入侵检测功能后,需要将ARP报文上送到CPU处理,如果攻击者恶意构造大量ARP报文发往交换机的某一端口,会导致CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪。于是H3C又有另一种配合的解决方案,就是在端口上配置ARP报文限速功能。开启某个端口的ARP报文限速功能后,交换机对每秒内该端口接收的ARP报文数量进行统计,如果每秒收到的ARP报文数量超过设定值,则认为该端口处于超速状态(即受到ARP报文攻击)。此时,交换机将关闭该端口,使其不再接收任何报文,从而避免大量ARP报文攻击设备。同时,设备支持配置端口状态自动恢复功能,对于配置了ARP限速功能的端口,在其因超速而被交换机关闭后,经过一段时间可以自动恢复为开启状态。
3. 仿冒网关攻击
按照ARP协议的设计,网络设备收到目的IP地址是本接口IP地址的ARP报文(无论此ARP报文是否为自身请求得到的),都会将其IP地址和MAC地址的对应关系添加到自身的ARP映射表中。这样可以减少网络上过多的ARP数据通信,但也为“ARP欺骗”创造了条件。
实际网络环境,特别是校园网中,最常见的ARP攻击方式是“仿冒网关”攻击。即:攻击者伪造ARP报文,发送源IP地址为网关IP地址,源MAC地址为伪造的MAC地址的ARP报文给被攻击的主机,使这些主机更新自身ARP表中网关IP地址与MAC地址的对应关系。这样一来,主机访问网关的流量,被重定向到一个错误的MAC地址,导致该用户无法正常访问外网。
因为主机A仿冒网关向主机B发送了伪造的网关ARP报文,导致主机B的ARP表中记录了错误的网关地址映射关系(本来正确的MAC地址应该是1-1-1,现在却被更新为2-2-2),这样主机在上网时发送给网关报文时会错误地发送到仿冒的网关中,从而正常的数据不能被网关接收,造成所有更新了错误的网关ARP表项的用户主机都上不了网。
仿冒网关攻击是一种比较常见的攻击方式,如果攻击源发送的是广播ARP报文,或者根据其自身所掌握的局域网内主机的信息依次地发送攻击报文,就可能会导致整个局域网通信的中断,是ARP攻击中影响较为严重的一种。
为了防御“仿冒网关”的ARP攻击,在一些H3C交换机中(如S3100、S5600等系列)中提供了基于网关IP/MAC的ARP报文过滤功能。为防御交换机下行端口(下行端口通常是直接连接用户的)可能收到的源IP地址为网关IP地址的ARP 攻击报文,可将接入交换机下行端口和网关IP进行绑定。绑定后,该端口接收的源IP地址为网关IP地址的ARP报文将被丢弃,其他ARP报文允许通过。为防御交换机上行端口(通常是直接连接网关设备的)可能收到的源IP地址为网关IP地