AMD安全漏洞技术深度解析:PSP与芯片组层面的攻击向量

本文深入分析AMD平台安全处理器(PSP)和芯片组中发现的MASTERKEY、RYZENFALL等漏洞技术细节,探讨其绕过安全启动、虚拟化保护机制的原理及潜在影响,为安全研究人员提供技术参考。

“AMD漏洞”技术总结 - Trail of Bits博客

Dan Guido
2018年3月15日
漏洞利用, 新闻发布, 漏洞披露

两周前,我们作为独立顾问以标准咨询费率受CTS Labs委托,审查并确认其初步研究结果的技术准确性。我们既未参与其研究,也未参与其后续披露过程。我们向CTS建议通过CERT披露这些漏洞。

我们对漏洞的审查基于CTS提供的文档和概念验证代码。我们确认概念验证代码在我们测试的硬件上按描述工作,但最终影响范围、补丁和修复建议将以AMD的最终确认为准。

“关于这个https://t.co/vYktqat10K的事情……CTS Labs上周请我们审查他们的研究,并发送了完整的技术报告和每组漏洞的PoC利用代码。”
— Dan Guido (@dguido) 2018年3月13日

漏洞公开披露后的大部分讨论都集中在披露方式而非技术影响上。本文中,我们尝试从CTS白皮书中提取相关技术细节,以便安全社区能够使用这些信息,而不受周边披露问题的干扰。

技术总结

现代计算机系统的安全架构基于深度防御。Windows Credential Guard、TPM和虚拟化等安全功能可用于防止即使是管理员或root用户访问敏感数据。

AMD平台安全处理器(PSP)是驻留在AMD CPU内部的安全协处理器,作为独立的ARM CPU实现。它类似于Intel ME或Apple Secure Enclave。它运行提供TPM或安全加密虚拟化(SEV)等安全功能的应用程序。PSP拥有对计算机系统最低层的特权访问权限。

PSP固件可通过BIOS更新进行更新,但必须由AMD进行加密签名。更新BIOS通常不需要物理访问,只需拥有计算机的管理员访问权限即可。MASTERKEY漏洞绕过PSP签名检查,使用攻击者的固件更新PSP。Google云安全团队的Cfir Cohen于2017年9月在AMD PSP的相邻区域发现了类似问题。

PSP还向主机暴露API。FALLOUT和RYZENFALL漏洞利用PSP API在PSP或SMM中获得代码执行权限。

“芯片组”是主板上用于协调处理器、内存和外设之间通信的组件。芯片组拥有对系统内存和设备的完全访问权限。CHIMERA漏洞滥用AMD Promontory芯片组的暴露接口,在芯片组处理器中获得代码执行权限。

利用要求

  • 所有漏洞利用都需要以管理员身份运行可执行文件的能力(不需要物理访问)
  • MASTERKEY额外需要发布BIOS更新+重启

潜在技术影响

  • 在PSP和SMM中执行代码(对典型安全产品不可见)
  • 在操作系统重新安装和BIOS更新后保持持久性
  • 阻止或感染后续BIOS更新,或使设备变砖
  • 绕过Windows Credential Guard
  • 绕过安全加密虚拟化(SEV)
  • 绕过安全启动
  • 绕过或攻击在PSP之上实现的安全功能(如fTPM)

对大多数用户来说,这些漏洞没有立即被利用的风险。即使今天公布全部细节,攻击者也需要投入大量开发工作来构建利用这些漏洞的攻击工具。这种努力水平超出了大多数攻击者的能力范围(参见https://www.usenix.org/system/files/1401_08-12_mickens.pdf, 图1)

这类漏洞不应让任何安全研究人员感到惊讶;在其他尝试实现安全功能的嵌入式系统中也发现了类似缺陷。它们是简单编程错误、不明确的安全边界和不足的安全测试的结果。相比之下,最近的Meltdown和Spectre漏洞需要以前未知的技术和新颖的研究进展来发现和利用。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计