V0LTpwn(CVE-2019-11157)是一种针对 x86 处理器的软件控制故障攻击。它是首个破坏 SGX 飞地完整性的攻击。
所有近期英特尔处理器均提供一种无需重启系统即可控制核心电压的软件接口。该功能并非正常运行所必需,但被专业用户用于性能优化。例如,超频社区中的英特尔 XTU 应用程序便使用了该接口。
在 V0LTpwn 中,我们展示了恶意软件可利用此接口将处理器电压降低至临界阈值,此时某些指令将无法正确运行。这意味着攻击者能够在使用这些指令实现的计算中诱发比特翻转。我们在论文中展示了攻击者如何操纵加密计算,甚至改变程序的控制流。
由于该攻击由软件控制,攻击者无需物理接触机器。然而,攻击者需要操作系统权限才能使用电压接口。这意味着该漏洞对普通用户并不构成直接威胁。其主要目标是受信任的执行环境,例如英特尔的 SGX。
SGX 是一种安全特性,允许应用部署飞地,这些飞地即使对操作系统也能受到保护。例如,SGX 可用于在不受信任的云环境中安全运行应用程序。之前的攻击(如 Foreshadow)已表明可以通过侧信道从 SGX 飞地窃取机密。V0LTpwn 是首个展示如何操纵 SGX 飞地内计算的攻击。
我们通过负责任的披露流程将漏洞告知了英特尔。英特尔与我们合作,并开始向受影响的平台发布补丁。更多详情请参考英特尔安全公告中的官方信息。
我们研究论文中提供了关于 V0LTpwn 的所有细节:
https://arxiv.org/abs/1912.04870
我们即将发布用于进一步研究的工具套件。
英特尔的官方信息可在以下网页找到:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00289.html
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11157