工业控制系统入侵检测研究综述(中)【鹏越·工控安全】

2021-02-25 15:13:03 浏览数 (1)

4 工业 IDS 研究现状

根据现有的文献进行总结,工业IDS的检测方法主要有2种:变种攻击检测和隐蔽过程攻击检测。

4.1 变种攻击检测

攻击者为躲避检测,不断更新功能或在一些攻击特征上进行修改,制作出更多的变种攻击,导致检测手段失效。对于变种小的攻击,可采用误用入侵检测技术,利用攻击族的共性特征进行检测。对于变种大的攻击,采用异常入侵检测技术,进一步提高正常行为的建模准确度,凡与正常行为不一致的都归为入侵行为。下面将介绍检测变种攻击方面的工作。

4.1.1 误用入侵检测技术

误用入侵检测技术又称基于特征的入侵检测,这一检测的前提是假设入侵者的活动可以用一种模式表示出来,入侵检测的目标是检测出主体活动是否符合这些模式。所以,误用入侵检测的关键是准确描述攻击行为的特征。

工控网的流量是具有鲜明特点的,工业现场设备通常采用轮询机制收集并上传数据,因此,会呈现出高度周期性。许多攻击会引起网络流量频域范围内的变化,包括周期爆发频率的出现或消失、周期爆发持续时间的变化、噪声总量增加等。Liu等在爱尔兰都柏林国立大学(UCD)实验台上利用频率检测来检测网络攻击对智能电网的影响。测试电网模拟了3个水电站发电厂,当入侵者进入其中一个变电站局域网后,会控制IED,断开输电线,使该发电厂断开,剩余2个发电厂必须满负荷发电,使发电厂正常运行,这就使变电站频率降低。所以针对该攻击应找出相应的策略,阻止网络攻击,断开入侵者连接,使其重新恢复到稳定值。Barbosa等对SCADA流量的特性进行研究分析,并根据常见的攻击类型的特点,得出基于网络流量的周期性检测方法,不仅可以成功检测出网络中的攻击,如拒绝服务(DoS)攻击、扫描信息攻击,还能在识别出攻击后,根据数据流量周期的变化来检测异常流量。实验中,Barbosa利用快速傅里叶变换(FFT)和滑动窗口形成可视化的检测模型,其检测效率高,但在准确率上存在较大的问题。而工业网络的周期性存在不确定性,由于控制网络除了实时数据轮询功能,还有配置功能,在配置期间网络流量的周期性无法保证,容易引起误报。因此,单纯依靠周期性进行检测,将会产生很高的误报率。为此,侯重远等提出了工业网络流量异常检测的概率主成分分析法(PPCA),分析了误报的原因是源于随机突发流量,建立了工业控制网络流量矩阵的概率主成分分析模型,并描述了随机突发流量对主成分分析法(PCA)的影响;接着利用变分贝叶斯理论对PPCA模型的秩进行推断,通过检测秩的变化判断异常流 量,从而抑制随机突发流量对异常检测的干扰。实验中使用网络分析仪采集ProfiBus流量,使流量数据通过OPCTools工具箱导入仿真软件,按照流量异常检测算法来进行异常检测,并模拟震网病毒在传播和攻击时的网络通信行为来实现对攻击流量的模拟,证实了基于PPCA模型的算法能有效降低误报率,平均下降率达到32%,这种方法仅在攻击流量特征与正常业务类型差异比较大的情况下才有指导意义。

工业系统中的攻击方法已经转向慢渗透方式,仅统计网络流量特性已不能满足需求,研究者们开始采用基于行为的分析方法进行检测。Vollmer等应用一种多情感的遗传算法去自动提取异常行为的规则,可以为已知入侵行为建立规则。它与过去的网络入侵检测相似,但内容上有所不同。过去的工作是开发规则集,从未知行为中分离出已知行为。而此工作是通过使用遗传算法,为基于行为的系统检测到的特殊异常生成一组最优的IDS规则,此规则要满足完整性规则匹配、部分规则匹配和语法检查。通过输入数据流量分组,利用遗传算法,输出一组规则以及各自的适应值;然后利用Nemesis、PackETH和ISIC这3个工具创建2套测试网络数据,与生成的规则进行匹配,对33804个测试分组进行测试,只误报了3个数据分组,说明此算法生成的规则的误报率很低,算法的精确度非常高。但是该方法对于每一种攻击至少生成3条检测规则,有些行为多达8条规则,影响了检测性能。Morris等针对ModbusRTU/ASCII协议,设计了一种基于Snort软件的入侵检测方法,利用Snort规则对上行数据和下行数据进行检测,该方法可以有效检测Modbus协议中出现的非法数据分组,但对检测规则的制定要求非常高。Morris于2013年对其进行了改进,仔细分析了Modbus协议的漏洞,提出了50个基于入侵检测系统的签名规则,检测精度得到了很大的提升。

Hong等综合基于特征检测和行为检测的优点,提出一种基于主机和网络的集成式异常检测系统,基于主机的异常检测通过分析日志信息以检测应用层攻击(如用户重复错误口令、非法拷贝文件等),基于网络的异常检测,检测多播信息,以检测网络层的异常行为攻击。在变电站WSU网络安全试验台上测试,使用试验台模拟重放攻击,通过篡改数据分组、中间人和DoS等不同类型的网络入侵,来验证提出的异常检测算法。测试结果表明基于主机的异常检测系统的误报率(FPR)和漏报率(FNR)分别为0.013%和0.02%,基于网络的异常检测系统的FPR和FNR分别为0.013%和0.016%。由于基于主机的异常检测取决于生成的日志,而基于网络的异常检测不能检测未知攻击,所以为了提高检测率,基于主机的异常检测需要分析更多的系统日志,基于网络的异常检测需要周期更新算法。

误用入侵检测性能的比较如表1所示。它的关键问题是入侵行为的获取和表示,这种检测方法的优点是检测正确率高,缺点是变种攻击行为的检测能力有限。但是这个缺点并未影响其实际应用价值,由于实际情况中有些变种攻击仍使用部分已知攻击方法,该技术还是可以有效检测大部分变种攻击行为的。

4.1.2 异常入侵检测技术

异常入侵检测技术是检测变种攻击的另一重要途径,它能够建立用户或系统的正常行为轮廓,在早期的异常检测系统中通常用统计模型,通过统计模型计算出随机变量的观察值落在一定区间内的概率,并且根据经验规定一个阈值,超过阈值则认为发生了入侵。后来很多人工智能技术应用于异常检测,如神经元网络技术和数据挖掘技术等。

Vollmer等提出了基于EBP神经网络的规则学习算法,运用EBP神经网络作为训练网络,按照Snort规则向量的形式,从ICMP数据分组中提取数据特征(向量)作为输入提交给训练网络,让网络学习规则,实验中针对ICMP数据分组提取了129个Snort规则,并分为7类,此网络能够以60%的正确率识别出DoS、混合行为和企图探测的网络攻击行为。Linda将此方法结合基于动态窗口的数据分组特征提取技术,并使用LM算法将反馈神经网络中的误差最小化。实验中使用标记的数据分组进行规则的学习,之后使用攻击分组进行探测,检测率达到100%。但其并没有根据现实场景的攻击类型进行多样化测试来进一步说明检测的准确性,也使其成为今后的研究实验方向。2014年,Vollmer等又使用了一种低交互式的蜜罐技术(Honeyd),其可以在一台简单的主机上模拟数千台主机而减少硬件成本,目的是在较短的时间内收集信息,确认攻击者和可能破坏的网络平台。使用主动扫描工具Nmap和被动扫描工具Ettercap收集信息进行蜜罐的配置;根据这些配置信息,Honeyd可以对虚拟主机进行自动配置和更新。文献[23]使用基于异常的检测方法,用户定义的网络行为被认为是正常的,任何针对蜜罐的行为被认为是不正常的。Vollmer用一个小型校园网络作为测试场景,所有虚拟的主机设备都能够被识别,并且模拟主机的IP都会进入到异常检测系统中。如果系统认为有新的IP,则它的一切行为都是异常的,并会被记录下来。但是Honeyd建立的虚拟主机的响应数据分组只有ICMP、TCP和UDP,如果是真实的设备响应,则种类会更多。而且,虚拟的主机对于IP中的选项字段也没有正确响应,这都容易暴露蜜罐系统的存在。

Tsang等提出多主体的IDS架构,用于大型交换网络中的分布式入侵检测和预防控制。采用蚁群算法和无监督特征提取的方法,重点讨论如何提高聚类算法的精度和如何针对高维数据进行降维,为ICS中的入侵检测提供了一种多主体的分布式控制检测机制。实验中采用KDDCup99IDS数据集评估训练模型,共311029个记录。表明提出的蚁群聚类模型ACCM能提高现有的基于蚁群聚类算法的整体性能,能自动确定聚类数;为了对高维数据进行降维,评估比较了4个无监督特征提取算法,即主成分分析算法、K-means算法、E-M算法和独立成分分析(ICA)算法。其中,应用ICA能从网络数据中提取潜在特征,能加强聚类结果。结果证明ACCM应用ICA算法能有效检测已知或未知入侵攻击,有着较高的检测率,在识别正常网络流量上,具有较低的FPR。Gao等提出了一组命令和响应注入、DoS攻击,让商业SCADA系统遭受攻击,使用SCADA网络事务数据记录器,捕获与这些攻击相关的网络流量,然后让捕获的网络流量结合SCADA控制系统正常运行捕获的流量,验证基于IDS的神经网络,也就是采用设备地址、MTU命令、RTU响应频率和物理特性等作为特征,应用神经网络模型检测命令和响应注入攻击。Gao等在密歇根州立大学的SCADA测试床上进行了攻击测试,在正常操作下,抓取的数据分组有12000个,当遭受中间人攻击时,抓取的数据分组有5000个,FPR为0~6.2%,FNR为0~8.9%;在DoS攻击情况下,FPR为0~8.2%,FNR为0~2.0%;重放攻击的FPR为45.1%,FNR为42.7%;其中,中间人攻击和DoS攻击的检测率非常高,但重放攻击的检测率非常低,这说明特征的选取是建立异常入侵检测模型的难点。

Kwon等针对IEC61850协议,提出了基于行为的IDS,它使用多个网络特性的统计分析,得到高精度的检测。采用从智能变电站环境中捕获的真实的网络数据流量,通过分析IEC61850网络流量,利用静态特征和动态特征,来检测异常流量。测试了288个场景,包括261个正常操作场景,以及27个已知攻击,如扫描攻击、DoS攻击、GOOSE攻击和MMS攻击等;结果表明,提出的算法不仅能检测到24个已知攻击,还能检测出未知攻击,即使漏报了3个攻击,但是并无误报,并且算法精确度很高,为99.0%。所以,该基于行为的IDS能有效识别出给定的实验中所有异常数据,并且无误报,检测率高。但是实验缺乏开放的可用网络数据集,无法比较其性能和精确度。Hadziosmanovic等也比较了4种基于行为的IDS模型(PAYL、PSEIDON、Anagram和McPAD),使用n-gram方法提取特征,测试数据集包括Modbus协议数据和局域网协议数据,结果显示这4种IDS在Modbus协议数据集上有比较高的检测精度,但是在LAN数据集上的检测精度比较低,进一步说明工控网与传统网络的IDS特征选择方法有较大的区别。

此外,Barbosa等提出使用服务器的轮询方式来模拟SCADA周期性的网络流量,从而通过流量之间的关系建立正常的行为模型,并且可以依据此方法建立异常行为模型。Carcano等提出了基于状态的入侵检测系统,它能够检测复杂攻击,并为SCADA架构设计了一个IDS原型,采用单分组签名技术和状态分析技术2种检测方法来分析Modbus数据分组。其原型包括3个模块:负载系统(LS)、状态控制器(SC)和规则分析仪(RA)。还提出了一种规则语言来描述Modbus签名和现场设备状态。为验证SCADA、IDS的效率和有效性,实验执行了2种测试,即单分组签名检测和临界状态检测来进行检测比较,结果表明,提出的IDS能够检测所有的潜在威胁。但Barbosa等定义的系统临界状态过于简单,所以能够检测的入侵行为类型较少。Parvania等使用网络入侵检测系统来保护混合配电系统(ADS),通过其网络流量特征进行数据分组协议合法字段的规则定义(IP地址,有效的功能码)。ADS为减少出现故障的恢复时间,启用了自动化恢复过程(FLISR),此自动化过程拥有一套严格的行为过程特征,在研究其配电系统的业务逻辑以及FLISR的基础上,确定了配电系统的FLISR过程操作,以及自动化操作的周期性规则定义,并且在特定环境的基础上,提出了可通过观察配电系统的电流、电压、功率流的守恒值来建立正常的特征基线,从而判断异常。实验使用2个PLC来模拟系统控制器,并验证了DoS攻击和中间人攻击。但实验由于只观察了一个通信链路,并没有充分验证通过观察电流、电压等物理定律来判断是否为攻击,这也成为他们今后的研究工作。

Hong等建立了网络安全测试台,包括电力系统模拟、变电站自动化和SCADA系统,并在测试台上进行了评估;提出的网络安全框架的主要任务是实时监控、异常检测、影响分析和缓解策略。而且还定义了网络安全基准测试,提出了2种异常检测算法,这2种算法在爱尔兰都柏林国立大学(UCD)的试验床上得到检验,并且计划通过ICCP连接UCD和ISU(爱荷华州立大学)2个测试台。

Zhou等为工业过程自动化提出了基于多模式的异常检测系统,能够从时间和空间上检测到PCS中的异常,提出的异常检测包含基于通信的异常检测(CAD),用N-gram序列检测通信状态;基于节点的异常检测(NAD),使用n元序列和统计模型进行检测,通过检测时间来判断异常,以及基于应用的异常检测(ADD)。此外,还设计了一个基于智能的隐马尔可夫(HMM)模型,以识别连续异常警报的攻击。最后,在OPNET环境的仿真平台上,使用TEP控制系统对入侵检测系统的检测精度和实时性能进行评估,即通过对各类攻击设置不同的攻击频率,测试运行时间,来检测不同攻击频率下的精确度。实验采用了欺骗攻击、篡改攻击和DoS攻击,为训练HMM模型,还设计了故障注入(物理故障、通信故障和计算故障),使系统正常运行、注入攻击、注入故障,得到的训练数据集包含7200个观察值,测试数据集包含3600个观察值。分析模拟结果,证实PCS中的攻击在宏周期内能被快速检测出,误判率(FPR和FNR)低于1.61%,并且提出的IDS能检测到未知攻击,其对TEP控制系统的性能几乎无影响。

为解决工业控制系统中通信行为的异常检测问题,Shang等使用改进的单类SVM建立了正常的通信行为控制模型,设计了基于粒子群算法的PSO-OCSVM来优化参数。该方法建立的入侵检测模型,依据正常的Modbus功能码序列,能够识别异常的ModbusTCP流量。在模拟实验中,当系统运行时,操作员通过WireShark抓取ModbusTCP流量数据分组,丢弃无Modbus功能码的数据分组。使用Modbus功能码作为特征向量,在提取特征后,Shang等挑选了180个Modbus功能码序列,其中的140个作为训练样本,剩余的40个为测试样本。在PSO-OCSVM中,选用的种群大小为20,进化代数为50,利用交叉验证方法可以得出OCSVM的精确度。模拟结果表明,PSO优化过程效率很高。测试样本的分类精度达到96%,训练样本的分类精度达到100%,说明OCSVM有较强的学习能力和泛化能力。提出的PSO-OCSVM能满足工业控制系统的异常检测。

异常入侵检测技术的性能比较如表2所示。由表2可知,虽然研究人员在变种攻击检测方面进行了深入研究,取得了很多优秀成果,但是这些算法还存在许多问题,最大的缺点是会产生虚警率,且结果缺乏可解释性。这主要是由于单纯地分析监控特征,忽略了其中的形成机理,造成特征表达信息的缺失。因此,工业控制系统中的变种攻击检测技术还需要进一步地完善和发展。

4.2 隐蔽过程攻击检测

过程攻击是指违背了生产过程的攻击。命令虽然符合协议规范,但违背了工控系统的生产逻辑,使系统处于危险状态。检测隐蔽的过程攻击方法可分为2种,一方面需要提取更多的上下文信息,如果信息量不充分,那么就可能存在漏报现象;另一方面,要获取工业控制系统中的领域约束逻辑,这是检测隐蔽过程攻击的关键,同时,也是一个非常耗时的过程。

Carcano等考虑到配置命令必须通过现场总线传递给PLC,被动地监测总线流量可以发现异常,提出了基于状态的SCADA入侵检测系统,该系统包含3个模块:负载系统、状态控制器和规则分析器。设计了一种描述语言表达的智能电网,收集PLC和RTU的内部寄存器值、数字量及模拟量的输入和输出,为检测特征增加了语义描述,通过关键状态距离度量值能够检测隐蔽攻击(也称水母攻击),这种攻击由合法的SCADA命令组合形成,但组合后的命令能导致系统进入危险状态。

与Carcano提出的语义检测类似,Lin提出了分布式网络入侵检测语义分析框架,通过评估执行控制命令时系统的状态,以此揭露攻击者的恶意意图。语义分析框架包括:

1)从SCADA网络数据分组中提取控制命令;

2)从变电站中的传感器获取测量值;

3)触发故障分析软件去估计可能的执行命令结果。

在IEEE30总线系统上对此方法进行评估,实验证明通过打开3个传输线路,即恶意地手动控制命令,攻击者可以通过传统的故障分析避免检测,立即使测试的IEEE30总线系统处于不安全状态;语义分析能花费很少的时间提供可靠的恶意命令监控和检测。然后对其进行性能评估,主要是测量分析关键命令的执行时间和网络吞吐量,在测量执行时间中进行了网络监控和触发故障分析,其中故障分析导致了IDS性能下降,而提出的语义分析主要依靠2个特点来保证实时性:

1)电网中许多设备的关键执行命令是手动执行的,因此,控制命令

的间隔是分钟级的;

2)关键命令的类型和数量有限,因此,IDS语义分析计算量小。

Hadziosmanovic等开发了一种基于语义的网络IDS。采用了3个步骤确定特征及语义信息。

1)确定了24个关键特征变量;

2)基于对话提取告警、控制命令等信息,增加特征变量的语义信息;

3)确定变量间的相关性,即一组变量可以从不同角度描述一个设备,以此增加语义关联信息。

作者的模型可以有效检测部分过程攻击,但对于特征的语义描述还不充分,下一步的工作将是获得更多的上下文信息,包括更多的结构协议和更多的工程配置文件。

文献一直致力于航空、医疗、电网等工业网络中的IDS研究。文献为医疗领域中的IDS系统增加了丰富的领域语义信息,为医疗网络物理系统(MCPS)的医疗设备中嵌入的入侵检测提出了一种基于行为规则规范技术。在医疗系统中,将医疗的行为规则转换为状态机,并基于此,去检查行为偏差。以生命体征观察器(VSM)医疗设备为例,首先规定行为规则集;接着,将行为规则转化成状态机;然后,基于攻击原型,如鲁莽攻击、随机攻击和伺机攻击,收集合规度数据,确定合规度分布参数,从IDS性能评估生成的ROC曲线中估算FNR和FPR。实验证明,所提出的方法能检测出低于5%的鲁莽攻击者,以及低于25%的随机攻击者和伺机攻击者。通过比较分析,证实了提出的基于行为规范的IDS技术要优于现有的2项基于异常的用于检测异常病人行为的技术。

隐藏式过程攻击检测方法如表3所示,从表3可以看出,检测隐蔽的过程攻击已经成为近年来工业IDS的研究热点,避免漏报和语义分析是关键。如何设计新的算法,提升过程攻击的检测精度是需要进一步研究的内容。(未完待续)

文/赖英旭,刘增辉,蔡晓田,杨凯翔

(转自: 通信学报)

0 人点赞