编 者 按
Trustwave安全研究人员近日在Schneider Electric PLC控制器软件和硬件中发现两个漏洞,该漏洞可能允许攻击者实施类似于Stuxnet的攻击。多重身份验证绕过漏洞CVE-2017-6034可造成包抓取和PLC中继后果,可使程序以明文的形式传递敏感信息。攻击者可利用该漏洞绕过身份验证机制,通过中间人攻击,未经授权的远程攻击者能够利用Modicon Modbus协议捕获并重播对网络上PLC的敏感命令。01
背景介绍
2020年5月7日Trustwave公司发表文章称,其全球OT/IoT安全研究团队发布了一份安全通报,内容涉及Schneider Electric PLC控制器软件和硬件中的两个漏洞,这些漏洞可能允许攻击者实施类似于Stuxnet的攻击。这两个漏洞中有一个漏洞就是CVE-2017-6034,此漏洞最初是由Eran Goldstein (英国,Cympire研发副总裁) 和Benjamin Green(英国布莱克本,Detectronic的高级软件工程师)于2017年4月11日发现的。CVE-2017-6034漏洞可造成包抓取和PLC中继后果。例如,被发送至PLC的具有“Stop”命令的包可被攻击者中继随时停止PLC。虽然这个中继漏洞在2017年已修复,但Trustwave公司发现只要攻击者紧跟控制软件和PLC之间现有会话之上,则仍然可发动攻击。换言之,虽然这个包中继漏洞已修复,但只要滥用PLC,仍然可以发动中间人攻击。该漏洞的详细信息已于2019年8月13日更新,在2020年5月9日vulhub中显示此漏洞又进行了一次修订。
02
漏洞概述
CVE-2017-6034是施耐德电气Modicon Modbus协议(法国施耐德电气公司的可编程控制器中的一个应用层传输协议)中存在的安全漏洞,属于多重身份验证绕过漏洞。该漏洞源于程序以明文的形式传递敏感信息。攻击者可利用该漏洞绕过身份验证机制,通过中间人攻击,未经授权的用户能够重播数据包并终止授权用户与PLC的连接。如果攻击者利用了漏洞,用户将被注销与PLC的连接,从而使攻击者能够与PLC通信并执行进一步的管理操作。
2.1
漏洞情况
CVE-2017-6034是由于Schneider Electric Modicon Modbus Protocol程序以明文的形式传递敏感信息。攻击者可以利用该漏洞绕过PLC的身份验证机制,对PLC发送控制命令(如:START,STOP,UPLOAD,DOWNLOAD)导致PLC停止工作,工程软件不能再跟踪和控制PLC状态。
图 2-1 CVSS 评分
2.2
披露时间
- 发布时间:2017年4月11日12:00 AM
更新时间:2017年4月18日08:04 AM
2.3
漏洞影响设备及固件版本
可以与Modicon可编程逻辑控制器(PLC)系列一起使用的Modicon Modbus协议受到影响。以下版本受影响。- Modicon动量M1E 171CBU98090(所有版本);
- Modicon动量M1E 171CBU98091(所有版本);
- Modicon M340(V2.70之前的所有版本);
- Modicon M580(V2.01之前的所有版本);
- Modicon Premium(V3.10之前的所有版本);
- Modicon Quantum(V3.12之前的所有版本);
- Modicon M221(所有版本);
- SCADAPack 32 远程终端单元RTU(所有版本);
- SCADAPack 300系列RTU(314、330、334、350)(所有版本);
- SCADAPack 300系列RTU(314、330、334、350)(所有版本);
- SCADAPack 300 E和500 E系列RTU(312E、313E、314E、330E、333E、337E、350E、530E、535E)(所有版本);
SCADAPack 57x RTU(570575)(所有版本)。
2.4
影响范围
在工控系统中,协议的使用是必要的,一旦成功利用这些漏洞,可能使未经授权的远程攻击者利用Modicon Modbus协议捕获并重播对网络上PLC的敏感命令。
03
漏洞原理
在SoMachine Basic(SoMachine Basic是一款施耐德PLC编程软件)中,这是通过单击“登录”按钮完成的,如下图3-1所示。工程师完成任务后,可以单击“注销”按钮以将PLC与工程工作站断开连接。任何时候,每个PLC仅接受来自SoMachine Basic的一个实例的登录。
图3-1 工程师只有登录才能控制PLC
在正常操作下,只有在软件与PLC建立会话之后(登录后),SoMachine Basic才能发出控制命令。但是,可以通过在网络中重放以前捕获的数据包来绕过软件身份验证。基本的攻击理论如图3-2所示。这种重放方法用于各种控制平面命令,包括停止PLC以及将梯形图逻辑下载到PLC。
图 3-2 重放攻击可用于绕过身份验证
照上述原理执行的话,捕获-重放攻击将不会成功,因为每个PLC将仅接受来自单个会话的控制命令。如果存在与合法SoMachine Basic的现有会话,攻击者将无法随意执行命令。为解决此问题,可以使用ARP中毒将“保持活动”请求重定向到攻击者计算机,并将其中一个数据包修改为logout命令。数据包被转发到PLC如图3-3所示。
图 3-3 攻击者拦截SoMachine Basic的数据包,修改数据包后重新传给PLC,将“保持连接”命令改为“注销 ”
控制器处理了修改后的数据包,并终止了与合法软件的会话。作为协议规范的一部分,PLC以通用的“ OK”消息作为响应,该消息与对“ Keep Alive”请求的响应没有区别。结果,SoMachine Basic被欺骗,认为“ Keep Alive”消息已成功执行。该软件不知道与PLC的会话已经结束。SoMachine Basic将失去对PLC的控制以及监视权。
04
4.漏洞危害及保护
4.1
漏洞危害
此漏洞可能会导致以下危害:- 工程软件不再能够控制和跟踪PLC的状态。这样工程软件将失去意义;
攻击者现在可以与PLC建立会话,并使用重播技术随意发送控制命令(例如,START,STOP,UPLOAD,DOWNLOAD)。这可能会对工业控制系统的安全性和操作造成不良影响。因此,PLC可能会发生故障。
4.2
防护建议
根据该漏洞的原理及官网针对该漏洞的修复情况,给出以下建议:- 通过防火墙来阻止对端口502的所有远程/外部访问,从而保护对M1E(施耐德电气的Momentum M1E)控制器的访问;
- 启用基于身份验证的保护以连接到PLC。此方法依赖于名为“应用程序口令”的功能。启用后,每当用户连接以更改其应用程序时,都需要基于口令的身份验证;
- 依靠输入或前面板中的按键开关来启用保护,以拒绝远程连接或运行/停止命令;
启用“访问控制列表保护”,用户可以在其中配置预先授权以控制PLC的受限IP地址。
参考资源
[1] CVE:CVE-2017-6034 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6034
[2] NVD:CVE-2017-6034 https://nvd.nist.gov/vuln/detail/CVE-2017-6034
[3] CNNVD:CNNVD-201704-1002 http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201704-1002
[4] BID:Bugtrag ID:97562 https://www.securityfocus.com/bid/97562
[5] MISC:ICSA-17-101-01 https://ics-cert.us-cert.gov/advisories/ICSA-17-101-01
[6] vulhub:http://vulhub.org.cn/vuln/VH-CVE-2017-6034
[7] Trustwave:https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/vulnerabilities-in-schneider-electric-somachine-and-m221-plc/
往期精选
1 | 惊了!针对智能制造系统的网络攻击来袭 |
2 | 8种常见OT/工业防火墙错误!看看你中招了几个? |
3 | 从一起网络攻击事件看全球水利基础设施的脆弱性 |