掌桥专利:专业的专利平台
掌桥专利
首页

一种基于LSTM和SDN的工控网络入侵检测方法

文献发布时间:2023-06-19 19:30:30


一种基于LSTM和SDN的工控网络入侵检测方法

技术领域

本发明属于工业控制网络的入侵检测技术领域,具体涉及一种基于LSTM和SDN的工控网络入侵检测方法。

背景技术

工业控制网络是由具备数字通信能力、并能大量分散在生产现场的测量控制仪表作为网络节点构成的网络。工业控制网络的运行目标是实现现场设备之间信息的自由交流,从而更容易地完成控制系统的任务。

随着工业信息化技术的持续快速发展,工业控制网络直接负责国家的许多重要关键基础设施和大型系统,如果工业控制网络在互联网中遭受外界的恶意攻击,将造成信息泄露、系统瘫痪等严重后果。

典型的工业控制系统三层结构自上而下包括:企业管理层、监控层、现场层。企业管理层使用网络通信技术接入Internet,便于对工业过程进行决策管理。监控层负责企业管理层与现场层之间的数据传输,并对现场的设备加以控制。现场层包含多种类的传感器、执行器、变送器、I/O设备,该层主要负责现场信息的感知和现场设备的操作,此外还通过现场总线在不同现场设备之间交换数字或者模拟数据。信息安全的三大防护目标是:机密性、完整性和可用性。在IT系统中重要程度依次降低,而在工业控制系统中,可用性则是最重要的。

软件定义网络(Software-Defined Network,SDN)是一种新型网络体系结构,通过将网络控制与网络转发解耦合构建开放可编程的网络体系结构。软件定义网络支持通过编程对网络进行更细粒度的控制,这使网络维护更多集中在用软件实施集中控制,而不必关心具体的网络设备相关的细节。OpenFlow技术在SDN发展过程中具有非常重要的意义,OpenFlow作为SDN的原型实现方式,代表了SDN数控分离架构的技术实现,本发明采用基于OpenFlow的SDN技术。软件定义网络的三层架构包括:数据平面、控制平面、应用平面。

SDN中逻辑控制和数据转发分离架构的思想能够简化硬件的转发功能,用软件来实现转发决策,硬件专注于报文的转发。网络运行维护只需要通过更新软件就可以自动部署网络配置,加速了网络的部署周期、降低了网络复杂度、降低网络构建成本。在安全领域,SDN能够实现对网络设备和状态的全局监控,开放可编程的特性也给网络安全的灵活实现带来了新的可能性。

SDN在带来以上益处的同时,也为网络攻击者利用开放接口实现恶意攻击提供了机会,因此SDN网络架构背景下的安全问题需要更慎重。

入侵检测系统(Intrusion Detection System)是一种计算机软件或者软、硬件组合成的系统,通过对被保护的网络、主机数据的采集和对采集到的数据进行分析,建立入侵检测模型、提取入侵行为关键特征等手段进行检测、识别、预防。

目前入侵检测主要有两种思路:基于误用的入侵检测技术和基于异常的入侵检测技术。前者以已知的入侵行为为基础建立特征库,将网络中的行为进行匹配检测,但这种方法难以检测出未知的攻击类型,如今工控网络规模越来越大,网络攻击手段越来越复杂,因此这种方法难以较好地解决工控网络安全问题。实际工业生产过程中,收集到的正常样本是远远多于异常样本的,因此通过学习异常样本的特征来识别攻击将会非常困难。本发明使用基于异常的入侵检测技术,通过学习正常样本的特征,识别网络中不符合预期行为的异常模式。

异常检测技术虽然具备较强的泛化能力,但是误报率较高,可能出现虽然标记为异常但并不是攻击行为的情况,因此如何降低误报率是一个重要的改进目标。

采用传统机器学习的异常检测方法中,有效地提取特征是模型检测准确率的重要研究方向。由于RNN能够学习可变长度输入序列中隐藏的序列关系,因此常用于序列数据建模。实现一次网络攻击行为通常要完成多个步骤,可能是由多个事件体现的,如果能在网络中挖掘到攻击序列,发现其中的因果关系,就更可能检测出攻击行为甚至推断出攻击意图。然而RNN的输出在学习大尺度序列数据建模的长期时序相关性时可能出现输出消失或者梯度爆炸。本发明将LSTM用于异常检测的基本模型,并结合注意力机制对其做出改进。

发明内容

本发明的目的在于提供一种基于LSTM和SDN的工控网络入侵检测方法。

一种基于LSTM和SDN的工控网络入侵检测方法,包括以下步骤:

步骤1:获取工控网络中节点的历史序列数据,预训练基于LSTM的入侵检测模型;

步骤2:通过网络探测工具和SDN镜像从工控网络现场层的设备处收集到网络中的数据;

步骤3:通过南向接口OpenFlow将收集到的数据传送到SDN控制层;

步骤4:部署在SDN应用层的基于LSTM的入侵检测模型通过北向接口RestfulAPI分析、计算:基于LSTM的入侵检测模型输出接下来有限时间步的序列预测值,是基于对网络中正常状态下的行为进行建模得出的预测结果,作为基准序列值;

步骤5:计算真实数据与基准序列值的距离,如果超过给定的阈值则认为该时间步数据异常;连续若干个时间步发生异常,则入侵检测程序产生警报,认为网络当前处于较高风险,需要进行核查。

进一步地,所述基于LSTM的入侵检测模型包括输入层、隐藏层、注意力层、全连接层、输出层,具体训练过程为:

步骤1.1:对于输入层中的工控网络中节点的历史序列数据S={S

步骤1.2:将输入的序列处理成长度一致的序列再输入LSTM网络,使用窗口长度为固定值k的分割窗口进行数据分割,得到X={X

步骤1.3:进入隐藏层,LSTM在t时刻除了h

遗忘门:丢弃部分无用信息,h

更新公式:f

输入门:新增部分重要信息,分别使用Sigmoid和tanh激活函数,得出的结果后续相乘再更新细胞状态,i

更新公式:i

输出门:整合遗忘门和输入门的细胞状态,然后输出到下一单元;由两部分组成,o

更新公式:o

h

其中,x

步骤1.4:LSTM隐藏层输出的特征h

步骤1.4.1:在所有输入信息上计算注意力分布

定义一个注意力变量z∈[1,n]表示被选择信息的索引位置,z=i表示第i维的输入信息,然后计算给定了某个查询向量q和用于查找和选择的信息向量x的情况下,选择第i个输入信息的概率α

s函数用于计算q和x不同维度之间的相似度,相似度高的特征分配更高的权重,此处采用的软性注意力机制不是从x存储的多个信息中只选出一个,而是从所有信息中抽取部分,但抽取的内容多少有差异:

其中,W、U、v是可以学习的网络参数,以最小化损失函数为目标在动态的更新,n是输入信息的维度;

步骤1.4.2:根据注意力分布来计算输入信息的加权平均;

注意力分布α

将注意力层的输出att输入到一个全连接层中,使用Sigmoid函数激活,最终输出模型的预测值Y={Y

步骤1.5:模型的优化目标是损失函数值最小;损失函数定义如下:

损失函数值反映了神经网络的预测和真实数值之间的误差。

本发明的有益效果在于:

本发明采用SDN架构可以实现转发平面和控制平面的解耦,有利于工业控制网络的部署、优化和管理,有效利用SDN镜像收集数据;通过LSTM网络在线预测序列未来值和真实数值比较的方式进行异常检测,从网络的序列数据中识别出攻击行为,提升了网络入侵检测模型的实时性和准确性,为SDN应用于工控网络的安全问题提出了一种思路,而且将注意力机制结合到LSTM网络中,能够将计算资源更多地集中到对工控网络实际产生危害的入侵行为上,能够达到提高检测效率,降低异常检测误报率的效果。

附图说明

图1为本发明中基于SDN的工控网络结构图。

图2为本发明中基于LSTM的入侵检测流程图。

图3为本发明中结合注意力机制的LSTM网络结构图。

图4为本发明中RNN的隐藏单元示意图。

图5为本发明中LSTM的隐藏单元示意图。

图6为本发明中提取时间序列历史特征的滑动窗口示意图。

具体实施方式

下面结合附图对本发明做进一步描述。

本发明的目的是结合SDN基础架构、LSTM神经网络这两种新技术更有效地解决工控网络中的入侵检测问题提出的一种方法,能够将计算资源更多地集中到对工控网络实际产生危害的入侵行为上,能够达到提高检测效率,降低异常检测误报率的效果。

一种基于LSTM和SDN的工控网络入侵检测方法,包括:

通过传统网络探测工具和SDN镜像从工控网络现场层的设备处收集到网络中的数据;

通过南向接口OpenFlow将收集到的数据传送到SDN控制层;

部署在SDN应用层的基于异常检测的入侵检测程序通过北向接口Restful API分析、计算:

将工业控制网络中节点的历史序列数据输入到基于LSTM的入侵检测模型中,模型得到的输出是序列接下来有限时间步内的序列预测值,模型主要应用单向长短期记忆神经网络,并加入了注意力机制改进模型;

网络中的攻击行为需要完成一系列步骤,通常由多个事件组成且时间上存在时序关系,因此按照数据流的到达顺序输入数据;

模型首先根据历史数据进行离线训练,以最小化代价函数为目标多次迭代调整神经网络参数后,投入在线检测;

模型输出的接下来有限时间步的序列预测值,是基于对网络中正常状态下的行为进行建模得出的预测结果,作为基准序列值;

实时测量并收集当前时刻网络中的数据,将模型用于在线检测,计算真实数据与基准序列值的距离,如果超过给定的阈值则认为该时间步数据异常;

连续若干个时间步发生异常,则入侵检测程序产生警报,认为网络当前处于较高风险,需要进行核查,此处的时间步个数应取多少,应该由不同网络的具体情况,结合专家经验给出;

所述基于LSTM的入侵检测模型具体包括:

将工控网络节点中的序列数据输入网络,对原始的序列数据集进行划分、对数据做标准化操作;

由于LSTM的自身特性和本发明的应用场景,输入和输出序列等长,输入层神经元个数和输出层神经元个数相等,设定分割窗口,给定一个固定的取值,对标准化后的数据进行分割;

初始化隐藏层结构,搭建单层的长短期记忆神经网络,将经过以上处理的数据输入隐藏层;

LSTM中参数共享,经过其中的重复模块之后输出的内容对信息进行了过滤和筛选,返回隐藏层在各时间步的隐藏状态后,输入注意力层,筛选哪些维的数据对于预测维起到关键的作用;

在注意力层采用软性注意力机制从所有信息中抽取部分,抽取的内容有差异,取决于计算出的注意力分布,使用注意力分布计算输入信息的加权平均得到最终的Attention值;

将注意力层的输出输入一个全连接层,最后从输出层获得输出;

输出是接下来有限时间步的序列预测值。

本发明提供一种基于LSTM和SDN的工控网络入侵检测方法,提出了一种在SDN网络架构的工业控制网络中通过LSTM网络进行实时入侵检测的方法,为SDN应用于工控网络的入侵检测问题提出了一种思路。

如图1所示的基于SDN的基于SDN的工控网络结构图,本实施例中使用软件定义网络架构解决传统工业控制网络的问题。SDN的集中网络控制和管理便于通过全局视图管理网络资源,为工业网络的实时传输提供保障。图中基于SDN的基本结构进行设计,略去了工业控制系统具体生产制造过程中的具体应用组件、服务管理器等。

软件定义网络的三层架构包括:数据平面、控制平面、应用平面。

由图1自顶向下分析,本发明所要实现的入侵检测模块应以应用程序的形式,部署在SDN网络架构中的应用平面。入侵检测程序通过北向接口与控制平面进行通信。访问控制器并获取控制器从数据平面的网络设备中得到的网络状态信息,进行数据建模,检测网络中是否有入侵事件发生,如果有,则生成警报,将结果返回给控制平面,由控制平面执行对数据平面网络设备的安全管理。

控制平面是SDN的核心,它通过南向接口(数据平面和控制平面接口,如OpenFlow)来获取底层基础设施的信息,并提供可以扩展的北向接口(控制平面和应用平面接口,如RestfulAPI)方便应用平面的建设,例如应用平面中的应用程序通过访问API获得网络状态信息,管理网络资源,调整转发规则。

基于OpenFlow的SDN技术中,OpenFlow规定将规则组织在不同的流表中,OpenFlow通过用户定义或预设的规则来匹配和处理网络包。每个OpenFlow交换机的处理单元由流表组成,流表项代表转发规则,进入交换机的数据包通过轮询流表获取对应的操作。本发明训练神经网络时以流为基本单位。

数据平面在网络中的角色是哑的数据单元,其中包括具体的物理设备,在工控网络中有控制器、执行器、PLC、仪器仪表等。数据转发需要OpenFlow交换机参与完成,每个交换机的处理单元由流表构成,进入交换机的数据包通过查询流表、匹配规则、执行操作,如果没有可以匹配的规则,通过安全通道发送给SDN控制器请求处理。此外数据平面还收集网络的状态信息,包括拓扑发现、路由策略、流量统计等,采集到的数据发送给所属分组的路由器。

相比于传统网络,SDN能够实现对网络设备及状态的全方位监控,且支持编程控制,能够更好的保障工业控制系统的安全运行,从而克服了信息难获取、响应难执行的问题。

本发明实施例所述的入侵检测流程如图2所示,自底向上分析,数据采集主要来自两种途径:

1)用传统网络探测工具(如Traceroute、Nmap、TCPDump、Wireshark、AdvancedPort Scanner、GFI LanGuard、Nagios等);

扫描的内容包括:指定接口的Icmp报文、指定协议的报文、指定源主机的报文、指定端口的报文、指定范围IP地址的主机、指定主机的操作系统类型等,Traceroute、Nmap、TCPDump等是常用的网络探测命令或安全审核工具,可以用于快速扫描大型网络,对单个主机也可以正常运行,简单灵活、支持多数操作系统。

2)使用SDN镜像收集的数据;

SDN镜像可以接收交换机上报的自身的MAC地址和端口等信息,根据既定的配置下发镜像流表到交换机,并将这些交换机中和镜像流表匹配的信息保存下来。SDN网络镜像获取工控系统中的通信流量,解析通信报文,对数据进行预处理后,提取数据特征,完成统计分析。预处理过程中需要过滤误用数据包,并对数据包进行时间戳标记;特征提取需要解析MAC地址、IP地址、窗口大小以及端口号等信息;统计分析重点关注工业控制网络中的关键设备,它们一些属性的取值范围,在之后的入侵检测中将依据历史数据设定阈值。

由于SDN镜像配置任务序列都在SDN控制器上完成,因此可以容易地实现把接收或发送的数据流复制到SDN控制器中。工控网络的维护者只要关注如何利用SDN开放可编程的特性,在应用层加入入侵检测模块,通过调用SDN控制器中维护的网络视图中的全局数据,实现分析、计算、预警功能。

入侵检测程序从控制器获得数据流后开始工作。

本发明使用的方法是基于异常检测的思想进行入侵检测,即学习大量网络中的数据样本,通过构造正常行为的轮廓,将轮廓外的行为划为异常,然后检测出是否为攻击行为,是则发送警报。比起基于误用的入侵检测方法对于既有特征库完备性的高要求,基于异常的入侵检测方法漏报率低、泛化能力强,但很可能出现将正常行为标记为异常的错误。

在工业生产过程中,很多工作周期是会循环进行的,因此网络中的数据可能呈现出周期性,如果发生外来入侵,系统的运行状态很可能偏离正常状态。因此本发明使用基于机器学习的异常检测技术。异常检测在为工业过程提供安全保障、预警危险情况方面起着重要作用。

本发明使用结合注意力机制的长短期记忆神经网络模型(Attention-Based LongShort-Term Memory),即在长短期记忆人工神经网络(LSTM)中加入了注意力层。

由于工控网络在国家的工业活动中起着至关重要的作用,因此网络模型应提前训练后投入实际使用,因此本发明采用离线训练模型,定期更新数据和参数的方式。网络攻击是一种系统性的行为,攻击者要达成目的需要完成一系列步骤,这通常是由多个事件组成的,并且在时间上存在时序关系,因此本发明将数据流按照到达顺序输入网络。

在众多深度学习模型中循环神经网络(Recurrent Neural Network)对时序数据分析具有更好的适应性。循环神经网络在所有时间步和所有序列长度上操作单一的模型,这使它能够泛化到没有见过的序列长度,并且估计模型所需要的训练样本远远少于不带参数共享的模型。

RNN某一时间步的输出与前面多个时间步的输入和自己的当前状态相关,但每一步状态学习到了前面的信息同时也积累了误差,可能导致梯度爆炸;当序列过长、信息太多,RNN学习极远处序列变得困难,可能出现梯度消失。

而LSTM是RNN的变体之一,优点在于能比较好地解决RNN梯度消失、梯度爆炸、长期记忆能力不足的问题。解决长期依赖问题的关键是,将先前的信息连接到当前的任务上,用已有的知识推测对当前阶段状态的理解。LSTM是通过对RNN中重复模块进行了特殊的设计来解决该问题。

LSTM能够使用h

摘要一般有损的原因是,LSTM网络作为RNN的一种变体,同样具备RNN的基本特征:输出的每一项是前一项的函数,在模型的不同部分共享参数。无论序列长度是多少,学成的模型始终具有相同的输入大小,因为它指定的是从一种状态到另一种状态的转移,而不是在可变长度的历史状态上进行操作。在每个时间步,可以使用相同参数的相同转移函数f。将任意长度的序列映射到某一固定长度的向量,使摘要一般是有损的。

在训练大规模工控网络对应的LSTM网络时,随着输入长度增加网络的性能下降、网络缺乏对特征的提取和强化等问题,会影响模型的效率和精度。工业控制网络中不同特征对检测结果的贡献差异较大,为此引入注意力机制,模仿人脑处理信息的方式,从大量的输入中选择出重点处理的部分,对相关性较差的特征,通过分配低权重将其忽略。

引入注意力机制使得LSTM训练过程中聚焦于重点信息,有利于捕获序列数据中长距离的相互依赖的特征;并且注意力机制不通过循环而是直接地建立输入与输出之间的依赖关系,提高了计算的并行性。综上所述,引入注意力机制能让LSTM更好地建模可变长度的序列数据。

注意力机制的本质是对输入网络中的信息自适应地分配权重,然后进行加权求和。在应用注意力机制时可以选择基于时间步,即决定哪个时间步对于结果的影响较大,本发明将注意力机制用于维,来获知哪些维对预测维起到关键的作用。将注意力层加入到LSTM的隐藏层之后,LSTM返回最后一层的隐藏层在各时间步的隐藏状态,从注意力层输出后再加上一个全连接层,最后从输出层输出。

修改后的网络结构如图3所示。输入层对原始的工业控制网络中的数据流进行一些预处理,如适当的清洗、变换;隐藏层是LSTM网络的核心;注意力层计算注意力值,更好地实现特征提取;全连接层综合之前已经提取到的特征;输出层提供预测结果;在上述模型中,采用如图所示的细胞结构,搭建单层循环神经网络。接下来对本发明实施例的网络训练和应用进行分析:

输入层中原始的序列数据S={S

将输入的序列处理成长度一致的序列再输入LSTM网络,使用窗口长度为固定值k的分割窗口进行数据分割,得到X={X

输入层对序列进行处理后,进入隐藏层。由图4的RNN隐藏单元示意图可以看出h

遗忘门:丢弃部分无用信息。h

更新公式:f

输入门:新增部分重要信息。由两部分组成,分别使用Sigmoid和tanh激活函数,得出的结果后续相乘再更新细胞状态,i

更新公式:i

输出门:整合遗忘门和输入门的细胞状态,然后输出到下一单元。由两部分组成,o

更新公式:o

h

变量解释;其中x

LSTM隐藏层输出的特征h

(1).在所有输入信息上计算注意力分布

定义一个注意力变量z∈[1,n]表示被选择信息的索引位置,z=i表示第i维的输入信息,然后计算给定了某个查询向量q和用于查找和选择的信息向量x的情况下,选择第i个输入信息的概率α

s函数用于计算q和x不同维度之间的相似度,相似度高的特征分配更高的权重,此处采用的软性注意力机制不是从x存储的多个信息中只选出一个,而是从所有信息中抽取部分,但抽取的内容多少有差异。本实施例计算相似度的公式选择缩放点积模型:

其中W、U、v是可以学习的网络参数,以最小化损失函数为目标在动态的更新,n是输入信息的维度。

(2).根据注意力分布来计算输入信息的加权平均

注意力分布α

将注意力层的输出att输入到一个全连接层中,使用Sigmoid函数激活,最终输出模型的预测值Y={Y

模型的优化目标是损失函数值最小。损失函数定义如下:

损失函数值反映了神经网络的预测和真实数值之间的误差,由于LSTM有两个方向的输入,所以在计算反向传播误差时也朝着两个方向。常见的反向传播算法是BPTT,可选择一个距离w,当误差达到这个距离就会截断不再向前传播。这个距离决定了隐藏层展开后的数量,最终影响到神经网络预测的精度。

在训练之前需要确定网络的超参数,常用的方法是网格搜索,手动设置超参数的取值范围,根据损失函数的值作为评估依据,从中选择合适的超参数组合。

使用历史数据训练并优化好LSTM神经网络之后,用模型预测实时数据。在对数据进行标准化预处理后,输入t-m到t时刻的n维数据,执行一次前向传播算法,得到的是长度为m的n维数据,由于LSTM每个细胞单元有两个输入,分别是某时刻t的输入和前一时刻隐藏层的状态。模型输出的则是X

LSTM网络计算出的预测值并不能够直接地说明系统是否处于异常中,接下来要将真实的t+1时刻至t+m时刻的数据收集起来和预测值对比,本实施例使用均方误差表示二者之间的距离。

若连续P个时间步的均方误差超过阈值λ即表示真实值与LSTM预测值有较大差异,很可能系统发生了异常,需要尽快检测是否遭遇了攻击,入侵检测程序返回警报给SDN控制平面。

用于比较的阈值λ是异常检测判断标准的重要影响因素,需要根据在实际生产过程中测试的结果结合专家经验确定。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于优化BP神经网络的SDN网络DDoS攻击检测方法
  • 一种基于聚焦损失深度神经网络的工控网络入侵检测方法
  • 一种基于多层特征融合神经网络的工控网络入侵检测方法
技术分类

06120115929870