[翻译]TRITON——首个面向工控安全仪表系统SIS的病毒 – 作者:wangkai0351

TRITON——首个面向工控安全仪表系统的病毒

理解病毒的通信原理及其OT载荷

(发表于2018年美国BlackHat大会的研究论文)

译者:[email protected],一位资浅但独立的工业互联网安全研究员。

0. 术语

IT:信息技术(Information Technology),是主要用于管理和处理信息所采用的各种技术总称。

OT:操作技术(Operation Technology ),是工厂内的自动化控制系统操作专员为自动化控制系统提供支持,确保生产正常进行的专业技术。

ICS:工业控制系统(industrial control system,简称工控系统),是指由计算机与工业过程控制部件组成的自动控制系统。SIS:安全仪表系统(Safety Instrumented Systems),又称为安全联锁系统(Safety interlocking System)。 主要为工厂控制系统中报警和联锁部分,对控制系统中检测的结果实施报警动作或调节或停机控制,是工厂企业自动控制中的重要组成部分。

PLC:可编程逻辑控制器 (Programmable Logic Controller),是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

1. 摘要

2017年12月报道,中东一处石油和天然气石化设施因病毒攻击而导致安全仪表系统被迫关闭。这种名为TRITON(也被称为trisis或Hatman)的病毒,通过与SIS系统的直接通信交互,超越了其他工业网络攻击。SIS系统是工业设施自动化安全防护的最后一道防线,该系统旨在防止设备故障和爆炸或火灾等灾难性事件。

基于这次针对工控网络攻击的可怕后果,我们认为有必要对其进行深入的分析。我们决定了解TRITON病毒本身机理,以及编写它所需的资源,我们还探索了有助于工厂经营者在未来保护其控制系统免受此类攻击的有效措施。

我们面临的挑战是搞清病毒如何攻击目标施耐德电力公司(Schneider Electric)的Triconex控制器?为此,我们首先侧重于获取TRITON病毒开发中依赖的对象。我们把网络调查和向合适的人询问结合起来,以获取我们所需要的信息。

我们下一个障碍是如何获得Triconex牌SIS控制器。利用各种全球电子商务网站,我们购买了所需的组件,并将它们组装成一个工控系统。我们找不到一个关键的部件-编程电缆,但是我们用蛮力直接连接两个面板克服了这个问题。

既然我们有了一个用于验证病毒的工控系统,下面我们就开始逆向分析工程师站上使用的与SIS控制器通信的TriStation软件套件。逆向的结果,结合病毒分析,使我们能够深入剖析Trionex牌SIS控制器使用的TriStation专有通信协议。

我们研究过程中,还开发了两个新的工具来帮助保护Triconex牌的SIS控制器。第一个工具是Wireshark的TriStation协议解析器插件,允许工程师直观地观察和掌握TriStation协议的通信。它还可以识别连接到SIS的硬件设备信息,并被动地检测网络中的TRITON病毒的活动行为。

第二个工具是Triconex蜜罐工具,可以被防守者用来模拟挂在网络的Triconex牌SIS控制器,像蜜罐一样来检测、侦察、扫描和捕获恶意攻击载荷。

虽然TRITON病毒攻击时未能提供恶意的OT载荷,但我们成功地使用它的功能在Triconex牌SIS控制器中实现注入并执行了包含新程序的OT载荷。

我们的研究表明,创建TRITON病毒所需的时间、技能和资源需求并不多,当然更不需要国家层面的资助。考虑到这一点,工业资产所有者应该立即采取行动,监控他们的SIS系统状态,确保它们免受外部攻击。我们还敦促SIS设备制造商为这些至关重要的系统提供更强大的内置安全措施保障。

2. 简介

2.1 SIS 安全仪表系统

安全仪表系统(Safety Instrumented Systems,SIS),又被称为工业安全系统,被用来预防工业中出现的事故,比如设备或操作故障,造成损坏、伤害、生命损失或严重的环境损害。极端后果的例子将是爆炸、火灾、石油泄漏、洪水甚至核系统崩溃。

SIS系统使用的设备是一种特殊类型的可编程逻辑控制器(PLC),在设计时充分考虑到了可预见性和可靠性。它们包括多个主处理器、内置诊断/冗余管理系统以及输入和输出的故障检测。保护SIS系统的最佳实践包括在孤立的网络上运行它们,并严格限制访问权限。

如果出现超出安全域范围的操作时,SIS系统会执行控制功能,以安全、可预测的方式关闭生产流程。此外,虽然SIS系统设计初衷是为了永不失效,但SIS失效的事情时有发生,它将以一种可预测的概率发生。因此,最坏的情况是已知出现失效,并提前做出应对的计划。

SIS系统是工业设施的最后一道自动防御系统,但应注意机械故障的情况也是可能出现的。

2.2 TRITON病毒及其重要性

2017年12月,Fireeye报道了近日在与一家工业企业合作时发现的一款工控系统病毒,并把它命名为“TRITON”(其他组织命名为TRISIS或HatMan)。

这次病毒对该工厂的SIS控制器进行重新编程,引导它们进入危险状态,并导致工业过程的自动关停。经过工厂关停后的调查,研究人员发现了黑客的企图。

病毒攻击的目标设施后来被确定为沙特阿拉伯石化加工厂,而受到攻击的SIS系统是施耐德电气公司的Triconex牌安全仪表系统。这类SIS系统是在许多行业广泛使用的设备。

TRITON是为数不多的能够影响工业控制系统物理过程的病毒之一。过去出现过的类似病毒还有震网病毒Stuxnet(打击伊朗核设施,2010)和BlackEnergy(打击乌克兰电网,2015和2016)。

基于此次针对工业网络的攻击的重大意义,Nozomi网络安全研究小组决定对其进行深入的分析。我们决定要理解TRITON和搭建它所需的资源环境。我们还寻找到有助于企业经营者在未来保护其控制系统免受此类攻击的解决方案。

TRITON病毒组件和dropper原理.png

2.3 TRITON病毒的关键组件

攻击起始于信息技术(IT)网络的渗透,使用了文献[9]中容易察觉的攻击方法。攻击者通过两种环境都可以访问的系统进入操作技术(OT)网络。

dropper文件的主要目的是将恶意负载传递到目标,在本例中是Trionex牌SIS控制器。执行后不久,dropper连接到目标Triconex,向其内存中注入真正的病毒负载。病毒载荷包含在两个独立的二进制文件中,分别称为inject.bin和imain.bin。dropper所采取的操作之一是读取、注入和执行这些文件到Triconex牌SIS控制器的内存中。inject.bin:包含利用特定0day漏洞来执行文件“imain.bin”内容的代码。imain.bin:包含允许用户远程完全控制SIS设备的最终代码。下表列出了恶意文件的MD5码和主要作用。

文件名 MD5 作用
trilog.exe 6c39c3f4a08d3d78f2eb973a94bd7718 dropper
Inject.bin 0544d425c7555dc4e9d76b571f31f500 后门注入器
Imain.bin 437f135ba179959a580412e564d3107 后门代码

trilogy.exe这个dropper是由python语言开发的,并编译成了trilog.exe可执行文件。它包含了攻击者由逆向工程得到的用于和控制器通信的TriStation协议的详情。获得TRITON病毒样本后,研究人员执行的第一个操作是对可执行文件进行反编译,提取python代码,并将其作为进一步分析的起点。

3. 逆向分析TRIRON

3.1 病毒入侵途径

如果要采用常规技术进入被攻击者的OT环境,TRITON病毒背后的攻击者必须经过一个陡峭的学习曲线。他们必须了解Triconex牌SIS控制器本身的特点和TriStation协议的细节,这是它使用的专用的私有的网络通信协议。获得与其相关的Triconex硬件和软件对于重新创建搭建实验环境和编写恶意代码至关重要。通过一个实际正常工作的SIS系统,攻击者能够拦截并分析在有线传输的通信报文;他们还能够逆向分析实现TriStation协议的软件,也就是TriStation软件的组件。这两种方法都需要对专用私有协议进行剖析,从协议中提取信息并在TRITON病毒中重新编码实现。

3.2 TRITON病毒的信息搜集过程

我们可以通过多个渠道采购必要的控制系统组件,如下所示:

  • Triconex牌SIS控制器供应商网站-施耐德电气网站包含有用的信息
  • 咨询资深专家-有时向合适的人请教,是有效的途径
  • 资产所有者-操作人员和保安人员是我们的朋友,也是最好的信息来源!
  • 互联网上可以搜索到许多可免费获取的信息,例如:
    • 在电子商务网站上销售的软件安装的CD
    • 繁杂的可执行文件
    • 开放的目录、ftp服务器等

总而言之,结合互联网搜索和向正确的人询问打听,我们总是可以获得大量所需的信息。

3.3 获得Triconex牌SIS控制器

我们理所应当拿到一个Triconex牌SIS控制器,因为TRITON病毒的最终攻击目标就是Triconex牌SIS控制器,为此我们不得不花一些钱。预算需要5000-10000美元,现实就是这样——大多数工控设备都是昂贵的。

我们考虑的另一件事是为了拆卸目的控制器的获得多个副本-如果我们算损坏了控制器,那么它就不再有用了。

以下是我们可能获取Triconex牌SIS控制器的一些来源:

  • 从供应商处获取——直接从施耐德电气公司购买新设备是可能的,但这并不是最便宜的方式。
  • 从ebay或阿里巴巴等在线电子商务网站获取——我们在这些网站上发现了使用过的二手设备。在某些情况下,有全新的设备出售,保证质量。

我们需要记住,系统必须相互兼容才能协同工作,我们需要的系统与TRITON攻击目标相同的系统。易受TRITON病毒攻击的具体的Triconex牌SIS控制器是:

Trionex mp3008CPU模块,运行的固件版本10.0-10.4。

请注意,Triconex牌的这些设备使用mpc 860 PowerPC处理器。较新的设备使用不同的处理器(ARM),因此不容易受到我们研究的TRITON病毒的攻击。

我们研究时所用的设备如下所述。

  • 1.02 3008/N Tricon v10.3增强主处理模块– 固件元编号: ETSX6236
  • 1.05 4329/N/G NCM(网络通信模块)
  • 1.09 3503/E/EN数字量输入模块,24V,32个点
  • 1.10 连接器2652 -310 DO
  • 1.12 3604/E/EN 数字量输出模块,24V,16个点
  • *背板总线2652-1

我们还尝试分析了3008/N Tricon v9.10主处理器模块。

所需的一项是编程电缆,用于将终端面板连接到连接器模块。这允许通过数字输出模块与现场设备通信。

*我们希望这个通信网络能够正常工作,这样我们就可以测试TRITON病毒的变体,它将成功地传递破坏安全过程的命令,如第5节所述。

事实证明,这是我们在购买设备上最大的挑战是似乎很难买到这个编程电缆!

无法买到的编程电缆

由于我们无法找到这个编程电缆,唯一的解决方案是手动使用蛮力,将终端面板直接连接到连接器模块,从而跳过这根连接线。幸运的是,它竟然成功了!

3.4 TriStation软件逆向工程

安装在工程师站计算机上的特定的组态/编程软件是攻击者的宝藏,因为它包含了与控制器交互所需的所有信息,包括如何识别控制器不同的状态和所有模块的信息。TriStation 1131 v4.9.0(Build 117)能够连接到病毒所攻击的目标硬件,我们已经对该版本进行了全面分析。Schneider开发团队善意地包含了有关其文件的有用信息-不幸的是,攻击者也可以使用这些信息来更好地理解软件体系结构及其一般结构。

TriStation软件组件详细描述

从软件包中包含了对每个文件的详细描述,很容易地查找所需的功能隐藏在哪个软件组件当中。

3.5 突破用户访问权限

TriStation软件还在扩展名为.pt 2的密码保护文件中存储了包含Triconex控制器内逻辑程序、配置详情和行为定义等关键信息的项目文件。假设只有授权的工程师才能访问包含在SIS控制器中执行的专有代码的项目文件。然而,TriStation软件v4.9.0(和以前的版本)也包含两个超级用户,无论其密码的健壮性如何,都可以打开任何项目文件。这两个超级用户可能是产品支持团队用来帮助客户解决技术问题而预埋的。在具有操作价值的同时,这些用户也可以被攻击者者滥用来访问受密码保护的项目文档,从而绕过了身份验证。

这两个未授权的超级用户名是:

T**FD

T**BD

对于T**FD用户,登录时需要一个密码,该密码可以通过逆向工程和附加认证的形式进行附加身份验证。这证实了用户的角色是产品支持团队用于客户支持的。

未授权的t*fd用户需要额外ticket号码才能登录

然而,用户T**BD用户可以通过插入从triStation软件提取的硬编码凭证来访问项目文件。

未授权的t*bd用户使用一个静态密码访问受密码保护的项目文件

一旦用户t*bd登录,就启用了其他用户无法使用的隐藏功能菜单。

t*bd用户的隐藏菜单

从攻击者的预期来看,这个预埋的漏洞可能很有用。隐藏菜单提供了对普通用户来说无法使用的大量额外功能的使用权限。

此外,当日志记录为t*bd用户登陆时,TriStation软件还会公开关于系统逻辑的链接/编译阶段的内部信息。这些额外的数据对于攻击者具有很高的价值,因为它详细描述了程序编译过程中所涉及的所有命令。

普通用户(左)和超级用户t*bd(右)可用信息之间的差异

这个未授权的超级用户可以使用的信息级别使攻击者创建恶意OT载荷变得非常容易。然而,我们的研究发现TRITON病毒和这个隐藏功能菜单之间没有联系,并且病毒没有利用这些“非法”超级用户。需要注意的是,根据施耐德电气公司的说法,这些无证用户只存在于TriStation 1131 v4.9.0和早期版本。

3.6 逆向TriStation协议

根据文件描述,委托管理网络通信的代码位于 “tr1com.dll”文件中。通过分析这个dll文件,我们提取了大量关于TriStation协议语法定义的信息,这些信息完整地记录了协议的行为。

逆向tr1com.dll组件

3.7 解析Triconex中设备硬件信息的定义

Triconex牌SIS控制器使用了低密度和高密度机架来支持插入几个不同的模块,这些模块在一个名为“tr1hwdef.hwd”的专有文件中进行了描述。病毒不包含任何与硬件定义相关的信息,可能是因为攻击者没有投入时间来逆向分析这一部分。但是,这个定义文件包含用于网络流量分析的有用信息,该信息标识哪些模块附加到远程Triconex牌控制器硬件。我们在逆向工程上投入了时间,成功地分析了硬件信息。详见附录A-Triconex牌控制器列表。

TriStation支持的控制器型号列表

我们还在Wireshark解析器中添加了针对这一硬件信息字段的解析功能(参见4.1节),从而解析出了实际已搭建的Triconex牌控制器的硬件模块信息。

3.8 TriStation协议栈的实现

TriStation不仅是工程师站计算机上使用的一个软件套件,它还代表一个在UDP 1502端口上运行的协议栈,命名为TriStation协议。

在这些文件中可以找到与TriStation协议实现相关的恶意软件文件:

文件名 MD5 编译时间
TsBase.pyc 288166952f934146be172f6353e9a1f5 2017-08-03 16:52:33
TsHi.pyc 27c69aa39024d21ea109cc9c9d944a04 2017-08-04 08:04:01
TsLow.pyc f6b3a73c8c87506acda430671360ce15 2017-08-03 16:46:51
TS_cnames.pyc e98f4f3505f05bf90e17554fbc97bba9 2017-08-03 12:26:36

病毒pyc文件中罗列的功能码

TriStation协议的所有语法定义都包含在python编译后的文件“ts_cnames.pyc”中,并且可以很容易地解压缩和解压缩,如下图所示。文件中包含的代码很好地解释了TRITON协议实现的函数代码,显示了攻击者逆向工程分析的深度。

4 防御TRITON病毒的新工具

4.1 TriStation协议的wireshark解析器

在我们的分析TriStation协议的过程中,使用Lua脚本开发了一个扩展的Wireshark解析器,称为Wireshark的TriStation协议插件。

它为使用TriStation 协议的工程师提供了以下的功能:

*指示每条报文的源地址和目的地址

*将报文中的功能码翻译成描述性文本

*从报文中提取传输的SIS中逻辑程序

*识别在线连接的硬件

*检测网络通信中TRITON病毒

*等等

我们编写的Wireshark解析器允许工控系统工程师在网络数据包传输期间看到有用的报文字段信息。这包括数据包的源地址、目的地址和功能码。它还可以轻松地实时解析数据包,提取下载到Triconex设备上的plc程序/函数,并在Wireshark Gui中显示。

lua脚本编写的TriStation协议的wireshark解析器

此外,在实验室中使用解析器进行的恶意软件分析过程中,获得的特定指标自动检测Triton恶意软件。开发此特性只是为了证明在网络上被动地识别ICS恶意软件是可行的。

我们强烈建议各组织不要依赖Wireshark进行入侵检测。如果攻击者在恶意软件中只更改报文的一个字节,它将不会被检测到。相反,应该使用专门的为工控系统恶意软件入侵而设计的应用程序,这些应用程序使用多种技术来识别操作系统层和网络层的违规行为。

4.2 Triconex蜜罐工具

使用我们开发的蜜罐工具脚本模拟了真实的Triconex牌控制器的各类行为,包括:

  • 控制器版本信息
  • 控制器工作状态
  • 控制器存储信息
  • 机架类型
  • 连接器模块信息
  • LED状态指示灯
  • LED指示灯类型/颜色
  • 硬件按钮位置(RUN/STOP/PROGRAM)
  • 工程名称
  • 硬件组态是否匹配(工程和实际情况)

尽管该脚本目前只是概念性的证明,但它可以扩展到支持大量的功能。它的真实性可以提升到与实际控制器无法区分的程度。此外,该脚本还可以通过普通、廉价的计算机执行,只要它能连接到网络。

防御团队可以使用Triconex蜜罐工具来模拟带有特定系统配置的SIS控制器,并像蜜罐一样使用它们来检测、侦察、扫描和捕获恶意的载荷。因此,它可以在检测针对SIS网络的未知攻击方面发挥巨大的作用。

5. 演示TRITON病毒的恶意载荷

5.1 TRITON病毒恶意载荷的隐匿

TRITON病毒使攻击者能够直接在控制器内存中读取、注入和执行逻辑代码。该SIS控制器在体系结构方面的主要特点是模块化,为攻击者提供了在内存中动态发送特定负载并执行它的方法。

但是这种方法也有助于安全分析人员进行分析和取证,因为病毒本身暴露了与OT设备进行低级别通信交互的基本功能。

在TRITON病毒案例中,攻击的最后阶段没有完成。在目标的Triconex牌设备被植入恶意软件后不久,其中一个主要处理器触发了冗余警报。这迫使所有三个主处理器启动了安全关闭过程。目前尚不清楚该问题是由注入内存中的病毒触发的,还是由执行OT负载时产生的意外错误触发的。

Triconex牌设备的目标版本是运行基于PowerPC体系结构的CPU模块。在程序更新期间,代码直接以机器代码发送并注入。病毒作者遵循这一技术,发展了直接在内存中编写和执行逻辑代码的能力。

更有可能的假设之一是,攻击者注入了包含无效内存访问的特定负载,从而导致SIS设备崩溃。

5.2 演示TRITON中恶意载荷

我们基于Triconex牌SIS控制装备搭建了一个正常工作的工控系统,也将一些现场设备连接到控制器上。我们附加了一个压缩器和一个气球,类似于最初用于演示Stuxnet病毒时搭建的场景。

搭建TRITON病毒实际验证环境

控制器运行的程序驱动着压缩机以特定、同步和持续的方式执行充气和放气过程。然后,我们使用TRITON病毒的功能注入一个恶意的命令,该命令修改了安全监督的行为,导致气球过度膨胀,并最终产生爆炸。

这实现了我们研究的最终目标,展示了我们如何能够利用我们通过逆向TRITON病毒获得的知识来攻击Triconex牌控制器的安全防护功能。

6. TRITON病毒对工控安全防护的启示

在过去的二十年中,攻击者发起工控网络攻击的门槛变得越来越低。越来越多的工具和实例可以被随时可用,这大大降低了攻击者所需知识和技能的门槛。比如,在2010年震网病毒爆发以前,在互联网上没有可用的针对工控系统的病毒开发框架。而现在,出现了许多像TRITON一样的病毒框架。其他变化还包括:

  • 全球电子商务平台,可以方便地购买重新创建SIS工控系统所需的资料和设备
  • 公开的工控系统漏洞数量迅速增加
  • 诸如Shodan一类的网络空间搜索引擎使工控设备的搜寻任务变得更容易了
  • 工控设备因为联网运行使得其攻击面剧增

当我们的研究开始时,我们想要了解TRITON病毒本身以及创建TRITON病毒所需的资源。这篇论文表明,创建TRITON病毒框架所需的精力、技能和资源,虽然并非微不足道,但也并不高-当然更不需要国家层面的资源。虽然实施网络攻击的难度因每个设施的网络安全防御、网络体系结构和设备而异,但病毒本身的开发并不需要非常高要求的资源。考虑到这一点,工业资产所有者应该立即采取行动,监控他们的SIS系统状态,确保他们免受外部攻击。我们还敦促SIS设备制造商为这些至关重要的系统提供更强大的内置安全措施。

附录A Triconex公司的控制装备产品列表

该表罗列了Triconex公司所有产品的具体型号,也就是TriStation组态/编程软件支持操作的所有设备。此表用处不大,就不抄过来了。

关于作者

Alessandro Di Pinto(@adipinto)是Nozomi Networks的安全研究员。他之前曾在Emaze Networks担任Penetration Tester和Reverse Engineer,然后继续对赛门铁克的高级恶意软件分析感兴趣,担任高级威胁分析工程师。在他的职业生涯中,他获得了攻击性安全认证专家(OSCP)和GIAC恶意软件逆向工程(GREM)认证。

Younes Dragoni(@ br4zzor)是Nozomi Networks的安全研究员,拥有计算机系统和网络安全的理学学士学位。 Younes是一位热情的白帽黑客,也是世界经济论坛全球塑造者社区的成员。

Andrea Carcano(@andreacarcano)于2013年共同创立了Nozomi Networks,并担任首席产品官(CPO)。他是工业网络安全、人工智能和机器学习方面的专家和国际领导者。他获得了博士学位。 2012年,他在计算机科学领域与该计划合作,与能源行业的国际研究团队合作。从2011年到2013年,他是Eni Spa的高级安全工程师,负责关键基础设施和业务网络之间的安全互联。

关于Nozomi Networks

Nozomi Networks是工业网络安全的领军者,它提供了实时可见的最佳解决方案,以管理网络风险并提高工业运营的弹性。通过一种解决方案,客户获得了先进的网络安全,提高了操作的可靠性,方便了IT/OT的集成。创新人工智能的应用,该公司帮助世界上最大的工业关键设施掌管它们的工业控制网络。如今,Nozomi Networks在关键基础设施、能源、制造业、采矿、运输和公用事业等领域支持超过25万台设备,从而有可能应对网络运营面临的不断升级的OT网络风险。

来源:freebuf.com 2018-11-23 21:18:37 by: wangkai0351

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论