新型工控系统恶意软件TRITON:修改SIS增加物理破坏机率(3)

2017-12-23 18:01来源:99科技整理编辑:时寒峰

扫一扫

分享文章到微信

扫一扫

关注99科技网微信公众号

  TRITON攻击技术分析

  TRITON攻击框架会被部署在运行有Windows操作系统的SIS工程工作站中,其中的恶意软件伪装成合法的用于查看日志的TriStation Triconex Trilog应用程序,并通过一个Py2EXE编译后的Python脚本进行植入,而该Python脚本程序又依赖于一个包含标准Python库和开源库的zip压缩文件,以及攻击者开发的用于与Triconex控制器交互的Triconex攻击框架。 与可执行的恶意程序一起,还会生成两个二进制文件inject.bin(恶意功能代码)和imain.bin(恶意控制逻辑)作为攻击控制器的Payload,这两个文件名也被硬编码写入到了Py2EXE编译的python脚本中。

  Trilog.exe在命令行中会选择目标Triconex设备IP地址作为攻击选项,它没有利用底层TRITON库的Triconex设备发现功能,而是为环境中的每个目标控制器分别调用trilog.exe实例,一旦被调用,trilog.exe将检查控制器状态,然后读取由TriStation协议公开的配置信息,如果控制器处于运行状态,trilog.exe会把两个Payload文件inject.bin和imain.bin进行编码,并将它们传递给通信库,以便将其附加到控制器的程序存储器和执行表中。

  当Payload文件被插入Triconex控制器内存后,脚本开始倒计时,并执行控制器状态定期检查,如果检测到控制器错误,通信库的方法SafeAppendProgramMod会尝试使用TriStation协议命令将控制器重置为之前状态,如果检测到控制器失效,trilog.exe会向内存尝试写入一个小的“虚拟”程序。我们认为这是一种反取证技术,用于隐藏Triconex控制器中的攻击代码。

  Mandiant与被攻击企业合作,利用实验室环境中有效的Triconex控制器运行trilog.exe后,在恶意软件中发现了一个防止Payload文件持久驻留的检查条件,Mandiant通过修改攻击脚本删除该检查条件后,Payload文件则会持久驻留于控制器内存中,且不影响控制器运行。

  TRITON可以执行合法TriStation应用程序的TriStation协议,并通过该协议来配置SIS控制器。

  另外,攻击者还创建了一个名为TsHi的高层接口,通过该接口使用TRITON框架实现攻击脚本执行。TsHi接口暴露了恶意软件的侦察和攻击能力,这些功能实现通常需要接收来自用户的二进制数据,并在数据传递到低级库中以进行序列化到网络的过程之前,会进行代码“签名”和校验步骤。

  另一个攻击者编写的模块TsBase则包含了TsHi调用函数,它能将攻击者的预期操作转化为相应的TriStation协议功能代码。对于某些功能而言,它还可将数据打包填充为适当格式。

  TsLow攻击模块实现了TriStation UDP通信协议。TsBase库则主要依赖ts_exec方法,该方法采用功能代码和预期响应代码,并通过UDP将Payload命令序列化,它还会检查控制器对期望值的响应,并当检查成功或失败时,返回相应的数据结构表示对象。

  TsLow中还包含了用于检查目标控制器连通性的连接测试方法,如果调用没发现目标,它会运行设备发现功能detect_ip,该功能使用IP广播包方式,通过脚本调用,在TriStation协议中执行“ping”消息,来探测控制器。

  防护建议

  为避免遭受TRITON类攻击,资产设备管理者可以考虑以下几种防护措施:

  以技​​术可行方式,将仪表安全系统网络与过程控制和信息系统网络隔离,能对SIS控制器执行编程的工程工作站不应与其它任何DCS过程控制或信息系统形成双宿网络;

  充分利用对安全控制器进行控制编程的硬件功能,这些功能通常采用物理钥匙形成交换控制,在Triconex控制器上,除了预定的编程事件期间,其它时候,钥匙不应处于编程模式状态;

  对钥匙关键位置变化实施变更管理措施,定期审核当前的关键状态;

     投稿邮箱:jiujiukejiwang@163.com   详情访问99科技网:http://www.99it.com.cn

相关推荐