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

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

一、摘要

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

二、模型设计

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

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

三、具体实现

(一)生成检测规则

1.不变提取

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值