新发现的漏洞类别称为“虚假文件不可变性”(FFI),由于其可能绕过关键安全机制 Windows 代码完整性 (CI),因此在网络安全社区中引起了严重担忧。Elastic Security 的 Gabriel Landau 发现并详细介绍了此漏洞,它暴露了以下假设的缺陷:没有写入权限打开的文件无法被修改。
攻击图
Landau 的概念验证漏洞,恰如其分地命名为“ ItsNotASecurityBoundary ”,展示了 FFI 的严重性。通过操纵文件属性和竞争条件,该漏洞使攻击者能够将恶意代码注入受信任的安全目录,从而有效地绕过签名验证过程并授予他们加载任意驱动程序(包括未签名和可能有害的驱动程序)的能力。
此漏洞的根源在于一个称为“虚假文件不变性”(FFI)的概念。当软件错误地认为文件无法修改,因为它们是在没有 FILE_SHARE_WRITE 权限的情况下打开的时,就会发生 FFI。尽管有这些权限,攻击者仍然可以在某些情况下修改文件,从而导致所谓的“双重读取漏洞”。当文件中的相同值或偏移量被读取多次时,就会出现这些漏洞,可能会导致不一致和利用机会。
FFI 可以影响传统 I/O 操作(如 ReadFile)和内存映射 I/O 操作(如 MapViewOfFile),从而影响用户模式和内核模式代码。
ItsNotASecurityBoundary 利用 Windows 代码完整性 (ci.dll) 中的 FFI 假设。该漏洞利用 CI 接受包含欺诈性身份验证哈希的恶意安全目录。通过这样做,攻击者可以诱骗内核加载他们选择的任何驱动程序,即使该驱动程序未经签名。
虽然成功实施该漏洞需要复杂的事件序列和精确的时间安排,但其影响深远。一旦攻击者获得绕过代码完整性的能力,他们就可以相对轻松地禁用安全软件、逃避检测机制并部署恶意软件,从而损害整个系统的完整性和安全性。
为了缓解这一威胁,Landau发布了内核驱动程序“FineButWeCanStillEasilyStopIt”,该驱动程序通过监控可疑文件修改来检测和阻止漏洞利用。然而,这只是一个临时解决方案,因为 Windows 代码完整性本身需要全面修复才能完全解决底层漏洞。
Landau发布了内核驱动程:
https://www.elastic.co/security-labs/false-file-immutability
Landau 的概念验证漏洞:
https://github.com/gabriellandau/ItsNotASecurityBoundary
原文始发于微信公众号(独眼情报):新的“虚假文件不变性”漏洞对 Windows 安全构成重大威胁
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论