态势感知、入侵检测相关论文阅读笔记
前言
记录一下最近看的一些入侵检测、态势感知相关论文,主要是针对AGV物流调度系统态势感知平台开发的相关学习。
论文总结
一、《Machine Learning for Intrusion Detection in Industrial Control Systems: Applications, Challenges, and Recommendations》
综述性论文
二、《Embedding Encryption and Machine Learning Intrusion Prevention Systems on Programmable Logic Controllers》
在可编程逻辑控制器上嵌入加密和机器学习入侵防御系统
1、Abstract
由于PLC供应商不提供有关其硬件或软件的信息,研究人员很难将安全机制嵌入到设备中。本文描述了一种使用开源PLC的替代设计,该PLC经过修改后可以独立于所使用的协议对其通过网络发送的所有数据进行加密。此外,基于机器学习的IPS被添加到PLC网络堆栈中,提供了一种安全机制来抵御拒绝服务(DoS)等网络flood攻击。实验结果表明,加密层和IPS提高了PLC与监控软件之间链路的安全性,防止了拦截、注入和DoS攻击
这项工作增强了具有AES-256加密和解密功能的开源PLC和基于机器学习的IPS,以创建嵌入式弹性系统。OpenPLC项目是根据IEC 61131-3标准创建的,该标准定义了plc的基本软件体系结构和编程语言。这意味着OpenPLC可以与其他遵循相同标准的plc兼容。
2、Main work
这篇文章的主要工作在于以下两个贡献:
- 在OpenPLC的网络层和入侵防御系统之间加入了AES加密层,密钥方案为PSK (Pre-Shared key)
每次OpenPLC启动时,用户都必须提供AES加密层的关键字。每一个收到的报文都通过PSK被AES加密层解密,然后发送到网络层进行进一步的处理
- OpenPLC的嵌入式入侵防御系统
入侵防御系统接收来自外部网络的所有报文。它实现了一种嵌入式无监督聚类算法,对传入的流数据进行实时分类,以检测网络异常和DoS攻击。如果检测到攻击,IPS会创建自己的自定义规则来阻止攻击者的IP进入网络。无监督聚类算法(K-means)使IPS具有一般性,并使其能够根据正常网络可能遇到的任何变化的网络条件进行调整。IPS及通过安全网关连接的信任节点的网络布局如下图所示
3、EXPERIMENTAL RESULTS
这篇文章的实验对象为:一个储水箱,每台PLC均采用梯形逻辑编程,实现分布式控制,所有3个plc通过一组西门子开关到人机界面联网。利用OpenPLC自带的ScadaBR软件实现人机界面。主要实现了以下几种攻击的入侵检测与防御:
- Interception Attack
通过AES-256加密模块,实现了这种攻击的防御。因为攻击者虽然可以在网络上拦截数据包,但由于使用了AES-256加密技术,无法对其内容进行解密。
- Injection Attack
注入攻击包括快速发送Modbus消息,将系统锁定在手动模式,同时打开泵,关闭逸出阀。
这篇文章宣称:
由于注入消息的速度快,嵌入式IPS检测到异常流量,能够快速地阻止攻击者节点,而不会对运行中的系统造成任何损害。在降低注入消息的频率后,有可能通过IPS未被检测到。虽然注入的消息能够到达PLC,但由于存在AES-256加密,仍然无法注入命令。因此,消息被丢弃,对系统没有任何损害。
- Denial of Service (DoS) Attack
针对本工作实施的DoS攻击使用Low Orbit Ion Cannon (LOIC)软件,在Modbus通信使用的端口502上向PLC发送TCP数据包。由于运行在UniPi上的OpenPLC被压得喘不过气来,无法再响应HMI请求,攻击几乎能够立即导致对HMI的服务被拒绝。虽然人机界面没有响应,但系统继续运行,运行梯形逻辑程序。但是在持续攻击大约3分钟后,OpenPLC的网络栈崩溃,操作系统杀死了应用程序,停止了梯形逻辑程序的执行。使用LOIC对安全的OpenPLC进行了相同的攻击。由于泛洪报文的快速特性,运行在OpenPLC旁的嵌入式IPS能够快速检测到异常流量,并对攻击者节点进行封杀。攻击节点在被禁止之前只能攻击设备几毫秒。
4、Some thoughts
阅读后的一些思考,也是作者在论文里面提的一些局限性~
- 实验是在开源OpenPLC上展开的,在真实PLC设备中,似乎没有操作系统这种说法,如何部署IPS?在PC端,还是外加模块?
- 实验没考虑到PLC工作中,通讯协议的实时性,许多工业流程的严格实时要求,如果加密和机器学习IPS层增加了显著的延迟,是不是不可能在现实世界中部署这些技术?
关于这点,作者在论文中通过基准测试评估应用加密和机器学习IPS的性能损失。测试是在原始的OpenPLC、OpenPLC Secure(增强了加密和机器学习IPS层的OpenPLC)和其他两个流行的商用plc上进行的(西门子S7-1214C和Allen-Bradley MicroLogix 1400)。OpenPLC和OpenPLC都安全运行在Raspberry Pi model 3硬件上,4台plc均装载了储水箱梯形逻辑程序。一个微控制器直接连接到每个PLC的处理器(或控制器)引脚,测量输出切换时间,从每个PLC采集4000个样本。计算了4000个样本的标准差和平均值,如表1所示:
结果表明,两种版本的OpenPLC(原始的和安全的)具有相同的扫描时间,这也与所分析的另外两种plc的扫描时间相似。此外,这两个版本的OpenPLC的标准差比其他两个商用plc的标准差小得多,这意味着即使添加了加密和机器学习IPS层,OpenPLC在扫描时间上的抖动也要小得多,实时响应也要好得多。
按理论分析,在加上额外的模块后,PLC的实时性肯定是会受到影响的。导致论文上面实验结果的原因,我个人觉得应该在于OpenPLC本身的特性上:
OpenPLC中存在一个实时库,实时库通过在独立的核上隔离OpenPLC进程,并将OpenPLC主线程的调度策略更改为SCHED_FIFO,同时将其优先级设置为最大值,从而提高多核架构上的Linux响应。此策略下的进程没有时间切片,这意味着SCHED_FIFO线程无限期地运行,直到它产生处理器或被一个I/O请求阻塞。由于OpenPLC进程是在隔离的核心中持续运行的唯一进程,因此即使在系统负载很重的情况下,它也可以提供改进的确定性响应。
- 这篇文章是基于OpenPLC上的入侵检测系统研究,OpenPLC本身运行于Linux系统,和真实的PLC设备差别很大(没有操作系统)。所以上述所提出的一些想法,部署在真实的PLC设备,例如AGV小车中,会存在很多问题,参考性不大~
三、《Cloud-Based Cyber-Physical Intrusion Detection for Vehicles Using Deep Learning》
基于云计算以及深度学习的车辆网络物理入侵检测
1、Abstract
由于车辆通常只能提供有限的处理资源,因此之前提出的解决方案都是基于规则或轻量级的机器学习技术。作者认为,这种限制可以通过通常用于资源受限的移动设备的计算卸载来解除(比如将深度学习模型部署到云平台上)以这种方式增加的处理资源允许访问更高级的技术。以一辆小型四轮机器人陆地车辆为例,展示了卸载基于深度学习的连续入侵检测任务的实用性和优越性。这种方法比标准的机器学习技术更一致地实现了高精确度,而且不像以前的工作那样局限于单一类型的攻击或车载CAN总线。
只使用能够提供给入侵检测系统(IDS)的非常有限的资源。一种方法是包括一个板载入侵检测模块,该模块将被离线训练,学习与自身正常行为或基于不同监测特征的不同类型的已知攻击特征相关的简单规则。这种方法可以很好地用于简单的和以前见过的攻击。它可以有较低的检测延迟和相对较高的准确性,但在遇到不寻常的情况或复杂的攻击时,有效性很差。这里评估的另一种方法是,不在板载上运行入侵检测过程,而是将其卸载到强大的外部处理系统,如云基础设施。这可以减少实际车辆的处理负载,但重要的是,它还可以利用更复杂的入侵检测技术,例如涉及深度学习。
2、Main work
作者针对入侵检测算法的建议是:将从深度学习中获益所需的大量处理工作转移到更强大的基础设施上(无论是单一服务器、云还是云)。通过计算卸载,我们指的是在不在用户当前计算环境中的更有资源的计算机上执行某些计算任务的过程。这一概念与基于云的在线取证技术[36]和[37]在Android智能手机上检测恶意软件和受污染数据有相似之处。
车载和卸载入侵检测的区别在于:推理(分析数据以确定是否有攻击)在车辆上还是更强大的基础设施上(无论是单一服务器、云还是云)
3、EXPERIMENTAL METHODOLOGY
汽车是由Arduino微控制器控制。网络接入是通过Wi-Fi或以太网电缆,远程控制通过TCP插座连接到车辆的控制板。除了与控制车辆运动相关的网络流量外,还有由车载摄像头视频流产生的网络流量以及对其驱动(平移和倾斜)的控制
Features
网络物理攻击的不利影响也可以被视为改进入侵检测的机会。在这里,我们采用了相同的方法,允许观察攻击对车辆计算、通信和物理操作的影响。确定了8个输入特征,4个与通信和处理有关,我们称之为网络输入特征,4个与物理属性有关,我们称之为物理输入特征。
每个输入功能的数据收集位置:usb连接的功率表的安培和瓦;用于振动的加速度计RMS(X, Y, Z);用Diff _L和Diff _R值表示速度的两个正交编码器;在Fedora Linux控制计算机上测量的CPU利用率、磁盘利用率和入站/出站网络流量速率
- 网络流入:接收的网络流量速率。
- 网络流出:传输的网络流量速率
- CPU: CPU的总利用率。
- 磁盘数据:向磁盘写入数据的速率。
- 加速度计:表示底盘的振动(使用加速度计测量)。一个外部设备已经连接到机箱来捕捉这些读数。
- 功率:wattup测量的车辆的总功耗能量计。
- 电流:车辆所吸取的整体电流。
- 攻击标签:这是地面真相标签,它说明在特定的时间点是否有攻击。这是用来训练模型和评估其性能
四、《Intrusion Detection System Using Deep Neural Network for In-Vehicle Network Security》
基于深度神经网络的车载网络安全入侵检测系统
1、Abstract
以往的入侵检测方法可能只对设计阶段已经考虑过的特定威胁模型有效。为了解决这一问题,本文采用了基于机器学习的入侵检测技术,主要针对常规通信网络。其思想是捕获数据的底层统计特征,并使用它们来检测任何恶意攻击。提出了利用人工神经网络(ANN)和支持向量机对攻击类型进行分类的入侵检测方法。
本文提出了一种基于深度神经网络结构的入侵检测系统,以保证车载网络(如CAN网络)的安全。该技术对高维的CAN报文数据进行降维训练,找出正常报文和攻击报文的底层统计属性,在防御时提取相应的特征来识别攻击。这篇工作首次将深度学习结构应用于车载网络的入侵检测中,这与早期基于ann的入侵检测方法不同。具体地说,作者使用无监督深度信任网络(DBN)前训练方法来有效地训练初始化深度神经网络的参数。随后对参数进行调整,以便使用监督学习获得更好的分类结果。
2、Main work
这篇文章主要是针对车辆Can总线协议来进行了一项工作,考虑Can协议中的data字段(8bytes),然后考虑每位出现1的概率,针对这个来学习,比较偏向于对协议本身的学习。
五、《Network Intrusion Detection System Using Neural Network Classification of Attack Behavior》
基于神经网络攻击行为分类的网络入侵检测系统
1、Abstract
本文针对探针攻击或侦察攻击(端口扫描和主机扫描)。本文采用一种智能系统,通过将攻击的时间行为嵌入到TDNN神经网络结构中来最大化网络攻击的识别率。该系统由五个模块组成:数据包捕获引擎、预处理器、模式识别、分类和监控预警模块。
本系统采用主成分神经网络进行攻击识别,并通过一个分类模块将攻击分为主机扫描攻击和端口扫描攻击。我们已经在真实环境中测试了该系统,它能够检测到所有攻击。此外,使用DARPA数据集测试了该系统并与SNORT进行了比较。我们的系统在识别率和吞吐量方面优于SNORT。
六、《Empowering Reinforcement Learning on Big Sensed Data for Intrusion Detection》
基于大感知数据的入侵检测增强学习
1、Abstract
本文提出了一种大数据驱动的无线传感器网络入侵检测方法,在混合入侵检测框架上利用强化学习技术。我们研究了RL-IDS的性能,并将其与之前提出的基于自适应机器学习的IDS (AML-IDS)即自适应监督和集群混合IDS (ASCH-IDS)进行了比较。实验结果表明,RL-IDS在检测成功率、正确率和查全率上均可达到≈100%,而ASCH-IDS的正确率仅略高于99%。
七、《A Deep Learning Based Artificial Neural Network Approach for Intrusion Detection》
基于深度学习的人工神经网络入侵检测方法
1、Abstract
本文研究了深度神经网络作为一种分类器对不同类型的入侵攻击的潜在能力。并与支持向量机(SVM)进行比较研究。实验结果表明,利用深度神经网络进行入侵检测的准确率是令人满意的。
2、Main work
在本文中,作者分析了一个包含黑客所进行的各种攻击信息的数据集,并基于这些参数,试图预测黑客将使用的攻击类型。数据集从UCI机器学习库中获得。在本工作中采用了一种基于神经网络的深度学习方法来预测不同类型的IDS攻击。具体而言:作者使用了一个多层前馈网络来表示一个IDS的深度学习概念。前馈网络包括输入层,约400个隐层神经元和输出神经元,所使用的激活功能有整流器激活功能和softmax激活功能。
在支持向量机(SVM)中也使用了IDS集,并将其结果与神经网络的结果并置。用支持向量机得到的结果与用神经网络得到的结果是互补的。结果表明,所得结果令人满意。
八、《Accelerated Deep Neural Networks for Enhanced Intrusion Detection System 》
用于增强入侵检测系统的加速深度神经网络
1、Abstract
深度学习是一种强大的工具,通过它可以进行彻底的包检测和攻击识别。神经网络的并行计算能力使深度神经网络(Deep neural network, DNN)能够以更快的性能有效地查看网络流量。本文提出了一种快速识别网络异常的DNN体系结构。利用NSL-KDD数据集计算训练时间,分析检测机制的有效性。
2、Worth recording
SRI国际[15]公司的Denning公司提供了入侵检测专家系统的解决方案。它采用了一种双重方法,一个基于规则的专家系统来检测已知类型的入侵,以及一个基于用户、主机系统和目标系统配置文件的统计异常检测组件。随后,该组织又发布了新版本的“下一代入侵检测专家系统[16]”。随着DARPA在1998年和1999年与MIT联合发布的入侵检测评估[17],在信息安全中使用异常检测的概念成为主流。在[18]中表明DARPA的数据集不适合模拟实际的网络系统。这就需要开发用于IDS开发的新数据集。在入侵检测系统的开发中使用了多种机器学习技术。在[19][20]中详细讨论了每种技术及其优缺点。在这些调查中,一种很有前途的IDS机器学习技术是神经网络。神经网络由一组动作组成,通过一组简单的处理单元或节点和它们之间的连接,将一组输入转换为一组搜索输出。采用基于监督学习技术的多层感知器[21]和基于无监督学习技术的自组织映射[22]开发了入侵检测系统。基于误用检测模型[23]和异常检测模型[23]的神经网络是提高IDS性能的有效方法。一些研究人员利用不同的现有数据集对他们开发的IDS[24]进行性能评估。
[25]研究表明,现代入侵检测系统难以处理高速网络流量。其他人[26]已经展示了攻击者如何利用这一事实,在执行攻击时用无关信息重载IDS来隐藏他们的攻击行为。
3、Main work
(1)Pre-processing
基于神经网络的分类只使用数值进行训练和测试。因此需要一个预处理阶段来将非数值转换为数值。预处理的两个主要任务是:
- 将数据集中的非数值特征转换为数值。特征2、3、4(协议类型、服务和标志)是非数值的。
- 将数据集结尾的攻击类型转换为数值类别。赋值1为正常数据。其中2、3、4、5分别为DoS、Probe、R2L、U2R攻击类型。
(2)Normalization
由于NSL-KDD数据集的特征值要么是离散的,要么是连续的,特征值的范围是不同的,这使得它们无法进行比较。因此,我们使用min-max归一化[41]对特征进行归一化,将每个特征的所有不同值映射到[0,1]范围内。
(3)Deep Neural Networks
深度神经网络(DNN)从输入中学习分层表示,以完成必要的分类任务。一个DNN由卷积层、最大池和全连接层组成。通过最小化训练集上的误分类误差,对所有可调参数进行联合优化。DNN是一种前馈人工神经网络,在输入和输出之间有一层以上的隐藏单元。这些多重隐藏层对于解决复杂数据的分类问题非常有用。每一层都可以学习不同抽象级别的特性。DNN的多个隐藏层的训练在实践中是很困难的。
- 低层和高层的梯度大小是不同的
- 随机梯度下降法很难根据目标函数的地形或曲率找到一个好的局部最优
- 深度网络的参数较多,能够记忆训练数据,但泛化效果不佳
为了使训练过程有效,我们选择一次训练一层DNN。这是通过为每个期望的隐藏层训练一种被称为自动编码器的特殊类型的网络来实现的
自动编码器有许多有趣的应用,如数据压缩、可视化等。研究人员[14]观察到,自动编码器可以作为一种“预训练”神经网络的方法。DNN的训练前过程分为以下几个步骤:
- 训练前步骤:使用无监督数据,贪婪地每次训练一层浅层自动编码器序列
- 微调步骤1:使用监督数据训练最后一层
- 微调步骤2:使用反向传播使用监督数据微调整个网络
这种训练前的想法**可以改善DNN;**也许是因为预训练是一次一层完成的,这意味着它不会遭受完全监督学习的困难。
自编码器学习算法,这是一种从未标记数据中自动学习特征的方法。尽管这种方法本身并不能与最好的手工设计功能相竞争,但它可以学习的功能确实被证明对[45]的一系列问题是有用的。
4、Conclusion
本研究主要集中在利用加速器平台处理庞大的数据集,找出输入数据集上的复杂关系,以识别不同的攻击类型。基于DNN的加速入侵检测系统就是为此而开发的。实验结果表明,该算法能够识别输入数据之间的关系。这说明基于DNN的IDS在入侵检测中是可靠和高效的,能够识别出需要训练样本数的特定攻击类别(见表3中的DoS和Probe攻击),而不能有效地对需要训练样本数最少的攻击类型进行分类(见表3中的R2L和U2R)。
九、《Intrusion Detection Using Convolutional Neural Networks for Representation Learning》
基于卷积神经网络的表示学习入侵检测
1、Abstract
基于深度学习的入侵检测方法在表示学习中得到了广泛的尝试。然而,在各种用于入侵检测的深度学习模型中,很少有卷积神经网络(convolutional neural networks, CNN)模型。在这项工作中,我们提出了一种NSL-KDD数据的图像转换方法。通过提出的图形转换技术,卷积神经网络自动学习图形NSL-KDD变换的特征。我们使用NSL-KDD Test+和Test−21进行二值分类实验,评估图像转换方法的性能。证明了CNN的不同结构进行比较。在两个NSL-KDD测试数据集上,CNN的表现优于大多数标准分类器,尽管CNN并没有完全改善现状。实验结果表明,CNN模型对攻击数据的图像转换非常敏感,可以用于入侵检测。
2、
近年来,深度学习发展很快,在很多场景[11]中都取得了很好的效果。许多学者尝试使用深度学习技术进行异常检测。提出了各种类型的用于异常检测的深度学习方法。这些技术包括:Self -Taught Learning, Deep Belief Networks, Auto Encoder, LSTM等[5 - 7,14,16]。这些特征学习方法和模型在一定程度上取得了成功,并匹配或超越了最先进的技术。