1、概述
近日,网络安全公司Trustwave的研究人员报告称他们在Schneider Electric软件中发现了一个安全漏洞CVE-2020-7489,该漏洞类似于Stuxnet恶意软件利用的漏洞。Stuxnet是十年前美国和以色列用来破坏伊朗核计划的恶意软件,其设计目标是西门子的SIMATICS7-300和S7-400可编程逻辑控制器(PLC)。利用该漏洞可以访问托管SoMachine软件和目标PLC的环境。EcoStruxure Machine Expert–Basic 以及其前身 SoMachine Basic 都是法国施耐德电气(Schneider Electric)公司的产品,SoMachine Basic,也被称为EcoStruxure Machine Expert,是一款轻量级的编程软件,专为施耐德Modicon M221可编程逻辑控制器(Programmable Logic Controller,PLC)而设计。
2、漏洞描述
Schneider Electric EcoStruxure Machine Expert – Basic或SoMachine Basic中存在注入漏洞。此漏洞的结果是DLL替换,攻击者可利用该漏洞将恶意代码传输到控制器。
图1 CVSS评分
2.1漏洞披露时间
发布时间:2020年4月22日
更新时间:2020年5月5日
2.2漏洞影响版本
SoMachine Basic(所有版本)
EcoStruxure Machine Expert-Basic(所有版本)
Modicon M100逻辑控制器(所有版本)
Modicon M200逻辑控制器(所有版本)
Modicon M221逻辑控制器(所有版本)
2.3已知受影响的软件配置
图2 受影响的软件配置
3、漏洞原理及复现
3.1 漏洞原理
该漏洞的跟踪源为CVE-2020-7475,该漏洞在多款Schneider Electric产品中存在注入漏洞。该漏洞源于用户输入构造命令、数据结构或记录的操作过程中,网络系统或产品缺乏对用户输入数据的正确验证,未过滤或未正确过滤掉其中的特殊元素,导致系统或产品产生解析或解释方式错误。而CVE-2020-7489类似于CVE-2020-7475漏洞,攻击者可利用该漏洞将恶意代码传输到控制器。
3.2 漏洞复现
首先确定SoMachine Basic使用的两个DLL来构建网络数据包,并将这些库加载到IDA Pro中以识别将控制命令发送到控制器的所有功能。下图突出显示了一些功能。
图3 函数调用了将消息发送到PLC的函数
我们分析了两个功能(分别称为功能A和功能B),用于发送命令以启动PLC。其思想是了解两个功能之间的执行情况,以识别其子功能所部署的安全机制,以防止操纵控制平面。
直观地说,当操作员使用SoMachine Basic图形用户界面单击“start controller”时,函数A被触发,调用函数B准备数据包并将其发送到PLC以启动控制器。
控制命令由数据包中的单个字节表示。用于启动PLC的控制命令值是硬编码在函数B中的,如下图所示。其他命令控制值可以在其他函数中找到,这些函数被调用来为其他控制操作做准备。
图4 硬编码值从功能B复制到出口Modbus消息
当操作员在SoMachine Basic UI上单击“启动控制器”时,功能A将调用一个子功能以检查PLC设备的当前状态。如果目标PLC可用,功能A将继续调用功能B。将要发送到PLC的数据包将在功能B中创建,然后再发送给PLC。流程图如下:
图5 部分控制流程图
遵循过程间控制流程图,我们发现从未检查或验证硬编码值。这使威胁参与者可以修补DLL,修改值并更改数据包的预期行为。
图6 修改DLL上的硬编码值,数据包通过“OK”响应成功发送到PLC
4、漏洞危害及防护建议
4.1漏洞危害
l 获取管理访问权:攻击者可利用该漏洞将恶意代码传输到控制器,很可能获得对受害系统的管理访问权,并且该系统可能已被锁定到与周围网络形成物理隔离的地步
l 系统崩溃:攻击者可能会替换所有命令功能,以在PLC上执行违反PLC设计方式的命令。例如,他可以修改所有硬编码值以运行“停止PLC”命令,而操作员将失去对PLC的控制。他还可以修改(来自PLC的)所有返回数据包,以便即使威胁执行者可能已经将恶意代码注入到PLC中,也将始终返回预期的良好行为。
4.2防护建议
1. 更新软件以及固件
l 将项目更新到EcoStruxure Machine Expert – Basic V1.0 SP2或更高版本;
l 在Modicon M100/M200/M221逻辑控制器上,更新到最新固件版本;
l 在项目属性中为读和写操作激活应用程序保护。
2. 程序转移
l 将应用程序转移到Modicon M100/M200/M221逻辑控制器。EcoStruxure Machine Expert-Basic将在传输应用程序时执行完整性检查,如果应用程序在传输期间被更改,将向用户显示一个警告弹出窗口。
参考文献:
[1] MISC:https://www.se.com/ww/en/download/document/SEVD-2020-105-01/
[2] NVD:https://nvd.nist.gov/vuln/detail/CVE-2020-7489
[3] CVE:https://www.tenable.com/cve/CVE-2020-7489
[4] OSINT:https://osint.geekcq.com/2020/04/22/cve-2020-7489/
来源:freebuf.com 2020-05-22 17:56:59 by: 北京天地和兴科技有限公司
请登录后发表评论
注册