分类: 系统运维
2013-09-25 21:15:44
谈Cisco设备的协议漏洞
目前己知很多网络协议(包括IP本身)都有各种各样的设计缺陷,都可能会导致网络被接管。在这里,我们将尝试尽可能讨论常见Cisco专有协议的安全性,并将详细说明如何支持各种应用,至少会涉及在大多数情况下Cisco路由器和交换机中所使用的协议。这些协议包括802.lQ和802.lD。虽然802.lQ和802.lD都是公开的因特网工程任务组(IETF)标准且受所有智能型2层设备的支持,但是在现实世界中Cisco Catalyst交换机得到了广泛采用,这意味着在大多数情况下,Catalyst要么允许要么阻止这些攻击发生。
之所以举这两个标准的例子,是因为我们打算从开放系统互联参考模型(OSI)的底下几层开始讨论,然后再逐步讨论上面几层。这样安排是因为底层的攻击更为隐蔽。大多数现代的入侵检测系统Cisco设备都无法检测第2层攻击。要发现并认识到这种攻击,需要很好地掌握有关数据链路协议运行的知识,这通常属于网络设计者或工程师的领域。通常,一个公司的网络由集成商公司的经验丰富的专业人员设计,再交给内部IT团队进行管理,而内部IT团队成员很可能不太了解交换技术。他们可能会在未咨询构架师的情况下就在网络中加入新交换机或取下现有的交换机,这将导致产生各种问题,涉及安全性等各个方面。目前第2层攻击的威胁是被显著低估的。因此,尽管ARP欺骗会导致类似的结果,但是如果可行,操纵往下一层的流量显然更值得考虑。我们在这里讨论的攻击属于本地攻击领域。但是归根结底来看,攻击者也可能不在本地,无线攻击方式让远程黑客能利用这些方法来扩展他们对网络的控制。
1. 生成树协议攻击
生成树协议( STP,Spanning Tree Protocol)的存在,让交换机或网桥在因冗余而通过多条路径互连时能避免在第2层产生回路。这是通过让各交换机互相认识且知晓相互之间链路的带宽而实现的。根据经验,很少会有系统管理员改变这些默认值。要使STP生效,需要一个可控制STP域的参照点。这种参照点称为根网桥,它是STP域的根,通过选举而从所有相连的交换机中选出。选择根网桥后,其他所有交换机都将选择根端口,即到根网桥的STP路径开销最低的端口。最后将确定各网段的指定端口(即通过根端口到根网桥的STP路径开销最低的端口)。然后STP树就构建完成了。未参与此树的交换机端口将被阻塞。阻塞端口不接收也不传输数据,也不会将媒体访问控制(MAC)地址加入到交换机CAM表中。它们只监听STP网桥协议数据单元(BPDU)。由于存在阻塞端口,因此不可能产生第2层环路。如果STP树被重新配置,使某个阻塞端口能够成为根端口或指定端口,那么该阻塞端口将由监听状态顺次转为学习状态和转发状态。在监听状态下,交换机端口可发送BPDU并主动参与STP工作。在学习状态下,该端口可获知新MAC地址并将它们加入到CAM表中,默认情况下,从阻塞状态转变成转发状态的整个过程需要30~50秒。显然,通过操纵STP,攻击者可根据自身利益需要而改变STP路径,引导网络流量通过或至少流向被控主机。而且在此操纵方式中不会遇到认证问题。
所有STP攻击都只不过是攻击者修改了如上所示的一或多个参数后,再在网络上泛播修改过的帧而己。在进行攻击之前,攻击者可能会进行嗅探以获得现有合法STP BPDU,再考虑其中的各项设置。最重要的攻击类型应该是将受自己控制的某台机器伪装成一个新的根网桥,这样一来,STP域中的所有流量都将不得不通过这台机器。
下节将会讨论插入恶意根网桥的情况。