融合PCA 降维的改进深度神经网络工控安全算法∗

2019-07-31 09:54刘庆华吴昊天
计算机与数字工程 2019年7期
关键词:工控降维数据源

刘庆华 吴昊天

(江苏科技大学计算机学院 镇江 212000)

1 引言

随着信息化与自动化技术的不断发展,为了方便政府与企业对工业控制系统进行管理和监督,在降低成本的原始驱动力下,工业控制系统变得比以前开放,越来越多地采用标准的通用协议和软硬件系统[1~3]。工业控制系统在走向开放的同时,无可避免地引入传统IT 网络中普遍存在的漏洞和威胁等安全问题,工业控制系统遭受攻击的风险日益增大[4]。自2011 年以来工业控制系统的安全事件呈现上涨趋势,原因主要有两点:1)通用协议和软硬件的使用使入侵变得容易;2)工业控制系统的特殊地位使得其成为敌对政府和势力的攻击目标[5]。从这一系列的事件可以看出针对工业控制系统的入侵活动从来就没有停止过,只不过以前的安全事件发生频率不高,造成的后果并不严重,没有引起各界的足够重视。

近几年以来,针对于工业控制系统异常及安全防护的研究十分活跃。工控安全研究可以分为三类[6~8]:基于统计的方法、基于知识的方法和基于机器学习的方法。其中Thomas Morris[9]等设计提出了基于Snort 的协议分析与检测系统,利用Snort 规则对上行数据和下行数据进行检测,对特定协议与已知的非法数据包,该方法具有较好的检测效果,但是具有无法处理未知攻击的缺陷。Ondrej Linda[10]等从工控网络中提取特征信息构成数据集,采用神经网络算法进行入侵检测研究,取得了较好的结果。但是由于神经网络的特殊性,模型不能够对异常事件的判断给出合理的解释,网络拓扑结构包括神经元的权重需要上千上万次迭代才能确认。Justin M.Beaver[11]等探讨了 SVM、贝叶斯用于检测工控系统攻击场景的可行性,并使用标准数据集对上述方法进行评估。该方法简单、计算高效,但是训练数据集合较大,检测速度无法满足工业实时性要求,检测中的阈值难以设定。Jianmin Jiang[12]等提出了基于SVM 的SCADA 系统入侵检测方法,并使用通信网络的数据集进行实验,发现该算法学习推广能力较强,检测快速,但是该方法在描述用户动态行为变化和单独检测方面的效果不明显。Xiao Yujun[13]等提出一种非侵入式基于功耗的PLC异常检测方案,通过研究PLC功耗变化结合稀疏编码算法提取特征,通过训练记忆单元神经网络来判断PLC 是否异常。该方法对未知攻击具有很好的检测效果,但是并非所有攻击都影响功耗,检测范围有限。

为了防止工业控制系统被入侵,提高工控系统的安全性。本文针对于工业控制系统中广泛使用的Modbus 协议,在充分考虑已有算法缺点的基础上,提出融合PCA降维和深度神经网络的新型工控防御方法,以全连接型深度神经网络结构为基础,结合PCA数据降维能力,构建工控深度防御模型。

2 Modbus/TCP特点及安全性分析

Modbus/TCP 是属于OSI 所定义的通信层第七层应用层协议,是类似于Client/Server 或称作为Master/Slave 型式的通信协议,它是典型的主从式通信模型,Modbus 主站向Modbus 从站发送请求报文,从站依据协议的格式规约作出应答,图1 是Modbus/TCP协议的技术规范。

因为其基于标准以太网TCP/IP 协议基础之上的工控应用协议,因此传统TCP/IP 协议拥有的安全缺陷Modbus/TCP 协议也具备,会遭受到例如ARP 地址伪装攻击,拒绝服务攻击、IP 欺骗攻击等常见的网络攻击。同时,因为工业控制系统自身固有的特点,Modbus/TCP 协议在设计之初并没有考虑到信息安全问题,这就使得Modbus/TCP 协议自身也存在着一些安全漏洞,容易被黑客利用,自身存在的缺陷包括以下几点[14~16]:

图1 Modbus/TCP协议技术规范

首先,Modbus/TCP 缺乏安全认证,一旦接入到工业控制系统,任何一个终端都可以使用一个非法的IP 地址和Modbus 功能码建立会话,这就导致攻击者只要能黑入特定的工业控制系统,就能够扮演任意一个Modbus 主站角色去恶意访问Modbus 从站的信息。

其次,Modbus/TCP 缺乏授权,没有基于角色权限的访问控制机制,一般用户能root 整个系统,只要分发指令从站能够识别,任何一个用户都可以执行任意的功能。如果攻击者黑入某一Modbus主站后,可以利用主站向Modbus 从站发送执行某一功能的命令,而此功能原本是不允许该Modbus 主站访问的。

再者,Modbus/TCP 功能码、地址、寄存器或线圈域值都是明文传输,缺乏加密机制,这就使得攻击者一旦捕获到流量数据,能够很轻易地将其内容解析出来,导致生产工艺等一些机密信息泄露。

最后,Modbus/TCP 缺乏完整性检测,常用的CRC校验更多的是用于差错检验,而通信数据有可能被篡改而无法校验。如果攻击者通过类似于ARP 地址诈骗攻击将合法的Modbus/ TCP 数据报文篡改成超长的畸形Modbus/TCP 数据报文,造成Modbus 从站缓存区溢出,从而导致Modbus 从站宕机,直接影响工业控制系统正常运行。

3 工控防御方法

3.1 基于PCA的数据降维

高数据量、高维数是工业控制系统中数据的两个明显特征,在本文采用数据集中,每条网络数据的特征集总共有17 个数据特征,这些特征囊括了Modbus 数据包从发送到接受的全部信息,具体体现为如下:Features={SourceIp,SourceMac,DestinationIp,DestinationMac, Traffictype,TrafficName,Totalbytes,Timestamp,CreatedAt,TransactionIdentify,Length1,DeviceAddress,FunctionCode,RegisterAddress1,RegisterAddress2,RegisterCount},其中包含一些无关的隐晦以及重复的特征表达。维度灾难(dimension disaster)是算法必须要规避的问题,高纬度不仅会带来高的时间复杂度,一些无关的维度因子还会严重影响算法分类的准确性。主成分分析方法是一种线性降维技术,从多维特征提取反映数据属性的信息主元,这些主元可以反映几乎全部的高维信息,并且具有数目少、互不相关的特点,在分类时可以达到数据降维的作用。

假设原始的Modbus 训练集有n 个输入样本,则有 X=(X1,X2,…,Xn),其中每个样本有m 个特征表达:

这n个样本的平均向量为

每个样本输入与平均向量的差值表示为

训练样本的协方差矩阵可以表示为

上述公式中 ux是N 维向量,L 是 N×N 维矩阵。

设 λ1,λ2,…,λm是矩阵 L 的 m 个特征向量,将特征向量表达为U=(U1,U2,…,Um)T,其中特征根是从大到小排列,λ1>λ2…>λm。

将第i 个样本重建,新的表达公式为

根据K-L变换,计算出第i 个样本的贡献率为

式中T 是通过累积贡献率确定,本文设定的标准为90%,只要累计贡献率达到90%,则选取前T 个主成分代替原始输入,通过PCA可以达到降维数据的目的,避免因维度灾难引起的计算资源过度损耗。

3.2 Adagrad算法优化深度神经网络参数

工控数据(Modbus Tcp 数据集)经过PCA 数据降维,可以作为深度神经网络的输入,深度神经网络即多隐藏层神经网络,其优势是能够利用较少的参数表示复杂的函数。

最常见的参数优化方法是SGD,工业数据纳入模型训练时,迭代计算batch 的梯度对参数进行更新。

当固定好η 时,对于每个参数都会使用同样的learning rate,因此选择合适的learning rate 比较困难,工业数据特征呈现高维的特性,但是并不是每个特征的重要性都是一样,针对于一些次重要的特征,在训练过程中,希望更新的更加快,相反,对于一些重要的特征,希望更新的慢一些。此外,SGD本身也不是稳定的算法,结果可能在最优解附近波动,不同的学习率可能会导致神经网络落入到截然不同的局部最优之中。

Adagrad 也是一种基于梯度的优化算法,它能够对每个参数自适应不同的学习速率,对稀疏特征,得到大的学习更新,对非稀疏特征,得到较小的学习更新,因此该优化算法适合处理稀疏特征数据。Dean 等发现Adagrad 能够很好地提高SGD 的鲁棒性,Adagrad在SGD的基础上,对学习率进行了一个约束,表达为

式中gt表示当前的梯度,ε 是一个比较小的数来保证分母非0。Adagrad 自适应的为各个参数配置不同的学习率,每个学习率能根据当前梯度的变化情况自适应的调整大小,并且nt梯度的平方能保证梯度呈现下降趋势。

此外,本文采用Relu 作为激活函数,Relu 可以很好的解决梯度弥散问题,在稀疏矩阵的表达上具备天然的优势,即使经过了多层的传播,梯度也不会大幅度缩小,适合于本文提出的深度模型。

3.3 融合PCA 降维和Ada-DNN 分类的工控防御模型

融合PCA降维和Ada-DNN分类的工控防御系统,经由数据采集设备采集的工控系统网络数据经过PCA 降维处理,通过Adagrad 优化调整全参数学习率。深度防御模型的构造采用12-10-12 三隐层结构。算法流程图如图2所示。

图2 主体算法流程图

工控数据经过多层表达,从训练数据提前主要模型特征。最终通过Softmax分类器,计算如下:

其中,xi表示第i 个输入的特征表达,先对各个类的特征求exp函数,之后标准化,在保证和为1的前提下,输出概率,工控数据的特征值越小,对应输出的概率就越小。

工控防御模型的整体系统的框架如下:

整个系统过程可分为四个阶段:

1)数据预处理阶段:工控网内流动的数据量是庞大且繁杂的,系统在使用脚本语言剔除一些无用的通信数据之后,使用主成分分析(PCA)方法对数据集进行降维,提取贡献率大,更能反应工控过程的特征,避免因维数过多损耗计算资源。

2)深度神经网络模型参数优化阶段:利用Adagrad 对模型全参数进行不同学习率调整,保证影响因子大的特征训练慢,影响因子小的参数训练快。

3)数据训练阶段:数据集经过降维处理,将得到的最终特征向量经过训练模块,最后的特征表达通过Softmax分类器,输出概率。

4)数据验证阶段:训练好的深度模型分类器对经过降维处理的验证数据集进行检测,验证模块通过验证结果做出对应的决策。

4 工控流程

在实际的工业流程中,正常的数据流量包含数据的来源与目的地址、协议标识符,设备地址号等等多达20 维的关键信息,是数据从源到终的具现,对于工控安全具有非常好的参考意义。本文中非法数据是通过篡改指令的方式实现,其中采用的数据集中主要包含三种:ARP 地址欺骗攻击、拒绝服务攻击、功能码异常。

数据的命令响应、控制模式包含功能码等关键维的信息均为非数值形式,而深度神经网络不能直接识别非数值形式的数据,此外,因为本文采用的数据集是由底层设备同步过来,所以包含了大量工控无关的协议数据,系统必须予以剔除,因此必须对数据进行预处理。

4.1 数据源

本文采用数据源,由底层设备同步的工控数据,为了达到实验的目的,数据集除了包含正常的工业数据外,还混杂了一部分具备攻击性的数据源。

4.2 数据预处理

1)数据清理:由于系统数据源来自于底层设备同步,包含大量非工控协议的数据,因此,采用脚本语言予以剔除,详细描述为

图3 工控数据过滤流程图

2)归一化处理:由于样本的特征属性各不相同,缺乏统一的度量单位,为了消除这些不利因素,需要进行归一化处理,详细描述为

其中,θmax为最大的特征值,θmin为最小的特征值,即[0,1]归一化处理。

3)PCA 降维处理:在工控防御的研究中,工控网内流量数据通常具备高维数的特点,进行降维是工控防御的必要环节。一般,有两种方式可以降维,人工降维和算法降维,为了提高系统的智能化,本文采用主成分分析法(PCA)从多维特征提取能反映数据特征的信息主元,累计贡献率设定为90%,详细描述见式(6)。

4.3 实验结果分析

4.3.1 分类攻击数据源检测效果

为了研究方便,本次实验仅区别数据“合法”或“非法”。为了此次试验,准备了ARP 地址欺骗攻击、拒绝服务攻击,功能码异常三类攻击数据源。实验数据集由正常数据样本与攻击型异常数据组成,将实验训练集分成两部分,分别为训练数据集和验证数据集。分别对这三种攻击类型的数据进行检测,评价指标为查准率(Precision Rate),漏报率(False Negative Rate),误识率(False Positive Rate),检测结果如表1所示。

表1 PCA-DNN方法针对不同攻击方式的检测结果

通过表1 可以看出,本文提出的融合PCA 与DNN 的检测算法具有很好的检测效果。当攻击类型为ARP 攻击和功能码异常时均有较高的查准率,误报率和漏报率都维持在5%以下。对于拒绝服务式攻击数据差准率较低,并存在一定的误报率,但是仍然具备较好的检测效果。

4.3.2 多优化算法对loss收敛速度比较

在得到深度神经网络结构,并完成了对三种攻击数据源的检测后,针对不同的优化算法,图4 给出了SGD 优化算法与本文Adagrad算法对loss影响的折线趋势图。

图4 Adagrad与SGD性能对比

由上图可知,Adagrad 算法收敛速度更快,在epoch达到2000时已将loss收敛至0.1以下,而SGD在epochs达到3000~4000的阶段呈现loss震荡。此外,Adagrad 算法能将 loss 收敛到最小值 0.0021 显然比SGD 的0.034 更小,因此本文算法采取了比SGD更优的Adagrad优化算法。

4.3.3 工控防御算法性能评价

工控防御算法包括朴素贝叶斯算法,SVM以及基于粗糙集的算法以及未融合之前的深度神经网络算法。为了验证本文算法在工控防御反入侵领域存在优势,参考引用文献中的算法人工智能算法做为参比模型。表2 表示本文算法对异常数据集的检测结果与其他算法在查准率、误报率两个方面的比较。

表2 不同机器学习算法对异常数据检测性能比较

由表2 可知,SVM 和朴素贝叶斯算法在检测异常数据时查准率较低并且具有较高的误识率。未融合之前的深度神经网络算法由于未进行降维,数据中存在很多干扰维度,导致较低的查准率与较高的误识率。而本文采用的PCA-DNN 算法查准率比基于粗糙集的人工免疫算法低,但是在误识率表现比粗糙集算法好,此外,两项指标均大大优于未融合之前的深度神经网络算法,由此可以说明,本文算法具有较好的检测性能。

5 结语

本文在全连接型深度神经网络算法的基础上进行创新,初探了深度学习在工业控制系统信息安全这一新兴领域的应用。面对规模庞大且高维的工控数据,通过PCA 降维算法进行降维,提取信息主要特征。为了保证PCA-DNN 算法检测的准确率,提出了用Adagrad算法进行全参数优化,并比较了与常见的SGD优化算法的优劣,而合法非法的概率结果用Softmax分类器归一化之后输出。文中用自低层设备同步的数据加入攻击数据源对算法性能进行评测,结果表明,在定量评价中,本文算法指标值要优于常见的机器学习算法,同时相比于之前未融合的深度神经网络算法有较大的提高。

猜你喜欢
工控降维数据源
工控编程编译工具应用现状分析及展望
混动成为降维打击的实力 东风风神皓极
工控系统脆弱性分析研究
基于蜜罐的工控网络安全防护技术研究进展
基于数据降维与聚类的车联网数据分析应用
大气腐蚀数据降维最优维度研究
降维打击
一种面向传感云的数据源质量评估框架
图表中的交互 数据钻取还能这么用
基于Excel的照片查询系统开发与应用