APP下载

生成树协议操纵攻击及其应对安全策略研究与实现

2023-01-16刘叶梅徐龙泉

现代计算机 2022年22期
关键词:安全策略环路攻击者

刘叶梅,徐龙泉

(1.远光软件股份有限公司,珠海 519085;2.珠海市技师学院,珠海 519015)

0 引言

生成树协议是一种工作在数据链路层的通信协议,也就是OSI网络模型中的第二层,它是防止交换机冗余链路中产生环路,可以确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴大量占用交换机的资源[1]。生成树协议工作原理是任意一交换机中如果到达根网桥有两条或者两条以上的链路,生成树协议都根据算法仅仅保留一条,把其他切断,从而保证任意两个交换机之间只有一条单一的活动链路。因为生成的这种拓扑结构很像是以根交换机为树干的树形结构,故而称为生成树协议[2]。

1 生成树协议(STP)操纵攻击

为了避免第二层网络中出现环路,交换机会使用生成树协议来防止环路,生成树防环的方式是通过相互发送桥协议数据单元(BPDU)来交换数据进行选举,并且阻塞落选的端口,从而在逻辑上打断环路。同时,为了确保管理员能够按照自己的需求塑造第2层网络,端口胜选和落选需要根据一个管理员可以进行配置的参数来决定,这就给攻击者制造了可乘之机[3]。

图1所示为一个由两台交换机(Switch1 和Switch2)组成的网络,这个网络本身没有环路,PC-A 发送给PC-B 的消息当然会通过这两台交换机转发过去。

图1 一个物理上无环的简单二层拓扑

然而,在图2中,一位攻击者把自己的设备同时连接到了这两个交换机,这就在网络中制造出了一个环路。同时,攻击者给自己的设备分配了最高的优先级(网桥优先级=0),让它能够通过发送(伪装的)BPDU,在选举中成为根桥。于是,原本两台交换机之间的某个端口就会因为落选(成为替代端口)而被STP 阻塞。这样一来,两台交换机所连的终端(PC-A 和PCB)之间如果需要进行通信,那么它们之间的所有数据都只能通过攻击者的设备进行转发[4]。到此为止,攻击者通过操纵STP,在网络中发起了一次中间人攻击。

图2 STP操纵攻击

2 生成树协议(STP)操纵攻击应对安全策略

规避这类攻击的逻辑,是需要区分哪些交换机端口可以连接交换机,或者哪些交换机的端口可以连接根桥,而哪些交换机端口只能连接终端设备,下面介绍三种具体的应对安全策略及其实现过程。

2.1 BPDU防护(BPDU guard)安全策略

如果管理员在全局启用了BPDU防护,那么这台交换机上所有配置了Portfast 的端口只要接收到BPDU,BPDU 防护特性就会立刻让这个端口进入关闭状态,即error-disabled 状态[5]。如图3所示,BPDU 防护的启用命令是在全局配置模式下输入命令spanning-tree bpduguard enable。Portfast 特性的作用是让一个交换机端口绕过常规的侦听(listening)和学习(learning)状态,直接从阻塞(blocking)状态过渡到转发(forwarding)状态。使用Portfast 可以提升端口转发的效率,而且可以避免这些端口的状态导致相关生成树的参与设备全部重新计算STP 树。这种特性只应该在那些连接终端设备的接入模式端口上使用,不能在连接交换机的中继端口上部署。在端口配置模式下输入命令spanning-tree portfast 可以让一个端口执行Portfast。另外,如果在全局配置模式下输入命令spanning-tree portfast default则可以让设备上所有非中继端口执行Portfast。

图3 交换机启用BPDU防护

2.2 BPDU过滤(BPDU filtering)安全策略

如果管理员并不希望采用关闭端口这样的策略来应对(原本不应该接收到BPDU的)端口接收到BPDU 的情形,则可以在不应该接收到BPDU 的端口上使用命令spanning-tree bpdufilter enable 实施BPDU 过滤。所有在端口配置模式下配置了BPDU 过滤的端口,会忽略接收到的BPDU,同时这类端口也不再对外发送BPDU 消息,如图4所示。BPDU 过滤也可以在全局配置模式下使用命令spanning-tree portfast bpdufilter default 启用。配置这条命令之后,所有启用了Portfast的端口就不会再发送BPDU。同时,一旦这些配置了Portfast 的端口接收到了BPDU,这个端口上配置的Portfast 就会失效。既然Portfast失效,这个端口上的BPDU 过滤自然也就失效了[6]。因此,在全局(针对所有启用了Portfast 的端口)实施BPDU 过滤,和针对特定接口启用BPDU 过滤,端口在接收到BPDU 消息时,采取的措施是不同的。

图4 端口启用BPDU过滤

2.3 根防护(root guard)安全策略

如果管理员并不反对用户把自己的交换机连接到局域网的交换机上,只是不能允许用户连接的交换机成为根桥,那就可以在对应端口的接口配置模式下使用命令spanning-tree guard root执行根防护。只要配置了根防护的端口所连交换机成为根桥,这个端口就会进入阻塞状态,这种状态称为不一致根(root-inconsistency)状态,如图5所示。显然,这样处理也可以防止网络中发生图2所示的攻击。

图5 端口启用根防护

3 结语

本文具体介绍了BPDU 防护、BPDU 过滤和根防护这三种应对生成树协议操纵攻击安全策略及其实现过程,并采用图示方法形象地展示了为什么会存在生成树协议操纵攻击、操纵攻击是如何形成的,以及三种安全策略来缓解该类攻击的实现过程。

猜你喜欢

安全策略环路攻击者
外差式光锁相环延时对环路性能影响
基于飞行疲劳角度探究民航飞行员飞行安全策略
环路热管用双孔毛细芯的制备与性能研究
多媒体教学服务器限制访问的一种措施
正面迎接批判
一种防火墙安全策略冲突检测方法*
正面迎接批判
浅析涉密信息系统安全策略
选取环路切换策略的高动态载波跟踪算法研究*
有限次重复博弈下的网络攻击行为研究