德国威步信息CodeMeter产品中高危漏洞跟踪分析

  • A+
所属分类:安全文章
作者 | 天地和兴工业网络安全研究院
编者按:9月8日,工业网络安全公司Claroty研究人员发布博客文章称,在德国威步(Wibu Systems)的第三方许可证管理组件CodeMeter中发现了六个关键漏洞,这些漏洞可能使众多行业的用户面临操作技术(OT)网络的接管。这些漏洞可通过网络钓鱼活动加以利用,也可由攻击者直接利用,攻击者可以对用户环境进行指纹识别,以修改现有软件许可证或注入恶意许可证,从而导致设备和进程崩溃。Claroty也发现了严重的加密实现问题,攻击者可以利用这些问题远程执行代码,并在OT网络上横向移动。目前已有ABB、COPA-DATA、Pepperl+Fuchs、Phoenix Contact、Pilz、罗克韦尔自动化、西门子、万可等自动化厂商确认受到不同程度的影响,各厂商也相继发布安全公告及缓解措施。

一、背景概述

背景介绍

工业网络安全公司Claroty 9月8日在其博客上发表文章称,德国威步信息系统(Wibu Systems)生产的一款流行的许可和DRM解决方案CodeMeter中存在的六个漏洞能会使工业系统遭受远程攻击,包括关闭设备或进程、提供勒索软件或其他恶意软件或执行进一步的利用。
Claroty研究人员在CodeMeter中发现了各种类型的漏洞,包括可用于更改或伪造许可证文件的内存损坏错误和加密漏洞。研究人员展示了如何在无需身份验证的情况下远程利用某些漏洞来发起拒绝服务(DoS)攻击或实现任意代码执行。
在研究人员描述的一种攻击情形中,攻击者建立了一个网站,旨在将恶意许可证推入诱骗该站点的用户的设备。流氓许可证在由CodeMeter处理后,可以生成DoS条件或允许攻击者执行任意代码。在不同的攻击场景中,研究人员通过创建自己的CodeMeter API和客户端来实现远程代码执行,使其能够将命令发送到任何运行CodeMeter的设备。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图1  演示远程注入恶意许可证的潜在攻击载体
美国工业控制系统计算机紧急响应小组(ICS-CERT)9月8日也发布了有关这些漏洞的建议,其中一个漏洞的CVSS评分为10.0,为最高的严重等级。

威步信息系统公司简介

威步信息系统股份有限公司(WIBU®)由Oliver Winzenried和Marcellus Buchheit于1989年携手创立,凭借高安全的创新技术,树立了国际领先地位。威步信息系统提供独特的顶级安全技术及多功能的Code Meter综合解决方案,该解决方案覆盖各个领域,并以其独特的技术屡获殊荣。无论是从个人电脑到移动终端(手机、平板),从嵌入式系统到PLC产品,甚至是微处理器,均可与威步信息系统的解决方案实现完美整合从而保护其资产的完整性。2005年在中国上海设立子公司,威步中国一直致力于为国际软件厂商的中国用户提供加密产品的本地化服务,为国内软件及设备商提供世界领先的软件加密技术及授权解决方案及专业咨询服务。
本次爆出漏洞的CodeMeter,是专为软件开发商及智能设备企业提供的一体化技术,其所包含的所有解决方案均来自于威步系统,主要包括Protection 保护工具、Licensing 授权工具和Security 安全工具。

受影响的供应商

ABB、COPA-DATA、Pepperl+Fuchs、Phoenix Contact、Pilz、罗克韦尔自动化、西门子、万可都已确认其产品受到这些漏洞的影响。Claroty已发布受影响的供应商列表,该列表会定期更新。受影响公司的客户遍及多个行业,包括医疗设备制造商、汽车制造商、制造商、过程设计人员以及许多其他行业,可能没有意识到这一易受攻击的组件正在其环境中运行。Claroty建立了一个在线实用程序(漏洞测试仪),可以帮助用户确定他们是否正在运行易受攻击的CodeMeter版本。
西门子正在为受影响的产品进行软件更新,并针对没有更新或尚未提供更新的产品提出具体对策,请参考以下表格。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
另外几家主要的工业控制系统(ICS)供应商已发布安全公告,以应对最近披露的影响德国威步公司制造的CodeMeter许可和DRM解决方案的漏洞。
● ABB
ABB表示,这些漏洞会影响其AC800PEC工具,EXC控制终端(ECT),控制终端管理工作室(CTMS)和牵引控制终端(TCT)。该公司正在分析这些漏洞,尽管尚未发布补丁,但它提供了缓解措施和变通办法,客户可用来防止攻击。
● COPA数据
COPA-DATA表示,这些漏洞会影响其zenon编辑器、zenon分析器、zenon Web服务器、zenon逻辑工作台和straton工作台产品。该公司已针对每个漏洞提供了缓解措施,并建议客户更新CodeMeter。
● 倍加福(Pepperl+Fuchs)
倍加福表示,其VMT MSS和VMT IS产品受到影响,但前提是存在某些组件。建议VMT MSS用户将CodeMeter更新到版本7.10,并且建议VMT IS用户联系子公司VMT。
● Phoenix Contact
PhoenixContact表示,只有CodeMeter漏洞中的三个会影响其PC Worx Engineer,PLCnext Engineer,FL Network Manager,E-Mobility Charging Suite和IOL-CONF产品。该公司已经发布了一个激活向导更新,该更新安装了CodeMeter 7.10并修复了这些漏洞。
● 皮尔兹(Pilz)
Pilz已确定安全漏洞会影响其PAS4000、PASvisu、PASloto、PNOZsigma、Live Video Server和SafetyEYE产品。该公司已建议客户更新CodeMeter并使用本地防火墙来防止未经授权访问运行CodeMeter的设备。
● 罗克韦尔自动化
罗克韦尔自动化(仅注册客户可以使用此建议)共享了使用CodeMeter的FactoryTalk Activation(FTA)管理器的一长串产品。该公司已经发布了一项FTA更新,以修补漏洞。
● 万可
WAGO表示其e!COCKPIT工程软件安装包已受到影响,但其控制器和IO设备未受影响。该公司希望在第四季度发布包含最新CodeMeter版本的e!COCKPIT更新,同时建议客户手动更新CodeMeter。

二、漏洞详情

漏洞概要

德国威步信息CodeMeter产品中高危漏洞跟踪分析

 CVE-2020-14509 长度值不正确的缓冲区访问(CWE-805)
在数据包解析器机制不验证长度字段的情况下,存在多个内存损坏漏洞。攻击者可以发送特制的数据包来利用这些漏洞进行攻击。计算得出的CVSS v3基本得分为10.0;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:N / S:C / C:H / I:H / A:H)。
● CVE-2020-14517 加密强度不足(CWE-326)
协议加密很容易被破坏,服务器接受外部连接,这可能使攻击者能够远程与CodeMeter API进行通信。已计算出CVSS v3基本分数9.4;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:N / S:U / C:L / I:H / A:H)。
● CVE-2020-14519 源验证错误(CWE-346)
此漏洞允许攻击者通过特制的JavaScript负载使用内部WebSockets API,当与CVE-2020-14515结合使用时,该负载可能允许使用CmActLicense公司代码更改或创建CmActLicense的许可文件。计算得出的CVSS v3基本得分为8.1;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:R / S:U / C:N / I:H / A:H)。
● CVE-2020-14513 输入验证不当(CWE-20)
由于长度字段未经验证,CodeMeter和使用它的软件在处理特别编制的许可证文件时可能会崩溃。已计算出CVSSv3基本得分7.5;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:N / S:U / C:N / I:N / A:H)。
● CVE-2020-14515 加密签名验证不当(CWE-347)
许可证文件签名检查机制中存在一个问题,该机制使攻击者可以构建任意许可证文件,包括伪造有效许可证文件,就好像它是现有供应商的有效许可证文件一样。只有带有CmActLicense公司代码的CmActLicense更新文件受影响。计算得出的CVSS v3基本分数为7.4;CVSS向量字符串为(AV:L / AC:H / PR:N / UI:R / S:C / C:N / I:H / A:H)。
● CVE-2020-16233 资源关闭或释放不当(CWE-404)
攻击者可以发送特制的数据包,使服务器发回包含堆中数据的数据包。已计算出CVSS v3基本得分7.5;CVSS向量字符串为(AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:N / A:N)

受影响产品及版本

受影响的威步CodeMeter版本包括:
● 7.10之前的所有版本均受CVE-2020-14509和CVE-2020-16233的影响。
● 7.00之前的所有版本均受CVE-2020-14519的影响,包括7.0版或更高版本,并且受影响的WebSockets API仍处于启用状态,特别是使用Web浏览器访问Web服务器的系统或设备。
● 6.81之前的所有版本均受CVE-2020-14513的影响。
● 6.90之前的所有版本均受CVE-2020-14517的影响,包括6.90或更高版本,仅当CodeMeter Runtime作为服务器运行时才受此影响。
● 当使用带有CmActLicense公司代码的CmActLicense更新文件时,6.90之前的所有版本均受CVE-2020-14515的影响。许多不同的供应商在产品中使用此许可证管理器。

漏洞原理

1、CVE-2020-14513
由于长度字段未经验证,CodeMeter和使用它的软件在处理特别编制的许可证文件时可能会崩溃,当软件不能正确地验证输入时,攻击者能够伪造非应用程序所期望的输入。这将导致系统接收部分非正常输入,攻击者可能利用该漏洞修改控制流、控制任意资源和执行任意代码,从合法的许可证开始,到解密并中断到组件,将一些随机数据注入到他们有效载荷中,重新构建,攒足了足够的样本,将他们全部导入CodeMeter中,就会使CodeMeter处理这些特别编制的许可文件时可能会崩溃。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图2 许可证模糊“自动化”特别编制的许可文件
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图3 字段长度未验证
2、CVE-2020-14519
允许攻击者通过特制的Javascript负载使用内部WebSockets API,当与CVE-2020-14515结合使用时,该负载可能允许使用CmActLicense公司代码更改或创建CmActLicense的许可文件,先准备一个带有JavaScript负载的恶意网站,在本地访问WebSocket服务器(127.0.0.1),并在客户端浏览器上执行我们的代码时使用其中一个本地codeterAPI函数。然后在检查WebSocket接口上的可用的API,发现一个特别的API函数SetRemoteUpdate,可以使用此功能将许可证注入CodeMeter的许可证存储库,类似于其正常的“导入许可证”功能。将一个合法的许可证文件加载到我们的恶意网站PoC上,一旦“受害者”进入网站,一个新的许可证出现在codeter的许可证管理器界面上。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图4  外部网站如何通过websocket成功的与内部代码API通信
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图5  从编码器角度观察流量来看服务器不检查HTTP头的时候是否来自localhost
3、CVE-2020-14509
存在多个内存损坏漏洞,其中包解析机制无法验证长度字段。攻击者可以发送精心编制的数据包来利用这些漏洞进行攻击,利用Python开发了一个codeterapi,可以远程执行,不需要身份验证,从而连接到codeter服务器并根据需要加载我们的自定义许可证。通过利用我们新的API功能,我们能够发现额外的内存损坏错误。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图6  演示远程触发cve-2020-14509漏洞
4、CVE-2020-14517
协议加密很容易被攻击,服务器接受外部连接,这可能使攻击者能够远程与CodeMeter API通信,发送一个包并从服务器接收加密的“错误”消息。然后将服务器强行进行数据包破解,尝试使用各种密钥解密,直到CRC正确为止。一旦找到了正确的引导时间(key),将使用它进行进一步的通信(加上经过的时间),并开始下一次蛮力尝试。通过这样做,将暴力攻击从数小时/天提高到几秒钟。
5、CVE-2020-16233
攻击者可以发送巧尽心思构建的数据包,使服务器发回包含中心数据的数据包,构建了一个模糊器来测试许可证解析机制。本质上,使用新的许可证生成器,需要准备数百万个基于单一来源的有效许可证。每个生成的许可证都与其他许可证稍有不同。一些有位翻转,一些有随机数据注入到他们的有效载荷,还有一些其他形式的改变他们的有效载荷。
6、CVE-2020-14515
许可证文件签名检查机制存在一个问题,使得攻击者能够构建任意许可证文件,包括伪造一个有效的许可证文件,就好像它是现有供应商的有效许可证文件一样。研究人员发现只有带有CmActLicense公司代码的CmActLicense更新文件受影响,如果我们可以生成自己的公钥/私钥对并自己签署许可证呢?,在进行一系列信任验证过程中,公钥被验证为可信源。解析并解密许可证的所有组件,然后生成一个密钥对,修改有效负载(更改许可证名称),签署新的有效负载,用新的密钥替换旧密钥,并加密所有内容以构建一个完全工作的许可证。就可以让新的签名通过所有检查,而且被认为是有效的。
德国威步信息CodeMeter产品中高危漏洞跟踪分析
图7  改造许可证并打造自己的许可证

三、防护建议

威步已为CodeMeter 7.10版中的所有漏洞提供了补丁,该补丁自8月11日起可用。威步已通知许多受影响的供应商,并已将修补程序添加到各自的安装程序中,或者正在将修补程序添加到它们各自的安装程序中。同时,威步、Claroty、CISA建议采取以下安全防护措施:

威步防护建议

● 更新到CodeMeter Runtime的最新版本;
● 仅以客户端身份运行CodeMeter;
● 使用新的REST API,不要使用内部WebSockets API;
● 禁用WebSockets API;
● 应用AxProtector;

Claroty防护建议

由于CodeMeter是集成在领先的ICS供应商的许多产品中的第三方代码,因此不易发现该软件正在用户的计算机上运行。Claroty的在线实用程序可以帮助用户了解他们是否容易受到攻击并应采取行动。Claroty建议采取以下措施:
● 使用Claroty在线工具检测是否存在CodeMeter产品;
● 使用软件清单解决方案(如Microsoft SCCM、Qualys、防病毒管理软件)来识别是否有安装CodeMeter软件。查找关键字Wibu或CodeMeter;
● 在组织边界防火墙上阻止TCP端口22350(CodeMeter网络协议),以阻止利用此漏洞;
● 请与供应商联系,以了解他们是否支持CodeMeter软件的手动升级,以便升级CodeMeter的第三方组件,而不是整个软件堆栈。根据一些供应商的答复,支持此过程。

CISA防护建议

用户应采取以下防御措施,将利用此漏洞的风险降至最低:
● 尽可能减少所有控制系统设备和/或系统的网络暴露,并确保无法从互联网访问这些设备和/或系统;
● 将控制系统网络和远程设备置于防火墙后,并将其与业务网络隔离;
● 当需要进行远程访问时,使用安全方法,例如虚拟专用网络(VPN)。认识到VPN可能存在漏洞,应将其更新为可用的最新版本。还应认识到VPN仅与连接的设备一样安全。
威步CodeMeter中的漏洞表明,当普遍存在的安全问题影响到ICS领域中无处不在的第三方组件时,这些漏洞可能会造成重大危害。第三方组件中发现的难以大规模修复的关键漏洞会使问题进一步恶化。与单个供应商修补软件并将其推送给客户相比,这要复杂得多。通信必须横跨整个OT和ICS生态系统进行,一旦易受攻击的设备中存在漏洞,响应时间和可用性可能会受到影响。

参考资源:

1.https://www.claroty.com/2020/09/08/blog-research-wibu-codemeter-vulnerabilities/

2.Claroty,License to Kill: Leveraging License Management toAttack ICS Networks,Sept. 2020

3.https://www.securityweek.com/vulnerabilities-codemeter-licensing-product-expose-ics-remote-attacks

4.https://www.wibu.com/support/security-advisories.html

5.https://us-cert.cisa.gov/ics/advisories/icsa-20-203-01

6.https://www.claroty.com/2020/09/08/blog-research-vendors-affected-by-wibu-codemeter-vulnerabilities/



原文来源:关键基础设施应急响应中心

德国威步信息CodeMeter产品中高危漏洞跟踪分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: