您好, 访客   登录/注册

PLC控制系统入侵检测技术研究

来源:用户上传      作者:

  摘  要: 由于PLC控制系统有别于传统的计算机网络系统,传统的病毒检测、网络入侵检测技术无法有效检测PLC控制系统攻击。设计一种非介入式的PLC控制系统入侵检测方法,采用以太网数据监听与现场控制网数据监听技术相结合的方法,通过PLC控制系统输入输出业务信息一致性检测,实现PLC恶意代码篡改数据攻击检测,通过业务规则检测实现违反业务约束的恶意控制指令检测。完成了PLC控制系统入侵检测系统开发,测试表明系统可以有效检测PLC系统的恶意代码攻击和恶意控制指令攻击。
  关键词: PLC控制系统; 业务规则; 篡改攻击; 入侵检测; 以太网监听; Profibus总线监听
  中图分类号: TN915.08?34; TP309.1                  文献标识码: A                 文章编号: 1004?373X(2020)01?0072?04
  Research on intrusion detection technology for PLC control system
  CHEN Zhiwen, ZHANG Weiyan, SU Jingfeng, YUN Tianyou, GUO Zhaoxin
  Abstract: Because PLC control systems are different from the traditional computer network systems, the traditional virus detection technology and network intrusion detection technology fail to effectively detect the attacks to PLC control system. In view of the above, a non?intrusive intrusion detection method for PLC control system is designed, which adopts the method combining the Ethernet data monitoring and field control network data monitoring technologies to realize the detection of malicious code tampering data attack to PLC by the consistency detection of input and output business information of PLC control system, and implement the detection of malicious control instructions violating business constraints by business rule detection. The intrusion detection system for PLC control system has been developed. The testing results show that the system can effectively detect malicious codes and malicious control commands that attack the PLC control system.
  Keywords: PLC control system; business rule; tampering attack; intrusion detection; Ethernet monitoring; Profibus monitoring
  0  引  言
  随着信息技术的发展和网络开放性的提高,工业控制网络面临的安全风险日益严重[1]。“震网”病毒(Stuxnet)的曝光为关键工业基础设施的安全防护拉响了警钟[2?3],工业控制网络的安全问题也受到了广泛的关注。美国将工业控制系统(ICS)列入国家重点保护关键基础设施,逐步将工控系统安防提升至国家战略高度,有六家国家实验室对工业控制系统安全开展了系统、全面的研究[4]。
  PLC(Programmable Logic Controller)控制系統是很多工业控制系统的核心部件[5],由于PLC控制系统的封闭性以及控制系统对可靠性的要求极高,经常导致控制系统存在漏洞或后门修复难度大,难以根除控制系统的安全隐患[1]。由于针对PLC控制系统进行攻击检测难以采用介入式方法[6],因此提出一种采用非介入式的攻击检测方法,实现的系统初步验证了提出的入侵检测方法可以检测工业控制系统中PLC篡改控制参数、篡改运行状态监测参数等恶意攻击。
  1  典型工业控制系统模拟环境构建
  为开展PLC控制系统入侵检测技术研究,构建了一个使用PLC的典型工业控制系统网络模拟环境,如图1所示。典型工业控制系统网络包含PLC的典型工业控制系统为三层网络结构,包括集中监控层、现场控制层、设备层。
  模拟环境包括控制系统和设备层工艺设备模拟系统。控制系统由PLC和远程操作员站组成,PLC用于现场控制和数据采集,操作员站用于远程监控、数据管理、参数配置和系统组态,两者之间通过TCP/IP协议进行通信。工艺设备除主轴电机以外,其他设备均通过模拟器进行模拟。模拟器由单独的一台PLC担当,负责模拟工艺设备的电气接口和运行过程,同时用于故障信号的注入和传感器信号的模拟输出,它与PLC主站之间通过I/O信号连接。   2  非介入式PLC控制系统入侵检测方法
  2.1  PLC控制系统入侵检测总体方案
  由于PLC设备环境的特殊性,很难通过在攻击点上部署安全防护措施进行检测和防御。传统的以太网网络旁路监听方式的入侵检测只能检测以太网的入侵攻击[7],无法针对PLC控制系统篡改欺骗攻击进行检测,例如,“震网”病毒恶意代码植入PLC后,由于恶意代码篡改控制参数后同时篡改了监控参数,使得从以太网操作员站进行观察时,一切都是正常的。
  为了实现PLC控制系统入侵检测,设计了一种非介入式的入侵检测方案,如图2所示。系统采用的检测方法是通过PLC主站信息交互两端的网络进行通信数据采集分析,即采集现场控制网通信数据及集中监控层网络通信数据包,并通过深度包解析技术识别应用层业务,通過业务指令参数的一致性比较,发现主站上的信息篡改攻击,同时,通过业务规则先验知识发现违背业务逻辑的非法控制命令。
  2.2  数据采集与业务指令解析
  以太网数据采集与解析技术较为成熟,直接采用普通网卡与libpcap即可实现信息采集[8?9]。针对现场控制网数据采集,设计了现场控制网数据采集探针,支持总线(Profibus?DP)数据采集[10]、开关量I/O采集、模拟量I/O采集[11]。采集硬件解决方案如图3所示,总线数据采集采用NI PCI?8431/1采集卡实现,开关量、模拟量采用NI PCIe?6320采集卡实现,支持1条Profibus总线、16个模拟量、24个开关量的数据采集。
  PLC控制系统的通信数据主要是控制指令下传、监测数据上传,为了便于入侵检测算法设计,将控制指令与监测数据均抽象为统一结构的业务指令。业务指令是指业务流程的原子性的活动,只能一次性完成。控制系统的一条业务指令[C]可以用五元组表示为:
   [C=]{type,direction,command,object,data}
  type:业务指令[C]的“指令类型”,分为以太网(用“eth”表示)和现场控制网(用“field”表示)两类。以太网类是指以太网数据采集探针抓取并解析业务指令;现场控制网类是指现场控制网探针在现场控制网采集和解析的业务指令。
  direction:业务指令[C]传输方向,分为上传业务指令(用“up”表示)和下传业务指令(用“down”表示)两种。上传业务指令是指“现场控制网→PLC主站→上位机”流向的指令,主要是各种监测业务指令;下传业务指令是指“上位机→PLC主站→现场控制网”流向的指令,主要是各种控制业务指令。
  command:业务指令[C]的业务名称,如“setSpeed”代表速度设置,“retSpeed”代表速度反馈。
  object:业务指令[C]作用对象,如电机。
  data:业务指令[C]的参数值。
  业务指令五元组只是为了方便入侵检测算法设计进行的一种数据抽象,实际的通信数据并不会完全包含这些属性,而是由数据采集探针根据已知的通信协议和业务规则,将采集的数据翻译转换成统一的五元组数据结构。由于具体业务场景下的PLC控制系统的业务指令(控制业务指令、监测数据指令)是有限的,且业务指令数据包结构一般较为简单,采用人工方法事先建立通信数据帧结构知识,作为已知协议进行解析。探针对采集的数据进行业务解析时,采用以下规则完成业务指令五元组转换:
  1) 数据采集探针根据探针类型、数据流向自动填充type,direction,数据流向通过源地址和目标地址确认。
  2) 以太网数据和Profibus?DP的数据包解析,通过指令数据包特征匹配或“编码?命令转换表” 翻译设定command,根据数据包特征匹配设定object,根据指令数据包结构提取data。
  3) 现场控制网的开关量和模拟量由探针根据预先设定的“I/O地址?命令转换表”翻译设定command,根据“I/O地址?对象转换表”翻译设定object,根据采集卡采集的具体值设定data。
  2.3  入侵检测方法
  PLC恶意代码进行控制参数篡改、监测数据篡改,以及上位机下发的违背业务逻辑的恶意控制是需要重点解决的PLC控制系统的攻击风险。当PLC被植入恶意代码时,精心构造的恶意代码可以根据用户下发的业务指令,自动计算和篡改反馈的监测数据,使工程师从上位机监测系统观察到的数据始终符合预期,具有极大的隐蔽性。“震网”病毒植入PLC的恶意代码正是采用这种方式实现恶意控制离心机转速,并通过篡改反馈转速实现欺骗攻击破坏离心机。
  依据图2设计的入侵检测方案,由于同时采集了现场控制网和集中监控层网络的数据并进行了业务指令解析,因此,针对PLC植入恶意代码的篡改攻击,采用基于业务信息一致性检查的方法进行检测,针对违背业务逻辑的规则采用业务指令约束条件检查进行检测,具体检测规则如下:
  1) 设定延时阈值[dt],对于[t1]时刻接收到的[c1],且[c1].type=“eth”,[c1].direction=“down”,根据业务规则,[c1]指令将在现场控制网产生[c2]指令,则在[t1+dt]时刻对[c1]进行检测。查询在[(t1-dt,t1+dt)]时间段内是否存在指令[c2],且[c2].type=“field”,[c2].direction=“down”,[c1].command=[c2].command,[c1].object=[c2].object,[c1].data=[c2].data。满足条件则正常,如果[c1].data !=[c2].data,则告警“控制参数篡改”。
  2) 对于[c1].type=“field”,且[c1].direction=“up”的上行监测参数的篡改与规则1)类似。   3) 由于控制系统的控制业务应遵循的业务规则是已知的,且业务指令是有限的,业务规则是可以描述的,因此可以建立每条业务指令的约束条件以及一些业务指令之间的约束关系作为业务规则先验知识。入侵检测对网络通信数据解析提取的业务指令进行业务规则先验知识符合性检测,满足则正常,否则产生相应的异常告警。例如,先验知识[c].direction = “down”与[c].command=“setSpeed”的指令有先验知识[c].data<1 000,则当检测到指令[c].data>1 000时则进行告警。
  3  系统实现与验证
  3.1  系统实现
  PLC入侵检测系统实现方案如图4所示,系统由现场控制网探针、以太网探针、入侵检测分析系统、入侵检测管理系统组成。现场控制网探针、以太网探针采集数据完成业务指令解析后,通過UDP发送给入侵检测分析系统。以太网探针采用Linux系统,C语言开发实现。现场控制网探针采用Windows系统,LabVIEW开发实现。入侵检测分析系统、管理系统采用Linux系统,采用C语言和Java语言开发实现。
  3.2  实验验证
  为了验证入侵检测规则的有效性,设置了两个测试用例。一个是设定业务规则电机转速给定值<1 000 r/s,测试超过参数上限的给定值是否告警。另一个是参考“震网”病毒植入PLC恶意代码的攻击原理,开发PLC恶意代码程序,恶意代码程序将控制电机转速的参数篡改为用户给定值的2倍,篡改上传电机转速值为监测值的[12],测试植入恶意代码程序入侵检测是否告警。实验结果产生了预期的告警。以PLC恶意代码篡改参数的入侵检测为例,植入恶意代码后,上位机工程师站界面截图如图5a)所示,速度给定为600 r/s,监测到的实际转速为598 r/s,监测值与预期值在正常的浮动范围内。现场控制网探针系统截图如图5b)所示,采集到实际给定转速为篡改后的1 200 r/s,实际电机反馈速度为1 197 r/s。入侵检测系统产生了相应的控制参数和检测参数篡改告警,部分告警截图如图6所示。
  4  结  语
  由于PLC控制系统的特殊性,难以采用介入式技术进行病毒攻击检测,传统的网络入侵检测技术由于关注信息网的数据流,无法感知控制系统与物理世界的作用效果,也难以检测到PLC恶意代码攻击。本文设计的PLC控制系统入侵检测方法,在传统网络入侵检测技术的基础上,通过增加现场控制网数据采集探针,感知控制系统与物理世界的实际作用效果,通过结合传统网络入侵检测技术实现PLC系统的攻击检测。初步实验结果表明,系统可以实现对PLC恶意代码篡改控制参数或指令的检测,以及违反业务规则的攻击检测。
  参考文献
  [1] 锁延锋,王少杰,秦宇,等.工业控制系统的安全技术与应用研究综述[J].计算机科学,2018,45(4):23?33.
  [2] NOURIAN A, MADNICK S E. A systems theoretic approach to the security threats in cyber physical systems applied to Stuxnet [J]. IEEE transactions on dependable and secure compu?ting, 2018, 15(1): 2?13.
  [3] 应欢,刘松华,韩丽芳,等.电力工业控制系统安全技术综述[J].电力信息与通信技术,2018(3):56?63.
  [4] 卢坦,林涛,梁颂.美国工控安全保障体系研究及启示[J].保密科学技术,2014(4):24?33.
  [5] 张厚友.PLC控制技术的优势和抗干扰措施研究[J].仪器仪表用户,2018(2):5?6.
  [6] LIM B, CHEN D, AN Y, et al. Attack induced common?mode failures on PLC?based safety system in a nuclear power plant: practical experience report [C]// 2017 IEEE 22nd Pacific Rim International Symposium on Dependable Computing. Christchurch, New Zealand: IEEE, 2017: 205?210.
  [7] MOHIUDDIN A, MAHMOOD A N, JIANKUN H. A survey of network anomaly detection techniques [J]. Journal of network and computer applications, 2016, 60: 19?31.
  [8] 周永福,曾志.Linux下采用Libpcap实现IDS的网络数据包监测[J].现代计算机(专业版),2015(9):67?71.
  [9] CHENG X R, ZHANG B. High speed network data capture based on Linux [C]// Proceedings of the 9th International Symposium on Linear Drives for Industry Applications. [S.l.: s.n.], 2014: 216?245.
  [10] 周志敏. PROFIBUS的协议结构及应用领域[J].智慧工厂,2018(2):35?37.
  [11] YANG V, MU S T, HARTMANN, D. PLC DCS analog input module design breaks barriers in channel?to?channel isolation and high density [J]. Analog devices, 2016, 50(4): 36?40.
  作者简介:陈志文(1979—),男,福建南安人,硕士,高级工程师,研究方向为计算机网络、信息安全。
转载注明来源:https://www.xzbu.com/8/view-15122259.htm