工业系统存在与其网络漏洞相关的安全风险。这些系统遍布世界各地,成为攻击者的目标。虽然工业系统与信息技术 (IT) 系统具有共同的漏洞,但由于网络和物理系统之间的隔离,它们往往具有更多的限制。入侵检测系统使系统具有可见性,并被认为是检测目标攻击的解决方案之一。因此,依赖网络物理系统的物理模型来获得工业系统的入侵检测系统(IDS)似乎是相互联系的。大多数 IDS 基于定义如何检测潜在攻击的规则。这些规则通常用于描述正常的系统行为或潜在的攻击场景。然而,为复杂的网络物理系统或 ICS 手动创建和维护规则可能被证明是一项非常困难的任务。本文提出了一种对 ICS 进行建模并为 ICS 设计特定 IDS 的解决方案。提出了一种基于模型的IDS规则生成器,它将系统模型转换为基于异常的IDS规则。最后,评估生成规则的有效性。
工业控制系统 (ICS) 是控制组件的组合,它们共同作用以实现工业目标。 ICS 用于化学、电力、水和废水以及其他关键基础设施系统 。如今,大多数 ICS 使用信息和通信技术 (ICT) 来控制其工业过程(例如电动汽车充电站、汽车、火车和公共汽车以及许多其他应用)。这使得 ICS 能够提供新的服务和功能,并提供其他优势(例如,通过互联网技术栈进行更简单、更便宜的数据传输等)。 ICS 由人机界面 (HMI) 控制。有时甚至可以从家庭位置通过平板电脑操作 HMI。 ICS 在协议、硬件要求和功能方面具有许多不同于传统 IT 系统的特性,它们还具有不同的性能。
ICS 和 IT 系统具有不同的风险因素和优先级。 例如,ICS 故障可能对人类生命的健康和安全造成重大风险,对环境造成严重破坏,并导致生产损失等财务问题和对国家经济的负面影响。
ICS 与其他 IT 服务的结合使工业设施面临由网络漏洞能力引起的可能威胁的新来源。 因此,ICS 会受到恶意软件等网络风险因素的影响。 这给 ICS 带来了越来越大的风险,包括设施的禁用或危险操作 。 有许多由恶意软件引起的涉及物理系统的事件示例; 例如,恶意软件 Stuxnet 是一种计算机蠕虫病毒,最初针对伊朗的核设施,后来变异并传播到其他工业和能源生产设施。 最初的 Stuxnet 恶意软件攻击针对的是用于自动化机器流程的可编程逻辑控制器 。
安全保护必须以在正常操作和网络攻击期间保持系统操作的可用性和连续性的方式实施,同时保持对系统状态的可见性,确保不会失去控制,此外要保证数据的完整性和机密性。
从安全的角度来看,ICS 存在许多漏洞。这些漏洞的原因包括防火墙配置错误、软件缺陷、身份验证薄弱或缺乏身份验证机制、使用不可靠的协议。福维诺等人,[5] 突出了 Modbus 和 DNP3 协议的漏洞。惠辛等人,[11] 描述了利用 Modbus 协议规范的主要攻击,并提出了根据威胁类别、目标和对控制系统资产的影响来总结攻击的分类法。麦克劳克林等人, [12] 将 ICS 漏洞分为五层:硬件、固件、软件、网络和 ICS 进程, [13] 中解释了每一层的特征、可能的攻击、威胁和漏洞的讨论。
黑客可以利用这些漏洞对系统和环境造成物理破坏。 可以应用不同类型的攻击,包括:
• Dos或 DDoS攻击导致 ICS 设备无法查看和无法控制。
• 过度请求攻击对ICS 设备造成损害。
• 中间人攻击,拦截和/或注入数据,重放攻击,返回已发送的序列。
• 注入影响系统安全的错误动作序列(例如,在行驶中打开火车门)。
• 以不同顺序使用合法命令逐渐导致系统进入临界状态的顺序攻击。
• 发送违反时间限制的命令/报告的时间性攻击会导致失去可见性和控制。
• 由于缺乏身份验证而导致的信息泄露和未经授权的命令执行。
其中一些攻击是 IT 固有的,并且可以通过具有有关要保护的系统的高级详细信息的安全解决方案检测到。 其他攻击更高级,需要深入了解系统的控制规律和操作部分。
有多种标准和指南,包括 ISA/IEC 62443、IEEE 1613、NIST SP800、ANSSI、ENISA 和 NERC CIP。 所有这些指南和标准都试图通过员工培训和认证来提高人员和组织的意识,提供有关物理和环境保护以及人员安全的指导和建议,从而引导更好的网络安全。 此外,他们通过应用安全技术(例如 ICS 数据存储和通信加密以及应用纵深防御 (DID) 策略)指导他们设置和配置 ICS 及其基础设施的最佳实践。 DID 策略包括通过实施多层网络拓扑、使用防火墙分离 ICS 网络以及使用非军事区来保护网络架构。
一些方法依赖于这些标准和指南,并尝试调查网络物理系统的漏洞。申等人, [14] 描述了两个基于贝叶斯网络的网络安全风险模型,用于以综合方式评估核设施的网络安全。第一个模型侧重于通过验证 CPS 的开发人员和运营商是否遵守监管指南和标准来对网络安全进行定性评估。另一方面,第二个模型侧重于对系统特定漏洞的影响以及针对它们对网络安全的缓解措施的影响的定量和定性评估。查特吉等人,[15] 提出了一种迭代学习方法来评估 CPS 漏洞的动态特性。他们的方法区分子系统漏洞和整体系统健康。最后,它介绍了四个系统状态指标:稳定性、抗脆弱性、健康和分散性,它们共同提供了整体系统健康的整体特征。臧等人。建议通过对电气 CPS 的级联故障进行建模来揭示故障传播机制。在此模型的基础上,构建了两个图(传播和攻击)来分析 CPS 的漏洞。最后,这些图用于构建电气 CPS 的脆弱性指数。
为了保护 ICS,创建了许多方法,它们特定于 ICS 组件使用的软件、固件和硬件。在硬件层,Ren 等人,[17] 提出了一种基于机器学习的方法来保护 JTAG 端口。 JTAG(联合测试行动组)是作为一种集成方法开发的,用于测试和调试 PCB(印刷电路板)上的互连和组件。在他们的方法中,Ren 等人。建议监控 JTAG 指令的执行,并使用支持向量机 (SVM) 来识别异常指令序列。在固件层,Basnight 等人,提出了一种基于逆向工程的固件分析方法,用于识别控制器的弱点,并提出针对固件修改攻击的防御方法。同样,Schuett 等人,[19] 使用逆向工程方法来利用 PLC 的漏洞和后门。他们提出了设计建议,以减轻未来固件开发中的潜在弱点。还研究了软件层以提供 ICS 保护。麦克劳克林等人, [20] 提出了一种保护软件层的方法。在这种方法中,开发了一种可信安全验证器 (TSV),用于在可编程控制器上执行安全关键代码之前对其进行验证。
其他方法使用入侵检测/预防系统来确保 ICS 的网络安全,以抵御设法绕过所应用的网络安全措施的攻击。 我们的工作重点关注这一背景,并检测旨在破坏或降低生产过程的网络和物理层攻击。
由于 CPS 故障的严重后果,CPS 的入侵检测系统 (IDS) 设计引起了相当大的关注。 IDS 提供系统可见性,并被认为是检测目标攻击的解决方案之一。 通常,IDS 要么需要了解潜在的攻击场景,要么需要了解系统的正常行为,才能检测目标攻击。 这两种方法构成了主要的两个 IDS 类别的基础:
前者以其检测已知攻击的能力而闻名。 然而,后者在检测未知攻击方面更好。
因此,依赖 CPS 的物理模型来获得适用于 ICS 的 IDS似乎是相关的。 这主要是由于 IT 和 ICS 之间的差异。
在下面提出了一种基于模型的自动 IDS 设计方法,该方法使用有关 ICS 架构、物理过程以及控制系统(控制规则)的信息。 因此,生成的 IDS 旨在通过假设没有控制系统故障或过程故障来检测试图破坏或降低生产过程的攻击。 本文组织如下:在第 2 节介绍相关工作之后,我们在第 3 节解释 ICS 的建模。这包括架构和功能行为模型。 我们通过结合控制部分和 ICS 操作部分的模型的聚合模型结束本节。 在第 4 节中,我们详细介绍了自动生成具有特定于我们想要保护的 ICS 的物理状态规则的 IDS 设计的建议方法。 在第 5 节中,我们展示了一个模拟,展示了所提出方法的有效性。 最后,在第 6 节中,我们提出了我们的结论。
文献显示了用于 ICS 中的入侵检测的不同方法。 根据文献中的作品,已经确定了几条研究方向。 在本研究中,我们将文献中存在的方法分为两类:
本节首先概述现有的开源 IDS,这些 IDS 已经证明了其在入侵检测领域的能力。 其次是在 ICS 环境中用于入侵检测的通用检测方法。 这些方法被认为是通用的,因为它们不需要对受控系统有深入的了解。 接下来,介绍了面向过程知识的 IDS 方法的研究。 然后,介绍了从其顺序功能图 (SFC) 程序中考虑对 PLC 行为进行建模的方法。 之后,提出了问题陈述,并介绍了我们的方法。
已经创建了几个 IDS 并将其用作检测器,并且可以在 ICS 的上下文中实现。 这些 IDS 允许用户使用通常称为规则的灵活语言为其系统创建检测算法。 因此,本文建议使用其中一种已经有效检测入侵的 IDS 来实施我们的方法生成的规则,而不是重新发明轮子。 文献中最常用的 IDS 如下所示:
Snort 是一个开源的、基于网络的 IDS。 Snort 创建于 1998 年,可以执行协议分析、搜索内容,并可用于检测各种攻击和探测。 Snort 有一种规则语言用于指定滥用和攻击签名 [22]。
Suricata [23] IDS 由开放信息安全基金会 (OISF) 创建。它是作为 Snort 的开源增强功能而创建的。它具有原生多线程操作来处理比 Snort 更大的网络量。
Zeek [24](以前称为 Bro)是一个基于开源网络的 IDS,于 1994 年开发。它使用基于签名和异常的检测方法。它根据允许检测异常网络行为的事件来定义特定的攻击。 Zeek 通过其策略语言使用更复杂的签名。它的脚本语言允许用户在更高的抽象层次上定义分析和检测策略。此外,Zeek 非常擅长存储有关过去活动的信息并将其整合以分析新事件 [25]。
在文献中,有几种方法在 ICS 领域的入侵检测中脱颖而出。一些工作[26-28]是基于工业通信协议的语法和语法验证。
[26] 创建的方法依赖于 Modbus 协议的规范来检测对 ICS 的入侵。随后,开发了 Snort 规则来检测简单的标准违规,例如无效功能代码、异常代码、协议标识符、数据包长度和数据地址。类似地,[27] 的工作依赖于 DNP3 协议的规范,并使用 Bro IDS 来检测入侵。 [28] 的作者建议将 Modbus RTU/ASCII 字段协议转换为 TCP 流量,以使用配置有尊重网络策略的规则的 SNORT 探针对其进行分析。作者使用了 Digital Bond 创建的 11 条 SNORT 规则来检查非法数据。 2013 年,他们改进了方法,通过分析 Modbus 协议漏洞并显着提高了检测精度,提供了 50 条签名规则。这种检测方法依赖于语法和语法验证,并使用通用规则进行常见网络攻击。它允许检测通信协议中的违规和一些已知的攻击。这使其适用于网络层违规。但是,这种检测方法无法检测针对进程层的攻击,而无需依赖对 CPS 的深入了解,例如来自计算机域的攻击。这种方法不能用于检测语义攻击。语义攻击基于系统的高级知识,以在遵守协议规范的同时仅使用可接受的命令来造成恶意影响。
其他方法依靠通信网络分析来检测对 ICS 的攻击。 这些方法假设ICS流量在正常情况下是相对稳定的,这使得将流量用作反映ICS中安全状态的镜子成为可能。 这些方法可以分为两类:基于自动流量学习的检测方法和基于网络属性规范的检测方法。
基于过程分析的系统依靠语义信息和 ICS 的特殊性来检测入侵。一方面,[21,37,38] 提出的方法在将系统知识转换为检测系统不可接受行为的规则之前对系统知识进行建模。卡尔卡诺等人,使用基于单个数据包签名的策略来检测发送到控制系统(PLC 和 RTU)的非法数据包,并提出了一种基于状态的入侵检测技术,以跟踪工业系统的状态并识别是否一组发送到现场设备的合法 Modbus 命令可导致系统进入临界状态。然后,Fovino 等人。 [38] 扩展了 [37] 的方法,除了支持 Modbus 协议外,还支持 DNP3 协议。米切尔等人。 [21] 开发了一种 IDS,它依赖于执行器和传感器的行为规则。该方法建议将这些规则转换为三类机器状态:安全状态、警告状态和不安全状态。系统行为被描述为概率有限自动机,其中转换的概率取决于攻击的类型。此外,依从度用于区分攻击和正常行为。这些方法使用考虑分析多个数据包的系统状态概念。这种分析技术比使用仅允许分析单个数据包的基于 Snort 的样式规则要好。然而,这些方法忽略了对事件的时间约束,因为它们的规则规范语言不允许针对系统行为指定时间模型。
同样,机器学习技术用于过程变量,以识别对 ICS 的攻击。 Had-žiosmanović 等人。 [39] 提出通过监控网络来构建系统模型。在预处理阶段,IDS 提取过程变量的值并自动将它们分为三类:(i) 连续变量,(ii) 离散变量,和 (iii) 常数。离散变量和常数的观测值被保存。而连续变量由回归模型“自回归过程”建模,并保存它们的最大和最小限制。最后,通过观察离散变量和常数尚未观察到的值、违反自回归模型或超过连续变量的限制来检测攻击。其他方法基于事件序列来检测入侵。与具有多种流量的 IT 系统(例如 Internet)不同,ICS 显示出一致的通信。这一假设是在流量中寻找不规则通信的“序列感知”方法的基础。这些方法是对最近提出的方法的补充,以允许它们考虑时间方面和接收到的事件的顺序。卡塞利等人。 [40,41] 提出了一种“序列感知”IDS,它与检测源自单独合法事件序列的特定类型的语义攻击有关。这些攻击首先不是试图破坏系统,而是改变事件的顺序或时间以逐渐降低系统。该方法建议随着时间的推移学习系统的正常行为,并用马尔可夫链模型(DTMC)表示它。然后,在线构建另一个模型并与参考模型进行比较,以检测标记违反命令顺序和时间约束的异常情况。在同一类别中,Ferling 等人。 [42] 认为序列感知入侵检测模型体积庞大,难以操作,并导致分析耗时。他们的方法建议通过组合仅在 IEC-104 协议中使用的 IOA(信息对象地址)范围不同的 DTMC 模型状态来减小流量模型的大小。但是,与其他学习技术一样,需要较长的学习时间。此外,在学习阶段不能出现任何故障或攻击,这使得这些方法难以应用。
另一方面,方法 [5,9,43] 在将这些知识转换为过滤器之前使用系统和控制器的行为模型。福维诺等人。 [5] 提出了一种基于临界状态概念和当前系统状态与临界状态之间距离的网络过滤方法。这种方法首先确定每个系统变量的安全和关键状态。然后,系统的虚拟图像由软件跟踪,该软件使用两种方法复制 PLC 和主存储器:(i)从网络中提取数据,以及(ii)查询被监控系统的 PLC 以保持系统之间的紧密同步。虚拟图像和真实系统。最后,使用系统的虚拟映像对 PLC 命令进行仿真,并在转发到物理系统之前对其进行验证。这种方法只关注发送到物理系统的命令,而不对来自物理系统的报告(传感器测量)提供任何验证。同样,Sicard 等人。 [9,43] 提出了一种基于行为模型和临界状态距离概念的过滤方法。在这种方法中,考虑了时间约束,并部署了两个过滤器来分析 ICS 的控制和操作部分之间的交换。前者分析从控制器发送到物理系统的命令,而后者分析发送回控制器的报告。然而,这种方法只关注离散事件系统,没有考虑连续事件。此外,这种方法不考虑两个稳定状态之间的系统演化验证。
Petri 网和自动机通常都用于对 PLC 行为进行建模 [44]。 一方面,Wightkin 等人。 [45] 提出了一种将 SFC 转换为定时 Petri 网的转换技术。 西卡德等人。 [9] 使用 Petri 网对 PLC 内部编程的控制律进行建模。 另一方面,多项工作已设法将 SFC 转换为不同类型的自动机。 [46,47] 的作者提出在定时自动机中对 SFC 进行建模。 内伦等人。 [48] 考虑了将没有嵌套组件和并行转换的扩展 SFC 转换为混合自动机。 SFC 可以很容易地转换为混合自动机模型,因为它们都由步骤和转换组成。 然而,最困难的任务是管理并行操作(同时序列)[49]。 鲍尔等人。 [50] 建议使用 UPPAAL 工具 [27] 对具有定时自动机的 SFC 程序进行建模,并创建可应用于 SFC 图以降低其复杂性的转换规则。
文献显示了用于 ICS 中的入侵检测的不同方法。 根据选择的方法,实现的难度会有所不同。 下面分别从最难到最难列出这些方法:
• 使用通用规则进行基于协议的检测(直截了当)。
• 验证运营技术 (OT) 可变范围(有点困难)。
• 验证控制命令及其对物理系统的影响(非常困难)。
因此,IDS 需要验证系统变量的变化是否符合系统的物理定律。 这种检测方法需要创建更高级的规则,这些规则将根据过程值动态变化,无需能手动创建、管理和维护 IDS 规则。
在所提出的方法中,我们的目标是依靠对要保护的系统的深入了解,为每个特定的 ICS 促进基于异常的 IDS 的合成和实施。 我们提出以下建议:
• 一种基于模型的方法来管理为 ICS 创建和维护 IDS 规则的复杂性。 这种建模方法包括以下步骤:
– 对 PLC 建模(通过将其 SFC 程序转换为模型)。
– 对物理过程进行建模(基于其规范)。
– 为 ICS 架构建模。 – 聚合模型。 – 将模型转换为 IDS 规则。
• 使用已经证明其检测能力的标准IDS,例如Snort、Suricata 或Zeek。
• 对ICS 的传统IDS 的扩展,允许计算不可估量的变量,并验证物理系统接收到的命令。
我们对 [5] 的贡献是我们依赖于 Fovino 等人使用的状态概念。 [5] 决定控制器和物理系统之间发送的命令和报告的有效性。 我们还通过对控制器和进程之间的流量进行深度数据包分析,并通过向控制器查询附加信息和更紧密的同步来监控系统的虚拟映像。 然而,我们不是从头开始创建自己的 IDS,而是自动为现有的开源 IDS 之一生成规则,这会导致:
• 解决规则创建中的人为错误问题。
• 通过将系统和流程模型自动转换为 IDS 规则来促进规则的维护。
我们的建模语言比 Fovino 的建模语言更具表现力,原因如下:
• 它增加了表达物理过程和控制器的时间和顺序模式的能力。
• 它允许将控制器和系统变量与其他变量进行比较,而不是仅将它们与预定义值进行比较。
我们与 Sicard 等人分享。 [9] 控制器命令的验证和物理系统的报告。 但是,我们的建模语言更具表现力。 它表达并验证了两个稳定状态之间的系统状态演化。 我们的方法使用多个同步混合自动机来模拟控制器和物理过程,而不是使用一个离散的有限状态模型。 这使得对系统的连续变量进行建模、预测和验证成为可能,并降低了模型的复杂性。它还允许类似于 [41,42] 中提出的方法,我们考虑对事件顺序的约束。 但是,我们依赖于控制器和物理过程的规范,而不是依赖于机器学习技术。 这解决了构建模型的采集周期长的问题,并且无需确保在监控阶段不存在攻击或故障。
最后,所提出的方法允许对不通过网络或存在于控制器内存中的内部系统变量进行建模和考虑,并且可能需要进行更高级的验证。
IDS 需要了解要监控的系统。 这种知识通常使用代表 ICS 的操作部分(控制器和物理系统的行为)的模型提供给 IDS。 此外,控制系统的大多数当前实现没有任何授权机制,因此将对控制系统通信节点的监控添加到 IDS 的职责列表中。 因此,这需要对网络架构和节点的访问权限进行建模。
因此,必须指定两种类型的模型:
1.描述 ICS 架构的静态架构模型。 2.描述控制器操作和过程的功能模型。
然后,这些模型将作为监控系统检测过滤器的基础。
为了对 ICS 的架构进行建模,本文使用网络上通信节点的图 G 形式的模型。 该模型由一对 = (, ) 表示,其中:
• 是一组称为节点的有限顶点,表示架构组件的IP 地址和可选的端口号。
• L 是由对(, ′) 定义的称为链接的有限边集,其中, ′ ∈ 。
当且仅当存在链接 ∈ 其中 = (, ′ ) 时,从节点 n 到另一个节点的通信被认为是可接受的。
例如,要对由允许相互通信的两个节点 A 和 B 组成的系统的体系结构进行建模,我们需要创建两个顶点 A 和 B,指定它们的 IP 地址和端口号,并创建一个链接 它们之间。
功能行为模型描述了控制器和物理系统的正常(预期)行为。 本文建议使用混合自动机 (HA) 形式对这种行为进行建模。 模型的选择及其形式在我们之前的出版物 [51] C 节中介绍。我们通过八元组 = (, , , , , 0, , ) 定义混合自动机,其中:
• 是一组称为地点的有限顶点。
• 是自动机的连续状态空间, ⊂ 。 状态是由一个地方 ∈ 和一个向量 ∈ 组成的一对 (, )。 我们写 自动机的整体状态空间。
•是一组称为sixtuple(,,,,’,)的边缘,其中:
-,’∈。
– ∈ 。
– 是一个依赖于的逻辑表达式。 它是 → {true, false} 的函数。
– 是 → 的函数,这使得在转换后定义状态 ′ 的新向量成为可能。
– 是依赖于和事件的逻辑表达式。 它是一个函数 → {true, false},它标志着转换的有效性条件。
当收到任何指定的事件或 得到验证时,必须进行转换。 未指定的 始终被认为是错误的。 如果未指定任何事件,则将通过验证来跨越转换。
• 是标记边缘的有限事件集。 通过 → 标记函数,每条边都与零、一个或多个事件相关联。 接收到边缘事件并可用于同步多个混合控制器。
• 是一个函数,它在每个地方 ∈ 关联依赖于 的条件逻辑表达式的集合。 每个表达式都表示为()。 这是 → {true, false} 的函数。
• ⊂ 称为初始状态集。
• 0 ∈ 是自动机的初始位置。 它由一个指向虚空的地方的箭头表示。
• 是一个函数,它在每个地方 ∈ 关联一个向量 F (X),称为地方 的活动。 表示为 () 的每个分量都可以确定状态向量的分量 的演化。
请注意,定时器被视为具有函数 () = 1 的连续状态的特殊情况。
但是,创建指定整个系统的单个模型会遇到困难,并且可能会出现状态爆炸[9]。 [52] 的作者建议通过(定时)自动机网络对系统进行建模,这些自动机彼此同步并且可以通过整数变量或通过通信通道进行通信。 这种模块化建模使得以更简单的方式表示复杂系统成为可能(例如通过单独建模每个元素)。 本文通过使用同步 HA 模型为 CPS 使用模块化建模的概念。 因此,本文通过一个或多个 HA 模型对每个 CPS 实体进行建模。 然后,通过内部事件、外部事件和全局变量在这些模型之间进行同步,以表示 CPS 的完整行为。
PLC 执行定义明确的算法来控制生产管理。 该算法以 IEC-61131-3 中指定的 PLC 编程语言(例如顺序功能图)编码。 它可用于确定 PLC 的预期操作。 因此,本文提出通过将 PLC 的程序转换为 HA 模型来对 PLC 的操作进行建模。
根据 IEC 61131-3 中给出的定义,顺序功能图或 SFC 是由通过链接互连的步骤和转换组成的图。 步骤可以是活动的或非活动的。 零个或多个动作与每个步骤相关联。 从一个步骤到另一个步骤的变化由一组必须同时触发的转换表示。 在变量的布尔表达式导致条件满足后将触发转换,该变量可能受到与步骤相关联的操作或外部事件的影响。
在下文中,我们通过参考 [49] 中的定义来简化动作的定义,它将动作的定义限制为将布尔或实数类型值分配给内部变量和输出变量的函数.
我们依靠 Bauer 等人的方法。 [50]将具有同时序列的SFC转换为几个没有同时序列的同步图并等效于初始图。 我们通过以下步骤定义从 SFC 到 HA 的转换算法:
1. 通过创建等效的“逻辑同步”图(解释如下)来降低同步转换的 SFC 图的复杂性。
1. SFC 中的一个步骤转换为混合控制器中的一个位置。
1. 与 SFC 中的步骤相关联的动作被转换为场所中的活动。
1. SFC 链接在 HA 中转换为转换。 在我们的 HA 定义中,SFC 转换条件被转换为转换的“守卫”
降低 SFC 序列的复杂性。 这个想法是通过一个步骤替换包含同时序列的块以获得简化的序列。 随后将创建与来自内部事件和布尔变量的初始序列同步的其他序列(代表序列的简化部分)。
图 1(b) 显示了图 1(a) 所示的 SFC 程序的简化初始序列。 它包括用“并行块”步骤替换同步序列,其中:
• 输入转换的条件与同步序列的条件相同。
• 同时序列的输出转换被一个转换替换,该转换的条件由逻辑运算符“AND”的所有输出条件的并集组成。
同步序列等同于同步序列。 “并行块”块的内容可以看作是两个序列(左边的序列和右边的序列)。 在下文中,我们用术语“左序列”和“右序列”来指代这两个序列。 无花果。 1© 和 1(d) 表示逻辑上等价于“左序列”和“右序列”的序列。 图 1© 是通过以下三个步骤创建的:
同样,图 1(d) 是按照相同的步骤创建的。 然而,图 1 中的这种表示受制于由满足输入转换到同时序列而导致 S1 步骤不活动的非完美操作。 我们将在转换为 HA 时使用 HA 内部事件而不是转换条件来解决此问题。
创建等效自动机。 图 2 的自动机 (a)、(b) 和 © 等效于图 1 的相应 SFC 序列 (b)、© 和 (d)。‘‘S1’’ 和’‘之间的转换 ‘PB’’, ‘‘PB’’ and ‘‘S6’’, ‘‘PBL-Idle’’ and ‘‘S2’’, ‘‘S3’’ and ‘‘PBL-ended’’, ''PBR-Idle ‘’ 和 ‘‘S4’’ 和 ‘‘S5’’ 和 ‘‘PBR-ended’’ 是特殊的,允许 PLC 之间的同步。 图 2(a)中自动机的“S1”和“PB”之间的转换在满足条件“TR1”后触发,并生成内部事件“TR1-started”。 此“TR1-started”事件用于触发“PBL-Idle”和“S2”之间以及“PBR-Idle”和“S4”之间的转换。 这样,到达 “S2” 和 “S4” 的唯一方法就是通过“S1”和“PB”之间的转换。
物理系统是工业生产的核心。 它是试图破坏其财产之一或破坏其生产过程的恶意行为的目标。 因此,了解过程的预期行为对于验证 ICS 中恶意行为索引的存在至关重要。 物理系统的执行器从控制系统接收命令和动作以管理生产。 这些输入的应用使得根据系统动力学确定的定律将物理系统从状态 驱动到 ’ 成为可能。 物理系统如图 3 所示。它的特点是:
• 从控制系统接收到的命令和动作所代表的输入。
• 系统测量所代表的输出。
• 描述系统变量随时间变化的定律所代表的系统动力学,根据接收到的输入。
• 保证系统预期运行的约束。
过程的状态可以通过其测量值(系统变量)来表征。 这些变量可以是离散的或连续的。 连续变量的行为可以通过以下形式的代数方程或微分方程来建模:
虽然离散行为可以从离散分配中表达。
输入是可以是离散性质的变量(例如阀门打开控制)或连续性质的变量(例如以 a% 的值控制阀门,其中 ∈ [0, 100])。 变量的特征在于其名称、用于传递其值的地址(例如 Modbus 协议中的寄存器号)以及生成数据流的源及其目的地。 例如,可以通过检查从控制器到执行器的数据包来检索输入变量的值。 系统约束定义了系统必须在哪些条件下运行以最大化生产性能或确保没有影响或意外结果。 这些约束通常由系统专家定义,包括:
• 物理系统必须接收的命令序列条件,包括命令的顺序和时间。
• 订单可接受(或不可接受)的条件。 这些条件包括正在运行的其他命令的存在或物理系统的当前状态。 例如,当罐已满时,罐填充系统不应收到打开入口阀的命令。
• 系统数量值的最大值或最小值的条件,无论是输入的应用效果还是环境造成的。
本文提出使用 HA 形式主义对 CPS 知识进行建模。 每个功能设备(例如传感器和执行器)都可以单独建模。 本文不规定如何选择 CPS 的功能设备。 同样,本文让用户选择要用于为其 CPS 建模的 HA 数量。
上述部分定义了 ICS 特征元素的建模。 因此,这些模型的组合构建了完整的 ICS 模型。 因此,ICS 的通用模型包括:控制器模型(PLC)和物理系统及其通信模型(CPS)。
然而,PLC 和 CPS 模型的定义是基于变量来表示物理系统、命令和动作的数量。 从监控系统的角度来看,只要这些信息不能与系统实施联系起来,这些知识仍然是系统行为的“理论”定义。 因此,有必要为监控系统定义如何确定指定变量的值; 无论是通过指定用于传输变量的地址的通信还是来自其他来源。 本文建议通过网络通信(通过执行网络检查)或通过连接到 PLC 并通过指定与这些变量相关的 Modbus 寄存器的地址来读取变量的值来确定指定变量的值。
所提出的方法基于对系统的深入了解,自动生成具有 ICS 的物理状态规则的 IDS 设计。 这种方法如图 4 所示,包括以下三个步骤:
模型构建:创建一个使用正式建模语言定义其正常行为的 CPS 模型。
模型转换:使用建议的综合方法将聚合模型转换为 IDS 规则。
在线IDS的实现:结果实现如下:
3.1我们使用一个开源的IDS来实现IDS生成的入侵检测规则。
3.2 我们建议将此IDS链接到特定模块以预测流程状态。
如图 4 所示,transformer 模块(在本文中也称为规则生成器)将由形式模型表示的 ICS 知识转换为设计 IDS 的规则。 转换器创建了两类规则:
1.网络通信的IT级验证规则。
2.PLC和CPS行为的OT级检查规则。
我们定义了三种规则:
TYPE-I(检测器规则):这些规则定义了检测器要使用的检测算法。 它们由现有的开源 IDS 之一实现。
TYPE-II(状态重构规则):这些规则定义了用于估计过程状态的算法。 它们由我们称为过程状态估计 (PSE) 模块的附加模块实现。
TYPE-III(同步规则):这些规则定义了用于将估计的过程状态(由 PSE 创建)与检测器同步的算法,因此检测器可以对其进行验证。
这些规则由 IDS“检测器”实施,并在表 1 中给出。
正如我们所见,这些规则依赖于系统的物理状态。 这需要另一种规则来重构系统的物理状态。 这些是 II 类规则,由我们的方法提出的过程状态估计 (PSE) 模块实现(我们将在下一节中详细介绍该模块)。 最后,Transformer 还为状态同步和存储规则创建 TYPE-III 规则,以便 IDS 可以从状态重建模块中检索重建的系统状态。
TYPE-II 规则由转换器生成以重建系统状态。 这些规则从监视系统的角度创建了 ICS 物理状态的图像。 更准确地说,目标是在 IDS 的活动内存中拥有物理系统量的当前值。 对于基于网络的 IDS (NIDS),数量值通常从网络通信中检索。 然而,并不是所有的量都进入网络通信,这可能导致基于网络的 IDS 系统物理状态的不完整视图。 例如,可能不会产生具有 IDS 分析所需量值的流量。 为了解决这个问题,我们提供了两个选项,您可以选择其中一个或同时选择两个(取决于实现):
• 初始化(或重置)模拟。
• 根据测量值修正模拟。
• 读取操作变量。
因此,规则生成器会根据所选的选项生成一个或两个规则:
• 对于测量变量(在PLC 内存中):
1.规则1:变压器生成规则以从PLC 内存中检索值。
2.规则 2(与表 1 中的 TYPE-I.7 规则相关的可选):变压器生成第二个规则,以使用之前的活动(在混合自动机模型中指定)计算测量变量(通过模拟) 计算测量值和模拟值之间的残差值。
• 对于不可测量的变量(例如,在命令应用的最大持续时间内的秒表):转换器生成一个规则来计算数量的值(通过模拟)。
然而,尚未开发出一种检测器(通用 IDS)来应用这种类型的规则(连接到 PLC)并执行复杂的模拟。 由于我们的解决方案不是从头开始重新创建 IDS,因此我们使用我们称为的外部模块来实现这些规则:进程状态估计 (PSE) 模块。
因此,需要允许 IDS 从 PSE 确定重构状态的规则 (TYPE-III)。
这些规则的主要目的是允许在 IDS(常规检测器)和 PSE 之间同步物理系统的重建状态。
对于 PSE,同步规则定义了 PSE 应该如何响应请求重建进程状态的检测器查询。
对于 IDS,规则定义了如何确定和存储(在其内部存储器中)物理系统当前状态的虚拟映像。
过程状态估计 (PSE) 模块依靠 PLC 和 CPS 模型来估计系统未测量的变量。 这种估计是通过模拟 HA 模型来执行的。 变量估计算法如图 5 所示,由以下四个步骤组成:
请注意,系统的非测量(缺失)变量是根据其他现有变量并通过计算所需活动(当前场所的活动)来计算的。 另一方面,对于系统测量的变量,可以应用两种解决方案:
然而,任何这些选项的应用并不总是有效的。 一方面,ICS 容易受到攻击,这意味着测量变量可以被黑客修改。 因此,使用这些变量会导致错误的结果。 另一方面,长期模拟可能会导致与实际变量的显着偏离。
为了解决这个问题,我们通过在测量值和模拟创建的值之间应用图 6 所示的校正滤波器同时使用这两种解决方案,以获得更可靠的估计。
在我们的方法中,使用实现从转换器模块生成的规则的常规检测器来检测对 ICS 的潜在入侵。 IDS检测原理如图7所示,由重复以下三个步骤组成:
1.IDS状态与系统状态的同步:在该步骤中,IDS提取SCADA和PLC之间网络通信的命令和测量值。 它还从 PSE 模块获得其他必要的测量值。
2.应用所需的转换和更新HA模型的当前位置:在这一步中,IDS:
2.1.应用通信数据包的高级检查(标头提取)
2.2.对 SCADA 和 PLC 之间的通信数据包进行彻底检查:
2.2.1.识别有用的数量(测量和订单)。
2.2.2.在 IDS 的活动内存中存储数量。
2.3. 系统当前状态的完整重建:
2.3.1.通过应用 TYPE-III 规则从 PSE 模块中检索系统状态的补充。
2.3.2. 在 IDS 的活动内存中存储额外的数量。
3.监控和验证:IDS持续监控通信和状态,并验证所有的有效性条件。 如果系统状态违反了至少一个不变量或转换的有效性条件,则认为系统状态是“无效的”。 这一步包括:
3.1.在高级检查之后应用 TYPE-I.1 规则。
3.2.对经过彻底检查后观察到的每个数据包应用 TYPE-I.2–3 规则。
3.3.每次更新 PLC 内存中的系统状态后,通过应用 TYPE-I.4–6 规则来连续检查系统的当前状态。
为了验证我们的方法,我们将从定义实验研究的范围开始。 ICS 知识由通用 ICS 模型表示,该模型由架构图和描述 PLC 和 CPS 行为的 HA 组成。 然后,将 ICS 模型转换为开源 IDS“Zeek”的规则,并转换为过程状态估计 (PSE) 模块的规则。
IDS 探测器和 PSE 放置在最靠近流程的位置(在 Purdue 架构的 0 级和 1 级之间 [53])。 因此,PSE 模块通过从 PLC 存储器中检索过程值来构建系统状态。
这种方法的目的是能够考虑任何旨在影响操作部分的攻击,无论是何种类型(DDoS、MITM、虚假数据注入 (FDI)、命令顺序更改等)。
本部分描述了一个使用储罐填充/排空系统来评估我们的入侵检测方法的示例。 它是一个五罐系统,如图 8 所示。该系统由五个罐组成,其中 CA、CB 和 CC 三个被认为是无限容量的,包含产品 A、B 和 C , 分别。 这三个罐将它们的产品供应到两个混合罐 C1 和 C2 以生产产品。 生产过程由以下四个步骤定义:
通过选择一个或两个混合罐来触发填充步骤,然后单击“开始”按钮。 这是通过打开阀门 v_tank1_in、v_tank2_in 中的一个或同时打开两者来完成的。 然后,通过以与上述相同的顺序打开灌装阀 v1、v2 和 v3 来进行产品灌装。
混合步骤被认为是从混合罐中存在两种或多种产品的那一刻起触发的。 因此,在填充输入产品后的一定等待时间后,混合物将完成。 根据使用的混合罐,通过打开阀门 v_tank1_qout、v_tank2_qout 或两者之一来执行清空步骤。 排空阀的出口代表最终产品。
每次生产最终产品后,都需要进行洗罐步骤。 此步骤通过打开阀门 v_tank1_water、v_tank2_water 或两者来触发,具体取决于所选的混合罐,直到混合罐装满。 然后,通过打开 v_tank1_waste_water、v_tank2_waste_water 或两个出水阀来处理洗涤水。 一旦所有的水从混合罐中排出,混合罐将可用于新产品。 液位传感器放置在每个混合罐中,并允许了解产品数量水平。 该系统使用两个液位传感器 H1 和 H2 分别测量罐 C1 和 C2 中的产品体积。
工业系统使用混合测试平台实现; ICS 由虚拟机网络模拟,这些虚拟机使用 Modbus/TCP 协议进行真实网络通信。 ICS 实现架构如图 9 所示。它包括五个虚拟机:
在 VM1 上,监控系统是使用 mySCADA 工具实现的。
在 VM2 上,PLC 使用 OpenPLC 工具 [54] 实现,并使用 SFC 语言进行编码。 有关 Open PLC 及其对网络安全的适用性的更多信息,请参见 [55]。
在VM3上实现了流程模拟。
在 VM4 上实现了状态估计模块 (PSE)。
在VM5 上实现了流量生成模块。 Zeek IDS 在同一台机器上实现。
对于虚拟机之间的通信,配置了两个“NAT 网络”网络:
控制器使用 SFC 语言进行编码,以应用上一节所述的过程控制。 PLC 代码由两个主要部分组成:
1.SFC程序中实现的变量定义见附录表5。
2.顺序程序如图所示。
ICS 建模为 IDS 提供了必要的知识,并构建了攻击检测过程的第一阶段。 本节详细介绍了为 ICS 创建的模型并包含:
• 控制器(PLC)的HA 型号。
• 流程的HA 模型。
• 系统变量。
如第 4 节所述,必须在整个生产过程中验证的 ICS 构建条件的约束。 这些条件必须经过 IDS 验证,以验证生产过程的合法操作。 本文将这些条件指定为不变量,如附录中的表 3 所示:
请注意,为了表格的可读性,本文使用术语“Verify_open_valves_vs_simulation”来表示验证真实阀门与其模拟相比的条件。该术语总结了以下条件:
[ ''v1_residual_sum<5'', ''v2_residual_sum<5'', ''v3_residual_sum<5'', ''v_tank1_in_residual_sum<5'', ''v_tank1_water_residual_sum<5'' , ''v_tank1_qout_residual_sum<5'', ''v_tank1 _waste _water_residual_sum <5'', ''v _tank2 _in _residual_sum<5'', ''v _tank2 _water _residual _sum <5'', ''v _ tank2 _qout _residual_sum< 5'', ''v _tank2 _waste _water _residual _sum<5'']
,其中残差是阀门的实际值与其模拟值之间的差异。如果其中一个阀门打开而另一个阀门关闭,则阀门“v_i”的实际值与其模拟值“v_i_sim”之间的残差等于 1。此外,阀门“v_residual_sum”的残差总和表示阀门的残差总和。
创建三种类型的变量来指定 ICS 值:过程和 PLC 变量以及用户定义的变量。 完整的变量列表见附录表 4。
为了评估所提出的方法,本文采用了几种方法,如表 2 所示:
我们应用 MitM 攻击来破坏改变系统阀门状态的命令。在此攻击中,黑客获取控制器的身份,并更改进程从控制器接收到的命令的内容,将关闭阀门 v1 和 v2 的命令替换为打开阀门 v1 和 v2 的其他命令,如如图 10 所示。一方面,攻击发生在储罐容积达到所需阈值(在本例中为 setpoint_A)时。在这里,控制器试图停止填充过程,但黑客阻止了它。另一方面,IDS 正在监视系统,跟踪其状态变化,并根据 HA 模型验证其状态。当系统达到要求的阈值时,系统当前位置的计算结果为:
[Afilled, EndFillT1, EndFillT2, PBL2idle, PBR2idle, PBL3idle, PBR3idle, PBL4idle, PBR4idle, PBL5idle, PBR5idle PBL6idle, PBR6idle, T1chan-ging, T2sharing, v1off , v2off, v3off, vtank1inoff, vtank2inoff, vtank1wateroff, vtank2wateroff, vtank1qoutoff, vtank2qoutoff, vtank1wastewateroff, vtank2wastewateroff]
。根据规范模型,进程期望接收关闭 v1 和 v2 的命令。没有命令的接收违反了验证罐容积的不变量(在这种情况下是不变量 I6 (v1_plc==0))。此外,任何其他命令的接收,如本次攻击的情况,都违反了不变的 I6 和 HA 模型(根据当前位置接收未指定的命令被认为是未经授权的)。
请注意,在这种情况下,检测是基于行为的。 这意味着无论攻击的原因是什么,无论是 MitM、受损的 PLC 还是任何其他导致发送未指定命令或阻止所需命令的攻击,都将应用相同的检测。
在这次攻击中,按下启动按钮后(生产开始后)执行 MitM,通过在初始值上加 50 来改变从流程发送到 PLC 的体积测量值,如图 11 所示。我们的 IDS 检测到了这种攻击 由于以下原因:当 IDS 分析数据时,它有两个系统量来源(在本例中为 tank1 和 tank2 的体积)。 第一个源由系统自己创建,而第二个源由 PSE 通过计算模型活动创建,如下式所示: f(v_sim) = v_tank1_in * (av1+bv2+cv3) + fwater * vtank1_water - fqout*vtank1_qout。 根据这些值,IDS 检测到系统体积与预期体积(由 PSE 创建)之间存在较大差异,这违反了不变量 I32 和 I35。 因此,IDS 为这些违规行为创建了警报。
在这种攻击中,黑客等待用户启动生产过程(通过等待 PLC 发送打开阀门 1 的命令),然后使用 Ettercap 工具对 PLC 长时间应用 DoS。 DoS 攻击导致 PLC 和进程之间的通信丢失。 此攻击的应用程序导致系统仅用其中一种产品(产品 A 而不是 A、B 和 C)填充罐,从而导致溢出。首先,IDS 检测到这种攻击,因为它违反了进程查询和 PLC 之间的时序模型。 (进程与PLC之间长时间没有数据包)。在此期间,PLC 和 IDS 没有关于该过程的信息。 黑客停止攻击后,PLC 和 IDS 开始接收坦克中的真实容量。 这会导致违反不变量 I32。 然后,PLC 意识到体积超过了 v1 和 v2 的设定值。 所以它关闭 v1 并打开 v2,然后关闭 v2 并打开 v3,然后再次关闭 v3。 这导致违反不变量 I23 和 I24。
这种攻击依赖于用 v1、v2、v3 和 v_tank1_in 的错误值淹没 PLC。 通过这种攻击,黑客不会阻止发送命令或接收测量值。 但是,黑客不断向 PLC 发送错误值以覆盖初始值。 应用这种攻击会导致 PLC 的正常服务被拒绝(PLC 无法控制其被编程的过程)和生产过程的破坏。 在这种攻击中,黑客连接到网络并用错误的值淹没 PLC。 IDS 通过检测未经授权的命令源来简单地检测到这种攻击,因为源(攻击者机器)不是授权源。
这种攻击类似于之前的 DoS 泛洪攻击。 然而,在这种攻击中,黑客直接连接到 PLC(通过使用直接物理连接)并发送泛洪命令而不在网络上留下痕迹。 该方法较为严重,本文应用该方法验证所提方法的检测能力。 这种攻击适用于两种不同的场景,每一种都涉及不同的结果:
场景 1:在第一个场景中,黑客在进程开始之前应用了攻击(尚未单击“开始”按钮)。根据 PLC 的 SFC 程序,此按钮表示生产过程的开始。从 PLC 的角度来看,只要这个按钮没有被点击,这个过程就不应该开始(SFC 程序中的等效步骤是“ChooseTank”)。但是,从过程的角度来看,它接收到打开入口阀的命令,因此开始填充罐。 IDS 检测到这种攻击的原因如下:控制器仿真模型是从 PLC 的 SFC 程序构建的。 PSE 从 PLC 存储器中读取入口阀打开但过程不应开始(尚未单击开始按钮)。因此,PSE 不打开模拟阀门(v1_sim、v2_sim、v3_sim、v1_in_sim)并继续等待过程开始,模拟量保持为零。在这种情况下,检测是通过违反不变量 I32 和不变量 I31、I32 和 I2 来执行的,这些不变量计算真实阀门和模拟阀门开度之间的残差值之和。
场景2:在第二种场景中,黑客等待正常进程启动(通过等待启动按钮被点击)然后应用相同的攻击。 我们的 IDS 检测到这种攻击的原因如下:在 PSE 从其 PLC 内存读取中接收到启动按钮被单击后,它会按照其模型 (HA) 中的规定打开阀门 v1 和 v_tank1_in)(不打开其他阀门) . 结果,模拟 tank1 中的体积相对于实际体积缓慢增加(通过应用 HA 模型的活动)。 因此,IDS 通过计算真实阀门和模拟阀门开度之间的残差值之和来检测不变量 I32 和不变量 I31、I32 和 I2 的违反。
这种攻击会破坏阀门 v1 和 v_tank1_in,以便在没有收到打开命令的情况下打开它们。 它可以模拟对阀门的物理攻击,通过分析通信网络无法检测到。 我们的 IDS 检测到这种攻击的原因如下:根据 ICS 模型,PLC 不得打开进气阀。 因此,PSE 模块的模拟阀门保持关闭状态,并且 PSE 计算它们的活动导致空罐。 因此,IDS 检测到违反 I32 不变量的情况。
这种攻击会破坏 tank1 中的体积传感器,并强制它返回错误的体积测量值(当 tank1 体积介于 150 和 450 之间时,实际值增加 50)。 我们的 IDS 检测到这种攻击的原因如下:当 PSE 计算体积值的变化时,它认为体积应该根据系统动力学定律增加(取决于打开阀门的流量)。 因此,IDS 检测到违反 I32 不变量的情况。 此外,IDS 检测到违反不变量 I21 和 I23。
本文表明使用非线性模型对过程进行建模很有趣并且可能会成功。 我们展示了一个工业系统示例,其中 SFC 中的控制程序代表了工业现实。 然后,我们证明了使用基于模型的方法可以获得令人满意的结果。 这突出了在工业系统环境中使用基于模型的方法进行入侵检测的重要性,并证明我们可以使用基于模型的方法获得令人满意的结果。 当然,如果系统非常复杂,可能会出现一些新问题,需要进一步的工作。 但是,在未来的工作中可以解决以下几点:
• 本文仅将转换用SFC 编写的SFC 程序作为第一步。 但是,从理论上讲,转换IEC 61131-3中规定的其他语言并不难。 尤尼斯等人。 [56] 调查了几种将其他语言(如 IL、ST、LD)转换为自动机的方法。
• 所提议的方法考虑依靠对工业系统的深入了解来自动生成规则(或策略)。 这减少了基于模型的 IDS 的综合和实现的困难。 然而,这种方法的性能可以在未来的工作中得到解决。
• 提议的方法通过提出自动规则生成和IDS 合成来处理在ICS 上下文中为入侵检测编写规则的问题。 从性能的角度来看,我们可以区分两种情况:
1.对于线性模型,我们可以很容易地以 if → then 的形式编写规则。 所提出的方法将提供与手写规则相同的性能。
2.对于复杂模型,该方法允许使用模型的显式形式进行预测/验证。
• 所提出的方法的实施只考虑使用 Modbus 协议的语法创建规则作为工业通信协议的示例。 但是,该实现可以轻松扩展以支持其他协议,例如 DNP3。
• 这种方法没有解决 ICS 的不确定性问题。 因此,由于我们的方法基于“白盒”模型类型,我们可能会在建模阶段考虑过程组件的可能不确定性和可能的错误。 例如,可以使用可接受值的范围,而不是只使用一个严格的值。 虽然应用这种解决方案可能有助于考虑不确定性和错误,但它可能会在检测过程中引入延迟。 应该应用多次测试来验证这种解决方案的效率。 此外,必须评估漏洞以验证引入新威胁的可能性。
本文提出了一种解决方案,以促进为 ICS 设计基于模型的 IDS。首先,它描述了应该建模的实体。然后,本文提出了一种模块化方法来使用标准形式(HA 形式)定义所需的模型。这允许所提出的方法扩展到更复杂的系统。接下来,本文提出了一种将输入模型转换为 IDS 规则的规则生成器。生成的规则允许检测对 IT 和 OT 级别的攻击。自动规则生成过程解决了为基于异常的进程感知 IDS 创建和维护一致规则的问题。此外,本文提出了一个过程状态估计模块(PSE)来计算IDS分析所需的缺失变量。 PSE 解决了基于网络的 IDS 使用网络作为唯一信息源的限制。因此,即使某些必需的变量没有通过网络进行通信,IDS 仍将拥有生产过程的完整概览。最后,所提出的解决方案允许通过使用系统的异常行为作为指示来检测对 ICS 的攻击。所提出的方法的优点是:
• 使用灵活且富有表现力的语言(同步 HA)来模拟控制器的行为和物理过程。
• 通过使用开源IDS 的自动规则生成过程,促进ICS 的基于模型的IDS 的综合和实施。
• 支持著名的Zeek IDS 实施。
• 使用非线性模型的显式形式来预测/验证控制器和物理系统的行为。
• 考虑内部变量计算(通信或PLC 内存中不存在的变量),以对过程和控制器变量进行高级验证。
建议的方法应用和检测最常见的攻击列表,以显示规则生成器的检测能力。 在未来的工作中,我们打算通过考虑物理系统模型的不确定性来扩展这里提出的方法。
[1] Stouffer K, Lightman S, Pillitteri V, Abrams M, Hahn A. NIST special publication 800-82 guide to industrial control systems (ICS) security-revision 2 final public draft. 2015, National Institute of Standards and Technology.
[2] Lu T, Guo X, Li Y, Peng Y, Zhang X, Xie F, et al. Cyberphysical security for industrial control systems based on wireless sensor networks. Int J Distrib Sens Netw 2014;10(6):438350.
[3] Colbert EJ, Kott A. Cyber-security of SCADA and other industrial control systems, vol. 66. Springer; 2016.
[4] Flaus J-M. Cybersecurity of industrial systems. John Wiley & Sons; 2019.
[5] Fovino IN, Coletta A, Carcano A, Masera M. Critical state-based filtering system for securing SCADA network protocols. IEEE Trans Ind Electron 2011;59(10):3943–50.
[6] Zhu B, Sastry S. SCADA-specific intrusion detection/prevention systems: a survey and taxonomy. In: Proceedings of the 1st workshop on secure control systems, vol. 11. 2010, p. 7.
[7] Falliere N, Murchu LO, Chien E. W32. stuxnet dossier. 2011, p. 29, White Paper, Symantec Corp., Security Response, 5, no. 6.
[8] Manson S, Anderson D. Cybersecurity for protection and control systems: An overview of proven design solutions. IEEE Ind Appl Mag 2019;25(4):14–23.
[9] Sicard F, Zamaï E, Flaus J-M. An approach based on behavioral models and critical states distance notion for improving cybersecurity of industrial control systems. Reliab Eng Syst Saf 2019;188:584–603.
[10] Edmonds J, Papa M, Shenoi S. Security analysis of multilayer SCADA protocols. In: International conference on critical infrastructure protection. Springer; 2007, p. 205–21.
[11] Huitsing P, Chandia R, Papa M, Shenoi S. Attack taxonomies for the Modbus protocols. Int J Crit Infrastruct Prot 2008;1:37–44.
[12] McLaughlin S, Konstantinou C, Wang X, Davi L, Sadeghi A-R, Maniatakos M, et al. The cybersecurity landscape in industrial control systems. Proc IEEE 2016;104(5):1039–57.
[13] Keliris A, Konstantinou C, Tsoutsos NG, Baiad R, Maniatakos M. Enabling multi-layer cyber-security assessment of industrial control systems through hardware-in-the-loop testbeds. In: 2016 21st Asia and south Pacific design automation conference. IEEE; 2016, p. 511–8.
[14] Shin J, Son H, Heo G, et al. Development of a cyber security risk model using Bayesian networks. Reliab Eng Syst Saf 2015;134:208–17.
[15] Chatterjee S, Thekdi S. An iterative learning and inference approach to managing dynamic cyber vulnerabilities of complex systems. Reliab Eng Syst Saf 2020;193:106664.
[16] Zang T, Gao S, Liu B, Huang T, Wang T, Wei X. Integrated fault propagation model based vulnerability assessment of the electrical cyber-physical system under cyber attacks. Reliab Eng Syst Saf 2019;189:232–41.
[17] Ren X, Blanton RD, Tavares VG. A learning-based approach to secure JTAG against unseen scan-based attacks. In: 2016 IEEE computer society annual symposium on VLSI. IEEE; 2016, p. 541–6.
[18] Basnight Z, Butts J, Lopez Jr. J, Dube T. Firmware modification attacks on programmable logic controllers. Int J Crit Infrastruct Prot 2013;6(2):76–84.
[19] Schuett C, Butts J, Dunlap S. An evaluation of modification attacks on programmable logic controllers. Int J Crit Infrastruct Prot 2014;7(1):61–8.
[20] McLaughlin SE, Zonouz SA, Pohly DJ, McDaniel PD. A trusted safety verifier for process controller code. In: NDSS, vol. 14. 2014.
[21] Mitchell R, Chen R. Behavior rule specification-based intrusion detection for safety critical medical cyber physical systems. IEEE Trans Dependable Secure Comput 2014;12(1):16–30.
[22] Roesch M, et al. Snort: Lightweight intrusion detection for networks. In: Lisa, vol. 99, no. 1. 1999, p. 229–38.
[23] Albin E, Rowe NC. A realistic experimental comparison of the suricata and snort intrusion-detection systems. In: Advanced information networking and applications workshops (WAINA), 2012 26th international conference on. IEEE; 2012, p. 122–7.
[24] Paxson V. Bro: A system for detecting network intruders in real-time. Comput Netw 1999;31(23–24):2435–63.
[25] Thongkanchorn K, Ngamsuriyaroj S, Visoottiviseth V. Evaluation studies of three intrusion detection systems under various attacks and rule sets. In: TENCON 2013-2013 IEEE region 10 conference (31194). IEEE; 2013, p. 1–4.
[26] Cheung S, Dutertre B, Fong M, Lindqvist U, Skinner K, Valdes A. Using modelbased intrusion detection for SCADA networks. In: Proceedings of the SCADA security scientific symposium, vol. 46. Citeseer; 2007, p. 1–12.
[27] Lin H, Slagell A, Di Martino C, Kalbarczyk Z, Iyer RK. Adapting bro into SCADA: building a specification-based intrusion detection system for the DNP3 protocol. In: Proceedings of the eighth annual cyber security and information intelligence research workshop on. Oak Ridge, Tennessee: ACM Press; 2013, p. 1. http://dx. doi.org/10.1145/2459976.2459982, URL: http://dl.acm.org/citation.cfm?doid= 2459976.2459982.
[28] Morris T, Vaughn R, Dandass Y. A retrofit network intrusion detection system for MODBUS RTU and ASCII industrial control systems. In: 2012 45th Hawaii international conference on system sciences. Maui, HI, USA: IEEE; 2012, p. 2338– 45. http://dx.doi.org/10.1109/HICSS.2012.78, URL: http://ieeexplore.ieee.org/ document/6149298/.
[29] Linda O, Vollmer T, Manic M. Neural network based intrusion detection system for critical infrastructures. In: 2009 international joint conference on neural networks. Atlanta, Ga, USA: IEEE; 2009, p. 1827–34. http://dx.doi.org/10.1109/ IJCNN.2009.5178592, URL: http://ieeexplore.ieee.org/document/5178592/.
[30] Vollmer T, Manic M. Computationally efficient neural network intrusion security awareness. In: 2009 2nd international symposium on resillient control systems. Idaho Falls, ID, USA: IEEE; 2009, p. 25–30. http://dx.doi.org/10.1109/ISRCS. 2009.5251357, URL: http://ieeexplore.ieee.org/document/5251357/.
[31] Linda O, Manic M, Vollmer T. Improving cyber-security of smart grid systems via anomaly detection and linguistic domain knowledge. In: 2012 5th international symposium on resilient control systems. Salt Lake City, UT, USA: IEEE; 2012, p. 48–54. http://dx.doi.org/10.1109/ISRCS.2012.6309292, URL: http://ieeexplore. ieee.org/document/6309292/.
[32] He X, Robards E, Gamble R, Papa M. Anomaly detection sensors for a modbusbased oil and gas well-monitoring system. In: 2019 2nd international conference on data intelligence and security. IEEE; 2019, p. 1–8.
[33] Luo Y. Research and design on intrusion detection methods for industrial control system
[PhD], Hangzhou, China: Zhejiang University; 2013.
[34] Maglaras LA, Jiang J. Intrusion detection in SCADA systems using machine learning techniques. In: 2014 science and information conference. London, UK: IEEE; 2014, p. 626–31. http://dx.doi.org/10.1109/SAI.2014.6918252, URL: http: //ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6918252.
[35] Hadeli H, Schierholz R, Braendle M, Tuduce C. Leveraging determinism in industrial control systems for advanced anomaly detection and reliable security configuration. In: 2009 IEEE conference on emerging technologies & factory automation. IEEE; 2009, p. 1–8.
[36] Barbosa RRR, Sadre R, Pras A. Flow whitelisting in SCADA networks. Int J Crit Infrastruct Prot 2013;6(3–4):150–8.
[37] Carcano A, Fovino IN, Masera M, Trombetta A. State-based network intrusion detection systems for SCADA protocols: a proof of concept. In: International workshop on critical information infrastructures security. Springer; 2009, p. 138–50.
[38] Fovino IN, Carcano A, Murel TDL, Trombetta A, Masera M. Modbus/DNP3 statebased intrusion detection system. In: 2010 24th IEEE international conference on advanced information networking and applications. IEEE; 2010, p. 729–36.
[39] Hadžiosmanović D, Sommer R, Zambon E, Hartel PH. Through the eye of the PLC: semantic security monitoring for industrial processes. In: Proceedings of the 30th annual computer security applications conference. ACM; 2014, p. 126–35.
[40] Caselli M, Zambon E, Petit J, Kargl F. Modeling message sequences for intrusion detection in industrial control systems. In: International conference on critical infrastructure protection. Springer; 2015, p. 49–71.
[41] Caselli M, Zambon E, Kargl F. Sequence-aware intrusion detection in industrial control systems. In: Proceedings of the 1st ACM workshop on cyber-physical system security. ACM; 2015, p. 13–24.
[42] Ferling B, Chromik J, Caselli M, Remke A. Intrusion detection for sequence-based attacks with reduced traffic models. In: German R, Hielscher K-S, Krieger UR, editors. Measurement, modelling and evaluation of computing systems. Springer International Publishing; 2018, p. 53–67.
[43] Sicard F, Zamai E, Flaus J-M. Filters based approach with temporal and combinational constraints for cybersecurity of industrial control systems. IFAC-PapersOnLine 2018;51(24):96–103.
[44] Frey G, Litz L. Formal methods in PLC programming. In: Smc 2000 conference proceedings. 2000 Ieee international conference on systems, man and cybernetics.’cybernetics evolving to systems, humans, organizations, and their complex interactions’(Cat. No. 0), vol. 4. IEEE; 2000, p. 2431–6.
[45] Wightkin N, Buy U, Darabi H. Formal modeling of sequential function charts with time Petri nets. IEEE Trans Control Syst Technol 2010;19(2):455–64.
[46] L’Her D, Le Parc P, Marcé L. Proving sequential function chart programs using automata. In: International workshop on implementing automata. Springer; 1998, p. 149–63.
[47] Stursberg O, Lohmann S. Analysis of logic controllers by transformation of SFC into timed automata. In: Proceedings of the 44th IEEE conference on decision and control. IEEE; 2005, p. 7720–5.
[48] Nellen J, Ábrahám E. Hybrid sequential function charts. In: MBMV. 2012, p. 109–20.
[49] Hassapis G, Kotini I, Doulgeri Z. Validation of a SFC software specification by using hybrid automata. IFAC Proc Vol 1998;31(15):107–12.
[50] Bauer N, Engell S, Huuck R, Lohmann S, Lukoschus B, Remelhe M, et al. Verification of PLC programs given as sequential function charts. In: Integration of software specification techniques for applications in engineering. Springer; 2004, p. 517–40.
[51] Monzer MH, Beydoun K, Flaus J-M. Model-based approach IDS design. In: 2019 6th international conference on control, decision and information technologies. IEEE; 2019, p. 477–82.
[52] Larsen KG, Pettersson P, Yi W. UPPAAL in a nutshell. Int. J. Softw. Tools Technol. Transf. (STTT) 1997;1(1):134–52.
[53] Williams TJ. The purdue enterprise reference architecture. Comput Ind 1994;24(2–3):141–58.
[54] Alves TR, Buratto M, De Souza FM, Rodrigues TV. OpenPLC: An open source alternative to automation. In: IEEE global humanitarian technology conference. IEEE; 2014, p. 585–9.
[55] Alves T, Morris T. OpenPLC: An IEC 61,131–3 compliant open source industrial controller for cyber security research. Comput Secur 2018;78:364–79.
[56] Younis MB, Frey G, et al. Formalization of existing PLC programs: A survey. In: Proceedings of CESA. 2003, p. 0234–9.