什么是“ThinkPwn”漏洞,它允许攻击者做什么?

信息安全 固件 uefi
2021-08-28 13:03:59

最近,ThinkPwn 固件漏洞被披露,有一个概念证明相当长的解释但是,任何人都可以用外行的方式解释(不需要关于固件如何工作的广泛知识)这允许攻击者做什么吗?

此外,这个漏洞似乎也存在于 HP Pavillon 计算机和其他许多计算机中,但我看不到它的用处,因为这些机器似乎没有任何固件签名检查,所以你已经可以编写一个恶意固件,无需此漏洞利用即可覆盖其受保护区域。

2个回答

这允许攻击者做什么?

它允许攻击者在系统管理模式 (SMM) 下执行任意代码,这是一种 x86 处理器的高特权执行模式。此模式对操作系统 (OS) 是透明的,并且比任何其他模式都具有更高的特权。如果攻击者可以在 SMM 中执行代码,则它基本上拥有平台/计算机(比操作系统内核中的任何其他 rootkit 更强大)。

值得注意的是,此类漏洞有一个要求:您需要内核权限才能触发系统管理中断(SMI)来执行漏洞利用。

攻击者有两种方法:

  • 它可以覆盖固件闪存并在启动时禁用某些安全功能。然后,即使您擦除硬盘上的内容,或者购买另一个硬盘,它也可以毫无问题地重新感染操作系统。此外,从固件中检测或删除恶意软件将是一项艰巨的任务,因为它控制计算机上执行的早期代码之一。但是,使用可信平台模块 (TPM) 芯片测量的引导可以检测到固件闪存的修改,并且某些安全功能在引导时被禁用,因为所做的测量(加密哈希)不是真实的。如果供应商正确实施了测量的引导过程,则可以进行此类检测。测量过程依赖于核心信任根,其中测量下一个的第一个组件是可信的。因此,
  • 它可以是隐蔽的,只需覆盖位于 SMRAM 中的 SMM 中执行的代码,而无需修改闪存。通过这种方式,它可以控制在 SMM 中执行的代码,并且可以监控或修改操作系统的行为。隐秘性来自这样一个事实,即如果计算机重新启动,闪存中就没有攻击的痕迹(因为一切都在 RAM 中)。然而,许多计算机不会经常重启(例如服务器),因此攻击者不需要重新感染机器就可以控制它。

按照要求,用外行的话来说,我认为这个漏洞可以简单地归结为特权升级攻击的特殊情况。它遵循相同的方式,追求相同的目标(针对 SMM 的此类攻击并不新鲜:在2008 年2015 年的黑帽会议上还出现了另外两起事件)。

它是如何工作的:它通过将任意代码注入以更高权限运行的软件来工作。这里的独创性在于易受攻击的软件不在操作系统内部运行,而是在其外部运行:在固件中。

它实现了什么:您可以出于多种目的进行权限提升:

  • 访问不应访问的数据。例如,Windows 10 似乎依赖基于虚拟化的技术来存储一些凭证,使其超出整个操作系统的范围。此漏洞为您提供更高的特权级别,因此授予您访问所有此类受保护数据的权限。
  • 对低特权代码隐藏自己。所有防病毒解决方案都最多在操作系统内核特权级别运行。通过提升到这个水平以上,您可以创建更多的偷偷摸摸的软件,使用任何常规手段都无法检测到。
  • 执行其他未经授权的操作。任何可能在较低层执行的操作在这里仍然是可能的,但优势在于您优先于操作系统(例如,您可以安装隐藏的网络服务:操作系统永远不会知道此类后门发送和接收的数据包)。新的行动也可能成为可能,但它们很可能是依赖于平台的。最后你得到的是某种恶意版本的英特尔管理引擎,唯一的限制是你的代码绑定到平台的主 CPU,例如:
    • 机器关闭时可能无法运行(这可能不是真的,但是如果你的机器进入睡眠状态,如果你启用了诸如网络唤醒之类的功能,或者后门启用了这些功能,或者它被替换了由模拟的真正断电),
    • 可能无法访问其他处理器,例如 TPM 内部处理器,除非 TPM 芯片实际上是在主 CPU 上模拟的,例如 ARM 的 TrustZone(尤其是 Android 使用),或者如果因此获得的信任级别打开了对新通信通道的访问权限对操作系统不可用。