APP下载

基于白名单机制的工控分级入侵检测算法*

2018-05-05尹丽波孙玉砚孙利民

通信技术 2018年4期
关键词:白名单网络流量网络服务

严 彪,尹丽波,应 欢,孙玉砚,陈 新,孙利民

(1.中国科学院信息工程研究所物联网安全技术北京市重点实验室,北京 100093;2.中国科学院大学 网络空间安全学院,北京 100049;3.国家工业信息安全发展研究中心,北京 100040;4.中国电力科学研究院有限公司,北京 100192)

0 引 言

工业控制系统(Industrial Control System,ICS)是一类用于工业生产的控制系统的统称[1]。它包含监视控制与数据采集系统(Supervisory Control and Data Acquisition,SCADA)、分布式控制系统和其他一些常见于工业部门与关键基础设施的小型控制系统(如可编程逻辑控制器)等。工控系统涉及电力、交通、水利、制造业、国防军工等传统国家关键基础设施的核心[2]。全球多数国家都将工业控制系统的网络攻击列为国家间战略制约手段[3]。可见,工控系统的安全问题已直接关系到国家关键基础设施的安危。

ICS在最初发展的几十年里完全独立,与外界很少甚至没有通信,整个工业控制网络处于相对封闭的状态,外部的攻击者很难进入工业控制网络实施攻击。但是,随着互联网技术的发展,网络化的工业控制系统成为当下工业领域发展的趋势。由封闭转向开放的变化,导致ICS原有的“天然屏障”被打破,随之便带来了信息泄露、非法访问、恶意代码注入等安全问题。据ICS-CERT的统计数据显示,针对ICS的攻击事件由2013年[4]的73件上升到2015年[5]295件,且这个数字还在不断增加。

早在1986年Denning就设计并介绍了专门检测攻击事件等安全威胁的“入侵检测模型[6-7]”。到现在,入侵检测技术已经在传统IT网络中得到了广泛应用,其价值得到了充分认可。但是,在工业控制系统中,由于实时性要求高、资源受限、更新困难、私有协议众多等特点,导致传统的入侵检测算法很难直接在工业控制系统中得到应用。近年,针对工业控制系统自身的网络配置和行为模式的入侵检测技术越来越得到安全学者的关注。GOETZ[8]等人根据设备自身的XML文件构造设备配置信息,获取设备允许的IP地址、协议端口号和命令等信息,形成了合法配置列表,然后利用收集设备的配置信息与已形成的合法配置列表进行比对,及时发现重要信息的异常变动。Caselli[9]等人从楼宇智能设备的说明书和配置文件中提取设备允许进行的操作、访问地址等信息,转换成约束其行为的规则用于入侵检测。这类研究的可行性已经在对实际工控系统的测试中得到了验证[10-11]。

本文提出的基于白名单规则的工业控制网络入侵检测算法,使用白名单规则对工业控制系统网络结构、工控业务逻辑的行为模式进行描述,并结合分级检测算法对各类异常进行检测。同时,提出了白名单规则生成算法,提高了该检测技术在实际使用过程中的可用性与移植性。

本文第1章介绍基于白名单机制的分级入侵检测模型,阐述整体的检测框架与工作流程;第2章讲解各级别白名单入侵检测的实现原理,并从白名单生成与检测算法两个方面进行详细介绍;第3章介绍实验测试环境,同时对测试结果进行分析;最后,对本文提出的入侵检测算法进行总结,并给出了下一步改进计划。

1 基于白名单机制的分级检测模型

工控网络流量大致包含3类信息:网络实体信息、工控操作信息以及工控操作流程信息。网络实体信息由工控网络数据包中的5元组(源IP、源端口、目的IP、目的端口、传输层协议)体现,包含工控网络中出现的主机IP地址、网络服务以及网络连接等信息。工控操作信息包含工控协议应用层的网络数据包,通常包含有操作码、访问地址以及数据信息。工控操作流程信息主要体现在工控流量数据包出现的时间与次序上。

本文提出的基于白名单的分级入侵检测模型,从以上3个角度分别建立白名单规则,从而实现对不同异常网络行为的检测。该模型使用网络实体白名单、工控操作白名单以及工控操作流程白名单3个层次对工业控制系统中网络流量的正常行为模式进行描述。检测过程中,一旦实时网络流量中的信息与白名单中的内容不相符,则认为出现了异常的网络流量,并给出对应的异常告警信息。基于白名单的分级入侵检测模型,如图1所示。

图1 分级入侵检测模型

分级入侵检测模型按照网络实体、工控操作、工控操作流程的顺序,检测实时网络流量中的攻击或异常。其中,网络实体异常检测实现对非法工控网络实体的检测;工控操作异常检测实现对合法网络实体的非法工控操作的检测;工控操作流程异常检测实现对合法网络实体的合法工控操作在不合适的上下文中出现的检测。

2 分级检测模型的实现

2.1 网络实体异常检测

网络实体检测分为网络实体白名单生成和网络实体异常检测两个阶段。其中,网络实体白名单生成阶段,从历史网络流量的数据包中识别网络主机、网络服务以及网络连接等信息,并假设历史网络流量不包含有异常数据,并将识别出网络主机、网络服务以及网络连接作为工控网络中合法的网络实体。网络实体异常检测阶段则根据上一阶段生成的白名单规则,使用异常检测算法对非法的网络实体进行检测。

2.1.1 网络实体白名单生成

网络实体白名单包括主机白名单、网络服务白名单以及网络连接白名单3种类型。主机白名单包含所有合法的工控网络设备的IP地址。在白名单生成过程中会将历史网络流量中出现的所有IP地址集合作为主机白名单。网络服务白名单包含工控网络所有的网络服务。白名单生成过程中会通过服务识别技术识别所有的工控网络服务。每个工控网络服务由服务器IP地址、服务端口地址以及传输层协议组成,并将其集合作为网络服务白名单。网络连接白名单包含工控网络中所有合法的网络连接,每个合法网络连接由工控网络服务和客户端IP地址组成。白名单生成过程中会统计网络数据包中所有的网络连接信息,并将其集合作为网络连接白名单。图2、图3、图4分别是主机白名单、网络服务白名单和网络连接白名单的格式。

图2 主机白名单格式

图3 网络服务白名单格式

图4 网络连接白名单格式

2.1.2 网络实体异常检测算法

网络实体异常检测算法从实时工控网络流量中识别主机IP地址、网络服务以及网络连接信息,分别在对应的网络实体白名单中进行查找。如果查找不到,则说明是相应的网络实体异常,并给出告警信息。网络实体异常检测,如算法1、算法2和算法3所示。

算法1:主机异常检测

if Packetip∉validipthen

alert(“forbidden host”)

end if

算法2:网络服务异常检测

if Packetservice∉Validservicethen

alert(“forbidden service”)

end if

算法3:网络连接异常检测

if Packetconnection∉Validconnectionthen

alert(“forbidden connection”)

end if

2.2 工控操作异常检测

工控操作检测针对工控设备进行非法操作和非法地址访问的检测。工控操作检测分为工控操作白名单生成和工控操作异常检测两个阶段。其中,工控操作白名单生成阶段从历史网络流量筛选出工控协议数据包,并从中提取操作码和访问地址信息。同样地,假设历史网络流量不包含有异常数据,将工控数据包中出现的操作码和访问地址作为合法的工控操作,并生成工控操作白名单规则。工控操作异常检测阶段则根据上一阶段生成的白名单规则,使用对应的异常检测算法,对非法操作和非法地址访问进行检测。

2.2.1 工控操作白名单生成

工控操作白名单包括工控操作码白名单和访问地址白名单2种类型。工控操作码白名单是每个工控设备(如PLC、RTU)的合法操作集合。白名单生成过程中会从工控数据包中提取对特定工控设备的操作码,并将其集合作为特定工控设备的操作码白名单。另外,对于读写功能码,工控数据包会包含对应的访问地址信息,将访问地址按可读/写进行类,得到特定工控设备的可读访问地址范围和可写访问地址范围,并将其作为访问地址白名单。图5、图6分别是工控操作白名单和工控访问地址白名单的格式。

图5 工控操作白名单格式

图6 工控访问地址白名单格式

2.2.2 工控操作异常检测算法

工控操作异常检测算法首先从工控网络数据包中提取工控操作码,然后在访问的工控设备的操作码白名单中进行查找。如果查找不到,则说明是操作异常,同时给出工控操作异常告警。进一步地,如果工控操作是读写操作,还会提取访问地址信息,并在所访问工控设备的访问地址白名单进行查找。如果查找不到,则说明是访问地址异常,给出工控访问地址异常告警。工控操作异常检测,如算法4、算法5所示。

算法4:工控操作异常检测

if ICSPacketfunc∉validfuncthen

alert(“forbidden function code”)

end if

算法5:工控访问地址异常检测

if ICSPackaddr∉Validaddrthen

alert(“access forbidden address”)

end if

2.3 工控操作流程检测

工控操作流程检测是对工控操作在时间和空间上出现的合法性的检测。工控操作流程检测同样分为工控操作流程白名单生成和工控操作流程异常检测2个阶段。其中,工控操作流程白名单生成阶段从历史网络流量中筛选出带有时间戳信息的工控协议数据包。同样地,假设历史网络流量中不包含有异常数据,针对同一工控操作,从发生时间、周期上总结特征,生成工控操作流程时间白名单和工控操作流程周期白名单。工控操作流程异常检测阶段则根据上一阶段生成的白名单规则,使用对应的异常检测算法,对工控操作的非法时间和非法周期进行检测。

2.3.1 工控操作流程白名单生成

工控操作流程白名单包括工控操作时间白名单和工控操作周期白名单2种类型。工控操作时间白名单描述的是特定工控设备的特定工控操作只能发生在特定时间段内;工控操作周期白名单描述的是特定工控设备的工控操作必须满足一定的周期性。工控操作时间白名单生成过程如下:

(1)将采集到的相同的工控数据包按照时间戳对应到时间轴(0:00—23:59)上;

(2)使用K-means聚类算法对这些数据进行聚类,初始的K值选取1~5,并将初始点均匀分布;

(3)使用轮廓系数法判定是否存在时间特性,如果存在,选出合适的值进入第4步;否则,结束;

(4)将K个簇所形成的K个时间段作为该工控操作出现的K个合法时间段,并生成如图7所示格式的白名单。

图7 工控操作时间白名单格式

工控操作周期白名单生成过程如下:

(1)记录相同的工控数据包出现的时间间隔,形成一个时间差序列Δt1,Δt2,…,Δtn;

(2)统计时间差序列的平均值Δ—t和方差σ;

图8 工控操作周期白名单格式

2.3.2 工控操作流程异常检测算法

工控操作流程检测是对特定工控设备的特定工控操作在发生时间和周期上的合法性检测。算法首先从工控网络数据包中提取其工控操作,同时记录其出现的时间。如果该工控操作存在时间限制,则在其时间白名单内查找。查找不到,则认定为工控操作时间异常,并给出工控操作时间异常告警。另一方面,如果该工控操作存在周期限制,则结合周期白名单进行判定。做法是将本次出现的时间与上次出现的时间差和合法周期进行对比,如果超出一定范围,则认定为工控操作周期异常。工控操作流程异常检测如算法6、算法7所示。

算法6:工控操作时间异常检测

if ICSPacketfunc∈limitedfuncthen

if ICSPackettimestamp∈Validtime_interval

alert(“function code time abnormal”)

end if

end if

算法7:工控操作周期异常检测

if ICSPacketfunc∈limitedfuncthen

if |ICSPackettimestamp∈ Validtime_interval|> ε

alert(“function code cycle abnormal”)

end if

3 实验验证与测试

3.1 实验环境

为了验证本文提出的方法在工控环境下的有效性,在实验室环境下仿照真实燃气管网的业务流程搭建了模拟的工控环境。利用上位机、组态软件、PLC、开关、阀门等各种类型的工控软硬件设备组成小型工控网络,其网络拓扑结构如图9所示。

图9 实验环境网络拓扑结构

检测过程中,入侵检测设备被动监听工业交换机镜像的网络流量,对网络流量进行会话解析、协议深度解析,使用算法1~算法7检验是否出现各类异常。

3.2 实验过程与结果分析

实验过程分为规则学习和异常检测2个阶段。为了保证学习阶段能够充分学习整个系统的网络流量特征,将系统稳定运行7天产生的数据作为学习样本,共生成了57条白名单规则。在检测阶段让系统运行了48个小时,期间使用自动化工具制造了多次攻击和异常事件。入侵检测系统的检测结果如表1所示。

表1 实验结果

从实验结果可以看出,该检测算法对各类攻击和异常的检测能力都能到达97%以上。特别是对主机异常和网络服务异常,检测准确率高达100%,这是因为在工控网络中很少出现主机变更和网络服务的增减。而其他类型的异常产生了一定的误报和漏报,主要是由于操作员手工干预和规则生成算法参数设置造成的。整体结果表明,该入侵检测算法对于各类攻击或异常具有较好的检测效果。

4 结 语

本文针对工控网络相对于传统IT网络的特殊性,提出了基于白名单机制的分级入侵检测算法,使用白名单规则从网络实体、工控操作以及工控操作流程3个层次,分别对工控网络的行为模式进行描述,并结合对应的检测算法对攻击和异常进行检测。实验表明,本文提出的方法能够准确、高效地检测出工控网络中出现的攻击和异常,对入侵检测系统在工业控制网络下的实施具有较好的参考价值。

随着研究的深入,工控网络流量还有更多的行为模式有待挖掘,如工控操作对应数据的特点、不同工控操作之间的关联关系等。为了对工业控制网络提供更高的安全保障,下一步研究将会着眼于使用白名单技术对这些深层的特征进行描述与检测。

参考文献:

[1] Stouffer K A,Faclo J A,Scarfone K A.Guide to Industrial Control Systems(ICS) Security-Supervisory Control and Data Acquisition (SCADA) Systems,Distributed Control Systems (DCS),and Other Control System Configurations Such As Programmable Logic Controllers(PLC)[R].Gait hersburg,Maryland,USA:National Institute of Stand ards and Technology (NIST),2011.

[2] Peng Y,Jiang C Q,Xie F,et al.Industrial Control System Cybersecurity Research[J].Journal of Tsinghua University:Science and Technology,2012,52(10):1396-1408.

[3] Miller B,Rowe D.A Survey SCADA of and Critical Infrastructure Incidents[C].Proc of the 1st Annual Conference on Research in Information, 2012: 51-56..

[4] ICS-CERT.Ics-cser Year in Review.[EB/OL].(2013-12-21)[2017-12-13].https://icscert.uscert.gov/sites/default/files/Annual Re-ports/Year In Review FY2013 Final.pdf.

[5] ICS-CERT.Incident Response Activity November 2014-december2015.[EB/OL].(2015-12-22)[2017-12-13].https://icscert.uscert.gov/sites/default/files/Monitors/ICS-CERT Monitor Nov-Dec2015 S508C.pdf.

[6] Denning D E.An Intrusion-Detection Model[J].IEEE Transactions on Software Engineering,1987(02):222-232.

[7] Denning,Dorothy E.A Lattice Model of Secure Information Flow[C].Communications of the ACM,1976:236-243.

[8] GOETZ E,SHENOI S.Critical Infrastructure Protection[M].Boston:Springer,2008:161-173.

[9] Caselli M,Zambon E,Amann J,et al.Specification Mining for Intrusion Detection in Networked Control Systems[J].Proceedings of the 25th USENIX Security Symposium.USENIX Association,2016.

[10] 程冬梅,严彪,文辉等.基于规则匹配的分布式工控入侵检测系统设计与实现[J].信息网络安全,2017,(7):45-51.

[11] Jardine W,Frey S,Green B,et al.SENAMI:Selective Non-Invasive Active Monitoring for ICS Intrusion Detec-tion[C].Proceedings of the 2nd ACM Workshop on Cyber-Physical Systems Security and Privacy ACM,2016:23-34.

猜你喜欢

白名单网络流量网络服务
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
网络服务合同的法律问题研究
基于网络服务者在侵权法中的应用分析
核电厂仪控系统安全防护策略研究及应用
UAC提示太烦 教你做个白名单
大数据环境下的网络流量非线性预测建模
2019年“移动互联网应用自律白名单”出炉
网络服务行为的可罚性
AVB网络流量整形帧模型端到端延迟计算