CORMAND2——针对工业机器人的欺骗攻击

浦宏艺 ,  何亮 ,  程鹏 ,  陈积明 ,  孙优贤

工程(英文) ›› 2024, Vol. 32 ›› Issue (1) : 199 -216.

PDF (3059KB)
工程(英文) ›› 2024, Vol. 32 ›› Issue (1) : 199 -216. DOI: 10.1016/j.eng.2023.01.013
研究论文

CORMAND2——针对工业机器人的欺骗攻击

作者信息 +

CORMAND2: A Deception Attack Against Industrial Robots

Author information +
文章历史 +
PDF (3131K)

摘要

工业物联网(IIoT)的流行导致工业机器人越来越容易受到网络攻击。为详细分析工业机器人所面临的网络风险,本文收集了两台ABB IRB120机器人和五台来自其他不同原始设备制造商(OEM)的工业机器人的300万个通信数据包。本文从机密性-完整性-可用性(CIA)三个维度分析工业机器人的漏洞。基于分析出的漏洞,本文设计了一种针对工业机器人行为操控的自动化信息物理攻击软件CORMAND2。CORMAND2不仅通过篡改工业机器人的用户代码导致工业机器人异常运行,还重放以前记录的、正常的工业机器人的运动状态数据,导致监测控制和数据采集(SCADA)系统难以检测出工业机器人的异常。本文在6款工业机器人上测试了CORMAND2,实验结果表明CORMAND2能够绕过现有基于工业机器人运动状态数据的攻击检测器。本文还提出了缓解该攻击的方案。

Abstract

Industrial robots are becoming increasingly vulnerable to cyber incidents and attacks, particularly with the dawn of the Industrial Internet-of-Things (IIoT). To gain a comprehensive understanding of these cyber risks, vulnerabilities of industrial robots were analyzed empirically, using more than three million communication packets collected with testbeds of two ABB IRB120 robots and five other robots from various original equipment manufacturers (OEMs). This analysis, guided by the confidentiality–integrity–availability (CIA) triad, uncovers robot vulnerabilities in three dimensions: confidentiality, integrity, and availability. These vulnerabilities were used to design Covering Robot Manipulation via Data Deception (CORMAND2), an automated cyber–physical attack against industrial robots. CORMAND2 manipulates robot operation while deceiving the Supervisory Control and Data Acquisition (SCADA) system that the robot is operating normally by modifying the robot's movement data and data deception. CORMAND2 and its capability of degrading the manufacturing was validated experimentally using the aforementioned seven robots from six different OEMs. CORMAND2 unveils the limitations of existing anomaly detection systems, more specifically the assumption of the authenticity of SCADA-received movement data, to which we propose mitigations for.

关键词

工业机器人 / 漏洞分析 / 欺骗攻击 / 防御

Key words

Industrial robots / Vulnerability analysis / Deception attacks / Defenses

引用本文

引用格式 ▾
浦宏艺,何亮,程鹏,陈积明,孙优贤. CORMAND2——针对工业机器人的欺骗攻击[J]. 工程(英文), 2024, 32(1): 199-216 DOI:10.1016/j.eng.2023.01.013

登录浏览全文

4963

注册一个新账户 忘记密码

1 引言

工业机器人(如广泛应用于制造业的可编程机械臂)是典型的信息-物理系统,通过传感、通信、计算和控制[1]与物理世界相互作用。根据国际机器人联合会(IFR)的数据,2021年,制造系统中部署了超过300万个工业机器人[2]。图1显示了符合ISO10218 [3]和ISO12100 [4]关于工业机器人安全标准的工业机器人的典型运行场景。典型的操作流程如下:

流程1:人类操作员使用其身份登录到机器人,并使用开发软件对机器人进行编程,如通过RobotStudio对ABB机器人进行编程;

流程2:机器人按程序运行,并将机载传感器采集到的运动数据实时报告给监测控制和数据采集(SCADA)系统;

流程3:SCADA显示接收到的运动数据,并使用异常检测系统检测潜在的机器人异常操作;

流程4:人类操作员通过观察SCADA来监控机器人的操作。

请注意,图1中流程1和流程2使用的工业网络通常是基于EtherNet/IP构建的。此外,当机器人在运行时,人类操作员对制造设施的访问通常有限。

越来越多的针对制造系统的网络攻击表明,工业机器人很容易被操纵[58]。例如,制造工厂在2019年被勒索了690万美元[9]。其他受害者包括本田和Aebi Schmidt公司,两公司因受网络攻击[1011]而被迫停产。作为制造系统的重要组成部分,工业机器人可能成为攻击者的攻击目标,因此许多研究人员产生了研究工业机器人安全的兴趣。例如,Quarta等[12]通过修改机器人的比例-积分-微分(PID)控制器的比例增益,改变了ABB机器人的操作;Alemzadeh等[13]使用伪造的控制命令来操纵Raven机器人的运动;Apa [14]攻击了UR机器人的Modbus Server,并使机器人在安全范围之外运行。

为了全面了解这些网络风险,我们使用从6个不同的原始设备制造商(OEM)的7款机器人收集的300多万个通信数据包,分析了工业机器人的漏洞(图2图3)。上述的6个OEM占全球市场份额的55%以上[15]。所有的7台机器人都使用EtherNet/IP联网。本研究基于机密性-完整性-可用性(CIA)三要素分析这一常用的安全分析模型,发现:①即使是最广泛使用的安全措施(如强加密和数据散列)在机器人中也没有采用,这使得它们在CIA三要素定义的所有三个维度上都很脆弱;②据我们所知,大多数报告的工业机器人攻击至少利用了这三个漏洞中的一个;③这三个漏洞是相互关联的,这意味着机密性受损会破坏完整性和可用性,而完整性被削弱会损害可用性。

利用这些漏洞设计了通过数据欺骗掩盖机器人异常操作(CORMAND2)的软件,这是一种新的信息物理攻击,它利用被破坏的机器人机密性,进一步破坏完整性和可用性。例如,CORMAND2可以通过修改机器人的运动数据(攻击图1中的流程2),欺骗监视机器人运行的SCADA,操纵机器人操作(攻击图1中的流程1)。CORMAND2欺骗攻击具有可协作的特点,不仅区别于先前报道的攻击,而且更重要的是,它通过破坏SCADA收集的运动数据能够真实反映机器人运动这一普遍假设,允许CORMAND2绕过基于SCADA收集的运动数据检测机器人操作的异常检测系统[1618]。

CORMAND2的数据欺骗基于中间人(MITM)攻击,该攻击使用基于代理(如Mitmproxy和Burp Suite)的解决方案,在两个受害者之间建立新的传输控制协议(TCP)连接。然而,这些解决方案并不适用于工业机器人,因为机器人和SCADA之间的连接是在整个系统运行过程中建立和维护的。CORMAND2通过修改机器人和SCADA之间现有连接的方式部署MITM攻击,而不会导致SCADA接收的机器人运动、通信数据包和TCP连接出现异常,从而克服了这一挑战。

CORMAND2是一种可以自动部署攻击的恶意软件。本研究针对来自6个不同OEM的7台机器人,证实了CORMAND2绕过现有异常检测器的能力,这些检测器假定SCADA接收的运动数据是真实的[17]。此外,CORMAND2对通信延迟(1.7 ms)、数据包(0.42%~1.10%)和数据包重传率(0.0073%)的平均增加最小,对通信统计数据的影响可以忽略不计,因此很难被检测到。本文评估了CORMAND2在降低生产效率和造成物理损害方面的潜力,以展示一个脆弱的CIA三要素在现实世界中的潜在后果。同时,本文还提出了保护机器人免受CORMAND2攻击的解决方案。超过300万个通信数据包可被公开访问,以促进对工业机器人安全的更广泛研究。

本文的主要贡献如下:

•识别工业机器人在机密性、完整性和可用性方面的漏洞;

•设计了CORMAND2——一种利用上述漏洞,通过数据欺骗掩盖机器人被操纵事实的信息物理攻击;据我们所知,这是针对工业机器人第一次此类攻击,因为它不仅操纵了机器人的操作,而且隐藏了操作而不被发现;

•对来自6个不同OEM的7台机器人进行CORMAND2攻击,验证CORMAND2规避现有异常检测器的能力、其可忽略的通信开销及其对制造的影响;

•提供了保护机器人免受CORMAND2攻击的解决方案。

2 相关工作

本节简要讨论与CORMAND2相关的文献。

(1)工业机器人的安全性。关于工业机器人的漏洞和针对它们的攻击以及开发保护工业机器人的检测器,已经进行了大量的研究。Pogliani等[6]、Quarta等[12]、Maggi等[19]、Apa[14]和Chan等[20]研究了工业机器人的内存损坏、访问控制、配置文件和固件漏洞。Alemzadeh等[13]、Apa[14]、Chung等[21]以及Dieber等[22-23]操纵机器人使其运行至安全范围之外。还有一些研究提出了基于物理模型、机器学习[如支持向量机(SVM)]和其他形式化方法的解决方案,以通过分析机器人的关节角度、关节速度和关节力矩等运动数据来检测这些操作[13,17,24]。研究人员已实现90% [13]的平均检测精度,当工业机器人的轨迹偏离2 mm [17]或工业机器人的操作不符合其规格[24]规定时,就可以检测到攻击。然而,现有的漏洞分析缺乏系统指导(如本文讨论的CIA三要素),使得很难设计出针对机器人的高级攻击。此外,大多数攻击检测器都假定所收集的运动数据是真实的,而CORMAND2则绕过了这一点。

(2)工业协议的安全性。大多数工业协议,包括Modbus、分布式网络协议3(DNP3)和EtherNet/IP,在设计上都不安全,因此容易受到网络攻击[25]。为检测针对这些协议的攻击,现有研究开发了许多入侵检测系统(IDS)。这些系统可以分为基于协议分析的检测器和基于通信流量的检测器[26]。基于协议分析的检测器指定消息格式,并基于预定义的规范来检测攻击[27-28],而基于通信流量的检测器使用数据挖掘或统计分析算法来提取通信流量特征[29-30]。但是,基于协议分析的检测器需要很长时间来解析数据包,而基于通信流量的检测器可能会产生误报警。

(3)通过数据欺骗来隐藏系统操作。分析了通过数据欺骗操纵工业控制系统(ICS)操作的攻击的风险和缓解措施[31]。然而,这样的攻击在实践中很少被成功部署:① Stuxnet修改离心机的转速,并通过向SCADA回放预先记录的正常转速来隐藏操作;②Harvey向电力系统输入恶意指令,同时向SCADA伪造看似正常的传感器测量值来欺骗人类操作员,使其认为电力系统运行正常[33]。然而,目前还不清楚对工业机器人的类似攻击是否可行。

(4)嗅探、欺骗和MITM攻击。可使用各种渗透测试工具嗅探通信数据包,并对信息技术(IT)/ICS系统进行欺骗或MITM攻击。专门为嗅探设计的渗透工具包括Wireshark、p0f、TCPDump和dSniff,但它们无法进行实时欺骗和MITM攻击。常见的欺骗工具包括arpspoof和dnsspoof,后者被设计用于攻击超文本传输协议(HTTP)。Mitmproxy和Burp Suite是传统的MITM攻击工具,旨在通过建立新的TCP连接来拦截两个受害者之间的通信。然而,Mitmproxy和Burp Suite都不能用于工业机器人,因为机器人和SCADA之间的TCP连接贯穿整个系统运行过程。此外,Ettercap和NetfilterQueue都是集成的攻击工具,可以嗅探通信并部署欺骗和MITM攻击。但是Ettercap的可定制性不如NetfilterQueue,后者可以任意拦截、记录和修改通信数据包。

3 前期准备工作

本节介绍了工业机器人试验台以及EtherNet/IP的背景,并解释了攻击者模型。

3.1 SIRP试验台

图2所示,安全工业机器人拾取和放置(SIRP)试验台是一个按比例缩小但完全可运行的原型,能够模拟图1所示的制造系统的运行。SIRP由两个相同的ABB IRB120机器人(机器人I和机器人II)、一个SCADA系统、一套开发软件和其他支持典型装配操作的辅助模块(如相机)组成。

• ABB IRB120机器人。每个机器人都有一个六关节的机械臂,用于拾取和放置物体。这些机器人运行Robotware 6.03.02.00固件,并根据人类操作员上传的代码运行。它们配备了一个用户授权系统(UAS),以防止未经授权的操作。机器人通过EtherNet/IP与其他SIRP模块(如SCADA系统)进行通信。

• SCADA系统。SCADA系统部署在一台专门的主机上,由一个实时显示机器人运动的图形用户界面(GUI)和一个可编程的异常检测器组成;GUI允许人类操作员监控他们的操作。异常检测器是根据参考文献[17]实现的,假定SCADA接收到的运动数据是真实的,并使用SVM确定机器人的运动是否偏离了计划的路径。

• 开发软件。SIRP的开发软件是RobotStudio,它是一个部署在独立主机上的集成开发环境(IDE)。RobotStudio允许用户登录和退出机器人、上传和下载机器人的操作代码、启动和停止机器人、上传和下载包含用户名和密码的UAS配置文件以及模拟机器人的操作。请注意,在人类操作员上传或下载操作代码之前,机器人必须停机,但在此期间机器人可以继续与SCADA通信。

• 装配操作。SIRP支持典型的四步循环装配操作:①两个机器人保持在初始位置[图2(a)];②两个机器人根据摄像头测量的物体位置从传送带上各拾起一个物体[图2(b)];③两个机器人协同将两个物体组装成一个圆柱形部件,机器人I的物体在上,机器人II 的物体在下[图2(c)];④机器人II将组装好的部件放到仓库里[图2(d)],然后两个机器人返回初始位置。

3.2 EtherNet/IP通信

与工业机器人一样,SIRP使用EtherNet/IP来构建机器人、SCADA和RobotStudio之间的通信(见图1中的流程1和流程2)。

(1)EtherNet/IP: 图4为EtherNet/IP通信数据包。数据包分别用HEX和ASCII编码,包括四个协议数据单元(PDU):应用层PDU、TCP段、IP数据报和以太网帧,对应国际标准化组织(ISO)四层协议栈。①机器人的运动数据、用户名、密码、应用层PDU长度(len)组成应用层PDU并根据ABB的专有协议构造;②TCP段包含维护TCP连接的完整性检查字段,具体包括表明应用层PDU在字节流中的位置的序列号(seq)、确认号(ack)(下一个数据包的预期序列)以及基于TCP段使用校验和算法进行计算的TCP校验和;③IP数据报包含完整性检查字段,如IP数据报的长度和基于IP数据报计算的IP校验和;④以太网帧包含目标设备和源设备的媒体访问控制(MAC)地址,用于将数据包路由到目标设备。请注意,除了密码之外,在应用程序层PDU中没有使用任何加密。

(2)机器人与SCADA之间的通信:机器人定期向SCADA报告其运动数据,如图5所示。对于每个报告:

• 静止的机器人向SCADA发送包含运动数据的两个数据包。SCADA用一个只包含TCP、IP、以太网报头而没有应用层PDU的空包对机器人进行回复,如图5(a)所示。

• 移动的机器人向SCADA发送三个数据包,包括一个包含运动数据的包、一个空包和一个包含应用层PDU的包(“TCPRobot”)。然后,SCADA向机器人发送回两个包,包括一个空包和一个包含应用程序层PDU的包(“GET_ROB Type”),如图5(b)所示。

需要注意的是,在机器人能够定期向SCADA报告其运动数据之前,它必须首先使用TCP段中的seq和ack通过三次握手过程与SCADA建立TCP连接。机器人在整个操作过程中都保持TCP连接,这就阻止了传统的基于代理的MITM工具构建新的连接。为清晰起见,使用三元组索引 <i, j, k> 标记机器人与SCADA之间交换的通信包,其中i是机器人发送给SCADA的包的索引,j是SCADA发送给机器人的包的索引,k表示包是从机器人(k = 0)还是从SCADA(k = 1)发送的。例如,图6中所示的6个数据包从<1, 0, 0>索引到<4, 2,1>。

(3)检测包修改/丢失:保持机器人和SCADA之间的TCP连接需要使用完整性检查检测包修改和丢失。

• 包修改检查是指检查数据包在通信过程中是否被修改。此检查验证完整性检查字段(包括len、TCP校验和、IP校验和和IP数据报长度)是否与相应的数据匹配。任何未通过此检查的数据包都将被丢弃,并将触发重传。

• 丢包检查使用接收到的包来检查前一个包是否丢失:如果报告的字节流中的包位置(即seq)与预期的包位置(即ack)不匹配,则前一个包丢失。例如,如果机器人依次发送包<i, j, 0>和<i + 1, j, 0>到SCADA,SCADA使用包<i + 1, j, 0>检查包<i, j, 0>是否丢失。机器人根据前一个数据包<i, j, 0>计算数据包<i + 1, j, 0>的seq,计算方法如下:

seq < i + 1, j , 0> = seq < i , j , 0> + len < i , j , 0>

当SCADA接收到数据包<i + 1, j, 0>时,它通过检查预期的数据包在字节流中的位置(即ack< i , j , 1>)与报告的数据包位置(即seq< i + 1, j , 0>)是否匹配来进行丢包检查。如果两位置匹配,前一个数据包<i, j, 0>就没有丢失;在这种情况下,SCADA使用

ack< i + 1, j , 1> = ack< i , j , 1> + len< i + 1, j , 0>

来计算ack< i + 1, j , 1>,以准备下一次丢包检查。如果检测到丢包,则会触发重传。请注意,机器人和SCADA都需要记录在其通信中使用的ack和seq,以处理潜在的数据包丢失和重传。第4节将进一步解释这个过程。

3.3 攻击者模型

本文假设攻击者(如商业竞争对手、敌对国家或心怀不满的员工)使用各种方法恶意操作受害者机器人而不被发现。这些方法包括:

• 渗透到工业网络中。攻击者可通过互联网或使用供应商的专有远程访问设备(如工业路由器,用于远程监控和维护)来远程访问工业网络。根据参考文献[12],全球有8万多台工业路由器和机器人接入互联网,其中5000多台没有UAS。攻击者(如心怀不满的员工和恶意的承包商或技术人员)甚至可以物理访问工业网络,通过以太网或其他输入(I)/输出(O)接口获得对制造系统的完全访问。这些方法被广泛应用于工业网络安全研究[78,21,33-36],也触发了一些现实事件。例如,Black-Energy使用钓鱼邮件感染和控制工业网络的主机,从而攻击电网[37];通过通用串行总线(USB)棒对核电站进行物理Stuxnet攻击[32]。

• 编程机器人操作。攻击者可以通过使用语义正确的恶意代码来操纵机器人的操作。他们通过使用从供应商网站上下载的开发软件(如ABB机器人使用的RobotStudio)模拟和调试机器人的操作来实现这一点。许多OEM为他们的机器人提供了公共可访问的仿真平台。本文解释的许多细节都是从这些公开可访问的资源中了解到的,攻击者也可以这样做。

4 漏洞分析

首先,使用CIA三要素对机器人的漏洞进行了实证分析,该三要素最初被设计用于分析三个维度的信息安全性:机密性、完整性和可用性[38]。利用CIA三要素对工业机器人的信息物理安全进行分析如下:

• 机密性是指机器人的敏感数据(包括实时运动数据和用户凭证)在未经授权时的可访问性;

• 完整性是指机器人敏感数据的真实性和准确性;

• 可用性是指机器人所提供的制造服务(如SIRP系统中的装配操作)的可靠性。

与攻击者战术、技术和共有知识库(ATT&CK)[39]等安全模型不同,CIA三要素允许对MITM攻击进行简单和可解释的可行性分析。当工业机器人在机密性、完整性和可用性方面存在漏洞时,可以进行MITM攻击。

本文收集和分析了来自6个不同的OEM(ABB、KUKA、UR、COMAU、NACHI和UFACTORY)的7台不同功能的机器人发送和接收的超过300万个通信数据包(如机器人运动数据和登录报告)。在漏洞分析中得出了以下观察结果:

观察1:由于计算资源有限,工业机器人在CIA三要素的所有维度上都存在漏洞。例如,ABB IRB120机器人只有大约40 GB的存储空间、1 GB的内存和小于1 GHz的中央处理单元(CPU)频率。因此,工业网络缺乏部署在个人计算机、服务器和其他信息系统上的常用安全机制(如强加密和数据散列)。

观察2:据我们所知,大多数针对工业机器人的攻击都利用了一个或多个上述漏洞。这些攻击情况总结在表1中[6,1214,19-23,40,41]。

观察3:三个维度上的漏洞是相互关联的。被破坏的机密性会破坏完整性和可用性,而被削弱的完整性会损害可用性,如图7所示。

我们使用ABB机器人研究了这些漏洞。

4.1 脆弱的机密性

工业机器人的机密性保护很差,因为它们的运动数据和用户凭据可以在没有适当授权的情况下被轻易访问。

• 明文运动数据。机器人以明文形式向SCADA报告其运动数据,进入工业网络的攻击者可以访问这些数据。图8显示了ABB机器人向SCADA发送的机器人六个关节的运动数据的数据包。运动数据形成一个6 × 3的数组,其中行表示关节(关节1~6),列分别表示时间戳(以毫秒为单位)、关节索引(18~23表示关节1~6)以及相应的关节角度(以弧度为单位)。一个正关节角度占用应用层PDU的8个字节,而一个负关节角度则占用9个字节,因为负角的负号需要额外占用一个字节。这种运动数据的明文性质不仅允许攻击者破坏机器人的机密性,而且还方便解析被拦截的数据包,以识别、记录或修改运动数据,从而破坏机器人的完整性。

• 受到弱保护的用户凭证。要操作机器人,合法用户必须将其凭证输入到RobotStudio中,然后RobotStudio通过工业网络将凭证发送给机器人进行授权。攻击者可以通过几种方式获得用户凭证。首先,许多机器人都有默认的用户账号,其用户名和密码不能更改。另外,当用户凭证从RobotStudio发送到机器人时,用户名为明文,密码加密较弱,攻击者可以轻松拦截机器人与RobotStudio之间的通信并获得用户凭证。图9显示了从RobotStudio发送给ABB机器人的通信包中的用户凭证示例:用户名明文为“000000”,初始密码“111111”加密为“06;234234”。最后,机器人将所有合法账户的用户名和密码存储在一个弱加密的文件中,攻击者可以在没有任何授权的情况下使用RobotStudio的文件传输功能获得这个文件。图10显示了ABB IRB120机器人存储的一个名为“uas users.xml”的文件,该文件使用异或加密(XOR)[12],包含一个解密密钥、用户名“123456”和密码“654321”。这些弱保护的用户凭证使攻击者能够轻松登录到机器人并在没有适当授权的情况下恶意操纵其操作。

4.2 脆弱的完整性

脆弱的机密性或运动数据的明文传输允许攻击者修改机器人报告给SCADA的运动数据。为了避免在完整性检查期间被发现,攻击者还必须修改完整性检查字段。大多数商用机器人使用EtherNet/IP通信,这使得他们的完整性检查计算标准而公开。因此,攻击者可以很容易地通过修改明文运动数据来伪造完整性检查字段,并通过伪造完整性检查字段来绕过:①通过重新计算len、TCP校验和、IP校验和及IP数据报长度进行的数据包修改检查,以及②通过修改seq进行的丢包检查。

4.3 脆弱的可用性

一旦攻击者获得用户凭证并破坏了机器人的机密性,他们就可以使用可公开访问的开发软件或软件开发工具包(SDK)(如用于ABB机器人的RobotStudio或PC SDK)登录到机器人,上传和注入恶意代码,从而操纵机器人的操作。这损害了机器人的可用性,导致制造效率下降、产品质量下降甚至设备损坏等后果。攻击者可以通过修改机器人的运动数据和相关的完整性检查来进一步降低可用性和完整性,以防止SCADA检测到被操纵的机器人的操作。

5 CORMAND2的设计

CORMAND2是基于观察3设计的,它利用机密性受损来破坏完整性和可用性,从而通过数据欺骗来掩盖对机器人的操纵。如图11所示,CORMAND2包括准备阶段和攻击阶段,前者首先破坏机密性,后者操纵机器人操作并破坏可用性,同时通过损害完整性修改机器人的运动数据来掩盖对机器人的操纵。这种协作的欺骗攻击使CORMAND2有别于表1所列出的现有攻击方式。CORMAND2有效地规避了基于SCADA接收的运动数据检测机器人异常运行[1617]的异常检测系统。上述异常检测系统假设SCADA接收的运动数据真正反映了机器人的运动,即数据是真实的。

5.1 第一阶段:攻击准备

CORMAND2通过拦截机器人和SCADA之间的通信数据包识别和记录机器人正常运动的全周期,为发起攻击作准备,并在攻击阶段回放这些信息,以欺骗SCADA,让它相信机器人运行正常。

(1)拦截通信:CORMAND2拦截机器人与SCADA之间通信的方式包括:①使用arp-spoof来误导机器人和SCADA,使其向CORMAND2发送数据包,②使用NetfilterQueue对拦截的数据包进行解析和修改。需要注意的是,广泛部署于http(s)的标准的基于代理的MITM工具(如Mitmproxy和Burp Suite)不能用于拦截,因为它们需要在CORMAND2与机器人和SCADA之间建立新的TCP连接;而由于机器人和SCADA之间的TCP连接是始终保持着的,因此无法建立新的TCP连接。

(2)选择机器人到SCADA的数据包:CORMAND2拦截机器人和SCADA之间交换的所有数据包,但只有从机器人发送到SCADA的数据包中包含运动数据,因此需要对数据包进行选择。CORMAND2通过检查TCP段中的端口号来识别从机器人发送到SCADA的数据包。机器人的固定端口号为5515,而SCADA的固定端口号可以有所变化,但总是大于40 000。

(3)提取运动数据:CORMAND2需要从选定的机器人到SCADA的数据包中识别和提取机器人的六个关节角度的运动数据。分析表明,这些角度可以在数据包内变化,这取决于它们是正还是负。图8数据包中关节1(0.082931)和关节2(-0.042819)的角度数据分别位于应用层PDU的第56和第76字节。当关节1的角度从“0.082931”(占8个字节)变为“-0.082931”(占9个字节)时,关节2的角度数据的位置将变为第77字节。为了消除这些变化,CORMAND2首先在应用程序层PDU中使用“[”作为参考点来定位关节角度数据。“[”的固定长度为11个字节,只出现在运动数据中,每次出现对应一个关节角度。然后,CORMAND2根据关节角度的数据长度提取并记录运动数据,该长度为8或9个字节,取决于关节角度是正还是负。值得注意的是,一个数据包可能包含多个运动数据,而CORMAND2必须通过识别所有的“[”来提取和记录所有的运动数据,这通常是运动数据数量的6倍。

(4)识别全周期运动:CORMAND2通过分析所记录运动数据的自相关性来识别机器人的全周期运动 𝕏 = { X t 1, X t 2, …, X t q},其中 X t ii = 1, 2, …)是一个包含机器人在时刻 t i的六个关节角的矢量, X t q是从机器人到SCADA数据包中最新提取和记录的运动数据。每次 X t q 加入 𝕏后,CORMAND2计算关节1角度的序列在 𝕏m ∈ {1, 2, …, q},q是最近一次时间的下标)中的m-lag自相关值。当在自相关序列中识别出三个幅度接近{1, 0.66, 0.33}的峰时,CORMAND2计算出一个全周期运动的长度为l = (| m 2 - m 1| + | m 3 - m 2|) / 2,其中{ m 1, m 2, m 3}是观察到的三个峰的滞后时间。此外,CORMAND2需要至少三个周期的机器人操作数据来识别机器人的全周期运动。然后,CORMAND2将 𝕏  [(q - l + 1 + 1) : q] = { X t q - l + 1, X t q - l + 2, …, X t q}视为全周期运动数据,并在攻击阶段将它进行回放。基于经验和与汽车行业专家的讨论,此处假设机器人运动不包含子周期。

5.2 第二阶段:发起攻击

在准备就绪后,CORMAND2对机器人操作发起攻击,通过修改机器人的动作数据隐藏机器人的异常操作,使SCADA误以为机器人在正常运行。CORMAND2通过暂停机器人,将恶意操作代码上传到机器人,并重新启动机器人使其异常运行。为了不被发现,必须在数据欺骗成功后才能开始对机器人进行操作,因此在启动数据欺骗和开始对机器人进行操纵之间引入了1 s的延迟。

为成功实现数据欺骗,CORMAND2必须:①仔细修改运动数据,使其在SCADA上显示为正常运行,②修改相关包完整性检查字段(len和seq)使TCP包显得有效,和③对潜在的丢包和重传进行特殊处理,使SCADA能够观察到正常的TCP连接。图12概述了CORMAND2如何应当这些挑战,并将在下面的小节中详细讨论。

5.2.1 修改运动数据

与攻击准备阶段类似,CORMAND2在攻击阶段继续拦截通信,以识别机器人到SCADA的数据包,并定位报告的运动数据。然而,真实的运动数据会反映被操纵的机器人操作,因此为欺骗SCADA,使其相信机器人运行正常,CORMAND2回放机器人的正常运动数据。如果CORMAND2在提取运动数据 X t q并识别机器人的全周期运动{ X t q - l + 1, X t q - l + 2, …, X t q}后完成准备,对于在攻击阶段后期提取的运动数据 X t z(其中z > q),CORMAND2用 X t z '替换 X t z,其中z′ = ql + 1 + mod (z - q - 1, l)。请注意,为避免在回放一半的运动循环时被SCADA检测到,CORMAND2必须重复回放机器人的整个运动循环,如图13所示。

5.2.2 修改完整性检查字段

除了修改数据包中的运动数据外,CORMAND2还必须修改完整性检查字段,以确保TCP数据包被认为是有效的。

(1)修改数据包修改检查字段。修改后的运动数据会导致len、TCP校验和、IP校验和以及IP数据报长度中的数据包修改检查字段不匹配。例如,图8中CORMAND2将关节1的角度从“0.082931”(8字节)改为“-0.082931”(9字节),len从169变为170,因此数据包修改检查失败,攻击被发现。为了解决这个问题,CORMAND2通过更新①len(通过计算应用层PDU的长度)、②TCP和IP校验和(使用scapy)以及③IP数据报的长度(通过计算其实际长度)来修改数据包修改检查字段。

(2)修改数据包丢失检查字段。修改后的len帮助CORMAND2通过数据包修改检查,但会导致SCADA以不同的方式更新ack,导致从机器人发送的下一个seq与存储在SCADA上的ack不匹配。如果CORMAND2将原始数据包中的len< i , j , 0>修改为len′< i , j , 0>,那么在收到修改后的数据包后,SCADA发现ack< i -1, j , 1> = seq< i , j , 0>,然后计算下一个从机器人到SCADA的数据包中的期望seq为 ack′< i , j , 1> = ack< i -1, j , 1> + len′< i , j , 0>。由于机器人没有意识到攻击,它会像往常一样将seq< i +1, j , 0> 计算为seq< i , j , 0> + len< i , j , 0>,然后发送数据包<i+1, j, 0>到SCADA。然后,SCADA就会发现ack′< i , j , 1> seq< i +1, j , 0>,从而导致数据包丢失检查不通过。

为了绕过这一点,CORMAND2必须使用偏移量offset,将拦截的机器人到SCADA数据包的seq修改为seq′,以补偿seq和SCADA存储的ack′之间的差异,即自发动攻击以来len和len′之间的累积偏差。图14展示了数据包<i,j,0>的修改过程:CORMAND2 用 {len′< i , j , 0>, seq′< i , j , 0>}取代len< i , j , 0>, seq< i , j , 0>}, 其中len′< i , j , 0>是改变运动数据后修改过的len< i , j , 0>,seq′< i , j , 0> = seq< i , j , 0> + offset< i -1>。CORMAND2接着更新offset:

如果没有数据包丢失,则

offset< i > = offset< i -1> + len′< i , j , 0> - len< i , j , 0>

如果数据包<i-1, j, 0> 丢失,则

offset< i > = offset< i -1>

然后,CORMAND2使用offset< i >来修改从机器人到SCADA的下一个数据包的seq。请注意,offset<0>=0。

5.2.3 处理丢包和重传

当数据包在传输过程中丢失时,TCP使用重传来保持可靠的通信。图15展示的例子为,在没有CORMAND2的情况下,机器人向SCADA发送一个带有seq <i, j, 0>的数据包 <i, j, 0>,但数据包丢失了。

(1)机器人不知道数据包丢失,用seq< i +1, j , 0>向SCADA发送第二个包<i + 1, j, 0>。

(2)在接收到数据包<i + 1, j, 0>时,SCADA注意到seq< i +1, j , 0> 与ack< i -1, j , 1>不匹配并将该数据包丢弃;ack< i -1, j , 1>是在数据包<i, j, 0>丢失之前由SCADA收到数据包后计算并存储的。

(3) SCADA通过发送nn≥3)个数据包通知机器人数据包<i, j, 0>丢失;这些数据包的索引从<i + 1, j + 1, 1>到<i + n, j + n, 1>,其ack等于ack< i -1, j , 1>(预期seq< i , j , 0>),如图15所示。请注意,在此过程中,机器人和SCADA交替地发送数据包,这与正常的通信不同。SCADA还会丢弃在此过程中从机器人接收到的所有数据包。

(4)在接收到与ack匹配 ack< i -1, j , 1> = seq< i , j , 0>n个数据包后,机器人确定数据包<i, j, 0>已丢失,并使用包 <i + n + 1, j + n, 0>(seq< i + n +1, j + n , 0> = seq< i , j , 0>)重传丢失或丢弃的运动数据。如果机器人没有找到任何与ack< i -1, j , 1>相匹配的存储seq,机器人将继续用计算出的seq发送数据包,而不是触发数据包重传。

当接收到与存储在机器人中的特定seq相匹配的相同ack的n个数据包时,机器人判定数据包丢失并触发包重传。然而,这种方法不适用于CORMAND2攻击,因为SCADA将发送n个数据包,而其ack′可能与现有机器人存储的seq不匹配。如图15所示,当CORMAND2已经被部署并且序列为seq< i , j , 0>的机器人到SCADA的数据包 <i, j, 0>丢失时,机器人发送第二个数据包<i + 1, j, 0>给SCADA,其序列seq< i +1, j , 0> 被CORMAND2替换为seq′。当SCADA接收到修改后的数据包<i+1, j, 0>并检测到seq′与ack′不匹配时,它将发送ack′等于ack′< i -1, j , 1>n个包,通知机器人丢包情况。然而,机器人可能无法找到与ack′相匹配的存储seq,其中:

ack′< i -1, j , 1> = seq′< i , j , 0> = seq< i , j , 0> +offset< i -1>

因此,机器人将继续计算seq并向SCADA发送数据包而不触发数据包重传,而SCADA将继续丢弃从机器人接收到的数据包。这会破坏机器人和SCADA之间的通信,并且CORMAND2将被检测到。

式(5)表明CORMAND2每拦截一个SCADA到机器人的数据包,CORMAND2都可以用

ack′′< i -1, j , 1> = ack′< i -1, j , 1> = ack′< i -1, j , 1> - offset< i -1>

取代ack′< i -1, j , 1>,使它与机器人存储的seq< i , j , 0>相匹配,从而正确地触发数据包重传。但是,在此之前,CORMAND2必须首先确定是否发生了数据包丢失,否则它将无法计算offset并无法正确地修改SCADA到机器人的数据包中的ack′。如图15所示,在丢包和重传过程中,CORMAND2修改从SCADA发送到机器人的每个ack′,并且从机器人到CORMAND2的包<i, j, 0> (序列为seq< i , j , 0>)已丢失。当机器人向SCADA发送第二数据包<i + 1, j, 0> 时,SCADA检测到数据包丢失,并使用ack′< i +1, j +1, 1> = ack′< i -1, j , 1>发送数据包<i + 1, j + 1, 1>,通知机器人数据包丢失。但是,由于CORMAND2无法检测到数据包丢失,因此CORMAND2将使用错误的offset< i +1>(正确的为offset< i -1>)计算 ack″< i +1, j +1,1>,计算方法见下方等式(7)

ack″< i +1, j +1, 1> = ack′< i +1, j +1, 1> - offset< i +1>

= ack′< i -1, j , 1> - offset< i +1>

因此,计算出的ack″< i +1, j +1, 1>可能在机器人存储的seq中不存在,并且可以检测到CORMAND2。

为了正确计算ack″,CORMAND2引入了 a c k ^,它类似于SCADA中的 ack,用于每次CORMAND2拦截数据包时检测丢包。CORMAND2计算 a c k ^ < i >方法为:

a c k ^ < i > = seq< i , j , 0> + len< i , j , 0>

CORMAND2 使用 a c k ^ < i >以确定以下内容:

(1)如图16(a)所示,如果 a c k ^ < i > = seq< i +1, j , 0>且ack″< i +1, j +1,1> ≥ seq< i +1, j , 0>,则机器人与SCADA之间的通信正常。然后,当CORMAND2拦截机器人到SCADA数据包时,计算 a c k ^ < i > = seq< i , j , 0> + len< i , j , 0>和offset< i > = offset< i -1> + len′< i , j , 0> - len< i , j , 0>,同时为SCADA到机器人数据包替换 ack′< i +1, j +1, 1>为ack″< i +1, j +1, 1> = ack′< i +1, j +1, 1> - offset< i +1>

(2) 如图16(b)所示,如果 a c k ^ < i > < seq< i +1, j , 0>,从机器人发送到CORMAND2的数据包<i, j, 0>丢失。请注意,CORMAND2保持ack(即 a c k ^ < i > = a c k ^ < i -1>)和offset(即offset< i > = offset< i -1>)的值,直到它检测到重传被触发(即 a c k ^ < i + n > = seq< i + n +1, j + n , 0>)。

(3)如图16(c)所示,如果 a c k ^ < i > = seq< i +1, j , 0> 且ack″< i +1, j +1, 1> < seq< i +1, j , 0>,从CORMAND2发送到SCADA的数据包<i, j, 0>丢失。在这种情况下,CORMAND2通过计算offset< i +1> = offset< i -1> a c k ^ < i +1> = a c k ^ < i -1>来回溯丢失或丢弃的数据包的offset和 a c k ^。然后用ack″< i +1, j +1, 1> = ack′< i +1, j +1, 1> - offset< i +1> 代替ack′< i +1, j +1, 1>。请注意,CORMAND2还将保留ack和offset的值,直到触发重传为止。

6 实现与评估

CORMAND2在SIRP以及来自KUKA、UR、COMAU、NACHI和UFACTORY的其他五台机器人上进行了实现和评估。制作了CORMAND2的演示视频[42]。

6.1 实现

与Black-Energy [37]和Stuxnet [32]相似,CORMAND2被实现为恶意软件,可以远程或使用恶意USB进行分发。CORMAND2可以绕过任何杀毒软件。CORMAND2恶意软件由两个组件组成:一个包含300多行C#代码,用于将恶意操作代码上传到机器人的程序;另一个包含600多行Python代码,用于通过数据欺骗来掩盖恶意机器人操作的程序。这两个程序通过套接字进行通信。

6.2 绕过现有的异常检测器

本文评估了CORMAND2绕过先前提到的异常检测器[17]的能力。这些检测器假定SCADA接收到的运动数据是真实的,并使用SVM来检测潜在的异常。以报告给SCADA的关节角计算的关节角和角速度作为特征向量[17],以径向基函数(RBF)作为核。

采用两个指标评价攻击检测:检测率,即机器人动作被操纵时确定为异常的动作数据样本的比率;误报率,即机器人动作正常时被确定为异常的动作数据样本的比率。如果检测率和误报率相差很大,则认为异常检测器可以有效地检测异常运行;如果两指标相似,那么异常检测器不能有效检测到异常运行。为了测量检测率,CORMAND2被部署在机器人上并使机器人异常运行100个操作周期。通过正常操作机器人再进行100个循环来测量误报率。该检测器的检出率为2.4%,误报率为2.7% [17],它们足够相似,无法区分攻击与正常操作,表明CORMAND2能够绕过异常检测器。请注意,除了基于SVM的检测器之外,CORMAND2还可以绕过所有假定所接收到的机器人运动数据真实的检测器[24]。

6.3 通信开销

本文还评估了CORMAND2在机器人和SCADA之间的通信中可能导致的任何开销,因为可以通过分析通信统计数据来尝试检测CORMAND2。这个评估使用了超过300万个数据包,这些数据包被CORMAND2拦截、修改并转发。

(1)通信延迟:当CORMAND2修改一个数据包时,机器人与SCADA之间的通信延迟增加。这种增加的通信延迟是通过从部署CORMAND2后的延迟中减去平均正常的机器人和SCADA之间的通信延迟来测量的。结果显示,CORMAND2修改一个被拦截的数据包平均只增加了1.7 ms(标准偏差为0.5 ms)的通信延迟(图17)。

(2)增加的数据包:CORMAND2通过向机器人和SCADA发送地址解析协议(ARP)数据包来部署MITM攻击,从而增加了在制造网络中传输的数据包的数量。为了量化这种开销,计算了在部署CORMAND2和未部署CORMAND2两种情况下,机器人和SCADA之间每分钟传输的数据包的数量。如图18所示,当机器人静止时,未部署CORMAND2和部署CORMAND2两种情况下,每分钟平均传输的数据包数量分别为3775和3818,标准偏差分别为42和36。然而,当机器人移动时,未部署CORMAND2和部署CORMAND2两种情况下,每分钟平均传输的数据包数量分别为15 947和16 015,标准偏差分别为400和260。这表明,CORMAND2在制造网络中增加的数据包仅为0.42%~1.10%,可以忽略不计。

(3)丢包和重传:制造网络中的丢包是部署CORMAND2的一个风险。在传输的300多万个数据包中,只有221个是重传的数据包。也就是说,假设在机器人正常运行的情况下没有丢包,CORMAND2导致的更坏丢包率为0.0073%。

6.4 降低制造业质量

本文对CORMAND2降低制造质量的可能性进行了测试,以证明机器人脆弱的CIA三要素的影响。

(1)降低生产效率:攻击者可能会通过部署CORMAND2来降低生产效率。攻击者可以通过操纵机器人的运行速度和加速度来延长完成一个操作周期的时间。在本研究中,机器人的运行速度和加速度在正常速度和加速度的基础上以10%的增量增加。由图19可知,降低运行速度和加速速度降低了生产效率。此外,运行速度和加速度与生产效率之间的非线性关系是由于机器人必须等待摄像头测量物体位置所产生的等待时间导致的。

(2)造成物理损害:攻击者可以使用CORMAND2对制造设施、产品和人类操作员造成损害。具体包括扰乱制造车间的操作,如使用产品遮挡摄像头、阻止机器人拾起物体 [图20(a)]等。视频[42]演示了这样的攻击。CORMAND2还可用于降低产品的质量,如通过操纵机器人II将物体放置在机器人I上方的错误位置,导致最终产品有缺陷[图20(b)]。视频[42]同样演示了这样的攻击。此外,CORMAND2可能对人类操作人员构成威胁。据报道,一名维修技术员被汽车制造工厂中的装配部件杀死了[8]。其他类似的事故也有报道[43-44]。

6.5 部署到其他机器人上

除了ABB IRB机器人外,CORMAND2还可以部署在任何具有第3节所述漏洞的工业机器人上。这已经通过来自KUKA、UR、COMAU、NACHI和UFACTORY的机器人实验得到证实。这些机器人代表了来自不同制造商的各种机器人。ABB和KUKA是四大机器人OEM (ABB、KUKA、YASKAWA和FANUC)中的两家,四大机器人OEM占全球市场的55%以上[15]。UR是最顶级的协作机器人OEM,占全球协作机器人市场的40%以上[45]。ABB、KUKA、UR、COMAU、NACHI和UFACTORY机器人是分别从瑞士、德国、丹麦、意大利、日本和中国的OEM中精心挑选出来的。如表2所示,前面讨论的异常检测器[17]的平均检出率为0.40%,误报率为0.45%。这两个比率的接近性表明了CORMAND2在逃避检测方面的有效性。此外,CORMAND2平均需要1.6 ms(标准偏差为0.75 ms)来修改一个数据包,使制造网络中的通信包平均增加3.2%,最坏情况下丢包率为0.025%。请注意,攻击代码因机器人的不同而不同;因此,CORMAND2在拦截机器人和SCADA之间的通信时(攻击准备),必须识别供应商,然后根据所识别的机器人发起攻击。此外,CORMAND2可以部署于受CIA三要素漏洞[4647]影响的移动机器人(如无人机)和通信协议(如EtherCAT和Fieldbus),这将在未来的工作中进行评估。

6.6 工业机器人的可获得性

为了分析工业机器人的漏洞而构建一个SIRP或购买各种类型的机器人并部署攻击可能是昂贵的,这使得研究人员很难进行此类研究。为了缓解这一问题,本文提供了一个包含从SIRP和其他五款机器人收集的300多万个通信数据包的数据集,以促进对机器人安全的研究。除了提供的数据集外,研究人员还可以通过机器人OEM提供的模拟平台访问SIRP和其他机器人。例如,研究人员可以使用RobotStudio来模拟ABB机器人及辅助设备,从而建立一个仿真SIRP。

7 防御CORMAND2

CORMAND2通过利用图7中总结的三个漏洞来发起协作的欺骗攻击。可以通过解决这些漏洞来保护机器人免受CORMAND2的攻击。也可以使用侧信道异常检测系统来检测数据欺骗。

7.1 攻击缓解

为了缓解CORMAND2的攻击,应该解决CIA三要素的漏洞。

• 可以通过应用高级加密标准(AES)和RSA等高级加密算法来保护机密性,加密机器人的操作代码、运动数据和用户凭证等敏感数据。

• 在设计或部署制造网络时,可以通过使用静态地址解析协议(ARP)缓存绑定设备的MAC和IP地址来防止嗅探,以保护完整性。可以使用高级的消息摘要算法,如消息摘要算法5(MD5)和SHA256,来防止数据包的修改。

• 可以通过禁用远程代码更新和执行来保护可用性,只允许通过示教器进行更新,这是大多数工业机器人上配备的一种类似平板的手持设备。

然而,在制造系统中实现这些缓解措施并不简单。由于机器人供应商缺乏安全意识以及工业机器人的计算资源有限,先进的加密和消息摘要算法并不可行。例如,ABB IRB120机器人只有大约40 GB的存储空间、1 GB的内存和小于1 GHz的CPU频率。此外,据我们所知,没有任何商品工业机器人支持静态ARP缓存配置。禁用远程代码更新和执行会降低制造系统的效率,这与工业物联网(IIoT)的趋势背道而驰。此外,在制造系统中修补漏洞需要停机,甚至可能引入漏洞[7,29],这使得及时部署攻击缓解解决方案具有挑战性。

7.2 攻击检测

CORMAND2揭示了建立异常检测系统(该系统假设SCADA接收到的运动数据是真实的)的风险,因为运动数据可以被攻击者通过工业网络访问和修改。这是检测CORMAND2数据欺骗的动机,这可以通过使用与工业网络隔离的侧信道信息交叉验证SCADA接收到的运动数据来实现,以使攻击者难以访问。这种侧信道信息应该是非侵入性的,以便于部署,并且对机器人的运动有很强的依赖性。研究发现,该机器人的功耗是一种很符合这些标准的有前途的侧信道信息来源。

进一步分析了机器人的运动数据与功耗之间的关系。结果发现,具有y个关节的机器人的功耗可以表示为:

P = i , j = 1 D i j · θ ˙ i · θ ˙ j + i = 1 H i · θ ˙ i · θ ¨ i + i , j , k = 1 D i j k · θ ˙ i · θ ˙ j · θ ˙ k + i = 1 D i · θ ˙ i

式中, θ i θ ˙ i θ ¨ i分别为关节i的角度、角速度和角加速度; D i D i j D i j k H i分别为重力系数、角加速度惯性系数、离心力和致动器惯性系数。

基于机器人的动力学模型[48],对机器人的运动数据与功耗之间的依赖性进行了实证评估。图21显示当两次执行相同典型装配操作和执行两种不同操作(如装配时遮挡摄像头)时的功耗。不同操作的功耗不同,但相同操作的功耗基本相同。

结果表明了利用功耗对机器人运动进行识别的可能性,可以通过建立机器学习模型并根据机器人6个关节的角度来估算机器人的功耗,实现进一步的验证[图21(a)]。通过将机器人运动的预期功耗与经验收集的数据进行比较,可以对SCADA接收到的机器人运动数据进行识别,并通过两者之间的任何不匹配识别潜在的CORMAND2攻击。

在SIRP中增加一个监测机器人实时功耗的原型检测器(图22)。该检测器可以部署在攻击者无法访问的设备上,如路由器、边缘设备、SCADA系统和未连接到制造网络的嵌入式设备。

使用这种数据驱动的方法来检测对工业机器人的攻击的关键挑战之一是可能出现误报。不过,这可以通过使用将数据分析与物理和机械建模相结合的信息物理方法来缓解,以提高估计的准确性。更具体地说,可以根据所建立的工业机器人的功耗模型来提取特征向量,以提高估计精度。由于检测器部署在安全设备上,因此功耗模型无法被攻击者操纵。根据报告的机器人运动和功耗数据选择参数。例如,研究发现通过主成分分析(PCA)来减少特征维数会增加估计误差。此外,考虑到估计误差与模型复杂度之间的平衡,选择15作为人工神经网络(ANN)机器学习模型的神经元数。

基于功率侧信道的检测器能有效检测CORMAND2,平均正检率为96.5%,延迟时间为0.1 s。它也足够灵敏,可以检测到5 mm·s-1的速度偏差和200 m·s-2的加速度,平均正检率超过93%。

除了利用功耗通过机器学习来交叉验证所报告的机器人运动数据外,该异常检测系统还可以通过两种方式进一步扩展。首先,可以通过交叉验证其他受CORMAND2影响的数据来检测异常,如操作代码和通信资源开销。异常检测系统可以使用电磁传感器来跟踪机器人的操作代码,检查是否有修改[34],或者使用网络嗅探传感器(如DNP3嗅探器)来记录和监控通信统计数据,以防出现异常[49]。与基于功率的异常检测系统一样,这些检测器也可能导致误报。其次,通过建立其他机器学习模型,可以提高异常检测系统的性能。例如,可以使用长短期记忆(LSTM)模型来估计机器人与时间相关的功耗,从而更精确地捕捉机器人运动与功耗之间的关系。请注意,不考虑使用EtherNet/IP收集传感器、执行器或控制数据,然后使用物理模型[50]、机器学习[51]或其他形式化方法[24]来检测CORMAND2的异常检测系统,因为数据也可能被CORMAND2修改,从而影响真实性。在CORMAND2的设计和检测中也不使用无线网络,因为制造车间中的大多数商品工业机器人为了稳定性都是通过有线方式连接的。

8 结论

随着工业机器人与IIoT之间的联系越来越紧密,它们也面临着越来越多的安全风险。本研究识别并分析了工业机器人的机密性、完整性和可用性中存在的安全漏洞。CORMAND2是一种新型的欺骗攻击方法,它通过伪造SCADA接收到的运动数据来操纵工业机器人,并掩盖对数据的修改来躲避检测。CORMAND2揭示了假定SCADA接收到的数据是真实的这一做法所带来的风险。通过本文建议和验证过的解决方案可以解决这些风险。

参考文献

[1]

Wang B, Tao F, Fang X, Liu C, Liu Y, Freiheit T. Smart manufacturing and intelligent manufacturing: a comparative review. Engineering 2021;7(6):738‒57. . 10.1016/j.eng.2020.07.017

[2]

International Federation of Robotics (IFR). IFR presents world robotics 2021 reports. Report. Los Angeles: IFR Press Room; 2021.

[3]

International Organization for Standardization (ISO). ISO 10218-2:2011: robots and robotic devices—safety requirements for industrial robots—part 2: robot systems and integration. Geneva: ISO; 2011.

[4]

International Organization for Standardization (ISO). ISO 12100:2010: safety of machinery—general principles for design—risk assessment and risk reduction. Geneva: ISO; 2010.

[5]

Makarova O, Lihota M. Simulation of computer attack scenarios for industrial robots from the point of intruder view. In: Proceedings of 2021 Ural Symposium on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT 2021); 2021 May 13‒14; Yekaterinburg, Russia. New York City: IEEE; 2021. p. 0474‒7. . 10.1109/usbereit51232.2021.9455052

[6]

Pogliani M, Quarta D, Polino M, Vittone M, Maggi F, Zanero S. Security of controlled manufacturing systems in the connected factory: the case of industrial robots. J Comput Virol 2019;15(3):161‒75. . 10.1007/s11416-019-00329-8

[7]

Wagstaff K. Robotic surgery involved in 144 deaths in 14 years [Internet]. New York City: NBC NEWs; 2015 Jul 22 [cited 2022 Dec 8]. Available from:

[8]

Agerholm H. Robot goes rogue and kills woman on Michigan car parts production line [Internet]. London: The Independent; 2017 Mar 15 [cited 2022 Dec 8]. Available from:

[9]

Coker J. Manufacturing sector paid out 62% of total ransomware payments in 2019 [Internet]. London: Infosecurity Magazine; 2020 Jul 7 [cited 2022 Dec 2]. Available from:

[10]

Whittaker Z. Honda global operations halted by ransomware attack [Internet]. San Francisco: Techcrunch; 2022 Jun9 [cited 2022 Dec 2].Available from:

[11]

Whittaker Z. Manufacturing giant Aebi Schmidt hit by ransomware [Internet]. San Francisco: Techcrunch; 2019 Apr 24 [cited 2022 Dec 2]. Available from:

[12]

Quarta D, Pogliani M, Polino M, Maggi F, Zanchettin AM, Zanero S. An experimental security analysis of an industrial robot controller. In: Proceedings of IEEE Symposium on Security and Privacy (SP); 2017 May 22‒26; San Jose, CA, USA; 2017. . 10.1109/sp.2017.20

[13]

Alemzadeh H, Chen D, Li X, Kesavadas T, Kalbarczyk ZT, Iyer RK. Targeted attacks on teleoperated surgical robots: dynamic model-based detection and mitigation. In: Proceedings of 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2016); 2016 Jun 28‍‒‍Jul 1; Toulouse, France. New York City: IEEE; 2016. p. 395‒406. . 10.1109/dsn.2016.43

[14]

Apa L. Exploiting industrial collaborative robots [Internet]. Washington, DC: IOActive, Inc; 2017 Aug 22 [cited 2022 Dec 2]. Available from:

[15]

Major companies in the global industrial robot market in 2019, by estimated market share [Internet]. New York City: Statista; 2019 Jan 5 [cited 2022 Dec 2]. Available from:

[16]

Ghaeini HR, Chan M, Bahmani R, Brasser F, Garcia L, Zhou J, et al. PAtt: physicsbased attestation of control systems. In: Proceedings of 22nd International Symposium on Research in Attacks, Intrusions and Defenses; 2019 Sep 23‒25; Beijing, China. Berlin: Springer; 2019. p. 165‒80. . 10.1145/3471621

[17]

Narayanan V, Bobba RB. Learning based anomaly detection for industrial arm applications. In: Proceedings of the 2018 Workshop on Cyber‍‒‍Physical Systems Security and Privacy; 2018 Oct 15‒19; Toronto, ON, Canada. New York City: Association for Computing Machinery; 2018. p. 13‒23. . 10.1145/3264888.3264894

[18]

Xie J, Yu J, Wu J, Shi Z, Chen J. Adaptive switching spatial‒temporal fusion detection for remote flying drones. IEEE Trans Veh Technol 2020;69(7):6964‒76. . 10.1109/tvt.2020.2993863

[19]

Maggi F, Quarta D, Pogliani M, Polino M, Zanchettin AM, Zanero S. Rogue robots: testing the limits of an industrial robot’s security. Report. Milano: Trend Micro; 2017.

[20]

Chan C, Chow K, Tang T. Security analysis of software updates for industrial robots. In: Proceedings of the 16th International Conference on Critical Information Infrastructures Security (CRITIS 2021); 2021 Sep 27‒29; Lausanne, Switzerland. Berlin: Springer; 2021. p. 229‒45. . 10.1007/978-3-030-93200-8

[21]

Chung K, Li X, Tang P, Zhu Z, Kalbarczyk ZT, Iyer RK, et al. Smart malware that uses leaked control data of robotic applications: the case of raven-ii surgical robots. In: Proceedings of 22nd International Symposium on Research in Attacks, Intrusions and Defenses; 2022 Oct 26‒28; Limassol, Cyprus. Berlin: Springer; 2019. p. 337‒51. . 10.1145/3302509.3311041

[22]

Dieber B, Breiling B, Taurer S, Kacianka S, Rass S, Schartner P. Security for the robot operating system. Robot Auton Syst 2017;98:192‒203. . 10.1016/j.robot.2017.09.017

[23]

Dieber B, Kacianka S, Rass S, Schartner P. Application-level security for ROSbased applications. In: Proceedings of 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2016); 2016 Oct 9‒14; Daejeon, Repulic of Korea. New York City: IEEE; 2016. p. 4477‒82. . 10.1109/iros.2016.7759659

[24]

Zhang M, Moyne J, Mao ZM, Chen C, Kao B, Qamsane Y, et al. Towards automated safety vetting of PLC code in real-world plants. In: Proceedings of 2019 IEEE Symposium on Security and Privacy (SP); 2019 May 20‒22; San Francisco, CA, USA. New York City: IEEE; 2019. p. 522‒38. . 10.1109/sp.2019.00034

[25]

East S, Butts J, Papa M, Shenoi S. A taxonomy of attacks on the DNP3 protocol. In: Proceedings of International Conference on Critical Infrastructure Protection (ICCIP 2019); 2019 Mar 11‒12; Arlington, VA, USA. Berlin: Springer; 2009. p. 67‒81. . 10.1007/978-3-642-04798-5_5

[26]

Hu Y, Yang A, Li H, Sun Y, Sun L. A survey of intrusion detection on industrial control systems. Int J Distrib Sens Netw 2018;14(8):1‒14. . 10.1177/1550147718794615

[27]

Hong J, Liu C, Govindarasu M. Detection of cyber intrusions using network-based multicast messages for substation automation. In: Innovative Smart Grid Technologies (ISGT 2014); 2014 Feb 19‒22; Washington, DC, USA. New York City: IEEE; 2014. p. 1‒5. . 10.1109/isgt.2014.6816375

[28]

Wang Y, Fan K, Lai Y, Liu Z, Zhou R, Yao X, et al. Intrusion detection of industrial control system based on Modbus TCP protocol. In: Proceedings of 2017 IEEE 13th International Symposium on Autonomous Decentralized Systems (ISADAS); 2017 Mar 22‒24; Bangkok, Thailand. New York City: IEEE; 2017. p. 156‒62. . 10.1109/isads.2017.29

[29]

Stouffer K, Pillitteri V, Lightman S, Abrams M, Hahn A. Guide to industrial control systems (ICS) security. New York City: National Institute of Standards and Technology (NIST) special publication; 2011.

[30]

Marsden T, Moustafa N, Sitnikova E, Creech G. Probability risk identification based intrusion detection system for SCADA systems. In: Proceedings of Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering (ICST 2018); 2018 Apr 9‍‒‍13; Vasteras, Sweden. Berlin: Springer; 2017. p. 353‒63. . 10.1007/978-3-319-90775-8_28

[31]

Fang C, Qi Y, Cheng P, Zheng W. Optimal periodic watermarking schedule for replay attack detection in cyber‍‒‍physical systems. Automatica 2020;112:108698. . 10.1016/j.automatica.2019.108698

[32]

Falliere N, Murchu LO, Chien E. W32. Stuxnet dossier. Mountain View: Symantec Corp., Security Response; 2011.

[33]

Garcia L, Brasser F, Cintuglu MH, Sadeghi A, Mohammed OA, Zonouz SA. Hey, my malware knows physics! attacking PLCs with physical model aware rootkit. In: Proceedings of the 4th Annual Network and Distributed System Security Symposium (NDSS 2017); 2017 Feb 26‒Mar 1; San Diego, CA, USA. Reston: The Internet Society; 2017. p. 1‒15. . 10.14722/ndss.2017.23313

[34]

Han Y, Etigowni S, Liu H, Zonouz S, Petropulu A. Watch me, but don’t touch me! contactless control flow monitoring via electromagnetic emanations. In: Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security; 2017 Oct 30‒Nov 3; Dallas, TX, USA. New York City: Association for Computing Machinery; 2017. p. 1095‒108. . 10.1145/3133956.3134081

[35]

Pu H, He L, Zhao C, Yau DKY, Cheng P, Chen J. Detecting replay attacks against industrial robots via power fingerprinting. In: Proceedings of the 18th Conference on Embedded Networked Sensor Systems; 2020 Nov 16‒19; online. New York City: Association for Computing Machinery (ACM); 2020. p. 285‒97. . 10.1145/3384419.3430775

[36]

Pu H, He L, Zhao C, Yau DKY, Cheng P, Chen J. Fingerprinting movements of industrial robots for replay attack detection. IEEE Trans Mob Comput 2021;21(10):3629‒43. . 10.1109/tmc.2021.3059796

[37]

Electricity Information Sharing and Analysis Center (E-ISAC). Analysis of the cyber attack on the Ukrainian power grid: defense use case. Washington, DC: E-ISAC; 2016 Mar. . 10.1109/icnsurv.2015.7121274

[38]

Kovacevic A, Nikolic D. Cyber attacks on critical infrastructure: review and challenges. In: Cruz-Cunha MM, Portela IM, editors. Handbook of research on digital crime, cyberspace security, and information assurance. Pennsylvania: IGI Global Publisher Of Timely Knowledge; 2015. . 10.4018/978-1-4666-6324-4.ch001

[39]

Kris O, Christian D. SoK: ATT&CK techniques and trends in windows malware. In: Proceedings of the 15th EAI Conference on Security and Privacy in Communication Systems; 2019 Oct 23‒25. Orlando, FL, USA. Berlin: Springer; 2019. p. 406‒25. . 10.1007/978-3-030-37228-6_20

[40]

Mayoral-Vilches V, Carbajo UA, Gil-Uriarte E. Industrial robot ransomware: Akerbeltz. In: Proceedings of 2020 4th IEEE International Conference on Robotic Computing (IRC 2020); 2020 Nov 9‒11; Taichung, China. New York City: IEEE; 2020. p. 432‒5. . 10.1109/irc.2020.00080

[41]

Bonaci T, Yan J, Herron J, Kohno T, Chizeck HJ. Experimental analysis of denialof-service attacks on teleoperated robotic systems. In: Proceedings of the ACM/IEEE 6th International Conference on Cyber‒Physical Systems; 2015 Apr 14‒16; Washington, DC, USA. New York City: Association for Computing Machinery (ACM); 2015. p. 11‒20. . 10.1145/2735960.2735980

[42]

Pu H. Demo: covering manipulation of industrial robots via data deception [Internet]. Genève: Zenodo; 2022 Aug 6 [cited 2022 Dec 8]. Available from:

[43]

Gander K. Worker killed by robot at Volkswagen car factory [Internet]. London: The Independent; 2015 Jul 2 [cited 2022 Dec 2]. Available from:

[44]

Workers killed by the industrial robot, how can the safety regulations be ignored? Beijing: Sohu; [cited 2022 Dec 2]. Available from: https://www.sohu.com/a/322037172_642302, 2019.

[45]

Sharma A. Universal robots continues to dominate cobot market but faces many challengers [Internet]. London: Interact Analysis; 2018 Nov [cited 2022 Dec 2]. Available from:

[46]

Kim CY, Song D, Yi J, Wu X. Decentralized searching of multiple unknown and transient radio sources with paired robots. Engineering 2015;1(1):58‒65. . 10.15302/j-eng-2015010

[47]

Cerrudo C, Apa L. Hacking robots before Skynet [Internet]. Washington, DC: IOActive, Inc; 2017 Mar 1 [cited 2022 Dec 2]. Available from:

[48]

Saeed BN. Introduction to robotics: analysis, control, applications. 2nd ed. Hoboken: Wiley; 2010.

[49]

Formby D, Srinivasan P, Leonard A, Rogers J, Beyah RA. Who’s in control of your control system? Device fingerprinting for cyber‒physical systems. In: Proceedings of 2016 Network and Distributed System Security Symposium; 2016 Feb 21‒24; San Diego, CA, USA. New York City: IEEE; 2016. p. 1‒15. . 10.14722/ndss.2016.23142

[50]

Quinonez R, Giraldo J, Salazar L, Bauman E, Cardenas A, Lin Z. SAVIOR: securing autonomous vehicles with robust physical invariants. In: Proceedings of the 29th USENIX: Security Symposium; 2020 Aug 12‒14; online. Berkeley: USENIX Association; 2020. p. 895‒912. . 10.1007/978-3-030-61725-7_30

[51]

Chen Y, Poskitt CM, Sun J. Learning from mutants: using code mutation to learn and monitor invariants of a cyber‒physical system. In: Proceedings of 39th IEEE Symposium on Security and Privacy (SP 2018); 2018 May 20‒24; San Francisco, CA, USA. New York City: IEEE; 2018. p. 648‒60. . 10.1109/sp.2018.00016

PDF (3059KB)

3336

访问

0

被引

详细

导航
相关文章

AI思维导图

/