研究人员攻破 AMD 的虚拟机加密防线 !

研究报告称,中招的虚拟机管理程序会从加密的内存中获取明文信息。

德国研究人员认为,他们已设计出一种方法,可攻破AMD的Epyc服务器芯片用来自动加密内存中虚拟机的安全机制。

他们表示,甚至可以通过被劫持的虚拟机管理程序和简单的HTTP请求,就能从加密的访客系统(guest)获取明文数据,这些HTTP请求发往在同一台机器上的第二个访客系统中运行的Web服务器。

AMD的Epyc数据中心处理器以及RyzenPro系列支持所谓的安全加密虚拟化(SEV)。该技术在数据存储于内存中时可实时解密和加密虚拟机,那样主机操作系统、虚拟机管理程序和主机上的任何恶意软件都无法窥视受保护的虚拟机。每个虚拟机都分配有一个地址空间ID,该ID与加密密钥关联起来,那样数据在内存和CPU核心之间传送时,加密密钥可以加密和解密数据。密钥永远不离开片上系统,每个虚拟机都有自己的密钥。

这意味着,从理论上来说,连恶意或被劫持的虚拟机管理程序、内核、驱动程序或其他特权代码都无法查看受保护虚拟机里面的内容,这对于多租户模式的云平台来说是一项很好的安全功能。现在你可以确信该死的操作人员(BOFH)没在窥视你的访客实例。

然而据称,为非作歹的主机级管理员、虚拟机管理程序里面的恶意软件或类似的威胁分子可以使用一种名为SEVered的技术,绕过SEV保护机制,将信息从客户或用户的虚拟机中拷贝出来。

弗劳恩霍夫应用集成信息安全研究所(Fraunhofer AISEC)的几位研究人员马修斯•莫比策(MathiasMorbitzer)、曼纽尔•休伯(Manuel Huber)、朱利安•霍施(JulianHorsch)和萨莎•韦塞尔(Sascha Wessel)表示,问题在于,进入主机层面的不法分子可以使用标准页表来篡改访客系统的物理内存映射,那样SEV机制就无法正确地隔离和加密内存中虚拟机的部分内容。下面是该研究团队概述攻击的内容:

借助SEVered,我们演示了恶意的HV[虚拟机管理程序]仍然可以从SEV加密的VM[虚拟机]获取明文格式的所有内存数据。我们从SEV得出了结论,主内存的页加密缺乏完整性保护。

虽然虚拟机的访客虚拟地址(GVA)到访客物理地址(GPA)的转换由虚拟机本身来控制,并对HV来说不透明,但HV仍然负责第二级地址转换(SLAT),这意味着它维护主内存中虚拟机的GPA到主机物理地址(HPA)映射。这使我们能够改变HV中虚拟机的内存布局。我们使用这种功能来诱骗虚拟机中的服务,比如Web服务器,那样一旦外部发出资源请求,该服务就会以明文格式返回虚拟机的任意页。

这不是研究人员头一回发现SEV严加保护虚拟机的功能存在缺陷了:以前的研究已经分析了黑客如何可以钻内存管理系统的空子,窥视加密的访客系统。弗劳恩霍夫应用集成信息安全研究所在本周四发表的研究报告在此基础上更进了一步,它表明:的确,就算SEV处于启用状态,虚拟机的全部内存内容也可能被虚拟机管理程序获取。

为了表明这个,研究人员搭建了一个测试系统,该系统搭载启用SEV的AMDEpyc 7251处理器,并安装了Debian GNU/ Linux,在单独的虚拟机中运行两项服务:Apache Web服务器和OpenSSH。然后,他们修改了系统的KVM虚拟机管理程序,观察访客中的软件何时访问物理内存。

通过向其中一项服务发出大量请求,比如从Apache获取HTML网页,虚拟机管理程序就能看到物理内存的哪些页用于保存该文件。然后它切换页面映射,以便Apache使用另一个虚拟机中的加密页来发送请求的网页,因而改而发送另一个虚拟机的自动解密的内存页。

这意味着Apache泄漏了来自另一个访客的数据。随着时间的推移,该团队能够从一个受攻击的虚拟机获取整整2GB内存的数据。

研究人员写道:“我们的评估显示,SEVered实际上切实可行,它可以用来在合理的时间内从SEV保护的虚拟机获取整个内存数据。结果明确表明,SEVered妥善处理好了关键方面,比如识别过程中的噪音和资源粘性(resource stickiness)。”

无法联系上AMD的发言人请其发表评论。研究团队特别指出,不过这家芯片制造商可采取几个措施,隔离主机和访客物理地址过程之间的转换,从而应对研究中描述的攻击。

他们解释道:“最好的解决办法似乎是除了加密外,另外针对访客内存页提供功能完备的完整性和新鲜度保护,英特尔SGX就是这么做的。然而,相比SGXenclave,保护整个虚拟机可能面临高昂的硅片成本。”

“一种低成本且高效的解决办法也许是将内存页内容的哈希与分配给访客的GPA安全地结合起来。”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

PHP成为首个在内核中嵌入加密库的编程语言

PHP团队最近投票一致通过了“将Libsodium库集成到PHP内核中”的决议,使得PHP成为首个使用公认现代加密库的编程语言。 Libsodium是个便捷,可...

2297
来自专栏安智客

安全:下一代网络的基本组成

作者:Jim Wallace, Arm; Joseph Byrne, NXP,安智客译 很难想象,哪一天能够不依靠电脑或智能手机工作,购物或银行业务,与朋友聊天...

34910
来自专栏FreeBuf

记一次完整的办公网渗透到idc过程

前言: 看到各位大神分享他们内网渗透的经验与技巧,小菜打算也来分享分享。 http://www.freebuf.com/articles/sys...

3097
来自专栏Python、Flask、Django

Mac下好用的文件解压利器

1572
来自专栏自由而无用的灵魂的碎碎念

一个关于Windows Vista下“开始”搜索的小发现

之前一直以为在Windows Vista下从“开始”搜索程序时,搜索范围是“开始”--“所有程序”下的所有列表。

1533
来自专栏FreeBuf

关于网络钓鱼的深入讨论

网络钓鱼相信大家都不会太陌生。近年来,随着人们网络安全意识的提升,网络钓鱼的手法也变得越来越高明。攻击者的社工经验愈加丰富,钓鱼技术也愈加的先进和新颖。作为企业...

36111
来自专栏我的安全视界观

【业务安全】业务安全之另类隐患

接收到提测邮件后,安全测试人员首先对已知漏洞在测试环境进行验证。使用burp对登录接口进行枚举验证:

1412
来自专栏QQ会员技术团队的专栏

海量服务实践──手Q游戏春节红包项目设计与总结

1. 需求背景 1.1.红包类别 2017年的手Q春节游戏红包共有刷一刷/AR地图/扫福三种,如下图所示: ? 1.2.体验流程 虽然红包分三种,但在游戏业务...

2798
来自专栏JAVA高级架构

从技术角度谈一谈,我参与设计开发的手Q春节红包项目

今年春节期间,QQ以AR技术为支撑、娱乐体验为导向在春节期间推出系列红包并成功刷屏,系列红包包括三大玩法+年初一彩蛋,分别是“LBS+AR天降红包”、刷一刷红包...

1924
来自专栏张尧博客

10个Linux基础面试问题和答案(1)

3327

扫码关注云+社区

领取腾讯云代金券