可信平台模块(TPM,也称为ISO/IEC 11889 )是安全加密处理器的国际标准,这是一种专用微控制器,旨在通过集成的加密密钥保护硬件。该术语也可以指符合标准的芯片。
TPM 用于数字版权管理 (DRM)、Windows Defender 、Windows 域登录、软件许可证的保护和执行,以及防止在线游戏作弊。
Windows 11的系统要求之一是 TPM 2.0。微软表示,这是为了帮助提高针对固件攻击的安全性。
Quarkslab 在 TPM2.0 参考实现中发现并于 2022 年 11 月报告的两个漏洞现已公开,可能会影响数十亿台设备。
其中一个漏洞CVE-2023-1017涉及越界写入,而另一个漏洞CVE-2023-1018被描述为越界读取。网络安全公司 Quarkslab 在 2022 年 11 月发现并报告了这些问题。
“这些漏洞可以通过向 TPM 2.0 发送恶意命令从用户模式应用程序触发,TPM 2.0 的固件基于受影响的 TCG 参考实现,”可信计算组 (TCG) 在一份公告中表示。
概述
在可信平台模块 (TPM) 2.0 参考库规范中发现了两个缓冲区溢出漏洞,目前处于Level 00,Revision 01.59 November 2019。有权访问 TPM 命令接口的攻击者可以向模块发送恶意制作的命令并触发这些漏洞。这允许对敏感数据进行只读访问或覆盖仅对 TPM 可用的通常受保护的数据(例如,加密密钥)。
描述
可信平台模块 (TPM) 技术是一种基于硬件的解决方案,可为现代计算机上的操作系统提供安全的加密功能,使其能够抵抗篡改。近年来,随着云计算和虚拟化越来越流行,基于软件的 TPM 实施也越来越受欢迎。TPM 可以在其硬件形式中以离散、集成或固件 TPM 的形式实现。虚拟 TPM 以 Hypervisor 形式或纯基于软件的 TPM 实现(例如 swtpm)存在。可信计算组(TCG) 负责维护 TPM 规范,该规范由硬件和软件制造商积极贡献。TCG 于 2014 年 10 月发布了 TPM 2.0 规范,此后对其进行了多次修订。最新版本 Revision 01.59 于 2019 年 11 月发布。许多 TPM 硬件和软件制造商使用这些规范来构建符合标准的固件,并为敏感的加密数据提供安全接口。TPM 用于各种设备,从专门的企业级硬件到物联网 (IoT) 设备。
TPM 库规范体系结构记录了“基于会话的加密”,它允许加密客户端应用程序执行各种操作,包括那些提供参数加密功能的操作。基于会话的加密可用于确保这些参数的机密性。操作系统或客户端软件依靠 TPM 来安全地提供功能,例如用于块密码的密码反馈 (CFB) 或对预期参数有效负载进行基于流哈希的 XOR 混淆。
Quarkslab 安全研究人员在 TPM 参考规范处理属于 TPM 命令的部分参数的方式中发现了两个漏洞。例程中的越界 (OOB) 读取漏洞CryptParameterDecryption()
允许对不属于当前会话的数据进行 2 字节读取访问。也有可能写入超过当前命令缓冲区末尾的 2 个字节,从而导致内存损坏。
有权访问使用易受攻击的 TPM 版本构建的设备的攻击者可以通过向 TPM 发送精心设计的命令来触发此错误。因此,易受攻击的 TPM 可能会被诱骗访问不属于预期操作的数据。由于操作系统依赖于 TPM 固件来实现这些功能,因此使用传统的基于主机的安全功能可能难以检测或阻止此类访问。
影响
经过身份验证的本地攻击者可以将恶意制作的命令发送到易受攻击的 TPM,从而允许访问敏感数据。在某些情况下,攻击者还可以覆盖 TPM 固件中受保护的数据。这可能会导致 TPM 中的崩溃或任意代码执行。由于攻击者的有效负载在 TPM 中运行,因此目标设备的其他组件可能检测不到它。
解决方案
应用更新可信计算组 (TCG) 发布了TPM2.0 库规范勘误表 的更新,其中包含解决这些漏洞的说明。为确保系统安全,用户应尽快应用硬件和软件制造商通过其供应链提供的任何更新。可能需要更新 TPM 芯片的固件,这可以通过操作系统供应商或原始设备制造商 (OEM) 来完成。在某些情况下,作为更新过程的一部分,OEM 可能需要将 TPM 重置为其原始出厂默认值。
高保证计算环境中的用户应考虑使用 TPM远程证明来检测设备的任何更改并确保其 TPM 是防篡改的。由于这些攻击涉及基于 TPM 的软件,因此用户密码或 PIN 保护和 tpm-totp 等机制无法防止利用本文讨论的漏洞进行的攻击。
Quarkslab指出,大型技术供应商、使用企业计算机、服务器、物联网设备和包含 TPM 的嵌入式系统的组织可能会受到这些缺陷的影响,并补充说它们“可能会影响数十亿台设备” 。