Cisco交换机上防范ARP欺骗和二层攻击
Cisco交换机上防范ARP欺骗和二层攻击
人为实施通常是指使用一些黑客的工具对网络进行扫描和嗅探,获取管理帐户和相关密码,在网络上中安插木马,从而进行进一步窃取机密文件。攻击和欺骗过程往往比较隐蔽和安静,但对于信息安全要求高的企业危害是极大的。而来自木马或者病毒及蠕虫的攻击和往往会偏离攻击和欺骗本身的目的,现象有时非常直接,会带来网络流量加大、设备CPU利用率过高、二层生成树环路直至网络瘫痪。
目前这类攻击和欺骗工具已经非常成熟和易用,而目前企业在部署这方面的防范还存在很多不足,有很多工作要做。思科针对这类攻击已有较为成熟的解决方案,主要基于下面的几个关键的技术:
•PortSecurityfeature
•DHCPSnooping
•DynamicARPInspection(DAI)
•IPSourceGuard
下面部分主要针对目前非常典型的二层攻击和欺骗说明如何在思科交换机上组合运用和部署上述技术,从而实现防止在交换环境中实施“中间人”攻击、MAC/CAM攻击、DHCP攻击、地址欺骗等,更具意义的是通过上面技术的部署可以简化地址管理,直接跟踪用户IP和对应的交换机端口;防止IP地址冲突。同时对于大多数对二层网络造成很大危害的具有地址扫描、欺骗等特征的病毒可以有效的报警和隔离。
1MAC/CAM攻击的防范
1.1MAC/CAM攻击的原理和危害
交换机主动学习客户端的MAC地址,并建立和维护端口和MAC地址的对应表以此建立交换路径,这个表就是通常我们所说的CAM表。CAM表的大小是固定的,不同的交换机的CAM表大小不同。MAC/CAM攻击是指利用工具产生欺骗MAC,快速填满CAM表,交换机CAM表被填满后,交换机以广播方式处理通过交换机的报文,这时攻击者可以利用各种嗅探攻击获取网络信息。CAM表满了后,流量以洪泛方式发送到所有接口,也就代表TRUNK接口上的流量也会发给所有接口和邻接交换机,会造成交换机负载过大,网络缓慢和丢包甚至瘫痪。
1.2典型的病毒利用MAC/CAM攻击案例
曾经对网络照成非常大威胁的SQL蠕虫病毒就利用组播目标地址,构造假目标MAC来填满交换机CAM表。其特征如下图所示:
1.3使用PortSecurityfeature防范MAC/CAM攻击
思科PortSecurityfeature可以防止MAC和MAC/CAM攻击。通过配置PortSecurity可以控制:
•端口上最大可以通过的MAC地址数量
•端口上学习或通过哪些MAC地址
•对于超过规定数量的MAC处理进行违背处理
端口上学习或通过哪些MAC地址,可以通过静态手工定义,也可以在交换机自动学习。交换机动态学习端口MAC,直到指定的MAC地址数量,交换机关机后重新学习。目前较新的技术是StickyPortSecurity,交换机将学到的mac地址写到端口配置中,交换机重启后配置仍然存在。
对于超过规定数量的MAC处理进行处理一般有三种方式(针对交换机型号会有所不同):
•Shutdown。这种方式保护能力最强,但是对于一些情况可能会为管理带来麻烦,如某台设备中了病毒,病毒间断性伪造源MAC在网络中发送报文。
•Protect。丢弃非法流量,不报警。
•Restrict。丢弃非法流量,报警,对比上面会是交换机CPU利用率上升但是不影响交换机的正常使用。推荐使用这种方式。
1.4配置
port-security配置选项:
Switch(config-if)#switchportport-security?
agingPort-securityagingcommands
mac-addressSecuremacaddress
maximumMaxsecureaddresses
violationSecurityviolationmode
配置port-security最大mac数目,违背处理方式,恢复方法
Cat4507(config)#intfastEthernet3/48
Cat4507(config-if)#switchportport-security
Cat4507(config-if)#switchportport-securitymaximum2
Cat4507(config-if)#switchportport-securityviolationshutdown
Cat4507(config)#errdisablerecoverycausepsecure-violation
Cat4507(config)#errdisablerecoveryinterval30
通过配置stickyport-security学得的MAC
interfaceFastEthernet3/29
switchportmodeaccess
switchportport-security
switchportport-securitymaximum5
switchportport-securitymac-addresssticky
switchportport-securitymac-addresssticky000b.db1d.6ccd
switchportport-securitymac-addresssticky000b.db1d.6cce
switchportport-securitymac-addresssticky000d.6078.2d95
switchportport-securitymac-addresssticky000e.848e.ea01
1.5使用其它技术防范MAC/CAM攻击
除了PortSecurity采用DAI技术也可以防范MAC地址欺骗。
2DHCP攻击的防范
2.1采用DHCP管理的常见问题:
采用DHCPserver可以自动为用户设置网络IP地址、掩码、网关、DNS、WINS等网络参数,简化了用户网络设置,提高了管理效率。但在DHCP管理使用上也存在着一些另网管人员比较问题,常见的有:
•DHCPserver的冒充。
•DHCPserver的Dos攻击。
•有些用户随便指定地址,造成网络地址冲突。
由于DHCP的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台DHCP服务器将会给网络照成混乱。由于用户不小心配置了DHCP服务器引起的网络混乱非常常见,足可见故意人为破坏的简单性。通常黑客攻击是首先将正常的DHCP服务器所能分配的IP地址耗尽,然后冒充合法的DHCP服务器。最为隐蔽和危险的方法是黑客利用冒充的DHCP服务器,为用户分配一个经过修改的DNSserver,在用户毫无察觉的情况下被引导在预先配置好的假金融网站或电子商务网站,骗取用户帐户和密码,这种攻击是非常恶劣的。
对于DHCPserver的Dos攻击可以利用前面将的PortSecurity和后面提到的DAI技术,对于有些用户随便指定地址,造成网络地址冲突也可以利用后面提到的DAI和IPSourceGuard技术。这部分着重介绍DHCP冒用的方法技术。
2.2DHCPSnooping技术概况
DHCPSnooping技术是DHCP安全特性,通过建立和维护DHCPSnooping绑定表过滤不可信任的DHCP信息,这些信息是指来自不信任区域的DHCP信息。DHCPSnooping绑定表包含不信任区域的用户MAC地址、IP地址、租用期、VLAN-ID接口等信息,如下表所示:
cat4507#shipdhcpsnoopingbinding
MacAddressIpAddressLease(sec)TypeVLANInterface
-----------------------------------------------------------------------
00:0D:60:2D:45:0D10.149.3.13600735dhcp-snooping100GigabitEthernet1/0/7
这张表不仅解决了DHCP用户的IP和端口跟踪定位问题,为用户管理提供方便,而且还供给动态ARP检测DA)和IPSourceGuard使用。
2.3基本防范
首先定义交换机上的信任端口和不信任端口,对于不信任端口的DHCP报文进行截获和嗅探,DROP掉来自这些端口的非正常DHCP报文,如下图所示:
基本配置示例如下表:
IOS全局命令:
ipdhcpsnoopingvlan100,200/*定义哪些VLAN启用DHCP嗅探
ipdhcpsnooping
接口命令
ipdhcpsnoopingtrust
noipdhcpsnoopingtrust(Default)
ipdhcpsnoopinglimitrate10(pps)/*一定程度上防止DHCP拒绝服/*务攻击
手工添加DHCP绑定表
ipdhcpsnoopingbinding1.1.1vlan11.1.1.1interfacegi1/1expiry1000
导出DHCP绑定表到TFTP服务器
ipdhcpsnoopingdatabasetftp://10.1.1.1/directory/file
需要注意的是DHCP绑定表要存在本地存贮器(Bootfalsh、slot0、ftp、tftp)或导出到指定TFTP服务器上,否则交换机重启后DHCP绑定表丢失,对于已经申请到IP地址的设备在租用期内,不会再次发起DHCP请求,如果此时交换机己经配置了下面所讲到的DAI和IPSourceGuard技术,这些用户将不能访问网络。
2.3高级防范
通过交换机的端口安全性设置每个DHCP请求指定端口上使用唯一的MAC地址,通常DHCP服务器通过DHCP请求的报文中的CHADDR段判断客户端MAC地址,通常这个地址和客户端的真是IP相同,但是如果攻击者不修改客户端的MAC而修改DHCP报文中CHADDR,实施Dos攻击,PortSecurity就不起作用了,DHCP嗅探技术可以检查DHCP请求报文中的CHADDR字段,判断该字段是否和DHCP嗅探表相匹配。这项功能在有些交换机是缺省配置的,有些交换机需要配置,具体需要参考相关交换机的配置文档。
3ARP欺骗/MITM(Man-In-The-Middle)攻击原理和防范
3.1MITM(Man-In-The-Middle)攻击原理
按照ARP协议的设计,为了减少网络上过多的ARP数据通信,一个主机,即使收到的ARP应答并非自己请求得到的,它也会将其插入到自己的ARP缓存表中,这样,就造成了“ARP欺骗”的可能。如果黑客想探听同一网络中两台主机之间的通信(即使是通过交换机相连),他会分别给这两台主机发送一个ARP应答包,让两台主机都“误”认为对方的MAC地址是第三方的黑客所在的主机,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机间接进行的。黑客一方面得到了想要的通信内容,另一方面,只需要更改数据包中的一些信息,成功地做好转发工作即可。在这种嗅探方式中,黑客所在主机是不需要设置网卡的混杂模式的,因为通信双方的数据包在物理上都是发送给黑客所在的中转主机的。
这里举个例子,假定同一个局域网内,有3台主机通过交换机相连:
A主机:IP地址为192.168.0.1,MAC地址为01:01:01:01:01:01;
B主机:IP地址为192.168.0.2,MAC地址为02:02:02:02:02:02;
C主机:IP地址为192.168.0.3,MAC地址为03:03:03:03:03:03。
B主机对A和C进行欺骗的前奏就是发送假的ARP应答包,如图所示
在收到B主机发来的ARP应答后,A主机应知道:
到192.168.0.3的数据包应该发到MAC地址为020202020202的主机;C主机也知道:到192.168.0.1的数据包应该发到MAC地址为020202020202的主机。这样,A和C都认为对方的MAC地址是020202020202,实际上这就是B主机所需得到的结果。当然,因为ARP缓存表项是动态更新的,其中动态生成的映射有个生命期,一般是两分钟,如果再没有新的信息更新,ARP映射项会自动去除。所以,B还有一个“任务”,那就是一直连续不断地向A和C发送这种虚假的ARP响应包,让其ARP缓存中一直保持被毒害了的映射表项。
现在,如果A和C要进行通信,实际上彼此发送的数据包都会先到达B主机,这时,如果B不做进一步处理,A和C之间的通信就无法正常建立,B也就达不到“嗅探”通信内容的目的,因此,B要对“错误”收到的数据包进行一番修改,然后转发到正确的目的地,而修改的内容,无非是将目的MAC和源MAC地址进行替换。如此一来,在A和C看来,彼此发送的数据包都是直接到达对方的,但在B来看,自己担当的就是“第三者”的角色。这种嗅探方法,也被称作“Man-In-The-Middle”的方法。如图所示。
3.2攻击实例
目前利用ARP原理编制的工具十分简单易用,这些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超过30种应用的密码和传输内容。下面是测试时利用工具捕获的TELNET过程,捕获内容包含了TELNET密码和全部所传的内容:
不仅仅是以上特定应用的数据,利用中间人攻击者可将监控到数据直接发给SNIFFER等嗅探器,这样就可以监控所有被欺骗用户的数据。
还有些人利用ARP原理开发出网管工具,随时切断指定用户的连接。这些工具流传到捣乱者手里极易使网络变得不稳定,通常这些故障很难排查。
3.3防范方法
思科DynamicARPInspection(DAI)在交换机上提供IP地址和MAC地址的绑定,并动态建立绑定关系。DAI以DHCPSnooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARPaccess-list实现。DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”攻击。
3.3配置示例
IOS全局命令:
ipdhcpsnoopingvlan100,200
noipdhcpsnoopinginformationoption
ipdhcpsnooping
iparpinspectionvlan100,200/*定义对哪些VLAN进行ARP报文检测
iparpinspectionlog-bufferentries1024
iparpinspectionlog-bufferlogs1024interval10
IOS接口命令:
ipdhcpsnoopingtrust
iparpinspectiontrust/*定义哪些接口是信任接口,通常是网络设备接口,TRUNK接口等
iparpinspectionlimitrate15(pps)/*定义接口每秒ARP报文数量
对于没有使用DHCP设备可以采用下面办法:
arpaccess-liststatic-arp
permitiphost10.66.227.5machost0009.6b88.d387
iparpinspectionfilterstatic-arpvlan201
3.3配置DAI后的效果:
•在配置DAI技术的接口上,用户端不能采用指定地址地址将接入网络。
•由于DAI检查DHCPsnooping绑定表中的IP和MAC对应关系,无法实施中间人攻击,攻击工具失效。下表为实施中间人攻击是交换机的警告:
3w0d:%SW_DAI-4-DHCP_SNOOPING_DENY:1InvalidARPs(Req)onFa5/16,vlan1.
([000b.db1d.6ccd/192.168.1.200/0000.0000.0000/192.168.1.2
•由于对ARP请求报文做了速度限制,客户端无法进行认为或者病毒进行的IP扫描、探测等行为,如果发生这些行为,交换机马上报警或直接切断扫描机器。如下表所示:
3w0d:%SW_DAI-4-PACKET_RATE_EXCEEDED:16packetsreceivedin184millisecondsonFa5/30.******报警
3w0d:%PM-4-ERR_DISABLE:arp-inspectionerrordetectedonFa5/30,puttingFa5/30inerr-disablestate
******切断端口
I49-4500-1#.....shintf.5/30
FastEthernet5/30isdown,lineprotocolisdown(err-disabled)
HardwareisFastEthernetPort,addressis0002.b90e.3f4d(bia0002.b90e.3f4d)
MTU1500bytes,BW100000Kbit,DLY100usec,
reliability255/255,txload1/255,rxload1/255
I49-4500-1#......
•用户获取IP地址后,用户不能修改IP或MAC,如果用户同时修改IP和MAC必须是网络内部合法的IP和MAC才可,对于这种修改可以使用下面讲到的IPSourceGuard技术来防范。下表为手动指定IP的报警:
3w0d:%SW_DAI-4-DHCP_SNOOPING_DENY:1InvalidARPs(Req)onFa5/30,vlan1.([000d.6078.2d95/192.168.1.100/0000.0000.0000/192.168.1.100/01:52:28UTCFriDec292000])
4IP/MAC欺骗的防范
4.1常见的欺骗攻击的种类和目的
常见的欺骗种类有MAC欺骗、IP欺骗、IP/MAC欺骗,其目的一般为伪造身份或者获取针对IP/MAC的特权。当目前较多的是攻击行为:如PingOfDeath、synflood、ICMPunreacheableStorm,另外病毒和木马的攻击也具有典型性,下面是木马攻击的一个例子。
4.2攻击实例
下图攻击为伪造源地址攻击,其目标地址为公网上的DNS服务器,直接目的是希望通使DNS服务器对伪造源地址的响应和等待,造成DDOS攻击,并以此扩大攻击效果。该攻击每秒钟上万个报文,中档交换机2分钟就瘫痪,照成的间接后果非常大。
4.3IP/MAC欺骗的防范
IPSourceGuard技术配置在交换机上仅支持在2层端口上的配置,通过下面机制可以防范IP/MAC欺骗:
•IPSourceGuard使用DHCPsooping绑定表信息。
•配置在交换机端口上,并对该端口生效。
•运作机制类似DAI,但是IPSourceGuard不仅仅检查ARP报文,所有经过定义IPSourceGuard检查的端口的报文都要检测。
•IPSourceGuard检查接口所通过的流量的IP地址和MAC地址是否在DHCPsooping绑定表,如果不在绑定表中则阻塞这些流量。注意如果需要检查MAC需要DHCP服务器支持Option82,同时使路由器支持Option82信息。
通过在交换机上配置IPSourceGuard:
•可以过滤掉非法的IP地址,包含用户故意修改的和病毒、攻击等造成的。
•解决IP地址冲突问题。
•提供了动态的建立IP+MAC+PORT的对应表和绑定关系,对于不使用DHCP的服务器和一些特殊情况机器可以采用利用全局命令静态手工添加对应关系到绑定表中。
•配置IPSourceGuard的接口初始阻塞所有非DHCP流量。
•不能防止“中间人攻击”。
对于IP欺骗在路由器上也可以使用urpf技术。
4.4配置示例:
检测接口上的IP+MAC
IOS全局配置命令:
ipdhcpsnoopingvlan12,200
ipdhcpsnoopinginformationoption
ipdhcpsnooping
接口配置命令:
ipverifysourcevlandhcp-snoopingport-security
switchportmodeaccess
switchportport-security
switchportport-securitylimitrateinvalid-source-macN
/*控制端口上所能学习源MAC的速率,仅当IP+MAC同时检测时有意义。
检测接口上的IP
IOS全局配置命令
ipdhcpsnoopingvlan12,200
noipdhcpsnoopinginformationoption
ipdhcpsnooping
接口配置命令:
ipverifysourcevlandhcp-snooping
不使用DHCP的静态配置
IOS全局配置命令:
ipdhcpsnoopingvlan12,200
ipdhcpsnoopinginformationoption
ipdhcpsnooping
ipsourcebinding0009.6b88.d387vlan21210.66.227.5interfaceGi4/5
5IP地址管理和病毒防范的新思路
5.1IP地址管理
综上所述通过配置思科交换机的上述特征,不仅解决了一些典型攻击和病毒的防范问题,也为传统IP地址管理提供了新的思路。
通过上面的几项技术解决了传统的利用DHCP服务器管理客户端IP地址的问题:
•故意不使用手工指定静态IP地址和DHCP分配地址冲突
•配置DHCPserver
•使用静态指定IP遇到的问题
•不使用分配的IP地址和服务器或其他地址冲突
•不容易定位IP地址和具体交换机端口对应表
使用静态地址的重要服务器和计算机,可以进行静态绑定IP+MAC、IP+MAC+PORT,手工配置DAI和IPSourceGuard绑定表项,来保护这些设备,同时也防止来自这些设备的攻击。
目前对于网络病毒的不断爆发,越来越多的用户开始重视对PC的管理,用户关注谁能访问网络、访问以后能做什么、做了哪些事情、这就是我们常说的AAA认证,除了这些用户希望能够很快定位到用户在哪台交换机、哪个端口、以哪个IP和MAC登陆,这样有有了”AAA+A”(Authenticate,Authorize,Account,Address)的概念。
通过上面的配置我们在网络层面已经可以定位用户了,加上802.1X认证我们可以在网络层面根据用户的身份为用户授权,从而实现”AAA+A”。
更进一步要审计用户所使用电脑具备的条件,如系统补丁、所装杀毒软件及补丁、等条件可以考虑采用思科网络准入控制NAC。
5.2使用DHCPSnooping、DAI、IPSourceGuard技术能解决的有关病毒问题
由于大多数对局域网危害较大的网络病毒都具有典型的欺骗和扫描,快速发包,大量ARP请求等特征,采用上述技术一定程度上可以自动切断病毒源,及时告警,准确定位病毒源。