在思科交换机上防范典型的欺骗和二层攻击

"1. MAC/CAM攻击的防范

1.1MAC/CAM攻击的原理和危害

1.2典型的病毒利用MAC/CAM攻击案例

1.3使用 Port Security feature 防范MAC/CAM攻击

1.4配置

1.5使用 其它技术 防范MAC/CAM攻击

2. DHCP攻击的防范

2.1采用DHCP管理的常见问题:

2.2DHCP Snooping技术概况

2.3基本防范

2.3高级防范

3. ARP欺骗/ MITM(Man-In-The-Middle)攻击原理和防范

3.1 MITM(Man-In-The-Middle)攻击原理

3.2攻击实例

3.3防范方法

3.3配置示例

3.3配置DAI后的效果:

4. IP/MAC欺骗的防范

4.1常见的欺骗攻击的种类和目的

4.2攻击实例

4.3IP/MAC欺骗的防范

4.4配置示例:

5. IP地址管理和病毒防范的新思路

5.1IP地址管理

5.2使用DHCP Snooping 、DAI、IP Source Guard技术能解决的有关病毒问题

本文所提到的攻击和欺骗行为主要针对链路层和网络层。在网络实际环境中,其来源可概括为两个途径:人为实施;病毒或蠕虫。人为实施通常是指使用一些黑客的工具对网络进行扫描和嗅探,获取管理帐户和相关密码,在网络上中安插木马,从而进行进一步窃取机密文件。攻击和欺骗过程往往比较隐蔽和安静,但对于信息安全要求高的企业危害是极大的。而来自木马或者病毒及蠕虫的攻击和往往会偏离攻击和欺骗本身的目的,现象有时非常直接,会带来网络流量加大、设备 CPU 利用率过高、二层生成树环路直至网络瘫痪。

目前这类攻击和欺骗工具已经非常成熟和易用,而目前企业在部署这方面的防范还存在很多不足,有很多工作要做。思科针对这类攻击已有较为成熟的解决方案,主要基于下面的几个关键的技术:

• Port Security feature

• DHCP Snooping

• Dynamic ARP Inspection (DAI)

• IP Source Guard

下面部分主要针对目前非常典型的二层攻击和欺骗说明如何在思科交换机上组合运用和部署上述技术,从而实现防止在交换环境中实施“中间人”攻击、 MAC/CAM 攻击、 DHCP 攻击、地址欺骗等,更具意义的是通过上面技术的部署可以简化地址管理,直接跟踪用户 IP 和对应的交换机端口;防止 IP 地址冲突。同时对于大多数对二层网络造成很大危害的具有地址扫描、欺骗等特征的病毒可以有效的报警和隔离。

1 MAC/CAM攻击的防范

1.1MAC/CAM攻击的原理和危害

交换机主动学习客户端的 MAC 地址,并建立和维护端口和 MAC 地址的对应表以此建立交换路径,这个表就是通常我们所说的 CAM 表。 CAM 表的大小是固定的,不同的交换机的 CAM 表大小不同。 MAC/CAM 攻击是指利用工具产生欺骗 MAC ,快速填满 CAM 表,交换机 CAM 表被填满后,交换机以广播方式处理通过交换机的报文,这时攻击者可以利用各种嗅探攻击获取网络信息。 CAM 表满了后,流量以洪泛方式发送到所有接口,也就代表 TRUNK 接口上的流量也会发给所有接口和邻接交换机,会造成交换机负载过大,网络缓慢和丢包甚至瘫痪。

1.2典型的病毒利用MAC/CAM攻击案例



曾经对网络照成非常大威胁的 SQL 蠕虫病毒就利用组播目标地址,构造假目标 MAC 来填满交换机 CAM 表。其特征如下图所示:
[attach]7696[/attach]
1.3使用 Port Security feature 防范MAC/CAM攻击

思科 Port Security feature 可以防止 MAC 和 MAC/CAM 攻击。通过配置 Port Security 可以控制:

• 端口上最大可以通过的 MAC 地址数量

• 端口上学习或通过哪些 MAC 地址

• 对于超过规定数量的 MAC 处理进行违背处理

端口上学习或通过哪些 MAC 地址,可以通过静态手工定义,也可以在交换机自动学习。交换机动态学习端口 MAC ,直到指定的 MAC 地址数量,交换机关机后重新学习。目前较新的技术是 Sticky Port Security ,交换机将学到的 mac 地址写到端口配置中,交换机重启后配置仍然存在。

对于超过规定数量的 MAC 处理进行处理一般有三种方式(针对交换机型号会有所不同):

• Shutdown 。这种方式保护能力最强,但是对于一些情况可能会为管理带来麻烦,如某台设备中了病毒,病毒间断性伪造源 MAC 在网络中发送报文。

• Protect 。丢弃非法流量,不报警。

• Restrict 。丢弃非法流量,报警,对比上面会是交换机 CPU 利用率上升但是不影响交换机的正常使用。推荐使用这种方式。

1.4配置

port-security 配置选项:

Switch(config-if)# switchport port-security ?

aging Port-security aging commands

mac-address Secure mac address

maximum Max secure addresses

violation Security violation mode



配置 port-security 最大 mac 数目,违背处理方式,恢复方法

Cat4507(config)#int fastEthernet 3/48

Cat4507 (config-if)#switchport port-security

Cat4507 (config-if)#switchport port-security maximum 2

Cat4507 (config-if)#switchport port-security violation shutdown

Cat4507 (config)#errdisable recovery cause psecure-violation

Cat4507 (config)#errdisable recovery interval 30



通过配置 sticky port-security学得的MAC

interface FastEthernet3/29

switchport mode access

switchport port-security

switchport port-security maximum 5

switchport port-security mac-address sticky

switchport port-security mac-address sticky 000b.db1d.6ccd

switchport port-security mac-address sticky 000b.db1d.6cce

switchport port-security mac-address sticky 000d.6078.2d95

switchport port-security mac-address sticky 000e.848e.ea01





1.5使用 其它技术 防范MAC/CAM攻击

除了 Port Security 采用 DAI 技术也可以防范 MAC 地址欺骗。

2 DHCP攻击的防范

2.1采用DHCP管理的常见问题:

采用 DHCP server 可以自动为用户设置网络 IP 地址、掩码、网关、 DNS 、 WINS 等网络参数,简化了用户网络设置,提高了管理效率。但在 DHCP 管理使用上也存在着一些另网管人员比较问题,常见的有:

• DHCP server 的冒充。

• DHCP server 的 Dos 攻击。

• 有些用户随便指定地址,造成网络地址冲突。

由于 DHCP 的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台 DHCP 服务器将会给网络照成混乱。由于用户不小心配置了 DHCP 服务器引起的网络混乱非常常见,足可见故意人为破坏的简单性。通常黑客攻击是首先将正常的 DHCP 服务器所能分配的 IP 地址耗尽,然后冒充合法的 DHCP 服务器。最为隐蔽和危险的方法是黑客利用冒充的 DHCP 服务器,为用户分配一个经过修改的 DNS server ,在用户毫无察觉的情况下被引导在预先配置好的假金融网站或电子商务网站,骗取用户帐户和密码,这种攻击是非常恶劣的。

对于 DHCP server 的 Dos 攻击可以利用前面将的 Port Security 和后面提到的 DAI 技术,对于有些用户随便指定地址,造成网络地址冲突也可以利用后面提到的 DAI 和 IP Source Guard 技术。这部分着重介绍 DHCP 冒用的方法技术。

2.2DHCP Snooping技术概况

DHCP Snooping技术是DHCP安全特性,通过建立和维护DHCP Snooping绑定表过滤不可信任的DHCP信息,这些信息是指来自不信任区域的DHCP信息。DHCP Snooping绑定表包含不信任区域的用户MAC地址、IP地址、租用期、VLAN-ID 接口等信息,如下表所示:

cat4507#sh ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------- ---- --------------------

00:0D:60:2D:45:0D 10.149.3.13 600735 dhcp-snooping 100 GigabitEthernet1/0/7





这张表不仅解决了 DHCP用户的IP和端口跟踪定位问题,为用户管理提供方便,而且还供给动态ARP检测DA)和IP Source Guard使用。

2.3基本防范

首先定义交换机上的信任端口和不信任端口,对于不信任端口的 DHCP 报文进行截获和嗅探, DROP 掉来自这些端口的非正常 DHCP 报文,如下图所示:
[attach]7697[/attach]
基本配置示例如下表:

IOS 全局命令:

ip dhcp snooping vlan 100,200 /* 定义哪些 VLAN 启用 DHCP 嗅探

ip dhcp snooping

接口命令

ip dhcp snooping trust

no ip dhcp snooping trust (Default)

ip dhcp snooping limit rate 10 (pps) /* 一定程度上防止 DHCP 拒绝服 /* 务攻击

手工添加 DHCP 绑定表

ip dhcp snooping binding 1.1.1 vlan 1 1.1.1.1 interface gi1/1 expiry 1000

导出 DHCP 绑定表到 TFTP 服务器

ip dhcp snooping database tftp:// 10.1.1 .1/directory/file







需要注意的是 DHCP 绑定表要存在本地存贮器 (Bootfalsh 、 slot0 、 ftp 、 tftp) 或导出到指定 TFTP 服务器上,否则交换机重启后 DHCP 绑定表丢失,对于已经申请到 IP 地址的设备在租用期内,不会再次发起 DHCP 请求,如果此时交换机己经配置了下面所讲到的 DAI 和 IP Source Guard 技术,这些用户将不能访问网络。



2.3高级防范

通过交换机的端口安全性设置每个 DHCP 请求指定端口上使用唯一的 MAC 地址,通常 DHCP 服务器通过 DHCP 请求的报文中的 CHADDR 段判断客户端 MAC 地址,通常这个地址和客户端的真是 IP 相同,但是如果攻击者不修改客户端的 MAC 而修改 DHCP 报文中 CHADDR ,实施 Dos 攻击, Port Security 就不起作用了, DHCP 嗅探技术可以检查 DHCP 请求报文中的 CHADDR 字段,判断该字段是否和 DHCP 嗅探表相匹配。这项功能在有些交换机是缺省配置的,有些交换机需要配置,具体需要参考相关交换机的配置文档。

3 ARP欺骗/ MITM(Man-In-The-Middle)攻击原理和防范

3.1 MITM(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 应答包,如图 所示
[attach]7698[/attach]
在收到 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 ”的方法。如图 所示。
[localimg=400,110]4[/localimg]
3.2攻击实例

目前利用 ARP原理编制的工具十分简单易用,这些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超过30种应用的密码和传输内容。 下面是测试时利用工具捕获的 TELNET 过程,捕获内容包含了 TELNET 密码和全部所传的内容 :
[localimg=400,198]5[/localimg]
不仅仅是以上特定应用的数据,利用中间人攻击者可将监控到数据直接发给 SNIFFER等嗅探器,这样就可以监控所有被欺骗用户的数据。

还有些人利用 ARP原理 开发出网管工具,随时切断指定用户的连接。这些工具流传到捣乱者手里极易使网络变得不稳定,通常这些故障很难排查。

3.3防范方法

思科 Dynamic ARP Inspection (DAI)在交换机上提供IP地址和MAC地址的绑定, 并动态建立绑定关系。DAI 以 DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARP access-list实现。DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”攻击。



3.3配置示例



IOS 全局命令:

ip dhcp snooping vlan 100,200

no ip dhcp snooping information option

ip dhcp snooping

ip arp inspection vlan 100,200 /* 定义对哪些 VLAN 进行 ARP 报文检测

ip arp inspection log-buffer entries 1024

ip arp inspection log-buffer logs 1024 interval 10

IOS 接口命令:

ip dhcp snooping trust

ip arp inspection trust /* 定义哪些接口是信任接口,通常是网络设备接口, TRUNK 接口等

ip arp inspection limit rate 15 (pps) /* 定义接口每秒 ARP 报文数量

对于没有使用 DHCP 设备可以采用下面办法:

arp access-list static-arp

permit ip host 10.66.227.5 mac host 0009.6b88.d387

ip arp inspection filter static-arp vlan 201





3.3配置DAI后的效果:

• 在配置 DAI技术的接口上,用户端不能采用指定地址地址将接入网络。

• 由于 DAI检查 DHCP snooping绑定表中的IP和MAC对应关系,无法实施中间人攻击,攻击工具失效。下表为实施中间人攻击是交换机的警告:


3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/16, vlan 1.([000b.db1d.6ccd/192.168.1.200/0000.0000.0000/192.168.1.2



• 由于对 ARP请求报文做了速度限制,客户端无法进行认为或者病毒进行的IP扫描、探测等行为,如果发生这些行为,交换机马上报警或直接切断扫描机器。如下表所示:



3w0d: %SW_DAI-4-PACKET_RATE_EXCEEDED: 16 packets received in 184 milliseconds on Fa5/30. ******报警

3w0d: %PM-4-ERR_DISABLE: arp-inspection error detected on Fa5/30, putting Fa5/ 30 in err-disable state ******切断端口

I49-4500-1#.....sh int f.5/30

FastEthernet5/30 is down, line protocol is down (err-disabled)

Hardware is Fast Ethernet Port , address is 0002.b90e .3f 4d (bia 0002.b90e .3f 4d)

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

reliability 255/255, txload 1/255, rxload 1/255

I49-4500-1#......







• 用户获取 IP地址后,用户不能修改IP或MAC,如果用户同时修改IP和MAC必须是网络内部合法的IP和MAC才可,对于这种修改可以使用下面讲到的 IP Source Guard技术来防范。下表为手动指定IP的报警:



3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/30, vlan 1.([000d.6078.2d95/192.168.1.100/0000.0000.0000/192.168.1.100/01:52:28 UTC Fri Dec 29 2000 ])



4 IP/MAC欺骗的防范

4.1常见的欺骗攻击的种类和目的

常见的欺骗种类有 MAC欺骗、IP欺骗、IP/MAC欺骗,其目的一般为伪造身份或者获取针对IP/MAC的特权。当目前较多的是攻击行为:如Ping Of Death、syn flood、ICMP unreacheable Storm,另外病毒和木马的攻击也具有典型性,下面是木马攻击的一个例子。

4.2攻击实例

下图攻击为伪造源地址攻击,其目标地址为公网上的 DNS服务器,直接目的是希望通使DNS服务器对伪造源地址的响应和等待,造成DDOS攻击,并以此扩大攻击效果。该攻击每秒钟上万个报文,中档交换机2分钟就瘫痪,照成的间接后果非常大。
[localimg=400,176]6[/localimg]
4.3IP/MAC欺骗的防范

IP Source Guard 技术配置在交换机上仅支持在 2 层端口上的配置,通过下面机制可以防范 IP/MAC 欺骗:

• IP Source Guard 使用 DHCP sooping 绑定表信息。

• 配置在交换机端口上,并对该端口生效。

• 运作机制类似 DAI,但是 IP Source Guard不仅仅检查ARP报文,所有经过定义IP Source Guard检查的端口的报文都要检测。

• IP Source Guard检查 接口 所通过的流量的IP地址和MAC地址是否在DHCP sooping绑定表,如果不在绑定表中则阻塞这些流量。注意如果需要检查MAC需要DHCP服务器支持Option 82,同时使路由器支持Option 82信息。



通过在交换机上配置 IP Source Guard:

• 可以过滤掉非法的 IP地址,包含用户故意修改的和病毒、攻击等造成的。

• 解决 IP地址冲突问题。

• 提供了动态的建立 IP+MAC+PORT的对应表和绑定关系,对于不使用DHCP的服务器和一些特殊情况机器可以采用利用全局命令静态手工添加对应关系到绑定表中。

• 配置 IP Source Guard的接口初始阻塞所有非DHCP流量。

• 不能防止“中间人攻击”。

对于 IP欺骗在路由器上也可以使用urpf技术。

4.4配置示例:

检测接口上的 IP+MAC

IOS 全局配置命令:

ip dhcp snooping vlan 12,200

ip dhcp snooping information option

ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping port-security

switchport mode access

switchport port-security

switchport port-security limit rate invalid-source-mac N

/* 控制端口上所能学习源 MAC 的速率,仅当 IP+MAC 同时检测时有意义。

检测接口上的 IP

IOS 全局配置命令

ip dhcp snooping vlan 12,200

no ip dhcp snooping information option

ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping

不使用 DHCP 的静态配置

IOS 全局配置命令:

ip dhcp snooping vlan 12,200

ip dhcp snooping information option

ip dhcp snooping

ip source binding 0009.6b88.d387 vlan 212 10.66.227.5 interface Gi4/5





5 IP地址管理和病毒防范的新思路

5.1IP地址管理

综上所述通过配置思科交换机的上述特征,不仅解决了一些典型攻击和病毒的防范问题,也为传统 IP地址管理提供了新的思路。

通过上面的几项技术解决了传统的利用DHCP服务器管理客户端IP地址的问题:

• 故意不使用手工指定静态 IP地址和DHCP分配地址冲突

• 配置 DHCP server

• 使用静态指定 IP遇到的问题

• 不使用分配的 IP地址和服务器或其他地址冲突

• 不容易定位 IP地址和具体交换机端口对应表

使用静态地址的重要服务器和计算机,可以进行静态绑定 IP+MAC、IP+MAC+PORT,手工配置DAI和 IP Source Guard绑定表项, 来保护这些设备,同时也防止来自这些设备的攻击。

目前对于网络病毒的不断爆发,越来越多的用户开始重视对 PC的管理,用户关注谁能访问网络、访问以后能做什么、做了哪些事情、这就是我们常说的AAA认证,除了这些用户希望能够很快定位到用户在哪台交换机、哪个端口、以哪个IP和MAC登陆,这样有有了”AAA+A”( Authenticate, Authorize,Account , Address )的概念。

通过上面的配置我们在网络层面已经可以定位用户了,加上 802.1X认证我们可以在网络层面根据用户的身份为用户授权,从而实现”AAA+A”。
[localimg=400,162]7[/localimg]
更进一步要审计用户所使用电脑具备的条件,如系统补丁、所装杀毒软件及补丁、等条件可以考虑采用思科网络准入控制 NAC。



5.2使用DHCP Snooping 、DAI、IP Source Guard技术能解决的有关病毒问题



由于大多数对局域网危害较大的网络病毒都具有典型的欺骗和扫描,快速发包,大量 ARP 请求等特征,采用上述技术一定程度上可以自动切断病毒源,及时告警,准确定位病毒源。"