CN110650130B - 基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 - Google Patents
基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 Download PDFInfo
- Publication number
- CN110650130B CN110650130B CN201910879120.6A CN201910879120A CN110650130B CN 110650130 B CN110650130 B CN 110650130B CN 201910879120 A CN201910879120 A CN 201910879120A CN 110650130 B CN110650130 B CN 110650130B
- Authority
- CN
- China
- Prior art keywords
- detection
- network
- network packet
- sequence
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于多分类GoogLeNet‑LSTM模型的工控入侵检测方法,该方法针对使用Modbus协议的工控通信过程,首先对网络包进行分类。之后,对于不携带信息的网络包使用特征模板对比方法进行检测;对于携带信息的网络包,使用原始网络包构造时序检测序列,通过对其中每个网络包进行独热编码,并使用GoogLeNet进行特征提取,将得到的特征向量序列输入基于attention机制的LSTM网络进行时序检测得到检测结果。设计检测结果多分类方法,使用两种检测方法输出具体的入侵类别。该方法具有普适性,且对于不同种类的入侵具有检测精度高、实时性强的特点。
Description
技术领域
本发明应用于工业控制系统中的安全领域,特别涉及一种针对使用Modbus协议的通信过程的工控入侵检测方法。
背景技术
工业控制系统(Industrial Control System,ICS)是由各种自动化控制组件和实时数据采集、监测的过程控制组件共同构成,实现数据的采集和处理、监控及远程通信和维护等功能。随着工业水平的发展和信息化进程的推进,工控组件呈现分布广、数量多的特点。为了实现组件之间的稳定通信和集中管理,ICS越来越多地使用公用的软件和通信协议,使得系统暴露出大量安全漏洞,面临着越来越多的信息安全问题。传统的工控安全技术,如用户认证、防火墙和数据加密等已无法应对不断革新的网络攻击。因此,针对协议本身设计的入侵检测方法是实现工控安全的重要手段。
机器学习方法已经广泛应用于工控入侵检测中,使用特征提取方法从工控数据中学习特征并提取出特征向量,之后使用各种机器学习分类方法比如SVM、GBDT等,依照特征向量进行网络包分类,进而判断出是否存在入侵行为。然而随着工业水平发展,工控数据越来越呈现出量级大、特征多、变化复杂的特点,基于传统机器学习方法的入侵检测方法暴露出漏报率高、误报率高等问题,严重影响了入侵检测精度。随着学者们的研究,深度学习技术也逐渐应用于工控入侵检测中。深度学习作为机器学习方法的一种,使用神经网络来处理复杂的机器学习问题。深度学习应用于工控入侵检测中主要有两大应用之处,一是神经网络凭借其复杂的结构具有较强的学习能力,擅长挖掘数据中的特征关系,非常适合用来设计特征提取方法;二是神经网络由于其深层结构,可以进行高维、深度计算,具有更强的分类能力。然而不同的网络结构单独应用于工控入侵检测有着各自的优缺点,传统的基于卷积神经网络(convolutional neural networks,CNN)的检测方法具有较强的特征学习能力,却不能进行时序检测,许多入侵行为难以检测出来;传统的基于长短期记忆(longshort-term memory,LSTM)网络的入侵检测方法尽管可以利用网络包间的时序关系,却严重依赖特征提取方法,并且在处理长序列任务时性能较差,误报率较高。
为了提高工控入侵检测的精度,一方面需要使用性能更加优异的网络来深度挖掘工控数据特征;另一方面,需要进行改进网络结构来进行更准确的时序检测。
发明内容
针对Modbus协议本身以及使用该协议的工控通信过程,本发明采用的技术方案为基于多分类GoogLeNet-LSTM模型的工控入侵检测方法,首先,分析Modbus协议的通信单元,使用网络包分类方法,将网络包划分为不携带信息和携带信息的网络包。然后,对于不携带信息的网络包,使用模板对比的方法进行检测;对于携带信息的网络包,先构造网络包序列,再对序列中每个网络包使用GoogLeNet进行特征提取,再使用提取到的特征向量通过基于attention机制的LSTM网络进行时序检测。最后,使用入侵分类方法对于检测结果进行多分类。
本方法不仅根据不同的网络包使用不同的入侵检测方法,具有较高的检测效率;而且使用了组合的深度学习模型,利用了两种网络的优点,大大提高了入侵检测精度。
使用该方法的工控入侵检测系统包括数据采集模块、数据读写模块、网络包分类模块、入侵检测模块和检测结果多分类模块。其中,数据采集模块与数据读写模块相连,数据读写模块与网络包分类模块相连,网络包分类模块与入侵检测模块相连,入侵检测模块与检测结果多分类模块相连,检测结果多分类模块与数据读写模块相连。
首先通过数据采集模块是对生产过程中的数据进行采集,使用SCADA系统进行采集。采集的数据不仅包括通过读取传感器得到的系统状态数据,还包括来自主机的控制数据。采集的数据包括两种:一种用于模型的训练过程,需要涵盖多周期、长时间的数据采集,数据量级较大,保证可以反映完整的正常数据变化特点和入侵特点;另一种用于入侵检测过程,数据量级较小,用于模型的测试。将采集到的携带数据的网络包和作为请求、确认作用的不携带数据的网络包均保存到缓存序列中,用于之后的数据存储。
对于缓存序列中的网络包,使用数据读写模块进行保存。先从缓存序列中提取网络包,再对这些网络包添加附加标识信息,比如加盖时间戳辅助检测序列的构建,指定网络包类别标签,添加来源信息等,再将添加标识信息后的网络包按照Modbus协议通信过程中的网络包顺序存入日志文件或数据库中。当入侵检测需要提取网络包时,使用数据读写模块从日志文件或数据库中依序提取,并根据时间戳等信息进行网络包替换等操作。
在进行入侵检测之前,使用网络包分类模块判断网络包类别并确定使用的入侵检测方法。对于不携带信息的网络包,仅起到请求或确认的作用,检测比较简单,不必调用复杂的网络模型即可做出准确的检测;对于携带信息的网络包,由于其携带工控数据,需要调用网络模型来进行特征提取和时序检测来做出准确的检测。首先总结Modbus协议中具有不同作用的网络包的关键字段值比如功能码、长度等,然后根据不同的关键字段值对网络包进行分类,进行后续的入侵检测。
确定了网络包的基本类别后,即可调用入侵检测模块使用不同的入侵检测方法进行检测。该入侵检测模块由模板对比子模块、检测序列构造子模块、特征提取子模块和时序级别检测子模块构成。其中,模板对比子模块与网络包分类模块相连;检测序列构造子模块与网络包分类模块相连,特征提取子模块与检测序列构造子模块相连,时序检测子模块与特征提取子模块相连。
对于不携带信息的网络包,由于其只具有某些具有固定值的关键字段,使用模板对比的方法进行检测。模板对比子模块在训练过程中,总结正常网络包中的关键字段值组合,并建立网络包模板。模板对比子模块在检测过程中,将待检测网络包中的关键字段值与模板中的关键字段值进行对比即可做出检测。
对于携带信息的网络包,使用GoogLeNet-LSTM模型进行入侵检测。
检测序列构造子模块首先通过数据读写模块提取携带信息历史网络包构造初始网络包序列。其中,对于记录为入侵包的网络包根据时间戳选择最近时间节点的正常同类型网络包进行替换,保证序列反映正常的数据变化。然后对序列中相邻的携带不同信息的网络包进行组合得到新网络包。新网络包中包含了一个完整通信过程中的所有信息,保证提取的特征向量的完整。经过组合后,原序列转化为最终的入侵检测序列。
构造得到检测序列后,需要进行特征提取得到特征向量用于之后的检测。特征提取子模块首先对检测序列中的每个网络包进行独热编码,将网络包转化为可以输入网络中的形式。然后使用GoogLeNet进行特征提取,通过卷积、池化以及多层Inception计算后得到高维特征向量。序列中每个网络包均进行该操作,得到特征向量序列。
之后使用时序检测子模块进行时序检测。该时序检测子模块依照时间步数将特征向量序列依次输出LSTM网络中,使用输入门、遗忘门、输出门进行计算。为了解决长序列的梯度消失和信息丢失问题,添加attention机制来辅助检测。保留每个时间步数的隐藏状态,并使用attention计算得到attention向量,并与LSTM网络最后一个时间步数的输出组合作为最终的检测结果。
检测完成后,使用检测结果多分类模块对于检测出的入侵进行多分类,以指导操作员或主机做出合适的应对方法。对于不携带信息的网络包,该模块总结不同种类入侵的关键字段值变化规律。在检测出入侵后,根据网络包中具体的关键字段值,确定具体的入侵类型。对于携带信息的网络包,该模块通过在GoogLeNet-LSTM模型最后添加一个softmax分类器输出一组概率值。在模型训练过程中,使用训练数据来训练该分类器。在检测过程中,选择输出概率值中最大值的索引作为最终的具体入侵类型。
本发明提出的基于GoogLeNet-LSTM模型的工控入侵检测方法具有以下优点。根据不同类型的网络包使用不同的入侵检测方法,另外选择了具有更少参数的网络模型,具有较高的入侵检测效率。改进了网络模型,并充分利用了两种模型的优点,使用了特征学习能力更强的GoogLeNet作为特征提取方法,可以提取更加精确的特征;使用attention机制改进了传统LSTM网络,提高了模型的时序检测能力;GoogLeNet-LSTM模型具有更强的入侵检测能力。方法对检测结果进行了多分类,可以确定具体的入侵类型,具有更高的使用价值。
附图说明
图1模板对比方法训练图。
图2GoogLeNet-LSTM模型训练图。
图3入侵检测流程图。
图4基于多分类GoogLeNet-LSTM模型的工控入侵检测方法图。
图5是本发明系统结构图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。
图1是基于多分类GoogLeNet-LSTM模型的工控入侵检测方法图,包括:
数据采集模块采用SCADA系统捕获工控数据,采集的数据不仅包括通过读取传感器得到的系统状态数据,还包括来自主机的控制数据。采集的数据分为训练数据和测试数据两种。将采集到的携带数据的网络包和作为请求、确认作用的不携带数据的网络包均保存到缓存序列中,用于之后的入侵检测、信息添加和网络包存储。
网络包分类模块,根据网络包中的关键字段值比如功能码、长度等,判断网络包的类别和作用,并以此将网络包划分为携带信息的网络包和不携带信息的网络包,以便采取不同的入侵检测方法来保证检测效率。
在判断网络包是否携带信息后,入侵检测模块选择不同的方法进行检测。对于不携带信息的网络包,使用模板对比的方法进行检测;对于携带信息的网络包,使用GoogLeNet-LSTM模型进行检测。
模板对比方法提取由训练数据总结得到的正常网络包模板,并将网络包字段值与模板字段值进行比较,即可做出准确的检测。
使用GoogLeNet-LSTM模型进行检测,首先构造检测序列It,对序列中每个网络包进行独热编码,使用数值转化方法将每个字段数据转化为十进制值;对每个十进制值使用独热编码方法进行编码,将每个网络包转化为二维编码,并将二维数组输入GoogLeNet中进行特征提取。首先按照公式(1)使用7×7卷积核进行卷积操作:
fi 7×7=ReLU(W7×7·Ai+b7×7) (1)
其中f7×7为卷积结果,i为网络包编号,ReLU为激活函数,W和b分别为卷积核和偏置,7×7为卷积核大小,A为编码后的网络包。之后进行3×3平均池化操作进一步降维,公式如式(2)所示:
其中,fpool为池化结果,i为网络包编号,Com为结果组合操作,Aver为平均池化操作,3×3为池化核大小,f7×7为卷积操作,m1,m2,…,M代表不同的卷积区域。经过池化后的特征向量经过多层Inception机构进行计算得到最终的特征向量,计算方法如式(3)所示:
fi n=Cas(Conv1×1(fi n-1),Conv3×3(fi n-1),Conv5×5(fi n-1),Aver3×3(fi n-1)) (3)
其中,fn和fn-1分别代表当前层和上一层的特征向量,Cas为结果拼接操作,Conv1 ×1,Conv3×3,Conv5×5,Aver3×3分别为不同的卷积操作和池化操作。通过特征提取得到特征向量序列ft。
将特征向量序列ft按照时间步数输入LSTM网络中进行时序检测,其中的计算过程如以下公式所示。
ft=sigmoid(wf×[ht-1,xt]+bf) (4)
it=sigmoid(wi×[ht-1,xt]+bi) (5)
ot=sigmoid(wo×[ht-1,xt]+bo) (8)
ht=ot×tanh(ct) (9)
其中,wf,wi,wc和wo为权重矩阵,bf,bi,bc和bo为偏置向量,xt为当前输入,ht-1为上一时间步数的隐藏状态。
添加attention机制提高检测能力,保留每个时间步数的隐藏状态进行attention计算,计算公式如以下公式所示:
其中,hi为隐藏层状态,zt为对照向量,wh和wz为权重,ct为attention向量。将ct与LSTM网络输出组合作为最终检测结果。
检测完成后,检测结果多分类模块对检测结果进行多分类。对于不携带信息的网络包,该模块总结不同种类入侵的关键字段值变化规律。在检测出入侵后,根据网络包中具体的关键字段值,确定具体的入侵类型。对于携带信息的网络包,该模块通过在GoogLeNet-LSTM模型最后添加一个softmax分类器输出一组概率值。在模型训练过程中,使用训练数据来训练该分类器。在检测过程中,选择输出概率值中最大值的索引作为最终的具体入侵类型。
对检测结果进行多分类后,数据读写模块对原始网络包添加附加标识信息,比如加盖时间戳辅助检测序列的构建,网络包类别标签,添加来源信息等,再将添加标识信息后的网络包按照Modbus协议通信过程中的网络包顺序存入日志文件或数据库中。
图2是模板对比方法的训练图,步骤如下:
步骤21,分析使用Modbus协议进行通信的网络包中的关键字段,确定需要使用来构造特征模板的关键字段。
步骤22,将训练数据逐条输入来构造模板。
步骤23,根据选择好的关键字段,提取每个网络包中这些关键字段的组合,作为特征模板。
步骤24,判断是否存在该模板,如果不存在,则将该模板进行保存;如果该模板存在,则跳过该模板。
步骤25,将特征模板存储到文件中,方便之后检测时进行提取。
步骤26,判断是否所有数据均已输入,如果所有数据均输入完毕,则退出训练过程;否则,继续输入数据寻找特征模板。
图3是GoogLeNet-LSTM模型训练图,具体步骤如下:
步骤31,从日志文件或数据库中提取训练数据,使用历史携带信息的网络包来构造检测序列。
步骤32,将训练数据逐批输入模型中进行训练。
步骤33,根据经验选取一系列神经网络参数,诸如隐藏层的层数、每层的神经结点个数、学习率等,并使用这些参数初始化网络参数。
步骤34,使用GoogLeNet对检测序列中的网络包进行特征提取,并将提取到的特征向量输入LSTM网络中进行时序检测,输出网络计算结果。使用LSTM网络隐藏层状态进行attention计算,得到attention向量。将attention向量与网络计算结果组合作为最终的检测结果。
步骤35,该模型用作于分类问题,计算预测值与真实值的交叉熵作为损失函数,交叉熵公式如式(13)所示。
步骤36,使用梯度下降算法最小化交叉熵,来达到训练模型的目的。
步骤37,判断是否达到最大训练次数或者交叉熵已经最小化到阈值以下,如果符合该条件,说明模型已经训练好,进行保存;否则,继续输入训练数据进行模型训练。
步骤38,将训练好的模型保存到文件中,方便之后模型的提取调用。
图4是入侵检测流程图,具体步骤如下:
步骤41,从日志文件或数据库中提取测试数据,用于模型测试或入侵检测。
步骤42,使用提取的历史携带信息的网络包构造初始网络包序列,其中,对于记录为入侵包的网络包根据时间戳选择最近时间节点的正常同类型网络包进行替换,保证序列反映正常的数据变化。
步骤43,进行序列重构得到检测序列,对序列中相邻的携带不同信息的网络包进行组合得到新网络包。新网络包中包含了一个完整通信过程中的所有信息,保证提取的特征向量的完整。
步骤44,对重构得到的检测序列中的网络包进行独热编码,使用数值转化方法将每个字段数据转化为十进制值;对每个十进制值使用独热编码方法进行编码,将每个网络包转化为二维编码,并将二维数组输入GoogLeNet中。
步骤45,使用GoogLeNet进行特征提取。
步骤46,使用LSTM网络进行时序检测,输出网络计算结果。使用LSTM网络隐藏层状态进行attention计算,得到attention向量。将attention向量与网络计算结果组合作为最终的检测结果。
步骤47,将检测结果进行输出。
应当理解,虽然本说明书根据实施方式加以描述,但是并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域的技术人员应当将说明书作为一个整体,各个实施方式中的技术方案也可以适当组合,按照本领域技术人员的理解来实施。
上文所列出的一系列详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡是未脱离发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (5)
1.基于多分类GoogLeNet-LSTM模型的工控入侵检测系统,其特征在于:该系统包括数据采集模块、数据读写模块、网络包分类模块、入侵检测模块和检测结果多分类模块;其中,数据采集模块与数据读写模块相连,数据读写模块与网络包分类模块相连,网络包分类模块与入侵检测模块相连,入侵检测模块与检测结果多分类模块相连,检测结果多分类模块与数据读写模块相连;
首先通过数据采集模块是对生产过程中的数据进行采集,使用SCADA系统进行采集;采集的数据不仅包括通过读取传感器得到的系统状态数据,还包括来自主机的控制数据;将采集到的携带数据的网络包和作为请求、确认作用的不携带数据的网络包均保存到缓存序列中,用于之后的数据存储;
对于缓存序列中的网络包,使用数据读写模块进行保存;先从缓存序列中提取网络包,再对这些网络包添加附加标识信息,再将添加标识信息后的网络包按照Modbus协议通信过程中的网络包顺序存入日志文件或数据库中;当入侵检测需要提取网络包时,使用数据读写模块从日志文件或数据库中依序提取,并根据时间戳等信息进行网络包替换操作;
在进行入侵检测之前,使用网络包分类模块判断网络包类别并确定使用的入侵检测方法;对于不携带信息的网络包,仅起到请求或确认的作用,检测比较简单,不必调用复杂的网络模型即可做出准确的检测;对于携带信息的网络包,由于其携带工控数据,需要调用网络模型来进行特征提取和时序检测来做出准确的检测;首先总结Modbus协议中具有不同作用的网络包的关键字段值比如功能码、长度等,然后根据不同的关键字段值对网络包进行分类,进行后续的入侵检测;
确定网络包的基本类别后,即可调用入侵检测模块使用不同的入侵检测方法进行检测;该入侵检测模块由模板对比子模块、检测序列构造子模块、特征提取子模块和时序检测子模块构成;其中,模板对比子模块与网络包分类模块相连;检测序列构造子模块与网络包分类模块相连,特征提取子模块与检测序列构造子模块相连,时序检测子模块与特征提取子模块相连;
对于不携带信息的网络包,由于其只具有某些具有固定值的关键字段,使用模板对比的方法进行检测;模板对比子模块在训练过程中,总结正常网络包中的关键字段值组合,并建立网络包模板;模板对比子模块在检测过程中,将待检测网络包中的关键字段值与模板中的关键字段值进行对比即可做出检测;
对于携带信息的网络包,使用GoogLeNet-LSTM模型进行入侵检测;
检测序列构造子模块首先通过数据读写模块提取携带信息历史网络包构造初始网络包序列;其中,对于记录为入侵包的网络包根据时间戳选择最近时间节点的正常同类型网络包进行替换,保证序列反映正常的数据变化;然后对序列中相邻的携带不同信息的网络包进行组合得到新网络包;新网络包中包含了一个完整通信过程中的所有信息,保证提取的特征向量的完整;经过组合后,原序列转化为最终的入侵检测序列;
构造得到检测序列后,需要进行特征提取得到特征向量用于之后的检测;特征提取子模块首先对检测序列中的每个网络包进行独热编码,将网络包转化为可以输入网络中的形式;然后使用GoogLeNet进行特征提取,通过卷积、池化以及多层Inception计算后得到高维特征向量;序列中每个网络包均进行该操作,得到特征向量序列;
之后使用时序检测子模块进行时序检测;该时序检测子模块依照时间步数将特征向量序列依次输出LSTM网络中,使用输入门、遗忘门、输出门进行计算;为了解决长序列的梯度消失和信息丢失问题,添加attention机制来辅助检测;保留每个时间步数的隐藏状态,并使用attention计算得到attention向量,并与LSTM网络最后一个时间步数的输出组合作为最终的检测结果;
检测完成后,使用检测结果多分类模块对于检测出的入侵进行多分类,以指导操作员或主机做出合适的应对方法;对于不携带信息的网络包,该模块总结不同种类入侵的关键字段值变化规律;在检测出入侵后,根据网络包中具体的关键字段值,确定具体的入侵类型;对于携带信息的网络包,该模块通过在GoogLeNet-LSTM模型最后添加一个softmax分类器输出一组概率值;在模型训练过程中,使用训练数据来训练该分类器;在检测过程中,选择输出概率值中最大值的索引作为最终的具体入侵类型。
2.根据权利要求1所述的基于多分类GoogLeNet-LSTM模型的工控入侵检测系统,其特征在于:使用GoogLeNet-LSTM模型进行检测,首先构造检测序列It,对序列中每个网络包进行独热编码,使用数值转化方法将每个字段数据转化为十进制值;对每个十进制值使用独热编码方法进行编码,将每个网络包转化为二维编码,并将二维数组输入GoogLeNet中进行特征提取;首先按照公式(1)使用7×7卷积核进行卷积操作:
fi 7×7=ReLU(W7×7·Ai+b7×7) (1)
其中f7×7为卷积结果,i为网络包编号,ReLU为激活函数,W和b分别为卷积核和偏置,7×7为卷积核大小,A为编码后的网络包;之后进行3×3平均池化操作进一步降维,公式如式(2)所示:
其中,fpool为池化结果,i为网络包编号,Com为结果组合操作,Aver为平均池化操作,3×3为池化核大小,f7×7为卷积操作,m1,m2,…,M代表不同的卷积区域;经过池化后的特征向量经过多层Inception机构进行计算得到最终的特征向量,计算方法如式(3)所示:
fi n=Cas(Conv1×1(fi n-1),Conv3×3(fi n-1),Conv5×5(fi n-1),Aver3×3(fi n-1)) (3)
其中,fn和fn-1分别代表当前层和上一层的特征向量,Cas为结果拼接操作,Conv1×1,Conv3×3,Conv5×5,Aver3×3分别为不同的卷积操作和池化操作;通过特征提取得到特征向量序列ft;
将特征向量序列ft按照时间步数输入LSTM网络中进行时序检测,其中的计算过程如以下公式所示;
ft=sigmoid(wf×[ht-1,xt]+bf) (4)
it=sigmoid(wi×[ht-1,xt]+bi) (5)
ot=sigmoid(wo×[ht-1,xt]+bo) (8)
ht=ot×tanh(ct) (9)
其中,wf,wi,wc和wo为权重矩阵,bf,bi,bc和bo为偏置向量,xt为当前输入,ht-1为上一时间步数的隐藏状态;
添加attention机制提高检测能力,保留每个时间步数的隐藏状态进行attention计算,计算公式如以下公式所示:
其中,hi为隐藏层状态,zt为对照向量,wh和wz为权重,ct为attention向量;将ct与LSTM网络输出组合作为最终检测结果。
3.根据权利要求1所述的基于多分类GoogLeNet-LSTM模型的工控入侵检测系统,其特征在于:模板对比方法的训练步骤如下,
步骤21,分析使用Modbus协议进行通信的网络包中的关键字段,确定需要使用来构造特征模板的关键字段;
步骤22,将训练数据逐条输入来构造模板;
步骤23,根据选择好的关键字段,提取每个网络包中这些关键字段的组合,作为特征模板;
步骤24,判断是否存在该模板,如果不存在,则将该模板进行保存;如果该模板存在,则跳过该模板;
步骤25,将特征模板存储到文件中,方便之后检测时进行提取;
步骤26,判断是否所有数据均已输入,如果所有数据均输入完毕,则退出训练过程;否则,继续输入数据寻找特征模板。
4.根据权利要求1所述的基于多分类GoogLeNet-LSTM模型的工控入侵检测系统,其特征在于:GoogLeNet-LSTM模型训练步骤如下,
步骤31,从日志文件或数据库中提取训练数据,使用历史携带信息的网络包来构造检测序列;
步骤32,将训练数据逐批输入模型中进行训练;
步骤33,根据经验选取一系列神经网络参数,诸如隐藏层的层数、每层的神经结点个数、学习率等,并使用这些参数初始化网络参数;
步骤34,使用GoogLeNet对检测序列中的网络包进行特征提取,并将提取到的特征向量输入LSTM网络中进行时序检测,输出网络计算结果;使用LSTM网络隐藏层状态进行attention计算,得到attention向量;将attention向量与网络计算结果组合作为最终的检测结果;
步骤35,该模型用作于分类问题,计算预测值与真实值的交叉熵作为损失函数,交叉熵公式如式(13)所示;
步骤36,使用梯度下降算法最小化交叉熵,来达到训练模型的目的;
步骤37,判断是否达到最大训练次数或者交叉熵已经最小化到阈值以下,如果符合该条件,说明模型已经训练好,进行保存;否则,继续输入训练数据进行模型训练;
步骤38,将训练好的模型保存到文件中,方便之后模型的提取调用。
5.根据权利要求1所述的基于多分类GoogLeNet-LSTM模型的工控入侵检测系统,其特征在于:入侵检测流程具体步骤如下,
步骤41,从日志文件或数据库中提取测试数据,用于模型测试或入侵检测;
步骤42,使用提取的历史携带信息的网络包构造初始网络包序列,其中,对于记录为入侵包的网络包根据时间戳选择最近时间节点的正常同类型网络包进行替换,保证序列反映正常的数据变化;
步骤43,进行序列重构得到检测序列,对序列中相邻的携带不同信息的网络包进行组合得到新网络包;新网络包中包含了一个完整通信过程中的所有信息,保证提取的特征向量的完整;
步骤44,对重构得到的检测序列中的网络包进行独热编码,使用数值转化方法将每个字段数据转化为十进制值;对每个十进制值使用独热编码方法进行编码,将每个网络包转化为二维编码,并将二维数组输入GoogLeNet中;
步骤45,使用GoogLeNet进行特征提取;
步骤46,使用LSTM网络进行时序检测,输出网络计算结果;使用LSTM网络隐藏层状态进行attention计算,得到attention向量;将attention向量与网络计算结果组合作为最终的检测结果;
步骤47,将检测结果进行输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879120.6A CN110650130B (zh) | 2019-09-18 | 2019-09-18 | 基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879120.6A CN110650130B (zh) | 2019-09-18 | 2019-09-18 | 基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110650130A CN110650130A (zh) | 2020-01-03 |
CN110650130B true CN110650130B (zh) | 2022-03-04 |
Family
ID=69010726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910879120.6A Active CN110650130B (zh) | 2019-09-18 | 2019-09-18 | 基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110650130B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949480B (zh) * | 2020-08-10 | 2023-08-11 | 重庆大学 | 一种基于组件感知的日志异常检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017160913A1 (en) * | 2016-03-15 | 2017-09-21 | Sri International | Intrusion detection via semantic fuzzing and message provenance |
CN109034140A (zh) * | 2018-09-13 | 2018-12-18 | 哈尔滨工业大学 | 基于深度学习结构的工业控制网络信号异常检测方法 |
CN110166484A (zh) * | 2019-06-06 | 2019-08-23 | 中国石油大学(华东) | 一种基于LSTM-Attention网络的工业控制系统入侵检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027699B2 (en) * | 2016-03-10 | 2018-07-17 | Siemens Aktiengesellschaft | Production process knowledge-based intrusion detection for industrial control systems |
-
2019
- 2019-09-18 CN CN201910879120.6A patent/CN110650130B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017160913A1 (en) * | 2016-03-15 | 2017-09-21 | Sri International | Intrusion detection via semantic fuzzing and message provenance |
CN109034140A (zh) * | 2018-09-13 | 2018-12-18 | 哈尔滨工业大学 | 基于深度学习结构的工业控制网络信号异常检测方法 |
CN110166484A (zh) * | 2019-06-06 | 2019-08-23 | 中国石油大学(华东) | 一种基于LSTM-Attention网络的工业控制系统入侵检测方法 |
Non-Patent Citations (3)
Title |
---|
"Multi-level Anomaly Detection in Industrial Control Systems via Package Signatures and LSTM networks";Cheng Feng;《IEEE》;20170831;全文 * |
"基于仿真建模的工业控制网络入侵检测方法研究";赖英旭;《通信学报》;20170731;全文 * |
"基于长短时记忆网络的工业控制系统入侵检测";於帮兵;《信息与控制》;20180131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110650130A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115857447B (zh) | 基于数字孪生的复杂工业系统运行监测方法及系统 | |
WO2021258348A1 (zh) | 异常流量检测方法和系统、及计算机存储介质 | |
CN112905421B (zh) | 基于注意力机制的lstm网络的容器异常行为检测方法 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN104794192A (zh) | 基于指数平滑、集成学习模型的多级异常检测方法 | |
CN111176953B (zh) | 一种异常检测及其模型训练方法、计算机设备和存储介质 | |
CN109446804B (zh) | 一种基于多尺度特征连接卷积神经网络的入侵检测方法 | |
CN115099321B (zh) | 双向自回归无监督预训练微调式排污异常监控方法及应用 | |
CN111026741A (zh) | 基于时间序列相似性的数据清洗方法及装置 | |
CN113485863B (zh) | 基于改进生成对抗网络生成异构不平衡故障样本的方法 | |
CN110163060B (zh) | 图像中人群密度的确定方法及电子设备 | |
Huang et al. | An energy-efficient and trustworthy unsupervised anomaly detection framework (EATU) for IIoT | |
CN111130942B (zh) | 一种基于消息大小分析的应用流量识别方法 | |
CN116599683A (zh) | 一种恶意流量检测方法、系统、装置及存储介质 | |
CN114186080B (zh) | 基于语义共享的深度跨模态检索方法及系统 | |
CN110650130B (zh) | 基于多分类GoogLeNet-LSTM模型的工控入侵检测方法 | |
CN117811843A (zh) | 基于大数据分析和自主学习的网络入侵检测方法及系统 | |
CN118070229A (zh) | 一种基于多模态数据挖掘的设备故障预警模型及方法 | |
CN117951576A (zh) | 基于Transformer时序多模态特征的电力系统恶意流量检测方法 | |
CN117827508A (zh) | 一种基于系统日志数据的异常检测方法 | |
CN114553790A (zh) | 一种基于多模态特征的小样本学习物联网流量分类方法及系统 | |
CN114301671A (zh) | 网络入侵检测方法、系统、设备及存储介质 | |
CN117439800B (zh) | 一种网络安全态势预测方法、系统及设备 | |
CN113141364B (zh) | 一种加密流量分类方法、系统、设备及可读存储介质 | |
CN117938555B (zh) | 车联网云平台日志序列和参数异常检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |