在拉斯维加斯举行的黑帽安全大会上,一项新研究成果揭示,Windows更新中存在一个漏洞,该漏洞可能被利用来将Windows降级到旧版本,从而暴露一系列已知历史漏洞,这些漏洞随后可以被利用以获得对系统的完全控制。微软表示,他们正在采取复杂措施来修复这个问题,这个过程被称为“Downdate”。
发现此漏洞的SafeBreach实验室研究员Alon Leviev表示,他之所以开始寻找可能的降级攻击方法,是因为去年一场令人震惊的黑客攻击活动使用了名为“BlackLotus UEFI bootkit”的恶意软件,该恶意软件正是通过降级Windows启动管理器到旧版本、存在漏洞的版本来实现攻击。
通过对Windows更新流程进行深入研究之后,Leviev发现了可以战略性地降级Windows的方法——无论是整个操作系统还是仅特定选定的组件。从这里,他开发了一个概念验证攻击,利用这种访问权限禁用了Windows的一种保护机制,即基于虚拟化的安全性(Virtualization-Based Security,简称VBS),最终针对运行在计算机核心“内核”中的高度特权代码。
“我发现了一种完全不可检测的降级攻击方法,因为它是通过Windows更新系统本身来执行的,系统对其高度信任。”Leviev透露到,“就隐蔽性而言,我并未卸载任何更新,而是表面上更新了系统,实则在底层进行了降级。因此,系统并未意识到降级的发生,仍显示为最新版本。”
Leviev的降级能力源自Windows更新流程组件中的一个漏洞。在升级过程中,计算机会将更新请求放置在一个特殊的更新文件夹中,并将其呈现给微软更新服务器,服务器将检查并确认其完整性。
随后,服务器为用户创建一个只有它能控制的额外更新文件夹,用于放置和完成更新,并存储一个名为“pending.xml”的操作列表,其中包含更新计划的步骤,如哪些文件将被更新以及新代码将在计算机上的哪个位置存储。重启计算机后,它将按照列表中的操作更新软件。
理论上,即使计算机(包括更新文件夹)遭到入侵,攻击者也无法劫持更新过程,因为最关键的部分发生在服务器控制的更新文件夹中。然而,Leviev仔细检查了用户更新文件夹和服务器更新文件夹中的不同文件后,发现尽管他无法直接修改服务器更新文件夹中的操作列表,但控制该列表的一个关键项——“PoqexecCmdline”并未被锁定。这给了Leviev一种方法来操纵操作列表,进而控制整个更新过程,而系统却不会察觉到任何异常。
通过这种控制,Leviev找到了降级Windows多个关键组件的策略,包括与硬件外设协同工作的驱动程序、包含系统程序和数据的动态链接库,以及至关重要的NT内核(包含计算机运行所需的最核心指令)。所有这些组件都可以被降级到包含已知已修复漏洞的旧版本。
Leviev甚至进一步扩大了攻击范围,找到了降级Windows安全组件的策略,包括Windows安全内核、密码和存储组件Credential Guard、创建和监督系统上虚拟机的虚拟机监控程序,以及Windows虚拟化安全机制VBS。
这项技术不包括获取对受害者设备远程访问的方法,但对于已经拥有初步访问权限的攻击者来说,它可以引发一场真正的灾难,因为Windows更新是一种非常值得信赖的机制,能够重新引入多年来由微软修复的大量危险漏洞。微软表示,尚未看到任何尝试利用该技术的行为。
微软发言人在一份声明中表示,“我们正在积极开发缓解措施,以防范这些风险,同时遵循一个涉及彻底调查、跨所有受影响版本更新开发和兼容性测试的广泛流程,以确保在最大限度地保护客户的同时,尽量减少运营中断。”
微软修复方案的一部分涉及撤销易受攻击的VBS系统文件,这必须谨慎且逐步进行,因为可能会引起集成问题或重新引入之前由这些系统文件解决的其他不相关问题。
Leviev强调,降级攻击是开发者社区必须关注的重要威胁,因为黑客不断寻找难以察觉且难以检测的路径来入侵目标系统。