A malware detection method using satisfiability modulo theory model checking for the programmable logic controller system
一、摘要
本文提出了一种基于模型检测的PLC恶意软件检测方法。PLC恶意软件是针对目标高度定制的,因此很难提取通用模式来检测它们,本文提出了一种基于模型检测的PLC恶意软件检测方法。我们基于SMT的模型可以处理PLC系统的特征,如输入信号不确定、边缘检测等。其次,针对恶意软件检测问题,提出了两种检测规则生成方法:不变量提取和规则设计模式。 前者可以从原始程序中提取不变量,后者可以降低用户设计检测规则的门槛。最后,我们实现了一个原型,并在三个具有代表性的ICS场景中对其进行了评估。评估结果表明,我们提出的方法可以成功地检测出四种攻击模式的恶意软件。
二、模型设计
在本文中,我们提出了一种可满足性模数理论(SMT)模型检查方法来检测PLC恶意软件。
- 第一阶段是检测规则生成。为了检测恶意软件,我们需要定义白名单或规则。在我们的方案中,这项工作由目标控制系统的工程师完成。这些规则表示为时态逻辑公式。
- 第二阶段为PLC建模。我们的目标是PLC和现场控制系统,因此我们从内部代码对其行为进行建模。无论何时检测到目标,我们都必须从目标PLC提取字节码,并生成基于约束的模型(smv格式)作为模型检查器的输入。
- 模型生成后,可以验证模型是否满足规则。nuXmv模型检查器用于处理检测。如果模型不能满足其中一条规则,则表示发生了违反正常行为的行为,并检测到恶意软件。
三、具体实现
(一)生成检测规则
1.不变提取
第一种方法是从原始PLC程序中自动提取不变量。原始程序是指由工程师编写并下载到PLC的程序,可以认为是可靠的。虽然原始程序可能有几个不同的版本(由于系统进化或代码修改),但它们应该共享一些共同的行为。19例如,这些程序应遵循相同的安全要求。其中一个程序中的不变量可以表示作为检测规则的部分常见行为。在实践中,我们使用工程站中的程序作为原始程序,并以运行在PLC上的程序为目标。