重磅!AMD 处理器的 SEV 虚拟机加密机制遭绕过
翻译:360代码卫士团队
上周,德国慕尼黑应用和集成安全弗兰恩霍夫研究所的四名研究人员发表一篇研究论文,详细说明了恢复正常情况下通过 AMD 安全加密虚拟化 (SEV) 机制加密的数据。SEV 机制旨在加密运行在 AMD CPU 服务器上虚拟机的数据。
研究团队将这种攻击命名为 “SEVered”,它能够从和受攻击的虚拟机运行在同样服务器上的 guest 虚拟机中恢复明文内存数据。
研究人员在论文《SEVered:破坏 AMD 的虚拟机加密》中指出,“在重新映射已识别内存页面的同时反复向服务发送同样资源的请求,我们以明文形式提取了所有的虚拟机内存。”
攻击之所以成功是因为虚拟机将某些数据存储在了主 RAM 内存中,而且“主内存的页面加密缺乏完整性保护机制”。这就导致攻击者能够制定出整个内存,然后要求获取其它附近虚拟机使用的部分,而这些部分不应该是受攻击 guest 虚拟机能够访问的,更不用说以明文形式访问了。
在攻击测试中,研究人员表示能够追踪到测试服务器的整个 2GB 内存,包括来自 guest 虚拟机的数据。
研究人员通过反复向 Apache 和 nginx 发出请求获得最佳结果,以 79.4 KB/秒的速度检索内存数据,而针对 OpenSSH 的攻击较为缓慢,检索数据的速度只有 41.6 KB/秒。
降低攻击可行性的一个严重限制条件是,攻击者需要更改服务器的管理程序才能执行 SEVered 攻击,如果服务器打上最新补丁的话,那么这对于某些租赁 guest 虚拟机的黑客而言可能无法执行。
研究团队还表示,他们的 SEVered 攻击并未遭高负载服务器阻止,甚至能够在目标虚拟机在高负载的情况下检索内存数据。
上个月,研究团队在葡萄牙波尔多举办的第11届欧洲系统安全研讨会上展示了研究成果。当时研究人员测试使用的是在2017年6月发布的用于数据中心的 AMD Epyc 7251 处理器。
关联阅读
原文链接
本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。