基于逆向工程的内存真值检查来保卫网络物理系统

基于逆向工程的内存真值检查来保卫网络物理系统

原文
Defending Cyber-physical Systems through Reverse Engineering Based Memory Sanity Check
申明
版权归原文作者及出版单位所有,如有侵权请联系删除。

摘要

​ 网络物理系统(CPS)在关键基础设施中无处不在,其中可编程逻辑控制器(PLC)和物理组件交织在一起。然而,针对安全相关的CPS的多次成功攻击,特别是PLC,显示了其对恶意网络攻击的脆弱性,这可能会造成重大损失。虽然在文献中存在几种防御技术,但其中很少有能实际和广泛地应用于现实世界的CPS,并配备了领先供应商的PLC,主要是由于缺乏特定的硬件或不现实的防御假设。

​ 在本文中,我们提出了PLCREADER,一个实用的内存攻击检测和响应框架,以确保CPS的安全。PLCREADER的核心包括:1)基于软件逆向工程和网络流量差异分析,专门针对PLC专有协议的综合语义分析方案;2)细粒度的内存结构分析方案,以识别关键内存数据。基于这种逆向工程的结果,PLCREADER进一步通过定期检查这些内存数据的哈希值和动态校验值,对PLC的关键内存进行理智检查。我们对PLCREADER进行了广泛的评估,以对付4种366种不同的内存攻击,其中一些新开发的内存攻击得到了施耐德和罗克韦尔的6个CVE ID,通过分析3个主要制造商的6种真实世界的PLC中的3种专有协议和6种内存结构。结果表明,PLCREADER能够以100%的准确率检测出所有的内存攻击,并及时执行相应的应急响应。

​ PLC容易受到各种攻击,如控制逻辑注入攻击[6]-[8],固件修改攻击[9],[10],应用程序保护密码篡改攻击[11],[12],以及配置篡改攻击[13]。为了保证PLC的安全,已经提出了很多方法,这些方法可以归纳为以下几点。1)验证控制逻辑二进制字节码[14],[15]或高级源代码[16]-[18]的完整性,2)基于机器学习[19]-[26]、不变规则[27]-[33]和物理模型[34]-[39]识别物理过程行为的异常,3)通过可信平台模块(TPM)[40]或基于软件的机制[14],[41]证明PLC代码的完整性。

​ 不幸的是,以前的方法存在着不同的局限性。例如,针对PLC控制逻辑攻击提出的代码完整性验证[15],[16]只在控制程序在网络流量中被上传或下载时起作用。针对PLC可变数据攻击提出的异常检测方法[26], [33]在很大程度上依赖于根据物理过程的大量数据训练出来的强大模型。更糟糕的是,这些模型被证明很容易受到对抗性攻击[42]。旨在保证代码完整性的传统证明方案似乎是对PLC攻击的一种回答。然而,现有的证明方案在实际的CPS中实施是不现实的。例如,硬软件认证解决方案[43]需要硬件信任根技术(如TrustZone[44],[45]或SGX[46]),而传统的PLC通常无法使用。软件认证解决方案[14],[41]基于PLC运行时间可访问的假设,很难推广到现实世界的专有系统。

1. 简介

​ 在本文中,我们为防御面向PLC的攻击提供了一个新的实用层面–PLC内存。关键的观察点是,不同种类的PLC攻击基本上都是将恶意数据写入PLC的不同内存区域来生效的。因此,可以通过对PLC内存进行理智检查来检测这些攻击。然而,未公开的操作系统和内存机制阻碍了这种基于软件的技术的使用。因此,我们首先进行了研究,分析了来自3个(前4个)主要控制器制造商的6种不同类型的PLC。西门子、施耐德和Allen-Bradleys [47]。根据我们的初步结果,我们得出结论:在编程软件将程序下载到PLC后,关键内存数据(包括控制逻辑程序、配置数据、固件和PLC系统的应用保护通字)的地址在物理内存中是固定的,这使得对这些内存区域进行理智检查以实现攻击检测。不幸的是,目前还没有一个全面的、统一的解决方案来定位这些关键的内存数据。为了解决这个问题,我们进一步进行了实验,分析PLC编程软件和PLC之间的网络流量,这带来了另一个挑战,即不同的PLC制造商提供不同的专有协议,市场上没有一个支持所有这些协议的综合流量分析的框架。更糟糕的是,这些关键数据块的位置会随着系统的更新而改变,这意味着当系统升级时,必须有一个自动化的解决方案来更新所有关键数据块的地址。

​ 为了系统地解决这些问题,我们提出了PLCREADER,这是一种实用的PLC攻击检测方法,它基于对PLC专有协议的逆向工程、内存结构分析,以及对所识别的关键内存区域进行理智检查。基于对不同种类的PLC的研究,我们发现每个编程软件都有相应的功能来转储PLC的内存。之后,我们对3种不同的PLC专有协议进行逆向工程,挖掘出读取PLC内存数据块的相应功能代码。为了方便运行时检查,我们进一步追踪了恶意攻击的潜在位置,以减少哈希检查的物理内存大小。具体来说,由于重要的块配置块编码了所有关键数据块的位置,我们的方法提供了搜索这些块和解码方法的解决方案。最终,我们的方法利用理智检查来识别关键数据块的未经授权的变化,另外我们还实现了一个动态校验机制,该机制是专门为缓解隐蔽的内存攻击而设计的。

​ 为了评估我们提出的防御方法在专有协议逆向工程、内存结构分析和内存攻击检测方面的有效性,我们将我们的方法应用于3个主要制造商的6个PLC,以证明其可行性和通用性。首先,我们的实验表明,我们的框架促进了专有协议的分析,在UMAS协议、PCCC协议和S7COMM协议中分别发现了21、20和12个不同的功能代码。第二,我们开发了支持这些制造商的PLC的理智检查的工具。最后,我们在利用一系列真实的PLC漏洞的基础上实现了4种内存攻击,以评估我们的工具,包括19个不安全的通信漏洞。结果显示,我们的工具能够以100%的准确率和可忽略不计的开销捕捉所有这些攻击。我们将在GitHub[48]上公开提供工件,包括获得的关键内存数据、网络流量以及与这项工作有关的工具。此外,我们已经将这些新发现的漏洞报告给了相应的供应商,并从Schneider(4)和Rockwell(2)那里得到了6个CVE ID[49]-[54]。

​ 我们的贡献总结如下。

​ • 我们定义了一个框架来逆向研究编程软件和PLC之间使用的专有协议的语义。在此基础上,我们分析了6个PLC的3个二进制协议(UMAS、S7COMM、PCCC),并开发了Wireshark插件,以简化对专有协议的分析。此外,据我们所知,我们首次提供了一份公开文件,全面解析施耐德M200/M221系列PLC中使用的UMAS协议。

​ • 我们提出了一种自动化的方法来分析PLC的内存结构。具体来说,我们通过识别重要的功能代码和分析配置文件来定位关键数据块的地址,随后提取PLC中的关键内存数据。

​ • 我们实现了一个工具,PLCREADER,对6个不同的真实PLC的确定的关键内存数据块进行卫生检查。为了证明其在攻击检测方面的有效性,我们成功地对6个不同的PLC开发了4种类型的366个有效的内存攻击。结果表明,PLCREADER能够捕获所有的攻击。

​ 本文的其余部分组织如下。在第二节中,我们讨论了密切相关的工作。在第三节中,介绍了PLC的相关背景。在第四节中,我们介绍了我们的威胁模型和相应的内存攻击的概况。在第五节中,我们提出了针对PLC的实用内存攻击检测和响应框架。在第六节中,我们评估了我们的解决方案在防御PLC内存攻击方面的性能和有效性。最后,第七节是本文的结论。

2. 相关工作

​ 一些研究人员过去曾研究过对PLC的记忆攻击及其防御方法。PLC内存攻击。以前的工作主要是针对PLC中控制逻辑程序、应用保护密码、配置和固件的内存攻击。作者在[2]、[55]-[59]中逆向设计了PLC本体协议,并通过利用协议漏洞伪造数据包来操纵PLC的二进制控制程序。此外,在[6]-[8]中实施了隐蔽的控制逻辑攻击,插入恶意代码以改变PLC的正常工作状态。针对西门子PLC的结构化文本语言,开发了一种新的背口[7]。它利用PLC作为网络的网关,插入恶意代码来执行攻击性行为。PLCBlaster[6]插入恶意的OB块来实现西门子SIMATIC S7-1200的蠕虫功能,它能够扫描网络寻找新的目标并将自己复制到发现的目标上。用梯形逻辑编写的逻辑炸弹在[8]中讨论过。

​ 作者在[11]、[12]、[60]中重点讨论了PLC的应用保护密码攻击。在[60]中,作者讨论了PLC访问控制中的安全问题,并演示了西门子S7-400 PLC中密码保护的解密攻击过程。LogicLocker[12]是一个针对PLC的勒索软件蠕虫,通过绕过PLC中薄弱的认证机制,锁定合法用户快速恢复PLC,并以逻辑炸弹取代程序,从而达到勒索目的。CLIK[11]在认证过程中覆写了PLC的密码散列,并获得了对受保护的控制逻辑程序的访问。

​ 作者在[9]、[10]中讨论了通过利用固件上传的薄弱安全机制对PLC进行的固件修改攻击。Peck等人[9]将恶意固件插入现场设备的以太网卡中,对物理过程发起攻击。Basnight et al.[10]演示了如何更新合法的固件并上传到Allen-Bradley PLC。[13]的作者开发了一种针对PLC的数据执行攻击,通过将控制逻辑转移到数据块,改变PLC的系统控制流程来执行攻击者的控制逻辑程序。上述所有的攻击基本上都会损害PLC中不同内存块的完整性。然而,PLCREADER可以进行内存理性化检查,以检测针对PLC的不同类型的内存攻击。

​ PLC内存攻击检测。近年来,关于PLC内存攻击检测的文献越来越多。作者在[15]-[18],[61]中集中讨论了针对控制逻辑攻击的检测方法。[15]从一个PCCC网络流量日志中提取控制逻辑,并与原始代码进行比较,以检测控制逻辑攻击。Similo[16]从ICS网络流量中重建了一个控制逻辑。Shade[17]提出通过维护PLC内存当前状态的本地拷贝来检测ICS网络流量中的控制逻辑攻击。Reditus[18]开发了从可疑的ICS网络流量中恢复控制逻辑并检测Modicon M221 PLC的控制逻辑注入攻击。提出了TSV[61]来验证PLC中执行的代码的安全性。TSV将汇编级控制指令翻译成中间语言ILIL,然后将其转换成时间执行图。[62]中的作者用可满足性模数理论约束对PLC系统进行建模,以检测PLC恶意软件。然而,这些方法不提供运行时检测,并且严重依赖ICS的网络流量或数据日志。相反,我们的方法可以在运行时检测内存攻击,并且不依赖网络流量或数据日志。

​ 作者在[14]、[40]中提出了针对内存攻击的运行时检测方法。PLCDefender[40]验证了PLC控制逻辑程序使用基于物理学的模型,以保持ICS控制行为的完整性。不幸的是,PLCDefender很难应用于黑盒PLC,不能检测不改变设备行为的隐性攻击。PAtt[14]根据传感器的生成值验证了控制逻辑的完整性,从而能够检测到操纵PLC控制逻辑来改变过程状态的攻击者。然而,PAtt应用了一些API来执行内存测量和哈希生成,这很难应用于其他PLC。与上述检测技术不同,PLCREADER不需要在PLC中应用任何额外的安全或计算模块来检测内存攻击。此外,基于对专有协议和内存映射的理解,它很容易应用于其他PLC。

3. 背景介绍

​ 本节介绍了PLC的基本背景,包括PLC架构、专有协议和一般的内存系统。此外,我们还总结了这项工作中所防御的经典攻击载体。

3.1 PLC架构

​ PLC是一类带有微处理器的数字设备,自动匹配不同的机电过程,实现CPS的控制功能。图1描述了PLC的典型结构,包括三个层次:1)硬件,2)固件和3)应用[40]。硬件层包含以下组件。1)输入模块,2)输出模块。3)存储系统,4)中央处理单元(CPU)。输入/输出模块与现场设备进行物理连接。存储系统存储指令或程序。CPU管理所有的PLC活动。固件层提供低级别的支持,以读取和写入输入/输出。应用层是PLC最重要的部分之一,包含控制逻辑程序以实现物理过程的自动化。控制逻辑重复一个扫描周期,包括三个步骤。1)它通过输入接口从现场设备读取输入数据;2)它执行存储在内存系统中的控制程序;3)它通过输出接口更新输出设备。

在这里插入图片描述

图1 典型的PLC架构
3.2 PLC专有协议

​ 工业网络协议普遍用于PLC和工业CPS中其他设备之间的数据传输任务。工业网络协议可分为开放型和专有型。一般来说,开放的协议为基本的数据传输制定了规则。例如,Modbus协议,一个用于各种设备的著名协议,是一个用于信息通信的开放标准工业协议。专有协议通常是供应商拥有的,并且没有记录。在工业网络中,这些协议有资格用于关键数据传输。值得注意的是,这些专有协议支持编程软件获得对PLC物理内存的访问。因此,这些闭源的专有协议可用于编程和配置PLC。然而,学术界和工业界都在研究流行的专有协议[2], [15], [63], [64]。例如,GE Fanuc 90-30系列PLC的SRTP协议是通过手动逆向工程来获取PLC的实时内存的,而诸如Wireshark等工具可以对这些专有协议的数据包进行部分解码。表一和表二展示了UMAS协议的请求/响应协议消息的格式,UMAS协议是Schneider Modicon PLC的一种专有协议。如这两个表所示,UMAS协议调整了标准的Modbus协议,因为Modbus的一个特定的未分配功能代码,即0x5a,被用来定义专有功能。同样,AllenBradley Micrologix系列PLC的PCCC协议是EtherNet/IP协议的一个适应性专有协议。供应商也从头开始设计专有协议,如西门子S7系列PLC的S7COMM协议。

在这里插入图片描述

在这里插入图片描述

3.3 PLC记忆系统

​ PLC中的存储器系统由两种存储器组成:系统存储器和应用存储器[65]。系统存储器存储只读存储器数据,如固件,而应用存储器存储可读和可写的存储器,包括用户的控制逻辑程序、变量数据、配置和应用保护通道。一般来说,读写存储器可以通过专有协议从PLC中读取和写入。

在这里插入图片描述

图2 简化的PLC内存图

​ 图2说明了所有通用PLC的四个基本内存区域,下面将详细介绍。

执行区。这个区域是一个永久储存程序的存储区,可以被视为系统的一部分。这些程序管理着系统活动,如控制程序的执行、与外围I/O设备的通信。

划线板区。这个区域是一个临时的存储空间,用来存放少量的数据,以减少数据的数量从主存储器中检索的时间。

可变数据区。该区域存储所有与控制程序有关的数据,包括输入表、输出表和内部位/字。在PLC运行过程中,处理器将根据控制逻辑程序周期性地读取和更新变量表的状态。

应用项目数据区。这个区域包括控制逻辑程序的编译二进制字节码,configuration文件,以及其他由用户配置的重要数据。处理器在执行程序时可以访问和解释这个区域。

3.4 PLC内存攻击法分类

​ 在本小节中,我们重点讨论最终影响工业CPS正常运行的数据修改攻击。我们从破坏不同内存区域的角度,将攻击分为以下四类。

​ (I) 控制逻辑篡改攻击。由于控制逻辑定义了PLC如何控制一个物理过程,攻击者可以修改、删除或插入恶意的控制逻辑片段来操纵目标PLC的行为[6]-[8]。

​ (II) 配置篡改攻击。配置文件定义了PLC的通信、硬件和应用程序的配置数据。攻击者可以通过篡改配置文件来修改PLC的基本配置数据,从而发动隐蔽的攻击[13]。

​ (III) 固件修改攻击。固件为控制逻辑提供了一个与硬件的接口,如输入和输出模块。攻击者可以利用固件更新中的漏洞,注入恶意的固件,执行特权命令并操纵连接的物理过程[9],[10]。

​ (IV) 应用保护密码篡改的问题。应用保护密码可以保护PLC免受未经授权的读和写。攻击者可以绕过PLC中的认证机制,锁定合法用户快速恢复PLC[11], [12]。

4. 攻击概述

​ 本节概述了本文的威胁模型,并介绍了我们针对PLC的内存攻击载体。威胁模型。我们假设一个强大的攻击者可以通过网络或物理方式远程访问PLC,并可以操纵被攻击的PLC。这意味着攻击者可以在PLC的正常运行中读取或写入任意恒定的物理内存数据。一旦PLC被配置并应用于真实的CPS中,这些物理内存数据应该保持不变。任何对控制逻辑程序、配置、固件或应用保护密码的编译字节码的改变都会破坏物理内存的完整性,甚至破坏CPS。本文提出了一种基于内存的方法来检测可以修改(甚至是轻微的)PLC中恒定内存数据的内存攻击。此外,我们假设进行理智检查的验证器是安全和值得信赖的,即攻击者不能破坏验证器,并且控制程序在初始下载过程中没有被修改。保护验证器是另一个已经存在的正交研究,例如,控制流完整性(CFI)[57],这不在本工作的范围内。攻击向量的产生。我们通过利用一系列针对PLC的漏洞来开发4种类型的内存攻击。一般来说,控制逻辑程序和配置篡改攻击是通过利用协议漏洞实现的[66]-[68]来伪造和修改内存数据。此外,我们提出了一种生成突变PLC内存的方法,以实现有针对性的内存攻击,如算法中总结的那样。

在这里插入图片描述

​ 1.给定一个某些内存数据的编译字节码序列(例如,控制逻辑程序的编译二进制字节码)。我们首先在目标内存数据(例如,变量地址或对象类型)中生成一组可变字节码。然后我们在生成的集合中随机选择一个字节码(例如,选择变量地址进行变异)。随后,我们生成原始内存数据的变异字节码(例如,将变量地址的二进制字节码从a0变异为a1),组成内存数据的恶意攻击载荷。最后,我们对控制逻辑程序或配置数据重复上述程序数次,以产生不同的攻击载体。此外,固件修改攻击是通过利用固件更新中的漏洞开发的。应用保护密码篡改攻击是通过利用应用保护认证漏洞[49]、[50]、[52]-[54]、[69],绕过密码认证机制而发起的。这些攻击载体描述如下。

攻击向量I:我们通过利用协议漏洞来开发控制逻辑篡改攻击,将控制逻辑程序任意写入PLC中。精心构造的恶意程序是通过篡改控制逻辑程序中的编译字节码形成的。具体来说,这包括变异变量对象地址(例如,将控制阀门的数字输出对象的地址从Q0.0替换为Q0.1),修改变量对象类型(例如,用内存位取代输入或输出位)。

攻击向量II:与攻击向量I类似,可以通过利用协议漏洞发起配置篡改攻击,然后突变配置文件,包括修改变量对象配置(如修改定时器变量对象的预设值、类型和时基),以及修改项目配置(如修改不同数据块的指针地址和块大小)。

攻击向量III:我们利用PLC固件更新机制的漏洞,执行恶意命令,如用低版本的固件替换高版本的固件,以破坏PLC的安全。

攻击向量IV:应用保护认证漏洞允许对手获得PLC内存中的密码或其哈希值。例如,我们通过绕过写保护验证和随机生成不同的密码来覆盖原始密码来发起应用保护认证攻击。

5. PLC-READER的设计和实现

​ 在本节中,我们介绍了PLCREADER,一个实用的PLC内存攻击检测和响应框架。PLC- READER包括两个主要步骤,1)内存提取。2)通过合理性检查进行检测,如图3所示。在第一步,我们利用技术,即协议语义逆向工程和PLC内存结构分析,来分析PLC的专有协议语义和物理内存映射。这样就可以得到关键的内存数据。在第二步中,一旦项目文件被配置并首次下载,验证器可以立即自动获取并保存PLC关键内存数据以及相应的SHA-256哈希值。之后,验证器定期读取PLC的关键物理内存和校验字段,并将该内存的SHA-256哈希值和校验值与原始内存副本的值进行比较。如果结果不一致,验证器将发送警报信息并根据响应规则处理异常。

在这里插入图片描述

图3 PLC-READER的概述
5.1 记忆提取

​ 在这一步中,我们阐述了如何通过专有协议反向工程和内存结构分析来提取PLC的内存。工业协议通常利用自己的功能代码来执行类似的功能,如读、写、诊断、控制。与内存访问相关的协议功能为内存提取提供了线索。在本节中,我们提供了一个通用的解决方案来分析不同的专有协议并针对PLC提取关键的内存数据。尽管不同的供应商以不同的方式定义功能代码(例如,UMAS协议对不同的数据块有不同的功能代码,而PCCC协议对所有类型的数据块使用一个功能代码),但通信拦截和协议分析的框架是相似的。此外,我们提供了一个具体的例子,说明我们如何在Schneider M221 PLC中实现我们的方法。

​ 反向工程专有协议语义。为了解释专有协议,使用反向调试软件(如IDA、dnSpy)对PLC编程软件(如RSLogix 500 V11、TIA Portal V14和EcoStruxure Machine ExpertBasic V1.1)进行反向工程并分析协议语义。逆向工程的过程可以总结为以下几点。首先,由于PLC编程软件通常会调用相对独立的DLL文件来执行通信功能,我们通过动态调试找到这些关键的DLL文件。第二,我们通过动态调试这些DLL文件的可执行函数,进一步挖掘出支持PLC和编程软件之间通信的重要类。第三,由于重要类可能包含许多功能代码,我们通过单步调试和网络流量分析发现这些功能代码的功能。(注意UMAS协议是一个特例,因为功能代码在通信类的功能中被明确定义。)最后,基于功能代码和领域知识,我们可以提供详细的协议语义和采用功能代码转储PLC物理内存的解决方案。对M221的实施。我们在所提出的反向工程的基础上对M221 PLC的UMAS协议进行了反向工程。

​ (1) DLL文件的位置。首先,我们运行编程软件并将其连接到PLC。然后,我们可以使用调试器(如IDA)识别编程软件调用的所有DLL文件。在过滤掉system32目录下的所有系统DLL文件和.NET的DLL文件后,通过分析剩下的DLL文件,就可以很容易地找到与PLC通信的关键DLL文件(plcif.dll)。

​ (2) 通信函数分析。与第一步类似,我们应用标准的动态调试技术来进一步定位plcif.dll中用于与PLC通信的功能。随后,确定了一个定义了标准通信功能的类CPLC,包括应用控制、系统诊断和数据读写。图4说明了plcif.dll中的CPLC类的几个关键功能。这些功能所执行的任务可以很容易得到。例如,runPlc和stopPlc是切换PLC操作模式的函数(例如,runPlc可以发送指令,将PLC从停止状态切换到运行状态).getPlcState和getProductVersion是用于诊断的函数(例如,getPlcState可以发送指令以了解PLC运行状态、编程软件连接状态和访问控制保护状态)。uploadPlcApp函数执行上传操作。这些函数将在下一步用于挖掘不同的功能代码。

在这里插入图片描述

图4 PLC类的关键功能

​ (3) 功能代码分析。我们采用单步调试法来获得功能代码。调试过程包括五个步骤。1)运行编程软件并保持与M221的连接。2)找到并执行CPLC类中的关键函数(如runplc函数),并附上调试器3)确定一个关键函数的发送命令,该命令为负责向PLC发送指令,要发送的数据(如0x0040ff00 )被捕获在一个eax寄存器中,如图5所示。4)打开Wireshark,捕捉调试期间关键功能发送的数据包。5)在捕获的Wireshark数据包中识别功能代码号。例如,如图6所示,runplc的功能代码被识别为0x40,这与eax寄存器中发送的数据一致。

在这里插入图片描述

图5 要在eax寄存器中发送的值

在这里插入图片描述

图6 在wireshark捕获的数据包

​ (4) 通信过程分析。在编程软件与PLC建立正常通信之前,通常存在一个授权过程(例如,会话ID认证和访问控制认证)。为了绕过认证并与PLC建立通信,我们有义务恢复协议状态机,以正确的协议规范和语义来构建请求序列。它可以通过观察交互式网络流量和识别必要的请求序列来恢复。我们提出一个例子来说明当编程软件登录到PLC时的请求序列规则。图7说明了整个通信过程。编程软件首先向PLC发送一个建立连接请求(带有0x01功能代码),PLC回应一个正确的状态(0xfe)。接下来,编程软件发送一个释放保留请求(带有0x11功能代码)来结束旧的会话并请求一个新的会话ID(带有0x10功能代码)。PLC响应一个新的会话ID(例如,0x31),编程软件将在接下来的转换中使用这个会话ID。然后,编程软件要求一个密码校验(用0x6d功能代码),PLC响应校验值以保护一些数据的完整性。最后,编程软件周期性地进行诊断(例如,保持会话ID的活力、获取模块信息、获取状态信息和获取项目信息)和读取变量值(例如,读取对象参考列表)。通过观察多个登录和断开操作,我们注意到UMAS协议有一个会话认证,这意味着在执行读或写操作之前需要一个合法的会话ID。图8中说明了请求和响应序列。请求序列包括8(a)中24个字节0x00的数据字段。会话ID响应序列如图8(b)所示。会话ID值可以通过比较多个会话ID请求序列的响应序列来定位,因为会话ID值字段是UMAS协议数据单元中从0x00到0xff唯一可改变的序列范围。

在这里插入图片描述

图7 沟通过程

在这里插入图片描述

图8 请求会话ID

​ (5) 详细的语义分析。经过逆向工程在CPLC类的所有功能中,我们发现了21个不同的功能代码。使用标准的序列排列技术[70]分析了UMAS协议中不同功能代码的详细语义。在这些功能代码中,有两个用于读写物理内存的功能代码可用于执行正确性检查。由于由于篇幅限制,我们只介绍读写物理内存的协议语义。

​ 读取物理内存(0x28)。当执行上传或备份操作时,该功能代码用于读取PLC中的物理存储器。图9显示了0x28功能代码的请求和响应数据包格式。具体来说,图9(a)给出了一个请求包的例子,其中指定了获得的物理存储器的起始地址和数据块大小。图9(b)介绍了一个响应包的例子,其中提供了关于状态(例如,0xfe表示正常响应,0xfd表示错误响应)、数据大小和数据有效载荷的信息。

在这里插入图片描述

图9 读取物理存储器的请求和响应数据包格式

​ 写物理内存(0x29)。这个功能代码用于写入物理内存。图10显示了0x29功能代码的请求和响应数据包格式。同样,图10(a)给出了一个请求包的例子,其中的起始地址、数据块大小和要写入的数据是指定的。图10(b)介绍了一个只提供状态信息的响应包的例子。

在这里插入图片描述

图10 写入物理内存的请求和响应数据包格式

PLC内存结构分析。在这一步中,我们提出了一种方法来定位基本系统运行所需的关键内存,包括那些逻辑程序、变量数据、配置数据、应用保护字和固件。首先,我们使用第一步中发现的相应功能代码来转储整个内存。其次,当编程软件进行下载操作时,我们从下载流量中获取配置文件。之后,我们分析配置文件,找到它与物理内存的关系,因为配置文件定义了地址和关键内存数据之间的映射关系。然后,我们巧妙地修改项目文件并将其下载到PLC中。通过分析不同内存块的内容变化,我们可以确定不同内存块的含义,并确定关键内存数据。最后,关键内存数据可以被提取出来。

​ 对M221的实施。我们使用提议的内存结构分析方法,提取M221 PLC中的关键内存数据。在M221 PLC中有两种不同类型的存储器,包括512KB的RAM和1.5MB的非易失性存储器,如表三所示。RAM包括256KB用于内部变量(如I/O对象、软件对象)和256KB用于应用程序和数据(如代码块、配置块)。非易失性存储器包括512KB的固件和256KB用于备份应用程序和数据的存储器。内存提取过程分为以下四个步骤。

(1) PLC内存转储。由于UMAS的不同功能代码在第一个主要步骤中被剖析,我们可以应用0x28功能代码来读取从地址0x00到0xffffff的整个内存。

(2) 内存布局分析。物理内存中存在大量的填充数据,如0x00和0xff。由于大多数关键数据都应该在读或写时被语法软件进行上传或下载操作,我们可以很容易地过滤掉填充数据,并找到关键的数据。对于M221,我们找到所有有意义的地址段,如0x00∼0x1ffff,0x7000000∼0x707ffff和0xfff00000∼0xfff7ffff。随后,我们对配置文件进行分析,以找到关键数据块的地址和大小。在配置文件的帮助下,在Schneider M221 PLC的有意义的内存段中确定了11个重要数据块。为了弄清这些数据块的意义,我们进行了一个内存差异分析实验。这个实验是基于这样的观察:配置文件通常在PLC的下载包中,当工程师不改变项目文件时,在PLC中保持不变。具体来说,我们对编程软件的项目文件进行细微的修改,将其下载到PLC中,并检查PLC中内存块的内容是如何相应变化的。例如,我们只在PLC的控制程序中插入一个新的梯级,然后下载到PLC中,导致配置文件的改变。根据分析,我们可以确定不同内存块的地址和大小(例如,控制逻辑程序的地址为0x701e090,大小为60字节),并弄清数据块的含义。

​ 根据数据块的含义,我们将这11个数据块命名为:Config file1, Config file2, Config file3, A zip file, Memory objects, I/O objects, Software objects, Objects config, Password hash, Code, and Firmware。请注意,配置文件1、配置文件2和配置文件3块意味着其他块的地址和大小信息(如图11所示)。例如,配置文件2包含配置文件3和代码块的地址和大小。zip文件块有一个用于项目元数据的XML文件。内存对象、I/O对象和软件对象块有控制逻辑程序的不同变量值。对象配置块包含有关变量配置的信息,如定时器的类型和预设值。密码哈希块包含了应用保护的密码哈希,用于防止对物理内存进行未经授权的读写。代码块是控制逻辑的编译字节码。固件块包含有关解密固件的信息。

在这里插入图片描述

图11 配置文件块信息

​ 图12说明了Schneider Modicon M221/M200系列PLC的详细物理内存布局,包括不同块的内存地址及其含义。值得注意的是,由于配置不同,不固定的内存地址代表可变的地址。

在这里插入图片描述

图12 Schneider Modicon M221/M200系列PLC的物理内存布局

​ (3) 数据类型分类。不同的内存块有不同的访问权限(例如, 固 件只授予读取权限)。为了设计攻击后的应对策略,我们进一步将内存数据分为五类,包括控制逻辑程序、变量数据、配置数据、应用保护密码哈希和解密固件,基于它们的地址分布、功能和访问权限。

​ (4) 详细的内存提取。将程序下载到PLC后,所有数据块的地址和大小都可以在具有固定地址偏移的配置文件中找到。例如,如图11所示, 配置文件3的4字节起始地址可以一直提取在配置文件 2的固定地址偏移量为0x68 )。因此,不同种类的数据可以通过使用0x28功能代码从配置文件中读取相应的起始地址和块大小来自动提取物理内存。

5.2 通过合理性检查进行检测

​ 在本小节中,我们将介绍图3所示的详细检测程序。首先,工程师将配置好的项目文件下载到PLC(①)。其次,验证者发送读取请求,以获得关键的内存数据②,并从PLC接收相应的内存数据③的响应。然后,验证器计算提取的内存块的SHA-256哈希值,并将收到的数据与SHA-256哈希值一起存储在其内存中,作为检测的原始副本(④)。请注意,每次工程师(重新)下载项目文件时都应执行步骤①、②、③、④。

​ 接下来,验证器定期请求物理内存并计算所有关键内存数据的SHA-256哈希值。同时,我们向PLC(⑤)发送一个动态校验请求包。这种机制是为了减轻隐蔽的内存攻击。例如,一个强大的攻击者可以篡改PLC的关键内存数据,并在劫持了验证者和PLC之间的通信过程后向验证者重放他的数据。我们的校验机制是低开销的、不可区分的和动态的。该机制仅通过读取PLC内存数据的常规功能来实现。因此,它是低开销的,攻击者很难从正常流量中检测到校验请求的序列。此外,通过随机选择一个内存数据块并生成偏移地址和数据大小,校验和的大小和值动态变化。因此,攻击者很难推断出校验和变化的规律或重放校验和值来绕过我们的验证器。

​ 算法2中总结了详细情况。我们随机选择一个数据块(例如,Schneider PLC的配置文件1)。然后,随机生成一个校验大小(1到8的整数)和一个偏移地址(例如,0x200)。随后,我们用这些生成的偏移地址和数据大小构建校验和请求包,并将其发送到PLC。最后,通过将SHA-256哈希值和校验值与数据库⑦中的原始副本进行比较,实现理智性检查。如果不一致,验证器将识别攻击并发送一个相应的警报信息。根据这个信息,工程师可以根据响应规则⑧来解决这个问题。例如,如果验证器发出与固件有关的警报信息,工程师将重新配置项目或更新PLC中的固件。

6. 评估

在这里插入图片描述

​ 我们在6个流行的PLC上评估了PLCREADER的性能和有效性。环境设置如图13所示。关于硬件、编程的细节被测试的PLC的软件和协议列于表四。

在这里插入图片描述

为了评估PLCREADER对内存攻击的检测能力,我们对6个测试的PLC实施了各种内存攻击。如表五所示,我们根据第四节中提出的内存攻击矢量,对6个测试的PLC开发了4种类型的366个内存攻击。对于每个PLC,我们开发了20个控制逻辑攻击,通过改变PLC控制逻辑程序中的编译二进制字节码,以及20个配置篡改攻击,通过改变该项目和可变对象配置。突变策略显示在算法1中。此外,我们开发了20个应用程序保护密码篡改攻击,通过绕过密码保护验证和突变密码哈希值。最后,我们为每个施耐德PLC开发了3个固件修改攻击,分别用PLC的3个不安全的固件替换最新的固件(N/A表示我们不实施这种攻击)。

6.1 研究问题

​ A. 研究问题

​ 我们的评估涉及以下关键研究问题(RQs)。

​ • RQ1:我们的方法对于逆向工程不同的专有协议是否有效?

​ • RQ2:我们可以排除多少种不同的PLC数据类型?

​ • RQ3:我们的方法对检测内存攻击是否有效和高效?

​ • RQ4:我们的方法对隐性内存攻击是否稳健?

​ RQ1和RQ2考虑的是内存分离的有效性,即逆向工程专有协议和理解PLC的内存机制,特别是获得功能代码、分析协议语义、理解PLC内存布局和提取关键内存数据。问题3是关于我们的解决方案在检测各种存储器的性能和有效性。问题4是关于我们的解决方案在检测隐蔽的内存攻击方面的有效性。

6.2 实验和讨论

​ 我们设计了实验来回答6个真实世界的PLC上的RQs。本文中我们工具的源代码将在网上提供[48]。RQ1.我们的第一个RQ考虑了我们的语义逆向工程方法的有效性,并讨论了不同专有协议的相似性。

​ 为了研究这个问题,我们分析了分别用于施耐德(UMAS)、西门子(S7COMM)和艾伦-布拉德利斯(PCCC)PLC的3个专有协议。专有协议在设计上有一些相似之处,这使得我们的方法对各种协议的执行力度很小。具体来说,所有的编程软件都使用特定的DLL文件来进行应用控制和数据传输。因此,与之前的手工网络流量分析相比,DLL文件的逆向工程可以更快解析协议。第二,每个专有协议都定义了不同的功能代码来与PLC进行通信,通过分析不同的功能代码,可以有效地对协议的细节进行分析。第三,所有的专有协议都定义了类似的基本通信功能,如启动和停止PLC,上传和下载项目文件,读取和写入内存数据。这些一般功能的协议规范是相似的。

​ 将我们的方法应用于施耐德(UMAS)PLC后,在UMAS协议中发现了21种不同的功能代码类型,如表六所示。据我们所知,目前还没有公开的协议分析文件可以全面分析施耐德M200/M221系列PLC中使用的UMAS协议。鉴于篇幅限制,本文没有详细提供综合语义分析的结果。为了帮助理解协议的语义,我们为UMAS专有协议开发了一个Wireshark插件。同样地,本文也对PCCC和S7COMM专有协议进行了分析。在PCCC和S7COMM中分别发现了20和12个不同的功能代码,这些代码在附录VIII-A中显示。RQ2.在这个问题中,我们的目的是探索有多少种内存数据可以被提取出来。我们分析了3家控制器制造商的6个PLC。

在这里插入图片描述

​ 为了研究这个问题,我们应用我们的方法来转储内存,并分析了这些PLC在进行下载或上载操作时的配置文件。然后,我们对所有目标PLC进行了细粒度的内存分类。由于篇幅有限,我们只介绍了施耐德PLC的详细物理内存数据分类,如表七所示。从Schneider M221 PLC中提取了5种不同的数据类型,包括控制逻辑代码、应用保护密码、固件、变量数据和配置数据。此外,我们应用我们的方法分析了每个数据块的布局和内容的含义。例如,配置由项目配置文件、变量配置文件等组成。该项目文件配置包含加载在内存中的不同数据块的地址指针和大小。变量配置文件包含不同类型的变量对象的数量和预设值。然而,对于西门子和Allen-Bradley PLC,我们发现专有协议并没有提供访问固件的功能代码。因此,我们只能提取和分析其他4种数据类型。

​ RQ3.我们的第三个问题是关于我们的防御方案的性能和有效性。我们首先分析了PLCREADER的时间和内存开销。整个检测和响应的时间开销包括三个阶段:数据提取(T1),哈希计算和验证(T2),以及响应(T3)。

​ • 数据提取。数据提取的时间取决于要读取的数据块大小和设备的种类。这个阶段通常需要整个过程中的大部分时间。

​ • 哈希计算和验证。在哈希计算和验证阶段只需要不到0.003秒,包括计算所有内存数据类型的32字节SHA-256哈希值,与原始哈希副本进行比较,并检查动态校验。

​ • 响应。在响应阶段,我们恢复控制逻辑程序块、配置块和应用保护密码块中的内存数据,这对所有被测PLC来说耗时不到0.4秒。请注意,我们没有恢复施耐德PLC的固件和应用保护密码,因为固件是只读的,而应用保护密码的哈希值需要很长时间才能破解。

PLCREADER的内存开销是关于验证器上的日志文件。我们只记录了PLC的内存安全状态和PLC被攻击后的不一致的哈希值。在检测期间,内存开销可以忽略不计,因为它们在每个扫描周期中都小于1KB。

​ 然后,我们根据第四节介绍的攻击矢量生成策略,为施耐德PLC实现了4种内存攻击,为西门子和艾伦-布拉德利PLC实现了3种内存攻击。如表五所示,我们为所有类型的PLC开发了20种不同的控制逻辑篡改攻击、配置篡改攻击和应用保护密码篡改攻击,而我们只为施耐德M221和施耐德M200开发了3种不同的固件修改攻击。对于西门子和AllenBradley的PLC,我们无法进入它们的固件来实现固件修改攻击。对于施耐德PLC,我们只找到三个旧版本的固件来替换当前的固件。

​ 最后,对于每一种攻击类型,我们生成了100多个攻击(从RQ2中生成的攻击中随机选择,涵盖所有种类),并针对这些攻击评估了我们的工具。对于每个攻击,我们重复整个检测周期5次。表八中给出了平均时间开销和检测率的结果。很明显,我们的工具可以立即捕捉到西门子和Allen- Bradley PLC的所有攻击。然而,对于Schneider M200和M221 PLC来说,它至少需要1.74秒和4.49秒,这显然比其他两种PLC大。这是由于512KB的固件的数据提取,这需要大部分时间。此外,我们的验证器可以定制内存攻击检测的频率(例如,每10秒)。请注意,10秒的时间足以完成整个内存攻击检测和响应。这种延迟被认为是可以接受的,因为真正的恶意攻击需要更长的时间来实现其目标,例如Stuxnet。

​ RQ4.我们的最后一个问题是关于我们的动态校验机制对高级攻击的防御效果。我们在施耐德PLC上开发了隐蔽的内存攻击,并分别测试了它对我们有动态校验机制和没有动态校验机制的验证器的影响。

自适应攻击。我们假设攻击者可以通过中间人攻击劫持验证器和PLC之间的通信。攻击者可以截获正常的历史数据并将其重放给验证者。同时,攻击者对PLC发起不同的内存攻击(在第四节提出)。图14说明了隐蔽的内存攻击模型。为了研究这个问题,我们对施耐德PLC进行了隐秘的内存攻击。我们首先使用Ethercap的ARP中毒[71]功能来毒害ARP缓存并劫持验证器和PLC的通信。然后,我们观察通信过程,并记录理智检查期间的响应数据。之后,每当验证者发送内存检测请求时,我们就放弃PLC的响应数据包,并将恶意构建的数据包发回给验证者(例如,插入PLC的历史响应数据)。最后,我们发起第四节中描述的内存攻击,以影响PLC的正常运行。

​ 我们分别评估了有动态校验机制和没有动态校验机制的情况下,对隐蔽的内存攻击的有效性。结果在表九中描述。我们分别对施耐德公司的M200和M221 PLC发起了三种隐蔽的内存攻击,包括控制逻辑篡改攻击(第一类)、配置攻击(第二类)和内存攻击。ration篡改攻击(第二类),以及应用保护密码篡改攻击(第四类)。对于每种内存攻击,我们在30个检测周期内发起了15个不同的攻击测试案例。评估结果表明,隐蔽的内存当动态校验机制没有启用时,攻击可以完全绕过验证器。相比之下,我们的验证器能够有效地检测出隐蔽的内存攻击,在动态校验机制下,准确率为100%。还值得注意的是,Ethercap的ARP中毒增加了验证器的平均时间开销,因为定义了一个过滤器来丢弃响应数据包并插入恶意的有效载荷,而强大的攻击者可以用更少的时间完成这一工作。

6.3 对有效性和局限性的威胁

​ 我们考虑到对我们工作的有效性和局限性的一些威胁。首先,攻击者可能劫持验证器和PLC之间的通信,然后模拟PLC,在运行时绕过PLCREADER的内存完整性检测和动态校验机制。然而,要实现这样的攻击,攻击者需要分析在PLCREADER中检查和变化的规律性。此外,攻击者还需要模拟被攻击的PLC的正常通信行为。不幸的是,如果没有PLC制造商的帮助,构建一个高度互动的虚拟PLC来完全模拟内存系统是不现实的。其次,我们的防御机制不能防止针对PLC动态内存区域的内存攻击。我们的方法主要侧重于防御数据保持不变时的内存数据攻击,如PLC控制逻辑篡改攻击、配置篡改攻击、固件修改攻击、应用保护密码篡改攻击等。我们工作的最后一个限制是,我们只在六个PLC上评估我们的方法,而不是真实的测试平台。因此,我们没有涉及到附加PLCREADER时对真实工业CPS的性能影响。然而,由于我们实现的PLCREADER在验证器和PLC之间的合法通信是有限的,所以对性能的影响应该是微妙的。此外,由于类似的PLC被部署在真实的工业场景中,在真实的工业CPS中对PLC内存进行合理性检查在理论上是可行的。

7. 结论

​ 在本文中,我们提出了PLCREADER,这是一个实用的基于内存的检测和响应框架,可以检测不同类型的内存攻击,并在PLC被破坏后在运行时执行紧急响应。PLCREADER通过提出逆向工程专有协议和分析内存结构的方法,为远程软件验证提供了一种可行的方法,而不需要特定的硬件或对闭源PLC的不现实的假设。重要协议的功能代码和配置文件可以被识别,以自动定位和提取PLC中的关键内存数据。最后,我们实现了我们的方法,并在3个主流控制器制造商的6个真实PLC上评估了其有效性。结果表明,我们的方法可以检测到所有366种不同的内存攻击,准确率达到100%。


[1] Zhang, Mu and Chen, Chien-Ying and Kao, Bin-Chou and Qamsane,Yassine and Shao, Yuru and Lin, Yikai and Shi, Elaine and Mohan, Sibinand Barton, Kira and Moyne, James and others, “Towards automatedsafety vetting of PLC code in real-world plants,” in Proceedings of theIEEE Symposium on Security and Privacy (SP). San Francisco, USA:IEEE, 2019, pp. 522–538.
[2] Di Pinto, Alessandro and Dragoni, Younes and Carcano, Andrea, “TRITON: The first ICS cyber attack on safety instrument systems,” inProceedings of the Black Hat USA, Las Vegas, USA, 2018, pp. 1–26.
[3] Mary-Ann Russon, “US fuel pipeline hackers ’didn’t mean tocreate problems,” 2021. 
[Online]. Available: https://www.bbc.com/news/business-57050690
[4] R. Langner, “Stuxnet: Dissecting a Cyberwarfare Weapon,” IEEE Security & Privacy, vol. 9, no. 3, pp. 49–51, 2011.
[5] Lee, Robert and Slowik, Joe and Miller, Ben and Cherepanov, Anton andLipovsky, Robert, “Industroyer/crashoverride: Zero things cool about athreat group targeting the power grid,” in Proceedings of the Black HatUSA, Las Vegas, USA, 2017, pp. 1–68.
[6] Spenneberg, Ralf and Br¨uggemann, Maik and Schwartke, Hendrik, “Plcblaster: A worm living solely in the plc,” in Proceedings of the BlackHat Asia, Marinabaysands, Singapore, 2016, pp. 1–16.
[7] Klick, Johannes and Lau, Stephan and Marzin, Daniel and Malchow,Jan-Ole and Roth, Volker, “Internet-facing PLCs-a new back orifice,” inProceedings of the Black Hat USA, Las Vegas, USA, 2015, pp. 1–9.
[8] N. Govil, A. Agrawal, and N. O. Tippenhauer, “On ladder logic bombsin industrial control systems,” in Computer Security. Oslo, Norway:Springer, 2017, pp. 110–126.
[9] D. Peck and D. Peterson, “Leveraging ethernet card vulnerabilitiesin field devices,” in Proceedings of the SCADA security scientificsymposium, 2009, pp. 1–19.
[10] Z. Basnight, J. Butts, J. Lopez Jr, and T. Dube, “Firmware modificationattacks on programmable logic controllers,” International Journal ofCritical Infrastructure Protection, vol. 6, no. 2, pp. 76–84, 2013.
[11] S. Kalle, N. Ameen, H. Yoo, and I. Ahmed, “Clik on plcs! attackingcontrol logic with decompilation and virtual plc,” in Proceedings of theBinary Analysis Research (BAR) Workshop, Network and DistributedSystem Security Symposium (NDSS). San Diego, USA: The InternetSociety, 2019, pp. 1–12.
[12] D. Formby, S. Durbha, and R. Beyah, “Out of control: Ransomware forindustrial control systems,” in Proceedings of the RSA conference, SanFrancisco, USA, 2017, pp. 1–8.
[13] Yoo, Hyunguk and Ahmed, Irfan, “Control logic injection attacks onindustrial control systems,” in Proceedings of the IFIP InternationalConference on ICT Systems Security and Privacy Protection. Lisbon,Portugal: Springer, 2019, pp. 33–48.
[14] H. R. Ghaeini, M. Chan, R. Bahmani, F. Brasser, L. Garcia, J. Zhou,A.-R. Sadeghi, N. O. Tippenhauer, and S. Zonouz, “PAtt: Physicsbased attestation of control systems,” in Proceedings of the InternationalSymposium on Research in Attacks, Intrusions and Defenses (RAID).Beijing, China: USENIX Association, 2019, pp. 165–180.
[15] S. Senthivel, I. Ahmed, and V. Roussev, “SCADA network forensics ofthe PCCC protocol,” Digital Investigation, vol. 22, pp. S57–S65, 2017.
[16] S. A. Qasim, J. Lopez, and I. Ahmed, “Automated reconstruction of control logic for programmable logic controller forensics,” in Proceedingsof the International Conference on Information Security. New York,USA: Springer, 2019, pp. 402–422.
[17] H. Yoo, S. Kalle, J. Smith, and I. Ahmed, “Overshadow plc to detect remote control-logic injection attacks,” in Proceedings of the InternationalConference on Detection of Intrusions and Malware, and VulnerabilityAssessment. Gothenburg, Sweden: Springer, 2019, pp. 109–132.
[18] S. A. Qasim, J. M. Smith, and I. Ahmed, “Control Logic ForensicsFramework using Built-in Decompiler of Engineering Software inIndustrial Control Systems,” Forensic Science International: DigitalInvestigation, vol. 33, p. 301013, 2020.
[19] Y. Chen, C. M. Poskitt, and J. Sun, “Code Integrity Attestationfor PLCs using Black Box Neural Network Predictions,” CoRR, vol.abs/2106.07851, 2021.
[20] M. Macas and C. Wu, “An Unsupervised Framework for AnomalyDetection in a Water Treatment System,” in Proceedings of the 18thIEEE International Conference On Machine Learning And Applications(ICMLA). Boca Raton, USA: IEEE, 2019, pp. 1298–1305.
[21] J. Kim, J.-H. Yun, and H. C. Kim, “Anomaly detection for industrialcontrol systems using sequence-to-sequence neural networks,” in Computer Security. Springer, 2019, pp. 3–18.
[22] M. Kravchik and A. Shabtai, “Detecting Cyber Attacks in IndustrialControl Systems Using Convolutional Neural Networks,” in Proceedingsof the Workshop on Cyber-Physical Systems Security and PrivaCy (SPSSPC). Toronto, Canada: ACM, 10 2018, pp. 72–83.
[23] P. Schneider and K. B¨ottinger, “High-Performance UnsupervisedAnomaly Detection for Cyber-Physical System Networks,” in Proceedings of the Workshop on Cyber-Physical Systems Security and PrivaCy(SPS-SPC). Toronto, Canada: ACM, 10 2018, pp. 1–12.
[24] Z. He, A. Raghavan, G. Hu, S. Chai, and R. Lee, “Power-Grid Controller Anomaly Detection with Enhanced Temporal Deep Learning,”in Proceedings of the IEEE International Conference On Trust, SecurityAnd Privacy In Computing And Communications (TrustCom). Rotorua,New Zealand: IEEE, 08 2019, pp. 160–167.
[25] J. Inoue, Y. Yamagata, Y. Chen, C. M. Poskitt, and J. Sun, “Anomalydetection for a water treatment system using unsupervised machinelearning,” in Proceedings of the IEEE International Conference on DataMining Workshops (ICDMW). New Orleans, USA: IEEE, 2017, pp.1058–1065.
[26] Y. Chen, C. M. Poskitt, and J. Sun, “Learning from mutants: Using codemutation to learn and monitor invariants of a cyber-physical system,” inProceedings of the IEEE Symposium on Security and Privacy (SP). SanFrancisco, USA: IEEE, 2018, pp. 648–660.
[27] Y. Chen, C. Poskitt, and J. Sun, “Towards Learning and Verifying Invariants of Cyber-Physical Systems by Code Mutation,” in Proceedingsof the International Symposium on Formal Methods (FM). Limassol,Cyprus: Springer, 11 2016, pp. 155–163.
[28] C. Yoong, V. Palleti, R. Maiti, A. Silva, and C. Poskitt, “Derivinginvariant checkers for critical infrastructure using axiomatic designprinciples,” Cybersecurity, vol. 4, pp. 1–24, 12 2021.
[29] H. Choi, W.-C. Lee, Y. Aafer, F. Fei, Z. Tu, X. Zhang, D. Xu, andX. Deng, “Detecting Attacks Against Robotic Vehicles: A ControlInvariant Approach,” in Proceedings of the ACM SIGSAC Conferenceon Computer and Communications Security (CCS). Toronto, Canada:ACM, 2018, pp. 801–816.
[30] S. Adepu and A. Mathur, “Distributed Attack Detection in a WaterTreatment Plant: Method and Case Study,” IEEE Transactions onDependable and Secure Computing, vol. 18, no. 1, pp. 86–99, 2021.
[31] S. Adepu, and A. Mathur, “Distributed Detection of Single-StageMultipoint Cyber Attacks in a Water Treatment Plant,” in Proceedings ofthe ACM Asia Conference on Computer and Communications Security(AsiaCCS). New York, USA: ACM, 2016, pp. 449–460.
[32] C. Feng, V. R. Palleti, A. Mathur, and D. Chana, “A SystematicFramework to Generate Invariants for Anomaly Detection in IndustrialControl Systems.” in Proceedings of the Network and Distributed SystemSecurity Symposium (NDSS). San Diego, USA: The Internet Society,2019, pp. 1–15.
[33] Z. Yang, L. He, P. Cheng, J. Chen, D. K. Yau, and L. Du, “PLC-Sleuth:Detecting and Localizing PLC Intrusions Using Control Invariants,” inProceedings of the International Symposium on Research in Attacks,Intrusions and Defenses (RAID). San Sebastian, Spain: USENIXAssociation, 2020, pp. 333–348.
[34] T. Roth and B. M. McMillin, “Physical Attestation in the Smart Grid forDistributed State Verification,” in Proceedings of the Annual ComputerSoftware and Applications Conference (COMPSAC), vol. 1. Torino,Italy: IEEE, 2017, pp. 626–627.
[35] J. Valente, C. Barreto, and A. A. C´ardenas, “Cyber-Physical Systems Attestation,” in Proceedings of the International Conference on DistributedComputing in Sensor Systems (DCOSS). Marina Del Rey, USA: IEEE,2014, pp. 354–357.
[36] V. R. Palleti, Y. C. Tan, and L. Samavedham, “A mechanistic faultdetection and isolation approach using Kalman filter to improve thesecurity of cyber physical systems,” Journal of Process Control, vol. 68,pp. 160–170, 2018.
[37] C. M. Ahmed, S. Adepu, and A. Mathur, “Limitations of state estimationbased cyber attack detection schemes in industrial control systems,” inProceedings of the Smart City Security and Privacy Workshop (SCSPW). Vienna, Austria: IEEE, 2016, pp. 1–5.
[38] K. Manandhar, X. Cao, F. Hu, and Y. Liu, “Detection of Faults andAttacks Including False Data Injection Attack in Smart Grid UsingKalman Filter,” IEEE Transactions on Control of Network Systems,vol. 1, no. 4, pp. 370–379, 2014.
[39] C. M. Ahmed, C. Murguia, and J. Ruths, “Model-Based Attack DetectionScheme for Smart Water Distribution Networks,” in Proceedings ofthe ACM Asia Conference on Computer and Communications Security(ASIACCS). Abu Dhabi, United Arab Emirates: ACM, 2017, pp. 101–113.
[40] M. Salehi and S. Bayat-Sarmadi, “PLCDefender: Improving RemoteAttestation Techniques for PLCs using Physical Model,” IEEE Internetof Things Journal, vol. pp, no. 99, pp. 1–8, 2020.
[41] A. Shah, A. Perrig, and B. Sinopoli, “Mechanisms to Provide Integrityin SCADA and PCS devices,” in Proceedings of the International Workshop on Cyber-Physical Systems-Challenges and Applications (CPSCA), Santorini ISland, Greece, 2008, pp. 1–7.
[42] Yifan Jia and Jingyi Wang and Christopher M. Poskitt and SudiptaChattopadhyay and Jun Sun and Yuqi Chen, “Adversarial attacks andmitigation for anomaly detectors of cyber-physical systems,” International Journal of Critical Infrastructure Protection, vol. 34, p. 100452,2021.
[43] G. Coker, J. Guttman, P. Loscocco, A. Herzog, J. Millen, B. O’Hanlon,J. Ramsdell, A. Segall, J. Sheehy, and B. Sniffen, “Principles of remoteattestation,” Int. J. Inf. Sec., vol. 10, pp. 63–81, 06 2011.
[44] T. Abera, N. Asokan, L. Davi, J.-E. Ekberg, T. Nyman, A. Paverd,A.-R. Sadeghi, and G. Tsudik, “C-FLAT: Control-Flow Attestation forEmbedded Systems Software,” in Proceedings of the ACM SIGSACConference on Computer and Communications Security (CCS). Vienna,Austria: ACM, 2016, pp. 743–754.
[45] S. Adepu, F. Brasser, L. Garcia, M. Rodler, L. Davi, A.-R. Sadeghi, andS. Zonouz, “Control Behavior Integrity for Distributed Cyber-PhysicalSystems,” in Proceedings of the ACM/IEEE International Conferenceon Cyber-Physical Systems (ICCPS). Sydney, Australia: IEEE, 2020,pp. 30–40.
[46] I. Anati, S. Gueron, S. Johnson, and V. Scarlata, “Innovative Technologyfor CPU Based Attestation and Sealing,” Intel Corporation, Tech. Rep.,2013.
[47] S. FRANCIS, “Top 20 programmable logic controller manufacturers,”2021. 
[Online]. Available: https://roboticsandautomationnews.com/2020/07/15/top-20-programmable-logic-controller-manufacturers/33153/
[48] “Supplementary material,” 2021. 
[Online]. Available: https://github.com/PLC-READER/PLC-READER
[49] M. Corporation, “Cve-2020-6984,” 2020. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6984
[50] M. Corporation, “Cve-2020-6988,” 2020. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6988
[51] M. Corporation, “Cve-2019-6855,” 2019. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6855
[52] M. Corporation, “Cve-2020-7565,” 2020. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7565
[53] M. Corporation, “Cve-2020-7568,” 2020. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7568
[54] M. Corporation, “Cve-2020-28214,” 2020. 
[Online]. Available: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28214
[55] D. Beresford, “Exploiting siemens simatic s7 plcs,” in Proceedings ofthe Black Hat USA, Las Vegas, USA, 2011, pp. 1–26.
[56] Mart´ın-Liras, Luis and Prada, Miguel A and Fuertes, Juan J and Mor´an,Antonio and Alonso, Seraf´ın and Dom´ınguez, Manuel, “Comparativeanalysis of the security of configuration protocols for industrial controldevices,” International Journal of Critical Infrastructure Protection,vol. 19, pp. 4–15, 2017.
[57] R. Langner, “A time bomb with fourteen bytes,” 
[EB/OL], 2011, https://www.langner.com/2011/07/a-time-bomb-with-fourteen-bytes/.
[58] E. Biham, S. Bitan, A. Carmel, A. Dankner, U. Malin, and A. Wool,“Rogue7: Rogue engineering-station attacks on S7 Simatic PLCs,” inProceedings of the Black Hat USA, Las Vegas, USA, 2019, pp. 1–21.
[59] H. Hui, K. McLaughlin, and S. Sezer, “Vulnerability analysis of s7 plcs:Manipulating the security mechanism,” International Journal of CriticalInfrastructure Protection, vol. 35, p. 100470, 2021.
[60] H. Wardak, S. Zhioua, and A. Almulhem, “PLC access control: asecurity analysis,” in Proceedings of the World Congress on IndustrialControl Systems Security (WCICSS). London, United Kingdom: IEEE,2016, pp. 1–6.
[61] S. E. McLaughlin, S. A. Zonouz, D. J. Pohly, and P. D. McDaniel, “ATrusted Safety Verifier for Process Controller Code.” in Proceedings ofthe Network and Distributed System Security Symposium (NDSS). SanDiego, USA: The Internet Society, 2014, pp. 1–15.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值