A malware detection method using satisfiability modulo theory model checking for the programmable logic controller system

  • 一、摘要
  • 二、模型设计
  • 三、具体实现
    • (一)生成检测规则
      • 1.不变提取
      • 2.规则设计模式
    • (二)基于SMT的PLC建模
  • 四、总结

一、摘要

本文提出了一种基于模型检测的PLC恶意软件检测方法。PLC恶意软件是针对目标高度定制的,因此很难提取通用模式来检测它们,本文提出了一种基于模型检测的PLC恶意软件检测方法。我们基于SMT的模型可以处理PLC系统的特征,如输入信号不确定、边缘检测等。其次,针对恶意软件检测问题,提出了两种检测规则生成方法:不变量提取和规则设计模式。 前者可以从原始程序中提取不变量,后者可以降低用户设计检测规则的门槛。最后,我们实现了一个原型,并在三个具有代表性的ICS场景中对其进行了评估。评估结果表明,我们提出的方法可以成功地检测出四种攻击模式的恶意软件。

二、模型设计

在本文中,我们提出了一种可满足性模数理论(SMT)模型检查方法来检测PLC恶意软件。

  1. 第一阶段是检测规则生成。为了检测恶意软件,我们需要定义白名单或规则。在我们的方案中,这项工作由目标控制系统的工程师完成。这些规则表示为时态逻辑公式。
  2. 第二阶段为PLC建模。我们的目标是PLC和现场控制系统,因此我们从内部代码对其行为进行建模。无论何时检测到目标,我们都必须从目标PLC提取字节码,并生成基于约束的模型(smv格式)作为模型检查器的输入。
  3. 模型生成后,可以验证模型是否满足规则。nuXmv模型检查器用于处理检测。如果模型不能满足其中一条规则,则表示发生了违反正常行为的行为,并检测到恶意软件。

三、具体实现

(一)生成检测规则

1.不变提取

第一种方法是从原始PLC程序中自动提取不变量。原始程序是指由工程师编写并下载到PLC的程序,可以认为是可靠的。虽然原始程序可能有几个不同的版本(由于系统进化或代码修改),但它们应该共享一些共同的行为。19例如,这些程序应遵循相同的安全要求。其中一个程序中的不变量可以表示作为检测规则的部分常见行为。在实践中,我们使用工程站中的程序作为原始程序,并以运行在PLC上的程序为目标。

2.规则设计模式

第二种方法是规则设计模式,它指导工程师定义检测规则。设计模式是使用LTL公式描述的模板。工程师只能专注于规则设计,而不是LTL公式的细节。模式应该足够简单,让工程师能够理解,还应该涵盖攻击策略。

(二)基于SMT的PLC建模

SMT模型检验可以看作SAT的一个扩展,用一阶逻辑代替命题逻辑。有界模型检查(BMC)和无界模型检查(UMC)是SMT模型检查的两种主要方法。
在基于SMT的模型检查中,我们需要为模型构造约束并进行求解。现代模型检查器(如NuSMV和nuXmv)可以支持基于约束的建模,这将有助于对不确定的输入序列和初始状态进行建模。
在本文中,我们选择nuXmv对系统进行建模并检查规则。nuXmv是一种新的符号模型检查器,它可以支持使用多个BMC技术的SMT模型检查。

四、总结

我们的模型集成了程序和过程,可以减少误报。其他大多数工作都以源代码为输入,我们的方法可以分析二进制文件,从而直接检测恶意软件。此外,我们还将二进制语言分解为STL语言,以支持其他语言编写的程序(在评估中,支持LAD和SCL)。通过使用基于SMT的模型检查,我们的方法可以处理布尔、整数和浮点数据类型,并支持对计时器、计数器和函数进行建模,以便于对准确的系统行为进行建模。与其他工作不同,我们提供了变量提取来自动生成检测规则,用户将从中受益。这些改进对于用户检测恶意软件是切实可行的。

我们的目标是篡改PLC控制逻辑攻击物理设备的恶意软件,我们还注意到存在其他类型的PLC恶意软件。一些PLC恶意软件不会攻击系统,而是充当后门,渗透系统并传播蠕虫。一些PLC恶意软件篡改固件而不是控制逻辑,以执行低级秘密攻击。为了检测这些恶意软件,我们将把我们的方法与固件和网络流量分析技术结合起来。

本文提出了一种基于SMT模型检测的PLC恶意软件检测方法。我们给出了PLC模型检查、PLC程序和工业过程的正式定义。PLC模型检查的问题是,我们必须枚举所有可能的输入信号序列来构造状态转移图。使用SMT约束代替状态转移图对系统建模,并使用SMT模型检查器检查属性。该方法的优点是可以处理不确定的输入信号。我们还提出了两种方法,不变抽取和规则设计模式,以降低设计检测规则的难度。

1. Berger H.Automating with STEP 7 in STL and SCL: Programmable Controllers SIMA TIC S7-300/400. Hoboken, NJ: John Wiley & Sons; 2012.
2. Beresford BD. Exploiting siemens simatic S7 PLCs.Black Hat. 2011.
3. Klick J, Lau S, Marzin D, Malchow JO, Roth V. Internet-facing PLCs as a network backdoor.Commun Netw Sec. 2015;2015:524-532.
4. Gjendemsjø M. Creating a Weapon of Mass Disruption: Attacking Programmable Logic Controllers (Master's thesis). Norwegian University of Science
and T echnology; 2013.
5. T zokatziou G, Maglaras L, Janicke H. Insecure by design: using human interface devices to exploit SCADA systems. Paper presented at: Proceedings of
the 3rd International Symposium for ICS & SCADA Cyber Security Research; 2015:103-106; BCS Learning & Development Ltd.
6. Milinkovíc SA, Lazíc LR. Industrial PLC security issues. Paper presented at: Proceedings of the 2012 20th T elecommunications Forum (TELFOR);
2012:1536-1539; IEEE.
7. Falliere N, Murchu LO, Chien E. W32. stuxnet dossier . tech. rep., Symantec Corperation; 2011.
8. Vávra, J., & Hromada, M. An evaluation of cyber threats to industrial control systems. Paper presented at: Proceedings of the International Conference
on Military T echnologies; 2015:1-5; IEEE.
9. Moser A, Kruegel C, Kirda E. Limits of static analysis for malware detection.ACSAC Comput Sec Appl Conf. 2007;2007:421-430.
10. Mclaughlin S, Mcdaniel P. SABOT :specification-based payload generation for programmable logic controllers. Paper presented at: Proceedings of the
2012 ACM Conference on Computer and Communications Security; 2012:439-449; ACM.
11. Mohan S, Bak S, Betti E, Y un H, Sha L, Caccamo M. S3A: Secure system simplex architecture for enhanced security and robustness of cyber-physical
systems. Paper presented at: Proceedings of the 2nd ACM International Conference on High Confidence Networked Systems; 2013:65-74; ACM.
12. John KH, Tiegelkamp M.IEC 61131-3: Programming Industrial Automation Systems Concepts and Programming Languages, Requirements for Programming
Systems, Decision-Making Aids. Berlin, Heidelberg / Germany: Springer; 2010.
13. Clarke EM, Grumberg O, Peled DA.Model Checking. Berlin, Heidelberg / Germany: Springer; 1997.
14. Biere A, Cimatti A, Clarke EM, Fujita M, Zhu Y. Symbolic model checking using SA T procedures instead of BDDs. Paper presented at: Proceedings of the
1999 Design Automation Conference; 1999:317-320; IEEE.
15. De Moura L, Rner N. Satisfiability modulo theories: introduction and applications.Commun ACM. 2011;54(9):69-77. https:/ /doi.org/10.1145/1995376.
1995394.
16. Allen FE. Control flow analysis.ACM SIGPLAN Not. 1970;5(7):1-19.
17. McLaughlin SE. On dynamic malware payloads aimed at programmable logic controllers. Paper presented at: Proceedings of the 6th USENIX Workshop
on Hot T opics in Security . USENIX. HotSec 2011.
18. Langner R. A time bomb with fourteen bytes. http:/ /www.langner .com/en/2011/07/21/a-time-bomb-with-fourteen-bytes/; 2011.
19. Beckert B, Ulbrich M, V ogel-Heuser B, Weigl A. Regression verification for programmable logic controller software. Paper presented at: Proceedings of
the International Conference on Formal Engineering Methods; 2015: 234-251; Springer .
20. Huuck R. Semantics and analysis of instruction list programs.Electr Notes Theoret Comput Sci. 2005;115:3-18. https:/ /doi.org/10.1016/j.entcs.2004.09.
026.
21. Biallas S, Brauer J, Kowalewski S. Arcade. PLC: a verification platform for programmable logic controllers. Paper presented at: Proceedings of the 2012
Proceedings of the 27th IEEE/ ACM International Conference; 2012: 338-341
22. McLaughlin SE, Zonouz SA, Pohly DJ, McDaniel PD.A T rusted Safety V erifier for Process Controller Code. V ol 14. San Diego, CA: NDSS; 2014.
23. Darvas D, Blanco VE, Fernández AB. PLCverif: a tool to verify PLC programs based on model checking techniques. Paper presented at: Proceedings of
the 15th International Conference on Accelerator and Large Experimental Physics Control Systems; 2015:911-915.
24. Spenneberg R, Brüggemann M, Schwartke H. Plc-blaster: a worm living solely in the plc.Black Hat Asia. 2016.
25. Abbasi A, Hashemi M. Ghost in the plc designing an undetectable programmable logic controller rootkit via pin control attack.Black Hat Europe.
2016;2016:1-35.
26. Garcia L, Brasser F, Cintuglu MH, Sadeghi AR, Mohammed OA, Zonouz SA.Hey , My Malware Knows Physics!Attacking PLCs with Physical Model Aware Rootkit.
San Diego, CA: NDSS; 2017.
27. Meng W, Li W, Wang Y, Au MH. Detecting insider attacks in medical cyber-physical networks based on behavioral profiling.Futur Gener Comput Syst.
2018. https:/ /doi.org/10.1016/j.future.2018.06.007.
28. Wang Y, Meng W, Li W, Liu Z, Liu Y, Xue H. Adaptive machine learning-based alarm reduction via edge computing for distributed intrusion detection
systems.Concurr Comput Pract Exp. 2019;31(19):1-12. https:/ /doi.org/10.1002/cpe.5101.
29. Y oo H, Kalle S, Smith J, Ahmed I. overshadow PLC to detect remote control-logic injection attacks. Paper presented at: Proceedings of the 2019
International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment; 2019:109-132; Springer .
30. Keliris A, Maniatakos M. ICSREF: a framework for automated reverse engineering of industrial control systems binaries. Paper presented at: Proceedings
of the Network and Distributed Systems Security (NDSS) Symposium; 2019; NDSS.
31. Pavlovic O, Pinger R, Kollmann M. Automated formal verification of PLC programs written in IL. Paper presented at: Proceedings of the 2007 Conference
on Automated Deduction; 2007:152-163; CADE.
32. Schlich B, Brauer J, Wernerus J, Kowalewski S. Direct model checking of PLC programs in IL.IF AC Proc V ol. 2009;42(5):28-33.
33. Darvas D, Adiego BF, Vörös A, Bartha T, Viñuela EB, Suárez VMG. Formal verification of complex properties on PLC programs. Paper presented at:
Proceedings of the International Conference on Formal T echniques for Distributed Objects, Components, and Systems; 2014:284-299; Spring.
34. Zonouz S, Rrushi J, McLaughlin S. Detecting industrial control malware using automated PLC code analytics.IEEE Secur Priv. 2014;12(6):40-47. https:/ /
doi.org/10.1109/MSP .2014.113.
35. Stattelmann S, Biallas S, Schlich B, Kowalewski S. Applying static code analysis on industrial controller code. Paper presented at: Proceedingsof the 2014
IEEE Emerging T echnology and Factory Automation (ETF A); 2014:1-4; IEEE.
36. Malchow JO, Marzin D, Klick J, Kovacs R, Roth V. Plc guard: a practical defense against attacks on cyber-physical systems. Paper presented at:
Proceedings of the 2015 IEEE Communications and Network Security (CNS); 2015:326-334; IEEE.

一种使用可满足性模数理论模型检查可编程逻辑控制器系统的恶意软件检测方法相关推荐

  1. fx系列微型可编程控制器 通信_AB罗克韦尔自动化Micro870可编程逻辑控制器系统型号及功能介绍...

    产品介绍 我们的 Bulletin 2080 Micro870® 可编程逻辑控制器适用于需要灵活通信和更强 I/O 功能的大型单机设备控制应用.这些控制器支持最多 304 个 I/O 点,同时提供高性 ...

  2. unity 多台 显示器 控制_AB罗克韦尔自动化Micro820可编程逻辑控制器系统型号及功能介绍...

    产品介绍 我们的 Micro820® 可编程逻辑控制器系统体积极小,专用于需要灵活通信和 I/O 功能的小型独立设备控制和远程自动化应用.这些控制器支持最多 36 个 I/O 点,具有以太网等众多嵌入 ...

  3. 一种基于深度学习的单导联心电信号睡眠呼吸暂停检测方法

    在R峰识别的基础上,加入S峰的识别,并论正了该策略对检测结果的有效性. 1.大致方法 将数据集(ECG信号)划分为每五分钟的一个片段,为了减少噪声和信号伪影,首先对信号应用了一个有限脉冲响应(FIR) ...

  4. PLC可编程逻辑控制器是一种采用一类可编程的存储器

    PLC可编程逻辑控制器是一种采用一类可编程的存储器 PLC可编程逻辑控制器是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算.顺序控制.定时.计数与算术操作等面向用户的指令,并通过数字或模 ...

  5. perclos嘴巴_一种基于视频分析的疲劳状态检测方法及装置与流程

    本发明涉及疲劳检测领域,特别是涉及一种基于视频分析的疲劳状态综合检测方法及装置. 背景技术: 疲劳状态检测技术在交通运输.生产安全.教育培训等许多领域应用广泛.目前,疲劳状态检测的方法一般可分为接触式 ...

  6. vpu测试_一种普适的手机平台vpu视频编解码性能检测方法

    一种普适的手机平台vpu视频编解码性能检测方法 [专利摘要]本发明公开了一种普适手机平台的视频处理单元(VPU)的H.264视频编解码性能检测方法,包括:手机平台利用VPU进行H.264视频编解码的系 ...

  7. MATLAB热障涂层成像,一种涡轮叶片热障涂层模拟试验过程中损伤实时检测方法与流程...

    本发明涉及航空发动机防护涂层技术领域,特别涉及一种涡轮叶片热障涂层模拟试验过程中损伤实时检测方法. 背景技术: 现代航空发动机已有两千多个部件应用有先进涂层材料,包括涡轮叶片.密封件.燃烧室密封件动件 ...

  8. cadence 查看器件丝印_一种Allegro软件中自动检查丝印摆放方向的方法与流程

    本发明涉及Allegro软件开发领域,尤其涉及一种Allegro软件中自动检查丝印摆放方向的方法. 背景技术: 随着电子信息技术的不断发展,PCB的设计也越来越复杂,电子产品的集成度也越来越高,在PC ...

  9. 计算机网络检查方式,一种计算机网络环路检测方法与流程

    本发明涉及计算机网络环路检测技术领域,具体为一种计算机网络环路检测方法 背景技术: 计算机俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按 ...

最新文章

  1. STC89C52单片机 数码管静态显示
  2. Java除法结果带小数、进一法的实现 Java问题通用解决代码
  3. 【数据结构与算法】之深入解析“罗马数字转整数”的求解思路与算法示例
  4. OMNeT学习之OMNeT安装与运行
  5. (45)VHDL实现算术器
  6. layui select第一次无法选中_Windows 10 无法访问共享的解决办法大全
  7. textarea 自动检测高度换行
  8. Spring boot 开发 GA/T1400 协议之注册、保活、注销、校时功能
  9. 计算机上机操作表格试题,全国计算机等级考试四Excel电子表格操作试题.doc
  10. 黑马微服务项目乐优商城全套
  11. 北大计算机陈旭,北大图灵班——欢迎来到计算机王国
  12. Python实现百度地图、高德地图地理编码及高德地图经纬度坐标转百度地图经纬度坐标
  13. 从架构到平台, POWER 9处理器最全解读
  14. cd linux 官网,cdlinux
  15. 倒计时器 (WPF)
  16. 第8章 hive函数
  17. 安卓psp模拟器联机教程_侠盗猎车手:血战唐人街PSP版模拟器实测 有链接,有联机教程...
  18. cesium实现飞线特效
  19. PMSG永磁同步发电机并网仿真模型
  20. 蓝桥杯——2021第十二届C/C++真题[省赛][B组]

热门文章

  1. 提前还房贷需三思 专家建议两类人可提前还款
  2. DVWA之Brute Force(暴力破解)
  3. Android 原生控件之三 ProgressBar
  4. python 学生信息管理系统(二)
  5. python:三个你必须记住的pyinstaller打包命令
  6. Cocos2dx 3.x创建Layer的步骤
  7. 中国头孢他美酯片市场趋势报告、技术动态创新及市场预测
  8. 三人表决电路——Verilog HDL语言
  9. QuickIndex 通讯录快速检索
  10. 【Designing ML Systems】第 11 章 :机器学习的人性方面