文档库 最新最全的文档下载
当前位置:文档库 › 链路层安全隐患及防范技术

链路层安全隐患及防范技术

链路层安全隐患及防范技术

摘 要: 针对数据链路层的安全隐患,利用ARP、DHCP、STP、DTP、VTP等协议的网络攻击,提出了相应的防范对策。以交换式以太网技术为基础,分析数据链路层的不安全因素,有针对性地给出了相应的解决方法和思路。关键词: 交换式以太网; 数据链路层; 通信协议; 数据帧; 网络安全
目前,网络和信息安全已上升到国家安全的层面。在早期的计算机网络安全研究中,普遍存在着重两头而轻中间的现象,将网络安全的注意力主要集中在网络体系结构的高层和低层,而忽视了中间层次的安全问题。如针对物理层的安全提出了大量的涉及物理、电子、电气和功能等特性的解决方案;针对应用层的安全出现了种类丰富、功能完善的面向协议的技术和产品。然而,只有当ARP欺骗攻击在局域网中大范围爆发而一时无法找到彻底的解决办法时,才注意到中间层,尤其是数据链路层的安全问题。数据链路层的主要功能是在相邻节点之间,通过各种控制协议和规程在有差错的物理信道中实现无差错的、可靠的数据帧传输[1]。本文以交换式局域网应用为主,集中分析了数据链路层的安全问题,有针对性地提出了相应的解决方法和思路,并以Cisco交换机为例,给出了相应的配置方法。1 数据链路层主要安全问题1.1 ARP欺骗攻击 ARP(Address Resolution Protocol)的功能是通过IP地址查找对应端口的MAC地址,以便在TCP/IP网络中实现共享信道的节点之间利用MAC地址进行通信。由于ARP协议在设计中存在主动发送ARP报文的漏洞,使得主机可以发送虚假的ARP请求报文或响应报文,而报文中的源IP地址和源MAC地址均可以进行伪造。在局域网中,既可以伪造成某一台主机(如服务器)的IP地址和MAC地址的组合,也可以伪造成网关IP地址与MAC地址的组合。这种组合可以根据攻击者的意图进行任意搭配,而现有的局域网却没有相应的机制和协议来防止这种伪造行为。近几年来,几乎所有局域网都遭遇过ARP欺骗攻击的侵害。 图1所示为假设主机C为局域网中的网关,主机D为ARP欺骗者。当局域网中的计算机要与其他网络进行通信(如访问Internet)时,所有发往其他网络的数据全部发给了主机D,而主机D并非真正的网关,这样整个网络将无法与其他网络进行通信。这种现象在ARP欺骗攻击中非常普遍。

1.2 DHCP欺骗攻击 DHCP(Dynamic Host Configuration Protocol)的功能是对客户端动态地分配IP地址及相关参数。但DHCP却存在着一个非常大的安全隐患:当一台运行有DHCP客户端程序的计算机连接到网络中时,即使是一个没有权限使用网络的非法用户也能很容易地从DHCP服务器

获得一个IP地址及网关、DNS等信息,成为网络的合法使用者[2]。由于DHCP客户端在获得DHCP服务器的IP地址等信息时,系统没有提供对合法DHCP服务器的认证,所以DHCP客户端从首先得到DHCP响应(DHCPOFFER)的DHCP服务器处获得IP地址等信息。为此,不管是人为的网络攻击、破坏,还是无意的操作,一旦在网络中接入了一台DHCP服务器,该DHCP服务器就可以为DHCP客户端提供IP地址等信息的服务。其结果是:(1)客户端从非法DHCP服务器获得了不正确的IP地址、网关、DNS等参数,无法实现正常的网络连接;(2)客户端从非法DHCP服务器处获得的IP地址与网络中正常用户使用的IP地址冲突,影响了网络的正常运行。尤其当客户端获得的IP地址与网络中某些重要的服务器的IP地址冲突时,整个网络将处于混乱状态;(3)攻击伪造大量的DHCP请求报文,将DHCP服务器中可供分配的IP地址耗尽,使正常的用户无法获得IP地址。1.3 生成树协议攻击 生成树协议STP(Spanning Tree Protocol)是用于解决网络环路问题的一种智能算法。在交换式网络中,通过在两个交换节点之间提供多条物理链路来提供线路冗余,以增加设备之间连接的可靠性。但是,当在两个交换节点(如交换机)之间存在两条以上的物理链路时将会形成环路。如果没有相应的备份策略,环路的存在将会形成广播风暴。轻则严重影响网络的性能,重则导致网络瘫痪。生成树协议的实现基础是BPDU(Bridge Protocol Data Units)报文,通过在不同交换机之间交换的BPDU报文,在网络中选举一台网桥ID(Bridge ID)最低的交换机作为根网桥(Root Bridge),并将交换机上发送该BPDU报文端口ID(Port ID)的值设置为最低,交换机上端口ID值最低的端口为根端口(Root Port),根端口连接的链路为主链路。通过计算网络中各个交换机到达根网桥的路径开销,选择各交换节点到达根网桥的最优路径,同时阻断其他的次优路径(即冗余链路),从而形成逻辑上无环路的树形拓扑结构。 根据STP的工作原理,同一网络中的所有交换机之间都可以通过网桥ID的值来选择根网桥,这样攻击者可以在网络中接入一台交换机或一台计算机,然后通过构造网桥ID最低的BPDU报文,使这台接入的交换机或计算机成为根网桥,进而扰乱正常的网络运行,最终导致网络瘫痪。1.4 MAC地址泛洪攻击 交换机根据MAC地址来转发数据帧,交换机端口与所连设备MAC地址的对应关系存储在内容寻址存储器CAM(Content Addressable Memory)表中,CAM表中还可能包含MAC地址对应的VLAN ID等参数。当交换机从某一端口接收到一个数据帧时,交换机首先从数据帧中提取源MAC地址和目的MAC地址,然后将端口与源MAC地址的对应关系记录

在CAM表中。同时,交换机查询CAM表中是否有目的MAC地址对应的记录,如果有,则可通过对应的端口将数据帧转发出去,如果没有,交换机的作用则类似于集线器,会将数据帧广播到交换机其他所有的端口[3]。 MAC地址泛洪攻击也称为CAM表溢出攻击。因为任何一台交换机的CAM表大小是有限制的,当记录数填满CAM表时,凡到达交换机的具有不同源MAC地址的数据帧,其端口和MAC地址的对应关系将不会被添加在CAM表中。基于此原理,攻击者将大量虚构的具有不同源MAC地址的数据帧发送给交换机,直至交换机的CAM表填满。之后,交换机将进入fail-open(失效开放)模式,其功能将类似于一台集线器。此时,交换机接收到的任何一个单播帧都会以广播方式处理,攻击者的计算机将会接收到这些单播帧,从而获得其他用户的信息。1.5 VLAN 攻击 虚拟局域网VLAN(Virtual Local Area Network)是在交换式局域网基础上出现的一项管理技术,通过在数据帧的头部添加VLAN tag(VLAN标识)字段,将局域网用户设备逻辑地划分为多个网段,以缩小广播域,提高用户通信的安全性及网络的可管理性。VLAN在局域网中一般被作为一项安全技术使用,但VLAN本身却存在安全隐患。目前针对VLAN的攻击主要集中在VLAN Hopping攻击和VTP攻击两个方面。 (1)VLAN Hopping攻击。VLAN Hopping(VLAN跳跃)攻击是基于动态主干协议DTP(Dynamic Trunk Protocol)来实现的。当两台交换机互联时,通过DTP可以对互联端口进行协商,确认是否设置为支持IEEE 802.1Q的主干(trunk)端口。如果设置为主干端口,则允许转发所有VLAN中的数据帧。VLAN Hopping攻击又分为基本VLAN Hopping攻击和双重封装VLAN跳跃攻击两类。①基本VLAN Hopping攻击是攻击者将计算机伪装成为一台交换机,并发送虚假的DTP协商报文,请求成为主干端口。局域网中交换机在收到这个DTP报文后,便启用基于IEEE 802.1Q的Trunk功能,将攻击者的计算机误认为一台合法的交换机。之后,所有VLAN的数据帧都会发送到攻击者的计算机上。②双重封装VLAN跳跃攻击是指利用目前大部分局域网交换机仅支持单层VLAN tag的特点,攻击者根据要入侵的VLAN ID,首先构造一个包含该VLAN ID的IEEE 802.1Q数据帧,然后在该IEEE 802.1Q数据帧的外层再封装一层适合当前网络的VLAN tag,从而通过外层VLAN ID实现对非授权VLAN ID的非法访问,以获取非授权VLAN ID中的用户数据。 (2)VTP攻击。VTP(VLAN Trunk Protocol)以组播方式在同一个管理域中同步VLAN信息,从而实现对管理域中VLAN信息的集中管理。VTP报文只能在trunk端口上转发。VTP的三种工作模式及对应的功能如下: ①Server(缺省)。可以添加、删除、修改VLAN,

并同步VLAN信息。VLAN信息存放在NVRAM中。 ②Client。不允许添加、删除、修改VLAN,但会同步VLAN信息。VLAN信息不存放在NVRAM中,断电后会自动消失。 ③Transparent。可以添加、删除、修改VLAN,但不同步VLAN信息。VLAN信息存放在NVRAM中。 使用VTP的主要目的是实现对局域网中VLAN信息的集中管理,以减少网络管理员的工作量。但攻击者可以接入一台交换机或直接使用一台计算机,并与上联交换机之间建立一条主干(trunk)通道后,通过修改自己的修订号(Configuration Revision)来拥有Server的权限,进而对局域网的VLAN架构进行任意更改,以获得所需要的信息或扰乱网络的正常运行。2 数据链路层安全防范方法2.1 针对ARP欺骗攻击的防范方法 ARP缓存表中的记录既可以是动态的,也可以是静态的。如果ARP缓存表中的记录是动态的,则可以通过老化机制减少ARP缓存表的长度并加快查询速度;静态ARP缓存表中的记录是永久性的,用户可以使用TCP/IP工具来创建和修改,如Windows操作系统自带的ARP工具。对于计算机来说,可以通过绑定网关等重要设备的IP与MAC地址记录来防止ARP欺骗攻击。在交换机上防范ARP欺骗攻击的方法与在计算机上基本相同,可以将下连设备的MAC地址与交换机端口进行绑定,并通过端口安全功能(Port Security feature)对违背规则的主机(攻击者)进行相应的处理。通过Cisco交换机可以在DHCP Snooping绑定表的基础上,使用DAI(Dynamic ARP Inspection)技术来检测ARP请求,拦截非法的ARP报文,具体配置如下: Switch(config)#ip arp inspection vlan 20-30,100-110,315(定义ARP检测的VLAN范围,该范围根据DHCP snooping binding表做判断) Switch(config-if)#ip arp inspection limit rate 30 (限制端口每秒转发ARP报文的数量为30)2.2 针对DHCP欺骗攻击的防范方法 对于DHCP欺骗攻击的防洪可以采用两种方法。 (1)采用DHCP Snooping过滤来自网络中非法DHCP服务器或其他设备的非信任DHCP响应报文。在交换机上,当某一端口设置为非信任端口时,可以限制客户端特定的IP地址、MAC地址或VLAN ID等报文通过。为此,可以使用DHCP Snooping特性中的可信任端口来防止用户私置DHCP服务器或DHCP代理[4]。一旦将交换机的某一端口设置为指向正确DHCP服务器的接入端口,则交换机会自动丢失从其他端口上接收到的DHCP响应报文。例如,在Cisco交换机上通过以下命令将指定端口设置为信任端口: Switch(config-if)# ip dhcp snooping trust(定义该端口为DHCP信任端口) Switch(config)#ip dhcp snooping (启用DHCP snooping功能) Switch(config)#ip dhcp snooping vlan 20-30,100-110,315 (定义DHCP snooping作用的VLAN) (2)通过DHCP服务器(如基于Windows 2003/20

08操作系统的DHCP服务器)绑定IP与MAC地址,实现对指定计算机IP地址的安全分配。2.3 针对生成树协议攻击的防范方法 对于STP攻击可以采取STP环路保护机制来防范。为了防止客户端交换机偶然成为根网桥,在Cisco交换机中可以使用Root Guard特性来避免这种现象的发生[5]。,如果STP偶然选择出客户端交换机(交换机D)成为根网桥,即交换机C与交换机D相连接的端口成为根端口(Root Port),则Root Guard特性自动将交换机C与交换机D相连接的端口设置为root-inconsistent状态(根阻塞状态),以防止客户端交换机D成为根网桥。一旦在交换机中配置了Root Guard特性,其将对所有的VLAN都有效。

在Cicsco交换机中配置Root Guard特性的命令如下: Switch(config-if)#spanning-tree guard root2.4 针对MAC地址泛洪攻击的防范方法 针对MAC地址泛洪攻击,可以采取以下多种方法进行防范: (1)限制未知目的MAC地址的组播(multicast)帧和单播(unicast)帧通过本端口进行转发。在Cisco交换机的配置如下: Switch(config-if)# switchport block multicast Switch(config-if)# switchport block unicast (2)限制端口学习到的最大MAC地址数量。以下配置中将该端口最大能够学习到的MAC地址数限制为10: Switch(config-if)#switchport port-security maximum 10 (3)限制端口单位时间(一般为每秒)通过的最大数据帧数量,可以分别针对单播帧、组播帧和广播帧进行设置。以下配置中将该端口每秒通过的单播帧、组播帧和广播帧的数量分别限制为10: Switch(config-if)# storm-control unicast level 10 Switch(config-if)# storm-control multicast level 10 Switch(config-if)# storm-control broadcast level 10 当通过以上方式对交换机的端口进行限制后,对于违背安全规则的端口,交换机将自动采取protect(丢弃非法流量,不报警)、restrict(丢弃非法流量,报警)、shutdown(关闭端口)和shutdown vlan(关闭VLAN)等安全保护方式。2.5 针对VLAN攻击的防范方法 (1)针对基本VLAN Hopping攻击,最有效的解决方法是关闭交换机的DTP功能,将交换机之间的互联端口手动设置为Trunk即可。在Cisco交换机上将某一端口设置为Trunk的配置如下: Switch(config-if)# switchport(设置为二层端口) Switch(config-if)#switchport trunk encapsulation dot1q(启用IEEE 802.1Q) Switch(config-if)#switchport mode trunk(设置该端口为trunk)或 Switch(config-if)# switchport mode dynamic desirable(使该端口既主动发送DTP报文,也允许对DTP报文进行响应,这是以太网端口的默认状态) 关闭交换机上DTP功能的配置如下: Switch(config-if)# switchport mode access(设置为访问端口,不具有DTP功能)或 Switch(config-if)# switchport mode dynamic au

to(使该端口可以响应DTP报文,但不允许主动发送DTP报文) 针对双重封装VLAN Hopping攻击,目前最有效的解决办法是为trunk端口单独设置一个native VLAN,且在native VLAN中不加入任何用户的端口。配置方法如下: Switch(config-if)#switchport trunk native vlan vlan-id (2)由于实现VTP攻击的前提是攻击者与上联交换机之间要建立一条主干(trunk)通道,所以可以采取与防范基本VLAN Hopping攻击相同的方法来解决这一问题。另外,可以为VTP域设置密码,当域中要加入新的交换机时必须输入正确的密码,通过对VTP域密码的管理便可以防范VTP攻击。在Cisco交换机中的配置实例如下: Switch(config)# vtp mode server(将VTP的工作模式设置为Server) Switch(config)# vtp domain VTP-JSPI(设置VTP的域名为VTP-JSPI) Switch(config)#vtp pruning (设置VTP修剪,以减少trunk端口上不必要的流量) Switch(config)#vtp version 2(设置VTP的版本号为2) Switch(config)#vtp password cisco-jspi(将VTP域的密码设置为cisco-jspi) 需要说明的是:VTP域中的所有交换机必须设置相同的密码,否则无法正确工作。另外,VTP的域密码是以明文方式在网络中传输,安全性较差。 在OSI参考模型中,局域网仅涉及到物理层和数据链路层,以上各层的功能由局域网操作系统来完成。在网络体系结构中,越是低层的安全问题所产生的影响也越大,而且越不容易彻底解决。正因为如此,当ARP、DHCP、VLAN、STP等主要针对数据链路层协议的攻击出现时,一般借助于对交换机等数据链路层设备的安全管理来解决。针对局域网应用和管理实际,本文仅对数据链路层的主要安全问题进行了分析,并给出了Cisco交换机上的配置方法,其他品牌交换机的配置读者可参阅相关的技术文档。随着网络应用不断深入,新的安全问题也将不断出现,针对数据链路层的安全研究也将是一项长期的工作。

相关文档
相关文档 最新文档