赵贵成,程 鹏,王文海
(浙江大学 控制科学与工程学院,浙江 杭州 310027)
工业控制系统(Industrial Control System, ICS)是由控制设备和工业网络共同组成的稳定系统,其中控制设备包括工业主机、控制器、传感执行设备与智能电子设备等,现代工业网络采用以太网、现场总线等通信技术。ICS通常应用于化工、冶金等重工业以及污水处理、电力配送、轨道交通调度等国家关键基础设施领域,扮演着控制核心的角色。随着工业设备智能化以及工业以太网的广泛应用,工业网络的开放连接性逐渐增强,同时也面临着越来越严峻的安全形势,在互联网病毒和木马面前就显得极其脆弱。而2010年“震网”攻击事件、2015年的“乌克兰大停电事故”等针对工控系统发动的高级持续威胁(Advanced Persistent Threat, APT)也给工业网络安全敲响了警钟。根据卡巴斯基工控安全实验室的最新研究报告[1],2017年上半年超过30%的工控计算机曾遭受来自因特网和可移动设备的攻击。
监控与数据采集(Supervisory Control And Data Acquisition, SCADA)系统是典型的现代工业控制系统,包括企业管理网络、生产调度与监控网络和现场控制网络三个部分。这三层网络通常采用以太网技术相互连接,其中现场控制网络层是工业网络中最为特殊的部分,一方面由于该层和被控对象直接相连,是信息系统与物理系统的边界,另一方面该层网络应用多种与控制设备相关的工业应用层协议,是工业网络安全的关键所在。而攻击者可轻易通过网络入侵控制系统,获取操作权限并改变被控对象和生产过程,使系统处于危险状态,如污水溢出、油气管道爆裂或铀浓缩离心机共振等。
入侵检测作为一种保护手段,通过识别系统中的异常行为模式,可以发现潜在威胁,从而增强防御能力。由于入侵检测系统(Intrusion Detection system, IDS)的部署通常不会改变原有控制系统的结构,而且对主机和控制器没有特殊的需求,具有较强的适用性,因此被广泛应用于工控系统安全保护的研究中。现场控制网络中部署IDS的结构如图1所示,在使用工业以太网的控制网络中利用交换设备可获取所有设备的通信数据,根据工业通信协议,可通过多种解析手段实现对设备行为和对象数据的解析和检测。
图1 入侵监测系统部署结构图
在工控网络入侵检测领域,还没有统一的分类标准,现有方法大多借鉴于计算机领域。目前认可度较高的是2014年MITCHELL R等人[2]关于物理信息系统入侵检测研究综述中的分类方法,根据检测技术的不同将入侵检测分为误用检测和异常检测。误用检测利用对已知恶意行为的知识,通过匹配特定特征的方法实现对入侵和攻击行为的识别。异常检测需要利用工控系统在正常运行状态下的行为特征建立参考模型,在实时检测时,根据数据解析结果与正常模型的偏离程度判定系统中是否存在攻击。目前工控系统入侵检测的研究较少涉及误用检测方法,更多集中在面向现场控制层的异常检测方法,但对于现场控制层的异常检测问题,还没有文献专门针对该领域的相关研究工作进行分类。
在国内研究中,孙利民等人[3]根据检测对象的不同将入侵检测分为基于流量、基于工控协议和基于设备状态三种类型。这种分类方法是针对入侵检测问题提出的,没有区分误用检测和异常检测这两种技术,并不适合对现场控制层异常检测这一子问题的相关研究进行分类,同时存在着无法结合现场控制网络特点、分类结果存在重叠等问题。如通过协议解析进行建模,需要利用网络流量的特征,而工控网络中对设备状态的识别又依赖于对工业协议的深度解析。
为了更清晰地认识现场控制网络异常检测的研究现状,本文根据检测目标是否和被控对象相关对现有研究进行分类。在现场控制层中,攻击者的目的是操纵被控对象和过程变量,但要实现此目的需经过工业网络扫描、木马植入、渗透与控制、指令篡改等必要入侵过程,如下图2所示。异常检测的研究者分别以被控对象的过程变量状态和入侵过程行为本身为检测目标。前者的基本观点是无论攻击者通过什么技术手段获取了系统控制权,其最终目的在于被控对象,因此必然会使过程变量产生异常;后者的关注点在于攻击行为本身,由于一个工业网络在稳定状态下的通信行为模式是相对恒定的,无论攻击者的目的在于何种被控对象,攻击行为必然会在工业网络的通信行为中留下异常的痕迹。从攻击者的角度考虑检测问题的分类方法,可以更深入地结合现场控制网络的结构特点,也更有利于入侵检测研究者设计有效的防御方法。
图2 现场控制网络威胁示意图
在工业控制网络中,以过程变量异常为目标的检测方法通常有两种不同的途径获取过程变量。一部分研究者根据对工业应用协议的知识通过深度包解析获得控制变量和被控变量,然后在此基础上建立相关变量的正常变化范围或回归预测模型。另一部分研究者假设检测器可以获得控制器的真实输入输出,通过状态估计的方法建立输入输出的预测关系,根据变量真实值和预测值的差值来判断系统是否存在异常。
2016年德州达拉斯分校的研究者David[4]在一个采用Ethernet/IP协议通信的水处理工业控制系统中抓取控制器和传感执行设备之间的通信数据包,经过对原始网络流量的深度解析获得水槽液位、管道流量、阀门开度等过程变量信息,通过计算实时检测值和变量估计值之间的误差发现了中间人攻击的存在。2014年Dina等人[5]研究上位机和控制器组成的水箱加热控制场景下的异常检测,利用数据包检测工具Bro解析Modbus工业网络协议,根据各变量在历史中的统计结果将其分类为常量值、枚举量和连续变量三种,并单独为连续变量建立回归预测模型,通过计算实时变量值与回归模型预测结果的差值大小判断是否有异常产生。
2009年MO Y等人[6]研究重放攻击的异常检测方法,检测器可以直接获得控制器的输入输出值,通过在控制器输出上叠加独立同分布噪声的方法来检测重放攻击。检测者可以实时获取该噪声真实信息,而不同时刻的噪声并不相同,因此若攻击者重放数据,则有很大概率会被检测出。2016年NIST(美国国家标准与技术研究院)的研究者[7]提出一种通过累计变量误差(CUmulative SUM, CUSUM)实现异常检测的方法,从而提高了检测方法的鲁棒性,降低了误检率。
与过程变量异常检测方法不同,基于通信行为的异常检测方法与被控对象没有联系。检测者无需知道控制系统的具体工业应用场景,也无需了解对象的运行过程和相关被控变量,仅通过建立上位主机与控制器之间、控制器与控制器之间的通信行为模型,就可以很好地检测工业网络中存在的异常行为。由于数据来源是网络流量,通常在研究初始阶段需要对其进行一定程度的解析,形成包含多个属性的事件记录,以此记录为输入建立模型并检测异常,应用流程如图3所示。由于工业场景下工况稳定,工控通信协议格式简单固定,通过网络通信行为可以准确地刻画网络的正常状态,从而在检测过程中达到较高的检出率。
图3 通信行为异常建模和检测方法流程
此问题的研究者通常采用统计的方法建立网络通信行为的正常模型,如离散马尔科夫链(Discrete-time Markov Chains, DTMC)、支持向量机(Support Vector Machine, SVM)和循环神经网络(Recurrent Neural Networks, RNN)等算法。2014年HONG J等人[8]在研究电网系统的异常检测问题时,通过建立电网站点的GOOSE和SMV通信规范获得子站的异常事件矩阵,并根据各子站异常矩阵的相似程度来判断子站受到攻击的同源性。2015年CASEUI M[9]等人在研究工控系统序列值攻击的过程中,利用IEC104通信协议产生的事件日志,建立DTMC时间序列模型来刻画正常通信的特征。2017年KLEINMANN A等人[10]在研究工控系统多线程的异常检测问题时,通过构建小型SCADA系统中上位机和控制器通信的多个有限状态自动机(DFA)来刻画控制设备间正常通信的模式。2017年TERAI A等人[11]基于SVM算法,利用通信间隔和数据包长度两个特征来描述工业网络的通信特征并构建异常检测模型,在研究者搭建的分布式控制系统中进行实验,达到了95% 以上的检出率。
2017年FENG C等人利用布隆过滤器和长短期记忆(Long Short Term Memory, LSTM)神经网络研究现场控制网络中的异常检测问题[12]。利用历史正常数据构建过滤器和检测器,首先从采集到的数据包中解析出多个属性,包含IP地址、传输时间、数据长度、协议类型以及与应用层协议相关的其他特征,用映射的方法获得了包含所有正常通信数据包类型的过滤器;然后利用神经网络长短期记忆模型学习历史通信行为的序列特征,获得序列异常检测器。最后将如上两个模型应用在实时检测当中,构建的异常检测器结构如图4所示。在实时应用过程中,检测器首先需要将数据包解析为多属性记录文本,然后输入单包和序列检测器中实现异常识别。该研究借鉴了自然语言处理的方法来解决工控网络的安全问题,获得了不错的检测效果。
图4 多层异常检测模型
以上两种方法分别从过程变量和通信行为的角度展开现场控制网络入侵检测问题的研究,前者更关注攻击者的目的,后者着眼于攻击行为本身。两者都是基于系统正常状态模型,通过网络载荷、通信行为、物理变量等系统状态的偏离程度来判定系统是否存在异常。但由于检测目标不同,两种方法在数据源、应用场景、参考模型以及检测算法等方面存在着较大差异。
过程变量异常检测方法利用和工业控制过程相关的变量数据,以控制器的控制输出和检测器的检测输入为主,在研究过程中既可以通过协议深度解析获取,也可以直接从控制器获取;通信行为异常检测方法的数据来源一般是网络数据流,需要对通信数据包进行一定程度的解析,但无需获取具体的控制和被控变量,同时网络协议的类型和频率也会作为重要的输入数据。数据源的不同决定了这两种方法在应用场景上的差异,过程变量异常检测需要研究者对被控对象和被控系统的运行过程、控制算法和变量关系有充分的了解,每一个具体算法都只适用于具体的工业场景;但通信行为异常检测方法和工控场景没有直接关联,其所选取的变量对不同场景下的工控系统具有普适性。
在建模方法和检测算法方面,过程变量异常检测通常采用状态估计以及回归分析等方法来预测输出,并根据预测与实测的差值来判断异常,属于控制领域和信号处理领域的研究方法。而网络通信行为异常检测由于可利用特征较多,通常采用基于统计的机器学习方法构建概率分布模型,根据实时检测对象的后验概率分布来发现异常,这类方法包括DTMC、SVM、RNN等。
过程变量异常检测方法一般针对确定工业场景,普适性较差,但对系统状态描述来自实际变量的规范,利用机理建模的方法也具有更高的可信度。通信行为异常检测方法应用的工业场景广泛,从行为角度分析可以更早发现潜在的威胁和攻击,但利用机器学习算法进行建模和分类时误检率和漏检率很难达到满意的效果。
本文提出了根据检测目标对工控系统现场控制网络异常检测研究进行分类的方法,据此总结了在过程变量异常和网络通信行为异常检测领域的前沿研究成果,并对以机器学习为基础的异常检测研究进行了详细阐述。通信行为异常检测方法无需了解被控对象的具体运行过程,往往具有较强的可移植性,因此也具有更广泛的应用前景。
[1] Kaspersky Lab ICS CERT. Threat landscape for industrial automation systems in H1 2017[EB/OL][2017-00-00]. https://securelist.com/threat-landscape-for-industrial-automation-systemsvin-h1-2017/, 2017/2017.
[2] MITCHELL R, CHEN I R. A survey of intrusion detection techniques for cyber-physical systems[J]. Computers & Security, 2014, 12(4):405-418.
[3] 杨安, 孙利民, 王小山,等. 工业控制系统入侵检测技术综述[J]. 计算机研究与发展, 2016, 53(9):2039-2054.
[4] URBINA FUENTES D I. Deep packet inspection for physics-based anomaly detection in industrial control systems[D]. Dallas:University of Texas at Dallas,2016.
[5] SOMMER R, ZAMBON E, HARTEL P H. Through the eye of the PLC: semantic security monitoring for industrial processes[C].Computer Security Applications Conference. ACM, 2014:126-135.
[6] MO Y, SINOPOLI B. Secure control against replay attacks[C].Allerton Conference on Communication, Control, and Computing, Allerton 2009. IEEE, 2009:911-918.
[7] DAVID U, JAIRO G, ALVARO C, et al. Survey and new directions for physics-Based attack detection in control systems[R]. 2016.
[8] HONG J, LIU C C, GOVINDARASU M. Integrated anomaly detection for cyber security of the substations[C]. PES General Meeting, Conference & Exposition. IEEE, 2014:1-1.
[9] CASELLI M, ZAMBON E, KARGL F. Sequence-aware intrusion detection in industrial control systems[C]. Bank for International Settlements, 2015:13-24.
[10] KLEINMANN A, WOOL A. Automatic construction of statechart-based anomaly detection models for multi-threaded industrial control systems[J]. Acm Transactions on Intelligent Systems & Technology, 2016, 8(4):55.
[11] TERAI A, ABE S, KOJIMA S, et al. Cyber-attack detection for industrial control system monitoring with support vector machine based on communication profile[C]. IEEE European Symposium on Security and Privacy Workshops. IEEE, 2017:132-138.
[12] FENG C, LI T, CHANA D. Multi-level anomaly detection in industrial control systems via package signatures and LSTM networks[C]// IEEE/IFIP International Conference on Dependable Systems and Networks. IEEE, 2017:261-272.