一项存在已达10年之久的Windows漏洞仍在攻击中被利用,以使可执行文件看起来是合法签名,而微软的修复方案至今仍需“选择加入”。更糟糕的是,在升级到Windows 11后,该修复方案将被删除。
周三晚间,有消息称VoIP通信公司3CX遭受了大规模供应链攻击,并被入侵以分发其Windows桌面应用程序的木马版本。作为这次供应链攻击的一部分,Windows桌面应用程序使用的两个DLL文件被替换为恶意版本,可以下载其他恶意软件到计算机上,例如窃取信息木马。
攻击中使用的恶意DLL之一通常是由微软签名的合法DLL,名称为d3dcompiler_47.dll。然而,威胁行为者修改了该DLL,在文件末尾包含了一个加密的恶意载荷。
正如昨天首次注意到的那样,即使文件被修改,Windows仍将其显示为由Microsoft正确签名。
对可执行文件(如DLL或EXE文件)进行代码签名,旨在向Windows用户保证该文件是真实的,并且未被修改以包含恶意代码。
当已签名的可执行文件被修改时,Windows将显示一条消息,指出“对象的数字签名未经验证”。然而,尽管我们知道d3dcompiler_47.dll DLL已被修改,但它仍然在Windows中显示为已签名。
在联系了ANALYGENCE公司的高级漏洞分析师Will Dormann并分享了DLL之后,我们得知该DLL正在利用CVE-2013-3900漏洞,“WinVerifyTrust Signature Validation Vulnerability”。
微软于2013年12月10日首次披露了此漏洞,并解释说,在已签名的可执行文件中添加内容到EXE的Authenticode签名部分(WIN_CERTIFICATE结构)是可能的而不会使数字签名失效。
例如,在推文中Dormann解释说Google Chrome安装程序会向Authenticode结构添加数据以确定您是否选择“发送使用统计信息和崩溃报告给Google”。当安装Google Chrome时,它将检查此数据所对应的authenticode signature来确定是否启用诊断报告。
最终微软决定让修复变成可选项, 可能是因为这样做会使存储在可执行文件标志块中数据合法、有数字签名失效。
2013年12月10日,微软发布了一项更新,适用于所有支持的Microsoft Windows版本,该更新更改了使用Windows Authenticode签名格式签署的二进制文件验证签名的方式。” Microsoft对CVE-2013-3900进行披露。
“此更改可以在选择加入的情况下启用。”
“启用后,Windows Authenticode签名验证的新行为将不再允许WIN_CERTIFICATE结构中存在多余信息,并且Windows将不再识别不符合标准的二进制文件。”
现在已经接近十年时间,众所周知这个漏洞被许多威胁行为者利用。然而,它仍然是一个可选修复程序,只能通过手动编辑Windows注册表来启用。
要启用修复程序,在64位系统上运行Windows用户可以进行以下注册表更改:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
"EnableCertPaddingCheck"="1"
[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config]
"EnableCertPaddingCheck"="1"
一旦启用了这些注册表键,您就可以看到Microsoft在3CX供应链攻击中使用的恶意d3dcompiler_47.dll DLL签名验证方式有多不同。
更糟糕的是,即使您添加了注册表键来应用修复程序,一旦升级到Windows 11,它们也会被删除,使您的设备再次变得容易受攻击。
由于该漏洞最近被用于攻击,例如3CX供应链和1月份的Zloader恶意软件分发活动,因此显然应该修复它,即使这会给开发人员带来不便。 不幸的是,大多数人并不知道这个缺陷,并且会查看一个恶意文件并认为它是可信的,因为Windows报告说它是可信的。 “但当修复变成可选时,群众就无法得到保护了。”Dormann警告道。 我启用了可选修复程序,在整天正常使用计算机后,并没有遇到任何让我后悔决定的问题。
尽管这可能会导致某些安装程序(如Google Chrome)未显示为已签名,但增加的保护措施值得不便之处。
BleepingComputer联系了微软,询问有关此漏洞持续被滥用且仅是选择性修复的问题,但尚未收到回复。
暂无评论内容