摘要:工业网络安全公司Claroty的研究人员在美国OPTO 22公司的SoftPAC虚拟可编程自动化控制器(PAC)中发现了一组漏洞,可使运营技术(OT)网络受到攻击。SoftPAC是一种基于软件的自动化控制器,可以托管在Windows设备上,据供应商称,它对于需要更多文件存储、更多计算能力或经常访问文件的应用程序特别有用。SoftPAC具有三个主要组件:监视器、代理和虚拟控制器本身。监视器允许用户启动和停止PAC服务以及更新SoftPAC固件。代理充当监控器和PAC之间的中介。这五个漏洞的成因,与缺少对固件更新文件名的清理、缺少对固件文件签名的验证、通过开放端口的通信、允许DLL劫持的不受控制的搜索路径以及缺少认证或授权机制等有关。这些漏洞可以使远程攻击者访问SoftPAC代理,以向PAC发送启动或停止命令或更新其固件。研究人员警告说,这些类型的虚拟控制器可以用作OT网络的攻击入口点。
美国网络安全和基础设施安全局(CISA)表示,该产品已在全球范围内用于运输、IT、发电、关键制造和商业设施等领域。OPTO 22公司自2008年在中国上海设立代表处后,其自动化产品及技术在国内半导体、石油石化、水处理、新能源、交通、电力等领域获得诸多成功应用。
1.背景介绍
近日,工业网络安全公司Claroty的研究人员在Opto 22的SoftPAC虚拟可编程自动化控制器(PAC)中发现了一组漏洞,可使运营技术(OT)网络受到攻击。SoftPAC是一种基于软件的自动化控制器,可以托管在Windows设备上,据供应商称,它对于需要更多文件存储、更多计算能力或经常访问文件的应用程序特别有用。Opto 22公司是一个全球技术领先的产品制造商,它提供了用计算机网络连接现实设备的高品质硬件与软件解决方案。其客户应用包括数据采集、企业管理、远程监视与控制、工业自动化、SCADA。Opto 22是最先认识到并提供用网络、计算机与现实世界中的设备相联连的系统解决方案的公司之一。目前,世界上有超过8000万点的设备与Opto 22系统相连接。该公司在上海设有代表处。
Claroty公司的安全研究员Mashav Sapir于2020年3月到4月间分别发现了总共五个漏洞,这些漏洞形成原因分别是缺少对固件更新文件名的清理,缺少对固件文件签名的检查,通过开放端口的通信,允许DLL不受控制的搜索路径以及缺少认证或授权机制。这些缺陷可以使远程攻击者可以访问SoftPAC代理,以向PAC发送启动或停止命令或更新其固件。
五个漏洞分别为:文件名或路径的外部控制(CVE-2020-12042)、加密签名的验证不正确(CVE-2020-12046)、访问控制不当(CVE-2020-10612)、不受控制的搜索路径元素(CVE-2020-10616)、授权不当(CVE-2020-10620)
2.漏洞概述
Opto 22 SoftPAC Project是美国Opto 22公司的一套自动化软件套件。该产品能够提供工业自动化、过程控制、楼宇自动化、远程监控、数据采集和工业物联网等功能。
Opto 22 SoftPAC Project 9.6及之前版本中存在授权问题漏洞,该漏洞源于与SoftPAC进行通信时并不需要任何凭证。攻击者可利用该漏洞直接与SoftPAC通信,包括远程停止服务。
2.1漏洞情况
l 文件名或路径的外部控制(CVE-2020-12042):未清除用于SoftPAC固件更新的zip文件中指定的路径。这样,具有用户特权的攻击者就可以通过系统访问权限获得任意文件写访问权限。
CVSS v3基本得分6.5;CVSS向量字符串为(AV:N / AC:L / PR:L / UI:N / S:U / C:N / I:H / A:N)
l 加密签名的验证不正确(CVE-2020-12046): SoftPAC在固件更新期间不验证固件文件的签名,从而使攻击者可以用恶意文件替换合法的固件文件。
CVSS v3基本得分为5.7;CVSS向量字符串为(AV:N / AC:L / PR:L / UI:R / S:U / C:N / I:H / A:N)
l 访问控制不当(CVE-2020-10612): SoftPAC代理通过网络TCP端口22000(无限制的开放端口)与SoftPAC Monitor进行通信。这使具有网络访问权限的攻击者可以通过远程命令控制SoftPAC代理的行为,这些命令包括固件更新、启动或停止服务或写入某些注册表值。
CVSS v3基本得分为9.1;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:N / S:U / C:N / I:H / A:H)
l 不受控制的搜索路径元素(CVE-2020-10616):由于SoftPAC没有指定多个.dll文件的路径,因此攻击者可以在服务启动时替换它们并执行代码。
CVSS v3基本得分6.5;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:R / S:U / C:N / I:H / A:N)
l 授权不当(CVE-2020-10620):由于其通信不包含任何凭据或身份验证,因此具有网络访问权限的攻击者可以直接与SoftPAC通信。
CVSS v3基本分数为9.8;CVSS向量字符串是(AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:H / A:H)
五个漏洞的基本信息
2.2漏洞影响设备及固件版本
Opto 22 SoftPAC Project 9.6及之前版本(如Opto 22 SoftPAC Project 9.0版本)中均存在这些漏洞。
2.3与ATT&CK的映射
3.漏洞原理
SoftPAC PLC在Windows计算机上作为SYSTEM服务运行,最终用户无法直接访问。但是,SoftPAC供应商Opto 22为最终用户提供了一个不同的程序,即SoftPAC Monitor,该程序使他们能够通过另一项称为SoftPAC Agent的服务轻松地控制和管理SoftPAC PLC。
SoftPAC Monitor允许用户通过经由TCP端口22000向SoftPAC代理发送命令来启动/停止PLC服务并更新SoftPAC固件。SoftPAC代理仅用于侦听来自SoftPAC Monitor的命令,还侦听0.0.0.0,即不可路由的源地址,用于指定无效或未知的目标。在某些情况下,这可能允许攻击者与SoftPAC代理建立外部远程连接(请参见下图)。
SoftPAC代理在根据从SoftPAC Monitor收到的用户命令来管理SoftPAC PLC,但是在适当的情况下,攻击者可以通过外部远程连接对其进行操作。
由于SoftPAC代理使用的协议不需要任何形式的身份验证,因此远程攻击者可能会模仿SoftPAC Monitor,建立远程连接并执行启动/停止服务或固件更新命令。尽管攻击者可以使用启动/停止命令来进行昂贵且潜在危险的操作更改,但固件更新命令是一个更加值得关注的领域。
Sapir通过他的研究确定,当SoftPAC Monitor发出固件更新命令时,它会向SoftPAC代理发送新固件zip文件的路径,该文件将打包可执行文件。SoftPAC Monitor发送的固件更新zip文件或其中包含的可执行文件均未签名。这样,攻击者可以通过TCP端口22000发送恶意固件更新命令,并且SoftPAC代理可以轻松接收、提取和安装可执行文件。
此外,SoftPAC Monitor发送的固件更新中的路径没有被清除。这导致在文件提取过程中出现“ zip slip”漏洞,攻击者可以利用SYSTEM特权实现任意文件写入,可以轻松利用该特权来执行恶意代码。
在实验室环境中,Claroty研究人员将上述安全漏洞与DLL劫持策略联系在一起,以实现具有SYSTEM特权的SoftPAC Agent中的完整代码执行。
Claroty的白帽研究人员在实验室环境中进行的完全连锁攻击的概念验证
在启动与SoftPAC Agent的连接后,Claroty研究人员使用该连接来检查SoftPAC PLC当前是否正在运行。接下来,他们向SoftPAC代理发送了停止命令以停止SoftPAC PLC。停止PLC后,他们发送了固件更新命令,其中包含指向恶意zip文件的网络路径。SoftPAC代理提取了该zip文件,并删除了其中包含的恶意动态链接库(DLL)文件,并将其放置在与SoftPAC可执行文件相同的目录中。交付恶意文件后,Claroty研究人员发送了一个命令,以重新启动SoftPAC PLC,导致恶意DLL加载,从而以SYSTEM特权执行代码。
4.漏洞危害及保护
4.1漏洞危害
美国网络安全和基础设施安全局(CISA)表示,该问题产品在全球范围内用于运输、IT、关键制造和商业设施等领域。Claroty公司也证实它还在发电行业中经常使用。此漏洞可能会导致以下危害:
l 攻击者可以通过结合固件更新漏洞和DLL劫持,在目标系统上实现任意代码执行,导致固件不受控制;
l 攻击者与SoftPAC 代理启动连接后,并发送命令,这可能会对工业控制系统的安全性和操作造成不良影响。
4.2防护建议
上述漏洞仅影响9.6和更低版本的SoftPAC Project,因此可以通过更新至最新版本的SoftPAC Project Professional或SoftPAC Project Basic来缓解这些漏洞。
如果此更新无法立即生效,则CISA建议采取以下措施来最大程度地减少在您的环境中利用这些漏洞的可能性:
l 在防火墙上监视或限制TCP端口22000;
l 最小化所有控制系统设备和/或系统的网络暴露,并确保不能从Internet访问它们;
l 在防火墙后面找到控制系统网络和远程设备,并将其与业务网络隔离;
l 当需要远程访问时,请使用安全方法,例如虚拟专用网络(VPN),并确认VPN可能存在漏洞,应将其更新为可用的最新版本。还应认识到VPN仅与连接的设备一样安全。
参考资源
[1] CVE:CVE-2020-12042 http://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2020-12042
[2] CVE:CVE-2020-12046 http://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2020-12046
[3] CVE:CVE-2020-10612 http://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2020-10612
[4] CVE:CVE-2020-10616 http://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2020-10616
[5] CVE:CVE-2020-10620 http://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2020-10620
[6] CISA:ICSA-20-135-01 https://www.us-cert.gov/ics/advisories/icsa-20-135-01
[7] CLAROTY博客:https://blog.claroty.com/software-based-plc-vulnerabilities-enable-remote-code-execution
[8] SecurityWeek:https://www.securityweek.com/vulnerabilities-softpac-virtual-controller-expose-ot-networks-attacks
来源:freebuf.com 2020-05-19 17:47:21 by: 北京天地和兴科技有限公司
请登录后发表评论
注册