实战:针对智能制造系统的网络攻击路径分析

微信扫一扫,分享到朋友圈

实战:针对智能制造系统的网络攻击路径分析

作者:天地和兴工业网络安全研究院

编者按:如今,越来越多的企业采用智能制造技术来提高制造效率。尽管使用智能制造技术带来了许多好处,如降低了成本提高了生产效率,但是威胁行为体可以利用这些目标寻求在智能制造设施中立足或横向移动的机会。尽管智能制造系统的公司网络和外界隔离,但是攻击者仍有可能使用其他更常规的方法来攻陷系统。近日,网络安全公司趋势科技联合米兰理工大学的研究人员发布了《针对智能制造系统的攻击:前瞻性安全分析》报告。

研究发现,对智能制造系统进行攻击时,高级攻击者可能会使用的三类网络攻击入口点是: 工程工作站、自定义工业物联网(IIoT)设备、制造执行系统(MES) ,以及五个可能成为攻击目标的组件为: 工业插件、自定义IIoT设备、人机界面、人工编码站、复杂的可编程制造机器。 攻击者进行网络攻击使用的主要技术有: 漏洞利用、恶意软件安装、DoS和DDoS、中间人攻击、侦察和信息盗取、设备攻击。

在智能制造系统中,传统攻击在网络或主机活动中被视为意外或列入黑名单的模式,可以通过当前的策略(如网络和端点保护解决方案)发现和阻止。

然而如果从不同的角度来看待高级攻击者能够完成的任务,同时将系统作为一个整体来考虑,这个系统不仅仅是由工厂车间的东西组成的。例如,如果攻击者能够以合法的网络流量或正常主机活动的形式混入,会发生什么情况?这样的攻击者会做什么来保持持久性?是否有一些独特的攻击机会,也许是在网络范围之外,而这些机会目前被忽视了?

一、 智能制造系统业务场景概述

下图展示了围绕智能制造系统的软件和数据生态系统中的许多依赖关系。在开发阶段,有由供应商提供的软件加载项和数字孪生模型,或在工程工作站上开发的软件加载项和数字孪生项(还可以选择上载到联机目录,通常由软件扩展提供)。此工作站还用于创建自定义自动化逻辑(用于机器人等机器)或自定义IIoT设备的固件。所有这些再加上其他组件,如人机界面、制造执行系统和可编程逻辑控制器,使自动化逻辑得以工作。高级业务决策被转换成在ERP系统(或其他一些数据库)中写入的数据,进而确定由MES调度的操作,然后定义由PLC执行的自动化例程。 此处可看到软件供应链在最终自动化操作中的间接影响。

下图展示了数据和软件依赖项中攻击机会的可视化。涉及通过恶意工业插件进行妥协的攻击和涉及自定义IIoT设备的“特洛伊木马化”的攻击滥用软件组件,现如今是可能的,而且已经在野外使用,因为复杂的供应链反过来包含了大量的弱点。涉及易受攻击的移动人机界面的攻击显示了如何利用移动人机界面中泄漏的信息来访问该人机界面控制的机器。涉及对MES的数据管理的攻击显示了在ERP系统或数据库级别上对数据的任何操作如何在以后对自动化产生影响。 涉及复杂制造机器中易受攻击或恶意自动化逻辑的攻击本质上更为复杂,因为它利用了自动化逻辑中的弱点。

专家们表示,在专用、隔离的网络中隔离智能制造系统是常见的做法。这些系统被视为黑匣子,从某种意义上说,人们认为没有人能够损害它们。另一方面,连接能力正在增强,厂商们正在推动在工厂层建立无线网络,将工业机器人等资产直接连接到无线网络上。

攻击者想造成故障、损坏产品、或改变工作流程,使其制造有缺陷的产品,可能有多种动机:攻击者可能受雇于竞争对手,也可能有财务动机(例如,攻击者可能要求付款,以换取不泄露他们窃取的机密信息),甚至可能只是想影响工厂的整体声誉。攻击者还可能对自动化逻辑感兴趣,这通常是一种保护良好的知识产权。

在过去的几年中,研究人员发现了许多针对软件开发工具或工具库(尤其是开源代码库)的供应链攻击,这些攻击可能以软件本身或该软件的某些第三方扩展为目标。 有趣的是,据报道,制造业42%的攻击并非直接针对设施,而是针对供应链中的某些系统

二、 网络攻击入口点

下图为智能制造系统的安全敏感区域,突出显示了物理网络外围。工厂层网络通过防火墙与其他网络(如internet、企业网络)分离,红色指示灯表示可以用作攻击入口点的端点。

2.1 工程工作站

工程工作站是与始终连接到生产层的域用户共享的系统。它用于开发和部署程序逻辑,或连接到现场设备(如可编程逻辑控制器、HMI)以进行维护、诊断或重新编程。有时,它被用来简单地部署在其他地方开发的程序,可能是在工厂外由系统集成商的工作人员开发的。

任何用于工程目的的工作站与系统的其余部分之间都存在信任关系。有时这种关系是已知的,是安全计划的一部分。另一些时候,考虑到一方是开发自动化逻辑的人,另一方是最终部署逻辑的智能制造系统之间有多少间接或隐含的信任关系,就更难看到了。这并不一定意味着开发人员是恶意的:他们的计算机可能只是被破坏了,甚至他们使用的一个库可能在源代码处被破坏了。一个很好的例子就是xcodegost恶意软件,它被用于最早的供应链攻击实例之一:该恶意软件的技术之一是修改Xcode编译器,使编译的iOS应用程序受到感染。

2.2 自定义IIoT设备开发环境

由系统集成商或内部员工编程的定制IIoT设备,例如嵌入式系统、类Arduino设备、树莓派(RaspberryPi)或其他单板计算机,越来越受欢迎,因其比传统的自动化硬件(如可编程逻辑控制器)具有更大的自动化灵活性。

这个生态系统中的多个软件库与最终部署软件的智能制造系统之间存在许多信任关系。开发人员很可能需要使用第三方库、基于第三方库的库或基于另一方库的第三方库。这个软件依赖链非常复杂。 开发人员无法轻松验证库的端到端完整性和真实性,这可能导致包含特洛伊木马组件。

2.3 制造执行系统数据库

MES数据库通常与自动化金字塔的上层共享。它的功能是包含工单和工作模板,它们显然是敏感数据。当在MES上创建工作模板时,新记录将保存到数据库中。 类似地,当工单启动时,生产操作的状态也会在数据库中更新。

在概念层面上,MES信任来自数据库的数据。这意味着,如果没有身份验证和数据库存储的完整性,网络或数据库上的攻击者可能伪造或更改记录,从而导致生产更改。变更可能发生在产品特征级别,并且是无损的。

三、 网络攻击目标

深入研究智能制造技术的特殊方面,可提供攻击机会的组件包括: 工业插件、自定义IIoT设备、人机界面、人工编码站、复杂的可编程制造机器。

3.1 工业插件

随着创新步伐的加快,工业软件的交付机制也在不断演变。具体来说,一些解决方案受到了应用商店模式的启发。例如,ABB有一个应用程序商店,任何人都可以在那里注册(注册是自动的,只需电子邮件验证)并上传ABB的RobotStudio插件,工程师们用它为ABB工业机器人编写自动化逻辑。商店里大约有1000个插件,其中一些已经被下载了数千次。 这些数字必须首先考虑到工业机器人目前是一个利基领域,开发者倾向于把所有东西都“放在家里”。 这一点有望改变,而ABB等应用商店是这一方向改变的第一个迹象。

智能工厂的解决方案类似于ABB的app store。然而,它并不是专门用于机器人技术,而是一般的工业应用。个人无法上传应用程序,只有注册的企业才可以。 应用程序是通过企业对企业(B2B)渠道购买的,并通过企业对消费者(B2C)渠道提供服务。

OrangeApps由Kuka开发,尽管不是由Kuka直接开发或管理。与ABB的app store不同,OrangeApps不接受用户提交的内容,是一个封闭的生态系统。有趣的是,它同时为桌面软件和工业机器人控制器提供应用程序。因此,从OrangeApps获得的应用程序包含直接在工业机器人控制器上运行的代码。然而, 网络传输使用的是纯HTTP,这为中间人(network man-in-middle,MitM)攻击提供了可能性。

Siwiat的解决方案有一个稍微不同的模型:供应商提供硬件(IIoT设备),它具有可以通过从应用商店下载应用程序来扩展的功能。这种软件交付模式与移动设备生态系统非常相似,用户只需购买一块硬件,并通过下载(可信)商店交付的应用程序来扩展其功能。事实上,来自app store的任何东西都被认为是可信的。

3.2 自定义IIoT设备

广泛和高度分散的“工业级”嵌入式设备(通常为Arduino兼容)产品用于快速成型和生产使用。如Arduino Industrial 101、Industrial Shields devices、Industrino、Iono Arduino和Siemens Simatic IoT2000。这些IIoT设备为最终用户带来了全面的软件定制功能。然而, 对定制和灵活性的需求日益增长,增加了智能制造系统等工业工厂的攻击面。

大多数领域专家都证实,他们在实际生产中使用了一些定制设备来运行定制固件。即使在工业4.0实验室环境中,也有一个(单独的)Raspberry Pi节点网络,使用传感器(如温度、压力、光照、噪音)监测工厂的物理条件。

接入地面网络的“额外”设备正变得越来越普遍,这本身就意味着一种风险。事实上,有这样的装置在监控下并被用来闯入关键设施的情况。2018年,一名黑客以一个未经授权连接的Raspberry Pi设备为目标,访问了美国宇航局喷气推进实验室(JPL)网络。此外,电子元件的小型化和制造实验室的可接近性增加,使得制造出与USB密钥的金属部分一样小的硬件植入物成为可能。

定制IIoT设备可以运行复杂的固件,并且通常包括几个外部库,具有进一步的依赖性。与供应商提供的硬件和软件解决方案相比,定制IIoT设备的软件供应链的管理更为复杂。主要风险在于,除了Arduino提供的官方库以外,没有任何完整性机制可以保证这些设备使用的库是真实没有被篡改过的。事实上,攻击者已经意识到,如果能够找到“源”,即通过破坏流行的库或通过“键入”将其代码包含在最终产品(而不是原始产品)中,他们可以同时危害大量计算机。

3.3 人机界面

针对人机界面的研究结果表明,HMI经常运行过时、易受攻击的软件。HMI技术和自定义部署为攻击类型创造了机会,而不是传统的HMI侧软件漏洞利用。

基于Web和云的解决方案,以及基于应用程序或插件的系统,已经导致传统的HMI变得更加互联。HMIs也从静态定义的“交互”概念发展到更灵活的概念,为最终用户设计或定制接口、快速上传并集成到现有系统中提供了手段。 这些特性使得人机界面组件变得复杂,进而导致更大的攻击面。

例如,即使在研究实验室的测试设置中,HMI也是混合的,并且使用嵌入式web浏览器,允许工厂操作员自定义UI(例如,通过提供自定义HTML或JavaScript资源),而无需系统集成器干预。为大客户设计制造工厂的领域专家证实,这是客户经常要求的。攻击者可以操纵一个简单的网页,不仅传递漏洞,而且在HMI端没有漏洞的情况下,还可以玩一些UI技巧来愚弄操作员并影响他们的决策(例如,模拟错误或紧急情况)。用户可能信任HMI屏幕并根据其输入采取行动,特别是在无法确保嵌入式网页的真实性的情况下。

由于其灵活性和易用性,平板电脑和智能手机等移动设备成为良好的人机界面。尽管HMIs是一个相对小众的市场,但是在Google Play Store上发现了170多个HMI应用程序,其中40多个应用程序安装了1000多次,在某些情况下甚至超过100000次。研究人员不仅预计对这些解决方案的需求在不断增长,而且移动HMI相对于经典HMI存在可用性和安全性优势。 除了用户已经习惯使用移动设备之外,他们也比运行HMI软件的工业计算机更灵活、更容易管理。 由于在现代移动操作系统上运行的应用程序是沙箱式的,因此它们更容易保持更新,并且本质上更安全,这是运行微软Windows(过时版本)的基于触摸的工业计算机所缺乏的一个重要功能。

然而,由于其灵活性,以及由于硬件是通用计算机, 移动HMI会受到其他类别的攻击。 在物理网络层,移动HMI通过无线协议(Wi-Fi或蓝牙)连接,这使得攻击者比有线连接更容易访问它们。主要风险在于,移动HMI的设计与传统HMI的假设相同,即它们位于封闭的有线网络中。例如,在Comau的PickApp(一种用于与工业机器人交互的人机界面)中,使用的网络协议不会强制数据的任何完整性或机密性,也不会对端点进行身份验证或执行任何认证,这意味着只要数据符合其应用协议,它们就会信任任何数据。

与其他应用程序一样,移动HMI应用程序可能会无意中附带敏感信息(如凭据及私钥)。这里的关键点是,这些信息将是公开的,因为首选的传递机制是通过应用商店。

3.4 人工编码站

在智能制造系统中,MES起着关键的作用,它是高层制造调度(如ERP)和实际生产货物的制造车间之间的网关。制造执行系统市场是“封闭”的,面向特殊解决方案。例如,研究人员只能找到两个开源解决方案,没有更多的商业和企业产品, 其中最受欢迎的包括通用电气的Predix制造执行系统、霍尼韦尔互联工厂、罗克韦尔自动化的FactoryTalk生产中心制造执行系统、SAP制造执行系统和Wonderware制造执行系统。

企业级MES非常昂贵,而且很难访问它们。从安全研究的角度来看,这显然是一个问题,因为访问真正的、成熟的系统进行安全测试非常重要。除了基于云的解决方案和一些我们通过远程桌面协议(可能是蜜罐或登台系统)发现的Wonderware的随机瞬态实例之外,要找到面向互联网的MES是不太可能的。

从安全的角度来看MES,可以合理地假设攻击者已经在网络中。关于横向运动,这并不意味着假设攻击者可以访问MES(否则,已经太晚了)。例如,研究人员认为攻击者只能访问MES的数据库,而不能访问整个MES端点。

3.5 复杂、可编程制造机器

复杂的可编程机器(如工业机器人)根据任务程序执行其制造任务,这些任务程序基本上是在机器上执行的脚本(例如,“向右移动”、“钳子打开”、“向下移动”、“捡拾件”)。每一个机器供应商都有自己的领域专用语言来编写任务程序,如ABB的Rapid、Comau的PDL2、Fanuc的Karel、川崎的AS、Kuka机器人语言(KRL)、三菱的Melfa Basic、安川的Inform。这些工业机器人编程语言(IRPLs)都是专有的,而且每种语言都有一套独特的功能。

IRPLs非常强大,因为它允许程序员编写自动化程序,也可以向网络或文件读写数据,访问进程内存,执行从网络动态下载的代码等等。这种强大功能的主要用例之一是需要与中间件软件集成,即让机器人与供应商中立的解决方案(如robot Operating System Industrial,ROS Industrial)对话,ROS Industrial是最流行的解决方案,许多顶级行业品牌都是ROS Industrial consortium的一部分。

如果使用不当,没有正确的安全意识,这些强大的功能可能非常危险。首先,如果在没有输入验证的情况下使用(这是我们发现的最常见的情况),这些功能可能会引入漏洞。其次,由于在执行过程中没有权限分离,执行简单机器移动的程序与从网络读取、在文件上写入或执行该文件的程序(即类似dropper的行为)或扫描网络以在制造机器,或改变机器人的运动和其他影响物理环境的特性。

攻击向量可以是常规安全扫描程序无法检测到的恶意任务程序(类似于PowerShell或JavaScript恶意软件变体通常无法检测到),也可以是具有滴管功能的特洛伊木马任务程序,该程序将下载恶意负载,并在意外情况下执行。

四、 网络攻击的主要技术

4.1 漏洞利用

智能工厂的系统包括无数连接到单一网络的设备和装置。这些设备中存在的任何一个漏洞都可能使系统受到任何形式的攻击。事实上,蠕虫Stuxnet就是一个例子,它利用某些0-day漏洞进行传播。Stuxnet之所以受到关注,是因为它瞄准了关键的基础设施。 使用漏洞的成功攻击活动凸显了良好的安全实践的重要性,如定期修补漏洞。

4.2 恶意软件安装

过去的攻击表明,恶意软件部署是威胁参与者最常用的方法。安装在工业网络上的恶意软件可能会危害工业控制系统(ICS),比如BlackEnergy和Killdisk。特洛伊木马Triton之所以引人注目,是因为它专门用于操纵工业安全系统,还关闭了一家工业工厂的运营。最近,有人发现威胁者使用加密货币采矿恶意软件攻击欧洲的一个供水设施。

威胁行为体使用不同类型的恶意软件进行攻击,例如rootkit、勒索软件和特洛伊木马。威胁者还考虑如何有效地部署恶意软件,这意味着一种能够造成最大伤害或在不被察觉的情况下穿透目标防御系统的传送方法。他们可以利用诸如社会工程、鱼叉钓鱼攻击、水坑攻击等技术。 这就是为什么制造商不仅应该为智能工厂运营商,也应该为所有员工树立网络安全意识。

4.3 DoS和DDoS

DoS是一种网络攻击,其目标是禁用或关闭网络、设备或资源。DDoS是一种分布式DoS,它使用大量受损设备(bot)攻击目标系统的连接或处理器。例如,物联网僵尸网络Mirai关闭了几个知名网站和在线服务。虽然它对工业部门的影响并不为人知,但仍然显示了DDoS攻击的潜在有效性和后果。随着其源代码的发布和DDoS-as-a-service提供商的出现,未来针对智能工厂和其他IIoT基础设施的DDoS攻击增加并不是难以置信的。同样,受损的ICSs最终可能被僵尸网络用来攻击其他组织。

4.4 中间人攻击

中间人攻击MitM涉及威胁行体进入公司正在使用的通信信道。智能制造系统需要多个通信通道来促进其过程,例如,控制系统和设备之间的通信。除了将信息转发给恶意的第三方之外,此攻击还可能使攻击者输入自己的代码或数据。例如,不安全的通信协议可能使攻击者能够在传输过程中修改固件升级。中间人攻击强调,除了设备和网络安全之外,确保通信通道的安全对整个系统的安全性也至关重要。

4.5 侦察和信息盗取

攻击者还可以通过窃取信息或监视暴露的系统,在其活动中采取更微妙的方法。例如,暴露的人机界面(HMI)可能暴露客户数据库,攻击者可能窃取个人识别信息(PII)。这一威胁以及连锁效应可能对关键部门和其他行业的暴露的集成电路造成影响。在网络上获得未经授权的访问,威胁行为体还可以从通常由其传感器收集的工厂自动功能所必需的测量和数据中窃取设备行为的信息。这种对网络的攻击表明了APT入侵检测和预防系统的重要性。

4.6 设备攻击

工厂楼层内外连接设备的数量并不会削弱每一个设备对整体安全性的重要性。攻击者可以使用单个被黑客攻击的设备传播恶意软件或访问整个工业网络。如果攻击者获得了物理访问,他们甚至可以篡改实际设备。然后,它们可能会使被篡改的设备将错误的信息发送到网络的其他部分,或者只是故障并影响生产线的其他部分。

参考资源:

1.TrendMicro,Attacks on Smart Manufacturing Systems,A Forward-looking Security Analysis

2.https://iiot-world.com/cybersecurity/security-threats-and-risks-in-smart-factories/

声明:本文来自关键基础设施安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。

Python除了做爬虫抓数据还能做什么?其实还能监视和衡量网站性能

上一篇

基于 Go + MySQL + ES 实现一个 Tag API 服务

下一篇

你也可能喜欢

实战:针对智能制造系统的网络攻击路径分析

长按储存图像,分享给朋友