visual fortran常用数值算法集_【计算机系统应用】(第八十七期)基于卷积神经网络的电网工控系统入侵检测算法...

点击上方“ 蓝字”,关注我们吧! 9d349ac05d90d6a489544fcc2a0f945a.png 9f64cc6494c0edb4e92787738edb0f2f.gif

电网工控系统是控制管理电网的中枢系统, 原本 是相对封闭的内部环境, 遭受的网络入侵行为相对较 少. 但是随着网络互联在电网系统中的不断应用, 系统 智能化加深的同时, 将越来越多的部件暴露在外部网 络之中, 面临着越来越多的网络入侵行为. 2010 年, “震 网”病毒攻击了伊朗核电站中的计算机控制部件,导致离心机转动受到极大影响[1] . 2015 年, 乌克兰遭受两次 针对电力系统的网络入侵行为, 造成重大损失[2] . 电网 工控系统中控制中心和传感器等设备之间并未采取安 全隔离措施, 缺乏入侵检测防护层, 极易造成重大损失[3] . 电网工控系统内部流量主要为内网采集的处于网络边 缘位置设备的信息, 系统内部缺乏对网络包的深度解 析. 因此, 有效的检测出电网工控系统中的网络入侵行 为, 才能保证电网系统的高效安全运转. 

入侵检测技术是一种获取并分析网络中的数据, 并判断其为合法访问或网络入侵的技术. 其中, 基于特 征的入侵检测将网络行为与已知的攻击行为进行比较, 常用的方法有规则匹配、模式识别等; 基于异常的入 侵检测, 首先通过历史数据建立数学模型, 之后将数据 包与已建立的数学模型设定的阈值进行比较,若超过安 全阈值则视为网络入侵, 常用的方法有支持向量机和 机器学习等[4] . 针对电网工控系统的网络入侵主要有: 针对工业网络协议漏洞的攻击; 入侵者通过外联网络 进入内网形成入侵, 如未授权访问; 针对环境中广泛采 用的无线传输进行攻击等. 本文选取 KDD99 数据集作 为实验数据集, 其中入侵数据主要包括 DoS、非法网 络探测和未授权访问等 4 种, 其中未授权访问会对电 网工控系统造成更大危害.

dc1d9622707cab1cce04a599a2a3abc6.png

1   相关工作 

Anderson 于 1980 年首次提出“入侵检测”概念, 将 未经授权访问和篡改信息等行为归为网络入侵[6] . 早期的入侵检测手段主要通过专家和技术人员建立入侵特 征数据库, 进而将网络数据与数据库数据进行比较. 若 特征匹配, 则判定为入侵数据; 否则, 判定为正常访问 数据[7] . 

近年来, 随着机器学习的迅猛发展, 越来越多的 研究人员将其应用到入侵检测之中, 提出新型入侵 检测技术. Tang 等采用一种基于支持向量机的层次 异常入侵检测技术, 可以在较少先验知识的前提下, 用于检测新型网络入侵攻击[8] . Hatim 等基于 K-means 聚类提出一种融合的机器学习技术, 并构建一个低 延时入侵检测系统[9] . Su 等将层次分类算法和 SVM 融合, 结合特征选取技术和 SVM 算法特性, 消除不 重要数据特征, 从而达到缩短训练时间, 同时提高 DoS 和非法探测两种入侵行为的正确率[10] . Raman 指 出目前的入侵检测技术在稳定性和能否检测出新型 网络入侵之间需要做出取舍, 提出一种基于 Hypergraph 和概率的神经网络, 可以有效解决网络入侵的分类 问题, 在算法稳定性和检测正确率上都有所提升[11] . 杨昆朋采用深度信念网络 (DBN) 进行特征学习, 将 其与支持向量机相融合, 验证了深度学习在数据集 丰富场景中,具有更高的准确率[12] . 卷积神经网络在 多个应用领域都有良好表现, 但是网络层次过深, 网 络复杂度太高, 最终则不能在实际应用场景中使用, 只有设计符合特定应用场景的网络结构, 才能真正 在实际应用中发挥效果[13] .

2   算法和网络模型设计

2.1 算法概述 

本文完整算法流程如下所示: 

Step 1. 筛选 KDD99 中通信协议为 TCP 和 UDP 数据集, 剔除无效数据集, 增加未授权入侵行为数据比 例, 使得四种入侵行为所占比例相同; 

Step 2. 将字符型数据转化为多维数值向量, 同时 使用 PCA 算法, 降低数据维度; 

Step 3. 设计卷积核、池化核和全连接层等卷积神 经网络参数, 加入级联卷积层优化网络架构; 

Step 4. 使用处理后的训练集和测试集训练网络,比 较准确率和误检率指标表现, 调整参数使得网络结构 最优; 

Step 5. 增加 epoch 数量, 当 epoch 数量增加使得准 确率有下降趋势时, 停止训练;

Step 6. 将预测后的数据每隔一段时间加入到数据 集中, 用于下一步训练. 流程图如图 1 所示.

4262167de186f2b9dae6937037aea0bf.png

2.2 网络模型设计 

神经元是神经网络中基础单元, 数据通过神经元 之间的不同权重进行传递, 之后进行输出, 神经元基本 结构如图 2 所示.

3bc4f21195c6fccb563dace34a88a816.png

输入 Input 通过中间的卷积层、池化层和全连接 层, 最终输出 Output, 本文中 Input 为训练数据, Output 为预测入侵行为和正常行为的概率. 本文神经网络采用 的结构为: 4 个卷积层、4 个池化层和 1 个级联卷积层, 另外还有 1 个全连接层, 其中级联卷积层包括 4 个卷积 层, 每个卷积层之后相连 1 个激活层, 最终相连 1 个池 化层. 

输入数据通过卷积层卷积操作之后, 数据不同维度特征将被提取出来, 卷积核一般设置为 n×n 权值矩 阵 (n 一般取值为 3、5 或 7), 本网络采用 3×3 卷积核, 4 层卷积层分别有 4、8、16 和 32 个卷积核. 卷积操作 公式如下:

20ac2ca88f121179dab9fb5baa37a1a4.png

其中,  为神经元输入值,  为偏置值,  m为输出值. 卷 积层之后的池化层, 用于对其之前的卷积层特征进行 筛选降维, 常用的操作为最大池化和平均池化[14] . 本文 神经网络池化核大小为 1×1, 每一层有 8 个池化核. 池 化公式如下:

98c72a5fcbde8b129a1f1682d1cac66e.png

其中 j ,  为前一层卷积层窗口值, pool 为取样函数. 本 文神经网络在 4 个交替的卷积层和池化层之后,连接 1 层级联卷积层. 在数据通道数目固定的情况下, 级联 卷积层的参数量更小, 同时感受野保持不变, 减少了运 算量, 不会影响整体网络的收敛性. 级联卷积层中加入 的激活层, 增加了神经元之间数据的非线性转换, 在不 使网络变得复杂的情况下, 优化神经网络效果. 级联卷 积层为 4 个卷积层, 每 1 层之后加入激活层, 最后与池 化层相连. 结构如图 4 所示.

93f3109d3f9216b60120c583b1a4c65a.png

数据经过神经网络传递, 最终全连接层用于采集之 前网络的局部信息. 为了提升卷积神经网络的性能, 网 络中神经单元的激活函数采用 ReLU 函数. 公式如下:

35f50569e0af87c7eebe7fe572d11a6e.png

ReLU 函数在输入值小于 0 时, 输出值为 0; 当输 出值大于 0 时, 输出值与输入值相等. 常用激活函数比 较如图 5 所示.

5960709084aa210688d06bb971560168.png

输出层采用 Softmax 逻辑回归, 网络输出 5 个概 率, 分别对应于 Normal、Dos、Probe、U2R 和 R2L, 选取其中概率最大的标签作为最终的预测结果. 

本文卷积神经网络通过减小卷积核尺寸、增加级 联卷积层和减少网络层数等技术, 保持整体参数规模 不大. 采用 3×3 卷积核, 相对于传统 7×7 卷积核, 减少 了运算量. 级联卷积层在保持参数量变小的前提下, 保 持网络可以获得相同的感受野. 采用较少的网络层数, 减少了计算的复杂度. 结合卷积神经网络权值共享等 特性, 本文实验表明网络可以达到实时性要求.

2.3 卷积神经网络训练算法 

卷积神经网络经常采用 BP 算法进行训练[15] . 开始 训练之前, 使用小的随机数对网络中的参数进行初始 化设置, 之后训练过程主要分成两个步骤. 首先, 训练 集中带标签的数据传入神经网络, 经过神经网络中连 接参数的运算, 输出层结果与数据标签进行对比; 然后, 输出结果与标签的误差经过反向传播, 进而调整网络 中的参数. 经过不断训练, 网络中的参数得到不断调整, 使得损失函数结果得到优化, 最终停止训练. 

梯度下降法每次使用全部数据进行参数更新, 运 算量非常大, 使用训练时间较长. 进一步采用随机梯度 下降, 每次选取其中一条数据进行更新, 训练速度大大 提升, 但是会陷入局部最优解. 采用批量更新, 每次选 取部分样本数据, 在运算时间和效果之间取得平衡. 学 习率的选取深刻影响模型训练的时间和效果, 初始采 用较大学习率, 训练一段时间后, 降低学习率, 以完成 最终的网络训练[16] . 本文采用初始学习率 0.01, 之后降 低学习率.

3   实验分析

3.1 数据预处理 

电网工控系统中数据主要分为 2 种: 从传感器传 入控制中心的数据和从控制中心对各个传感器发送的命令指令, 具有数据格式固定、数据包小而多等特点[17] . 本文使用公开权威数据集 KDD99. 数据集格式如图 6 所示.

12c34a88315d57d2597922dc68f8d34f.png

KDD99 数据集共 500 万余条, 每条数据代表一次 网络行为, 每条初始数据由 42 维组成, 其中 38 维为数 值特征, 4 维为符号特征. 每一个维度之间用逗号分隔, 用来刻画网络协议、字节数、流量统计等特征, 最后一 维标签为 normal (正常网络访问) 或者 attack (网络入侵). 

根据第二维度代表的通信协议, 选取其中 TCP 和 UDP 协议数据. 考虑只有数值维度可以通过卷积神经 网络处理, 将字符型的数据维度通过热编码技术转化 为数值. 处理之后数据维度提升至 64 维, 维度过多,影 响训练时间. 考虑 U2R 和 R2L 入侵对电网造成危害更 大, 提高数据集中 U2R 和 R2L 数据比例, 使得 4 种入 侵行为数量均衡. 不同维度数据大小相差过多, 如图 6 中第一行数据, 数值型最大值为 397, 而部分维度为 0.04、0.02. PCA 算法为常见降维算法, 利用方差理论, 根据不同特征维度对结果的影响, 选取影响较大的维 度, 将多维数据映射为低维数据. 采用 Min-Max 标准 归一化算法, 在不破坏原有映射关系的情况下, 将数据 映射到 0 和 1 之间:

c6dc6ac24fc40ff72792689d44b88972.png

根据 PCA 算法, 选取其中重要的 52 维数据. 符合条 件数据选取训练集样本 95 136 个, 其中正常样本 49 603 个, 入侵样本 45 533 个. 测试集 46 331 个样本, 其中正 常样本 27743 个, 入侵样本 18588 个. 其中 U2R 和 R2L 在原始集中样本量就非常少, 全部选取, 处理后放入数 据集.

3.2 SVM 算法和 K-means 算法 

SVM (Support Vector Machine, 支持向量机) 是一 种有监督的机器学习算法, 常用于二分类问题, 在本实 验中用于将数据判定为正常数据或者入侵数据. 学习 目标为二元变量 1(入侵) 或者–1(正常), 输入数据为电 网数据和数据标签. 算法求解过程是给定决策函数求超平面 (ω×x+b=0), 转化为数学函数优化问题. SVM 算 法有严格的数学推导过程, 在深度学习之前一直是常 用的机器学习算法, 但是依赖于计算能力和数据量的 提升, 卷积神经网络能达到更好的效果[18] .

K-means 算法核心思想是, 选取 k 个对象作为聚类 的中心, 进而算出其余对象与中心的距离并划分到最 近的中心, 不断更新中心位置直到聚类中心不再变化 为止[19] . 实验中对于 K-means 算法的应用使用 sklearn 中相关的库, 将数据分为 5 个中心, 分别对应于 1 个正 常数据中心和 4 个入侵行为中心. 

3.3 实验与分析 

实验评价指标定义如下所示:

3e4e058429ba8726b5103693b3d8699b.png

其中, TP: 实际为入侵行为, 预测为入侵行为; TN: 实际 为正常行为, 预测为正常行为; FP: 实际为正常行为, 预 测为入侵行为; FN: 实际为入侵行为, 预测为正常行为. 准确率即算法模型判断数据正确所占的比例, 误检率用 于衡量算法模型错误分类的比例, 即将数据通过相应训 练之后的模型得出为正常或者入侵行为, 进而与数据标 签对比得出此两者指标大小. 两者组合可以反映出模型 对于入侵数据的判断准确率, 同时误检率作为参考. 

本文使用 Tensorflow 深度学习框架进行神经网络 训练, 训练集的全部数据训练一次称为一次 epoch,实 验不断增加 epoch 数量, 如图 7 所示. 其中,准确率先上 升, 准确率上升的速率先上升后减缓, 达到 450 次之后, 有下降趋势, 此时网络模型达到最优结构, 停止训练.

4ac45451e7eaa5d7106b49bb4b5f67ef.png

图 8 所示为 SVM 算法和 K-means 算法与本文网 络模型对比正确率和误检率实验数据. 

图 8 中展示了不同方法的入侵检测准确率和误检 率, 其中基于 K-means 算法的实验准确率为 75.63%,误检率为 9.46%; 基于 SVM 算法的实验准确率为 87.79%, 误检率为 8.33%. 本文基于卷积神经网络的算法准确 率为 95.37%, 误检率为 8.09%, 相较于另外两种算法具 有更高的准确率和更低的误检率, 其中准确率的提升 相较于误检率的下降更为明显. 分析原因如下: 传统 SVM 算法和 K-means 算法相较于深度学习算法, 如本文卷 积神经网络算法, 本文算法模型复杂度更高, 因此具有 更强的表达能力.

c598a76ca4cb95dd176b0cf2fffa5d52.png

4   结论与展望 

针对如何在电网工控系统中检测出入侵行为这一 问题, 本文提出一种基于卷积神经网络的入侵检测算 法. 本文采用 KDD99 数据集作为原始数据集, 根据电 网工控系统自身实时性和稳定性的要求, 系统数据流 向固定、数据包小等特点, 在数据处理过程剔除不重 要的特征维度, 筛选出训练集和测试集. 构建不同的卷 积神经网络架构, 选取不同的卷积核、池化核和网络 层数等参数进行实验. 加入级联卷积层优化网络结构, 最终与传统 SVM 算法和 K-means 算法进行对比, 在准 确率和误检率方面显示本文算法有良好表现

推荐书籍

3e25bd3356cd4b91e2de0ccce505d6ba.png

本书详细讲解英文科技论文写作的方法和技巧、如何为期刊或国际会议投稿、如何提高命中率、如何根据评语修改论文、如何处理录用后的事宜。本书还例举中国作者典型的不当句型和语法错误及其纠正方法,分析被拒论文及其被拒理由和相关评语,以提醒读者免犯类似错误。作者有着30多年主持国际会议和期刊、为中国学生修改论文、帮助发表的经验。本书适合作为有英文科技论文写作与发表需求的科研工作者的参考书,也可作为本科生研究生的论文写作课程的教材。

本文转载《计算机系统应用》期刊 2020年第29卷第8期

21f90874f9ef4e9e4dcf6ce2481b8c3d.png

关注我们公众号,还可以获得PS AI等工具包哦~

b66101b60845135ec17536d435072048.gif

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值