Cloud computing is a convenient model for processing data remotely. However, users must trust their cloud provider with the confidentiality and integrity of the stored and processed data. To increase the protection of virtual machines, AMD introduced SEV, a hardware feature which aims to protect code and data in a virtual machine. This allows to store and process sensitive data in cloud environments without the need to trust the cloud provider or the underlying software. However, the virtual machine still depends on the hypervisor for performing certain activities, such as the emulation of special CPU instructions, or the emulation of devices. Yet, most code that runs in virtual machines was not written with an attacker model which considers the hypervisor as malicious. In this work, we introduce a new class of attacks in which a malicious hypervisor manipulates external interfaces of an SEV or SEV-ES virtual machine to make it act against its own interests. We start by showing how we can make use of virtual devices to extract encryption keys and secret data of a virtual machine. We then show how we can reduce the entropy of probabilistic kernel defenses in the virtual machine by carefully manipulating the results of the CPUID and RDTSC instructions. We continue by showing an approach for secret data exfiltration and code injection based on the forgery of MMIO regions over the VM's address space. Finally, we show another attack which forces decryption of the VM's stack and uses Return Oriented Programming to execute arbitrary code inside the VM. While our approach is also applicable to traditional virtualization environments, its severity significantly increases with the attacker model of SEV-ES, which aims to protect a virtual machine from a benign but vulnerable hypervisor.
翻译:然而,用户必须相信他们的云源提供方对储存和处理的数据的保密性和完整性。为了加强对虚拟机器的保护,AMMD引入了SEV,这是一个硬件特性,目的是保护虚拟机器中的代码和数据。这样可以在云环境中存储和处理敏感数据,而不需要信任云源提供者或基础软件。然而,虚拟机器仍然取决于超视仪来进行某些活动,如模拟特殊CPU指令或模拟设备等。然而,大多数在虚拟机器中运行的代码不是用攻击者模型来写的,该模型认为超视仪是恶意的。在这项工作中,我们引入了一种新的攻击类型,恶意超视仪在云环境中操纵SEV或SEV-ES虚拟机器的外部界面,使之违背其自身利益。我们首先展示如何利用虚拟设备提取加密密钥和虚拟机器的秘密数据。我们随后又展示了我们如何减少在虚拟机器中进行更稳定内置的内置的防线的防线,通过仔细地校正其内部的SVIM指令, 继续显示我们内部的SVIM的校正结果。