关键词
工控安全、恶意代码、IoT Malware
2022年初,Mandiant与Schneider Electric合作,分析了一套被称为INCONTROLLER(又名PIPEDREAM)的面向工业控制系统(ICS)的新型攻击工具,该工具可以与嵌入在横跨多个产业的不同类型的机器中的特定工业设备进行交互。虽然目前使用此工具集的任何目标操作环境信息尚未得知,但恶意软件对应用该类受害设备的组织构成了重大风险。INCONTROLLER很可能是受国家资助的,并且包含物理层面的干扰、破坏和摧毁的能力。
INCONTROLLER代表了一种非常独特和危险的网络攻击能力,可以与2017年试图禁用工业安全系统TRITON、导致2016年乌克兰停电INDUSTROYER、2010年左右破坏伊朗核计划的STUXNET等相比拟。为了帮助资产所有者检测并防御 INCONTROLLER,Mandiant在报告中提供了一系列缓解和发现方法。由于未来这些工具可能会进行更新升级,Mandiant认为基于行为的捕获和检测方法将最有效。
工业自动化网络依赖于各种设备实现,这些设备使操作员能够将信息和指令转换为物理操作链。鉴于工业网络中存在的资产的多样性,工业自动化设备通常在网络的不同部分使用不同的语言,这可以使用标准化的工业通信协议来实现。
INCONTROLLER包含三个工具,使攻击者能够使用工业网络协议(例如OPC UA、Modbus、由EcoStruxure Machine Expert和SoMachine使用的Codesys、Omron FINS)向ICS设备发送指令。该工具的功能能够与来自不同原始设备制造商(OEM)的各种产品进行通信,同时为Schneider Electric和Omron的特定控制器开发了专门的模块。支持的目标设备包括从支持简单、重复的机器到分布式架构中的复杂模块化机器:OPC servers、Schneider Electric Modicon M251、Modicon M258、Modicon M221 Nano PLCs、Omron NX1P2、NJ501 PLCs、R88D-1SN10F-ECT servo drive。
Mandiant不认为攻击者是随机地针对这些设备的,更有可能是因为对特定目标环境的侦察而选择它们。这与以往的ICS恶意软件(例如TRITON)一致,例如TRITON也是针对一个关键的安全系统,几乎可以肯定在被攻击前该系统已被攻击者识别。
图1:INCONTROLLER工具概述
INCONTROLLER主要由以下三个组件组成:
表1:工具说明
工具 |
描述 |
TAGRUN |
扫描 OPC 服务器、枚举 OPC 结构/标记、暴力破解凭据以及读取/写入 OPC 标记值的工具。 |
CODECALL |
使用Modbus(最常见的工业协议之一)和Codesys进行通信的框架。CODECALL 包含可与至少三个Schneider Electric可编程逻辑控制器(PLC)进行交互、扫描和攻击的模块。 |
OMSHELL |
一个能够通过 HTTP、Telnet 和 Omron FINS 协议与某些类型的 Omron PLC 进行交互和扫描的框架。该工具还可以与 Omron 的伺服驱动器进行交互,后者使用反馈控制向电机输送能量,以实现精确的运动控制。 |
(1)TAGRUN
TAGRUN的功能,例如扫描和枚举OPC UA服务器的能力,表明了其主要充当侦察角色。OPC充当中央通信协议,用于从工业环境中的ICS资产收集和存储数据。访问这些数据可以为攻击者提供生产系统和控制过程的详细概述。该工具可能是为侦察而开发的,但它也可以写入和更改标签值,这些值可用于修改数据以支持攻击或掩盖过程更改。TAGRUN还会验证目标环境是否正在运行Windows操作系统,并根据此检查的返回值提供不同的ping命令。这表明执行组件可以使用非 Windows 设备来执行TAGRUN。
TAGRUN的能力包括:
-
扫描网络上的 OPC UA 服务器
-
读取 OPC UA 服务器的结构
-
读取/写入OPC UA 服务器上数据的标签值
-
暴力破解凭据
-
输出日志文件
(2)CODECALL
CODECALL使用Modbus协议与ICS设备进行通信,这可能使其能够与来自不同制造商的设备进行交互。但是,该工具包含一个特定模块,使用Codesys与Schneider Electric的Modicon M251(TM251MESE)PLC进行交互、扫描和攻击,该模块使用Schneider Electric公司专有的EcoStruxure Machine Expert协议。Mandiant推测,该工具还针对Schneider Electric的Modicon M221 Nano PLC和Modicon M258 PLC,它可能会影响使用这些协议的其他设备。
CODECALL的一般功能包括:
-
识别网络上的Schneider Electric设备和支持Modbus协议的设备
-
通过Modbus或Codesys连接到特定设备
-
通过Modbus读取/写入设备寄存器
-
通过 Modbus 会话请求设备 ID
-
定义、转储或加载命令宏文件
-
通过 Codeys 执行特定于设备的命令,包括:尝试使用用户名/密码登录并使用提供的字典文件暴力破解凭据、将文件下载/上传到PLC设备、检索文件/目录列表、删除文件、断开与 PLC 设备的会话连接、尝试 DDoS 攻击、使用特制的数据包使设备崩溃、如果设备网关 IP 存在于其他接口上则添加路由、发送自定义原始数据包
(3)OMSHELL
OMSHELL旨在获得对Omron PLC的Shell访问权限,包括Omron NX1P2、NJ501、R88D-1SN10F-ECT 伺服驱动器以及 NJ/NX 产品线中的其他类似设备。该工具主要使用HTTP协议运行,但它也利用Omron专有的FINS over UDP协议进行扫描和设备识别。该框架是模块化的,这意味着攻击者可以在工具中开发和部署其他功能。
OMSHELL的功能包括:
-
扫描和识别网络上的 Omron 设备
-
擦除设备的程序内存并重置设备
-
加载备份配置和备份设备数据或将备份数据还原到设备
-
激活设备上的远程登录守护程序
-
通过 telnet 守护程序连接到设备,上传并选择性地执行任意有效负载或命令
-
连接到设备上存在的后门并提供任意命令执行
-
执行网络流量捕获
-
终止设备上运行的任意进程
-
将文件传输到设备
-
连接并与伺服驱动器交互
Mandiant推测,基于指示器的检测方法在检测受害者环境中的INCONTROLLER恶意软件上并不会奏效,因为攻击者几乎肯定会在使用该工具攻击特定目标之前对其进行修改定制。相反的,防御者应该将精力集中在基于行为的捕获和检测方法上。
(4)潜藏的Windows工具集
Mandiant还在跟踪可能与此威胁活动相关的其他两个Windows工具。这些工具可能通过对基于 Windows 系统的 IT 或OT[di1] (运营技术) 环境的漏洞利用来支持 INCONTROLLER 的整个攻击生命周期。其中一个工具利用 AsrDrv103.sys驱动程序中的 CVE-2020-15368漏洞;另一个工具,被Mandiant跟踪并命名为ICECORE,是一个提供侦察以及命令和控制功能的后门程序。
Mandiant认为,从恶意软件的复杂性、构建它所需的专业知识和资源以及它在财务动机运营中的有限效用等方面考虑,INCONTROLLER很可能与国家资助的组织有关。在目前的分析阶段,还无法将INCONTROLLER与任何先前跟踪的组织联系起来,但可以注意到该活动与俄罗斯对ICS的历史兴趣是吻合的。虽然将INCONTROLLER与俄罗斯联系起来的证据在很大程度上是间接的,但因为俄罗斯有破坏性网络攻击的历史,同时可以联系目前对乌克兰的入侵以及对欧洲和北美的相关活动。
图2:影响ICS的俄罗斯-关系活动历史
至少自2014年起,Russia-nexus已经将ICS资产和数据作为目标并与多个定制的ICS恶意软件系列(PEACEPIPE,BlackEnergy2,INDUSTROYER,TRITON和VPNFILTER)有关联。
INCONTROLLER的功能与俄罗斯之前在网络物理攻击中使用的恶意软件一致。例如,2015年和2016年的乌克兰停电事件中,都涉及物理过程操纵以及对嵌入式设备的破坏性攻击。INCONTROLLER同样允许恶意软件作者操纵物理过程,同时还包含拒绝服务(DoS)功能以破坏PLC的可用性。
虽然潜在预期受害者的类型和范围仍然不确定,但INCONTROLLER对具有兼容设备的组织同样构成了重大风险。目标设备嵌入在各种类型的机械中,并且存在于许多不同的工业领域。鉴于与先前俄罗斯存在关系的威胁活动的一致性,Mandiant认为INCONTROLLER对乌克兰,北约成员国以及积极应对俄罗斯入侵乌克兰的其他国家构成的威胁最大。相关组织应立即采取措施,确定其环境中是否存在目标 ICS 设备,并开始应用特定于供应商的对策。
(1)TAGRUN
-
搜索并审查与 OPC UA 端点的不规则连接,并为 OPC UA 应用程序启用可靠的审核日志记录。将 OPC UA 日志和审核记录聚合到一个中心位置(如果适用)。
-
查看 OPC UA 审核记录,审查凭据暴力破解、恶意证书使用、不规则连接尝试、配置更改和 OPC 标记更改的证据。
-
搜索并审查 TAGRUN ping 命令执行情况。
-
审查网络流量以获取ping扫描活动的证据。
(2)CODECALL
-
为Schneider Electric PLC 设备启用可靠的日志记录,并在适用的情况下将日志聚合到中心位置。
-
查看Schneider Electric设备日志,审查以下活动的证据:凭据暴力破解、与异常设备崩溃/重新启动相关的错误代码、上传或下载的文件、文件删除、未经授权更改设备配置和执行命令、与设备和环境的文档规范之外的设备连接。
-
搜索并审查 ARP 扫描的证据,然后发现与环境基线不同的异常 Modbus/Codesys 流量。
-
搜索与环境基线相比的异常 Modbus 和 Codesys 流量。
(3)OMSHELL
-
搜索并审查在具有 OT 资源和连接(例如数据包捕获)的系统上创建/存在 OMSHELL 相关主机指标的证据。
-
为 Omron PLC 设备启用可靠的日志记录,并在适用的情况下将日志聚合到中心位置。
-
查看 Omron 设备日志,审查以下活动的证据:激活设备上的 Telnet 守护程序、未经授权的 Telnet 连接尝试包括使用默认凭据、擦除程序存储器和设备重置、未经授权更改设备配置和执行命令、与设备与设备和环境的文档规范之外的连接、上载或下载的文件。
-
识别并审查具有 OT 资源/设备访问权限和连接性的系统上的恶意 ping 扫视扫描活动、telnet 流量和 HTTP 流量。
-
在标准规范和环境基线之外搜索并审查Omron FINS流量的证据。
-
收集、识别和审查包含 Omron API 命令的 Omron 设备的恶意 HTTP POST 数据。
(1)OPC UA
Mandiant建议采取几个步骤来降低风险并抵御使用此协议的环境中的恶意活动:
-
对 IT 和OT 网络进行适当的分段,以防止攻击者从企业网络转向工业环境。
-
允许列出可接受的主/从设备、行为模式和命令,以帮助建立批准的基线,并借助网络监视检测异常。
-
实施具有深度数据包检测功能的工业防火墙,以实现控制访问。
-
实施 ICS 感知入侵保护系统,以监视来自潜在恶意来源的功能代码。
-
在可能的情况下,监视和阻止发往 OPC UA 端口的外部流量,以检测异常流量并防止外部网络流量定向到 OPC UA 相关端口。
-
为 OPC 服务器和客户端启用和聚合审核日志。
-
定期查看审核日志中是否存在不一致或不正常的连接、安全选项协商、配置更改和用户交互。
(2)Schneider Electric
为确保Schneider Electric产品安全无虞,Mandiant建议实施Schneider Electric网站上提供的网络安全最佳实践文档中所述的网络安全最佳实践。
此外,EcoStruxure 机器专家、Modicon 和 PacDrive 控制器的网络安全指南以及相关设备用户指南可以确保只有合法用户才能访问SchneiderElectric产品。
Mandiant建议应该特别重视那些有助于将访问权限限制为仅授权用户的功能和网络安全设备,例如入侵检测系统、网络防火墙、安全远程访问、设备身份验证、设备防火墙、禁用/过滤不安全通信或编程协议等。
(3)Omron
根据公共漏洞通知,Omron上先前已发现使用与OMSHELL攻击相同或类似FIN端口的其他漏洞。Omron针对未修补漏洞的指南指出,对已识别的FIN端口的外部防火墙过滤可以作为缓解措施。
表2:用于 ICS 映射的 TAGRUN MITRE ATT&CK
模块 |
策略 |
技术 |
TAGRUN |
执行 |
T0807:命令行界面 |
TAGRUN |
执行 |
T0853:脚本 |
TAGRUN |
横向移动 |
T0859:有效账户 |
TAGRUN |
发现 |
T0888:远程系统信息发现 |
TAGRUN |
发现 |
T0846:远程系统发现 |
TAGRUN |
坚持 |
T0859:有效账户 |
TAGRUN |
收集 |
T0801:监视进程状态 |
TAGRUN |
收集 |
T0861:点和标签识别 |
TAGRUN |
命令与控制 |
T0885:常用端口 |
TAGRUN |
命令与控制 |
T0869:标准应用层协议 |
TAGRUN |
冲击 |
T0832:视图操作 |
TAGRUN |
冲击 |
T0882:操作信息被盗 |
表3:用于 ICS 映射的 CODECALL MITRE ATT&CK
模块 |
策略 |
技术 |
CODECALL |
执行 |
T0807:命令行界面 |
CODECALL |
执行 |
T0853:脚本 |
CODECALL |
坚持 |
T0859:有效账户 |
CODECALL |
坚持 |
T0857:系统固件 |
CODECALL |
坚持 |
T0889:修改程序 |
CODECALL |
发现 |
T0846:远程系统发现 |
CODECALL |
发现 |
T0888:远程系统信息发现 |
CODECALL |
横向移动 |
T0812:默认凭据 |
CODECALL |
横向移动 |
T0843:程序下载 |
CODECALL |
横向移动 |
T0859:有效账户 |
CODECALL |
收集 |
T0801:监视进程状态 |
CODECALL |
收集 |
T0845:程序上传 |
CODECALL |
收集 |
T0801:监视进程状态 |
CODECALL |
命令与控制 |
T0885:常用端口 |
CODECALL |
命令与控制 |
T0869:标准应用层协议 |
CODECALL |
抑制响应功能 |
T0804:阻止报告消息 |
CODECALL |
抑制响应功能 |
T0803:阻止命令消息 |
CODECALL |
抑制响应功能 |
T0814:拒绝服务 |
CODECALL |
抑制响应功能 |
T0809:数据销毁 |
CODECALL |
抑制响应功能 |
T0816:设备重启/关机 |
CODECALL |
抑制响应功能 |
T0857:系统固件 |
CODECALL |
影响过程控制 |
T0836:修改参数 |
CODECALL |
影响过程控制 |
T0855:未经授权的命令消息 |
CODECALL |
冲击 |
T0813:拒绝控制 |
CODECALL |
冲击 |
T0815:拒绝查看 |
CODECALL |
冲击 |
T0826:可用性损失 |
CODECALL |
冲击 |
T0827:失控 |
CODECALL |
冲击 |
T0828:生产力和收入损失 |
CODECALL |
冲击 |
T0831:控制操纵 |
CODECALL |
冲击 |
T0882:操作信息被盗 |
表4:用于 ICS 映射的 OMSHELL MITRE ATT&CK
模块 |
策略 |
技术 |
OMSHELL |
初始访问 |
T0886:远程服务 |
OMSHELL |
执行 |
T0807:命令行界面 |
OMSHELL |
执行 |
T0853:脚本 |
OMSHELL |
执行 |
T0858:更改操作模式 |
OMSHELL |
执行 |
T0821:修改控制器任务 |
OMSHELL |
执行 |
T0834:本机接口 |
OMSHELL |
坚持 |
T0889:修改程序 |
OMSHELL |
坚持 |
T0859:有效账户 |
OMSHELL |
规避 |
T0858:更改操作模式 |
OMSHELL |
发现 |
T0842:网络嗅探 |
OMSHELL |
发现 |
T0846:远程系统发现 |
OMSHELL |
发现 |
T0888:远程系统信息发现 |
OMSHELL |
横向移动 |
T0812:默认凭据 |
OMSHELL |
横向移动 |
T0867:横向工具转移 |
OMSHELL |
横向移动 |
T0843:程序下载 |
OMSHELL |
横向移动 |
T0886:远程服务 |
OMSHELL |
横向移动 |
T0859:有效账户 |
OMSHELL |
收集 |
T0868:检测工作模式 |
OMSHELL |
收集 |
T0801:监视进程状态 |
OMSHELL |
收集 |
T0845:程序上传 |
OMSHELL |
命令与控制 |
T0885:常用端口 |
OMSHELL |
命令与控制 |
T0869:标准应用层协议 |
OMSHELL |
抑制响应功能 |
T0881:服务停止 |
OMSHELL |
影响过程控制 |
T0836:修改参数 |
OMSHELL |
影响过程控制 |
T0855:未经授权的命令消息 |
OMSHELL |
冲击 |
T0879:财产损失 |
OMSHELL |
冲击 |
T0837:失去安全 |
OMSHELL |
冲击 |
T0831:控制操纵 |
OMSHELL |
冲击 |
T0882:操作信息被盗 |
编辑|钱思秋
审校|何双泽、金矢
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。联系信息进入公众号后点击“关于我们”可见。
原文始发于微信公众号(国家网络威胁情报共享开放平台):INCONTROLLER:针对多元工控系统的新型国家级网络攻击工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论