DDoS攻击下基于SDN的工业控制系统边云协同信息安全防护方法

2021-08-23 06:03叶鑫豪周纯杰朱美潘杨健晖
信息安全研究 2021年9期
关键词:流表云端交换机

叶鑫豪 周纯杰 朱美潘 杨健晖

(华中科技大学人工智能与自动化学院 武汉 430074)(806212938@qq.com)

随着信息技术的高速发展,工业控制系统(industrial control system, ICS)的安全隐患已经成为影响国家关键基础设施稳定运行的重要因素[1-2].目前,ICS信息安全防护方法主要分为静态安全防护和动态安全防护[3-6].动态安全防护以防御者可控的方式持续、动态地改变网络配置,大幅增加攻击难度和成本,降低系统安全风险[7-9].软件定义网络(software-defined network, SDN)与ICS的结合为工控网络管理带来了许多优势,同时,由于SDN的集中管控机制使得SDN环境下ICS网络易受到DDoS攻击[10].攻击者用数据包发送大量的packet_in消息到控制器,使SDN控制器过载,流表项溢出,造成整个SDN网络瘫痪[11-12].同时SDN交换机作为SDN控制器命令接收与执行者,在SDN网络中同样十分重要,攻击者针对SDN交换机中流表空间的限制进行流表过载攻击[13],破坏交换机正常通信功能.目前对DDoS攻击的检测方式主要分为机器学习攻击检测以及统计方法[14],现有的DDoS攻击防护方法主要有缓解策略、负载均衡算法以及端址跳变[15-18].随着云计算、SDN等技术在ICS中的广泛应用,目前针对如何利用云计算的资源优势,并基于SDN技术对边缘端ICS网络进行协同安全防护的研究尚少.因此本文充分利用云端的资源优势,基于SDN技术,并结合端址跳变和负载均衡算法提出了一种ICS边云协同信息安全防护方法,有效防御DDoS攻击,保障边缘端ICS网络的正常通信.

1 边云协同信息安全防护框架

本文提出的ICS边云协同信息安全防护框架如图1所示,该框架利用SDN结合边云协同思想对受到DDoS攻击的ICS通信网络进行实时安全协同防护,分为2层:边缘层和云层.边缘层由现场层、转发层、控制层以及应用层组成,云层由应用层组成.

边缘端现场层是由传感器、控制器、执行器、操作员站组成的工业控制系统;转发层由SDN交换机组成,主要用于数据的通信;控制层由本地SDN控制器组成,包含多个本地SDN控制器构成的控制器集群,是SDN网络的核心,用于收集网络信息,生成流表控制网络中数据的转发;应用层包括DDoS攻击检测模块和DDoS攻击响应模块,其中DDoS攻击检测模块包括基于流表特征的DDoS攻击检测模块、SDN交换机流表过载攻击检测模块以及本地SDN控制器过载攻击检测模块;DDoS攻击响应模块包括基于端址跳变的移动目标防御模块、流表过载攻击防护模块以及本地SDN控制器过载攻击防护模块.本地SDN控制器收集其网络域内交换机中的流表信息并由应用层进行DDoS攻击检测,将SDN网络全局流表信息上传至云端进行全局检测并生成安全策略,同时DDoS攻击响应模块执行端址跳变进行动态安全防护.执行端址跳变后网络中仍然可能存在大量攻击流量,流表过载攻击防护模块能够使交换机中流表不过载,保证网络的正常通信.在保证交换机不过载基础上执行本地SDN控制器过载攻击检测与防护模块,进一步提高整个SDN网络的通信质量.

云端应用层包括基于流表特征的DDoS攻击检测模块以及针对DDoS攻击流的策略决策模块.前者能够收集边缘端SDN控制器集群的全局流表信息,从而更加准确地检测DDoS攻击;后者能够根据检测结果生成安全策略来指导网络流量的执行动作,动作包括转发正常流量和丢弃攻击流量.将生成的安全策略下发至对应的本地SDN控制器,最终由本地SDN控制器对交换机中的流表进行更新.同时,为了充分利用云端资源优势,基于流表特征的DDoS攻击检测模型也放在云端进行训练,然后将训练好的模型参数下发至边缘端,更新其应用层中的检测模型,使其具有检测新型DDoS攻击的能力.

2 面向边缘SDN网络的云端策略决策

2.1 DDoS攻击检测

DDoS攻击下,攻击源发送的数据分组本身可能是正常的业务数据分组,使其很难通过分组检测的方式进行检测.反向传播神经网络(back-propagation neural network, BPNN)非线性分类和自我学习能力较强,能很好地处理线性不可分的问题,作为分类器,已经被广泛地应用在入侵检测系统中[19],BPNN结构如图2所示.

图2 BPNN模型结构

本文在边缘端采用BPNN神经网络模型进行DDoS攻击检测,其过程如图3所示.考虑到边缘资源受限导致检测结果可能产生误差,将全局流表信息上传至云端进行全局检测.为了充分利用云端的资源优势,BPNN检测模型的训练放在云端进行,并将训练好的模型参数下发至边缘端,动态更新边缘端BPNN检测模型,使边缘端具有检测新型DDoS攻击的能力.本文采用文献[20]中的方法对BPNN模型进行训练以及对DDoS攻击进行检测,并通过实验证明本文提出的边云协同检测方法能够有效提高DDoS攻击检测精度.

图3 DDoS攻击检测过程

2.2 针对DDoS攻击流的安全策略决策

边缘端各本地SDN控制器只能收集其域内局部流表信息,导致检测产生误差.云端具有全局视角和强大的计算存储能力,能够收集各SDN控制器域内的流表信息,进行快速地模型训练和攻击检测,从而实现快速安全策略决策.

云端通过训练好的BPNN检测模型识别出正常或攻击流量,生成安全策略对正常流量进行正常转发以及对攻击流量进行丢弃.每一类数据包都对应一条流表项:对正常流量的转发是通过流表项ACTION中的Output将数据包转发到指定的OpenFlow Ports;对攻击流量进行丢弃是通过流表项ACTION中的Drop将数据包丢弃.将安全策略下发至对应的本地SDN控制器后,由本地SDN控制器生成相应的流表对交换机中的流表进行更新.

3 边缘端协同安全响应

边缘端检测到DDoS攻击后立即启动基于端址跳变的移动目标防御模块,由于边缘端本地SDN控制器仅收集其域内局部流表信息,导致检测结果产生误差,同时,云端安全策略下发具有一定的延迟,导致整个SDN网络内仍然存在大量DDoS攻击流量.针对上述问题,边缘端采用端址跳变和负载均衡算法,同时接收云端下发的安全策略进行协同安全防护.

3.1 基于SDN的端址跳变

基于端址跳变的移动目标防御模块的端址跳变功能是基于OpenFlow的流表机制实现的,OpenFlow的流表项ACTION中的Modify-field具有对转发的报文的IP地址和端口号进行修改的功能.端址跳变示意图如图4所示:

图4 端址跳变示意图

首先本地SDN控制器维护一张端址映射表{(rIP,rPort):(vIPs,vPorts)},其中(rIP,rPort)为真实源目的端址对,(vIPs,vPorts)为链路上所有虚拟端址对组成的有序集合,一组真实源目的端址对对应多组虚拟端址对集合.边缘端在检测到DDoS攻击时,控制器通过轮询端址映射表,选择下一组虚拟端址对集合并下发流表到跳变路径上的所有交换机中,实现传输过程中的端址跳变,从源头上阻断DDoS攻击.

3.2 交换机流表过载攻击防护

本文提出的负载均衡算法包括基于负载均衡树的交换机负载均衡以及基于交换机迁移的控制器负载均衡.前者用来防护交换机流表过载攻击,这里交换机负载指交换机的流表空间,并将其分为已用流表空间和剩余可用流表空间.基于交换机剩余可用流表空间建立负载均衡树,如图5所示,该负载均衡树为这样一棵二叉树:若左节点不为空,则所有左节点的值比根节点大,若右节点不为空,则所有右节点的值比根节点小.其数值表示交换机中剩余可用流表空间.依据左-根-右即中序遍历思想选择合适的交换机,并通过流量引导模块引导流量转移到该交换机中,由该交换机对数据包进行处理,使交换机负载均衡.

图5 基于负载均衡树的流表过载攻击防护

本地SDN控制器以T1为周期获取交换机的流表空间状态,流表过载攻击检测模块检测交换机流表空间是否过载,在这里预先设置流表空间过载阈值为LT.若检测到有交换机过载,则启用流表过载攻击防护模块,删除已过载交换机防止网络通信中断,也可以加入新的交换机并放置在树中正确位置.该方法能够保障在遍历负载均衡树时不会存在过载交换机,解决了由于交换机过载而导致的网络无法正常通信问题.

3.3 控制器过载攻击防护

本地SDN控制器过载攻击防护模块采用基于交换机迁移的控制器负载均衡算法防止控制器过载.当前控制器负载均衡方法通常使用交换机迁移,根据控制器负载动态调整交换机和控制器之间的映射[21].本文基于交换机迁移的SDN控制器过载攻击防护流程如图6所示.

图6 基于交换机迁移的控制器过载攻击防护流程

3.3.1 负载信息采集

负载信息收集模块每隔T1时间收集状态属性信息,包含控制器所连接的交换机信息以及控制器负载,其负载为单位时间内接收到的packet_in消息数量.然后由控制器过载攻击检测模块判断是否过载,这里预先设置控制器过载阈值,该值可以由实验测试得出.当负载超过阈值时即认为控制器过载并由过载攻击响应模块对过载控制器进行过载防护.

3.3.2 迁移域及迁移交换机选择

迁移域包括迁出域和迁入域,迁出域的选择依据为:按负载从大到小的顺序排列各本地过载SDN控制器,每次从中选择负载最大的过载SDN控制器作为迁出域控制器;迁入域的选择依据包括以下2点:

1) 迁入域SDN控制器在加入迁移的交换机之后不过载;

2) 选择γi最小的控制器作为迁入域SDN控制器;γi计算方式为

γi=λAi+(1-λ)Di,

(1)

(2)

式(2)中,Ldi表示控制器i在单位时间内接收到的packet_in消息数量,Pi表示控制器i在单位时间内处理packet_in数据包的最大值,因此Ai越小表示控制器处理迁移交换机中的packet_in消息的能力越强;式(1)中Di表示待迁移交换机与迁入域控制器的距离,即迁移距离.最终选择满足以上2点的控制器作为迁入域控制器.

迁移交换机选择的依据为:选择过载控制器所连接所有交换机中packet_in消息平均请求速率最高的交换机进行迁移,其计算方式为

Vi=Msgpacket_in,

(3)

其中,Vi表示交换机在单位时间内产生的packet_in消息的数量.

3.3.3 交换机迁移

交换机迁移是通过消息的传递来完成迁出域控制器和迁入域控制器的角色变换,其过程如下:

4 实验分析

4.1 实验测试环境搭建

本文选取实验室双容水箱控制系统实验平台作为实验测试环境,同时为了模拟真实SDN控制器集群,基于Ubuntu16.04 Linux操作系统,采用Mininet+RYU对SDN网络进行仿真,图7为基于双容水箱控制系统搭建的实体仿真环境.实验平台的物理对象为3个水箱,储水箱的水在水泵的作用下输送到1#水箱,再流到2#水箱,通过阀门的调节实现1#及2#水箱水位的控制.控制层由3个西门子S7-300PLC构成,分别对3个水箱进行控制.监控层由人机界面和操作员站构成,实现对控制系统的在线监控.企业层由Web服务器和数据库服务器构成,经由防火墙和路由对外提供服务.

图7 实验平台示意图

4.2 实验过程与结果分析

利用BPNN模型检测DDoS攻击,多次实验选择模型最优训练参数,BPNN模型在不同参数下的训练结果如图8所示.经分析,在学习率为0.01、隐含层神经元个数为64、batch_size=128时效果达到最佳,因此设置BPNN模型参数如表1所示.

表1 BPNN模型训练参数设置

图8 BPNN模型训练结果

实验中,使用hping3工具发送DDoS攻击流量模拟双容水箱控制系统受到DDoS攻击,正常访问时发送的数据包作为正常流量,对本文提出的边云协同检测效果进行记录并评估,图9表示云端训练模型并更新边缘端模型之后边缘端检测精度的变化.

图9 边缘端检测精度变化

可以看出,云端对边缘端模型动态更新的过程逐渐提高了边缘端检测精度,边缘端在检测新型DDoS攻击时,初始阶段可能会产生较大的检测误差,但随着模型的逐渐更新,后续对该类DDoS攻击方式的检测精度逐渐提高.表2给出了本文最终检测结果与其他文献中的检测结果对比,可以看出本文提出的方法较其他方法检测效果更佳.

表2 DDoS攻击检测结果对比 %

为了验证本文提出的防护方法能够有效防御DDoS攻击,本文对DDoS攻击和DDoS攻击下采取防护方法后的响应时间进行了实验并记录,结果如图10所示.

图10 未采取与采取防护方法响应时间比较

从图10可以看出,随着DDoS攻击速率的增大,响应时间也随之增大,表明在DDoS攻击下其响应时间很容易受到影响,而在该方案的保护下,攻击速率越大响应时间的下降幅度越明显,此时网络中可以承受更多攻击流量的攻击,因此可有效提高节点间通信的安全性和可靠性.

为了验证边缘端各种安全策略响应后的防护效果,针对图7所示Mininet中搭建的SDN网络拓扑,假设存在1条DDoS攻击路径经过交换机S2和S3,且交换机S1所连接的设备正常访问交换机S3所连接的设备,按照本文提出的端址跳变思想,设置交换机S1,S2与S3中的流表项Match和Actions字段如表3所示:

表3 S1,S2与S3中流表项设置

设计实验并对DDoS攻击、边缘端仅执行端址跳变、边缘端执行端址跳变和负载均衡以及最后云端安全策略下发执行后的响应时间进行比较,结果如图11所示.

图11 不同攻击速率下响应时间

图11中当攻击速率低于1 Mbps时,4种情况下的响应时间相差不大,该结果表明攻击速率较低时,SDN网络中攻击流量非常少,对网络造成的影响很小,所以此时边缘端采取防护措施后并未给网络性能带来明显的改善.当攻击速率逐渐增大时,由于边缘端检测误差以及云端安全策略下发延迟,导致执行端址跳变后的网络中仍然存在大量攻击流量,此时在边缘端执行负载均衡算法和云端下发的安全策略明显减小了响应时间.因此本文提出的基于SDN的边云协同信息安全防护方法能够有效检测和防御DDoS攻击.

5 总 结

本文提出了一种ICS边云协同信息安全防护方法,该方法采用了云端训练检测模型并对边缘端模型进行动态更新思想,提高了边缘端检测精度并使边缘端具有检测新型DDoS攻击的能力.边缘端检测到DDoS攻击时,采用端址跳变动态防护DDoS攻击,同时针对边缘端检测产生误差以及云端决策下发延迟而导致网络中仍然存在大量DDoS攻击流量的问题,边缘端采取负载均衡算法减小通信双方响应时间.最后由云端下发的安全策略与边缘端策略协同下对整个网络进行安全防护,保证整个SDN网络安全可靠通信.

猜你喜欢
流表云端交换机
基于匹配动作表模型的可编程数据平面流表归并
基于时序与集合的SDN流表更新策略
云端之城
修复损坏的交换机NOS
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
使用链路聚合进行交换机互联
行走在云端
云端创意
在云端