AMD представляет новые механизмы безопасности своего гипервизора AMD-V

ced8175b8b9f4d849295b1febc0ebed0.png Компания AMD анонсировала выпуск новой технологии защиты памяти виртуальных машин гипервизора под названием Secure Encrypted Virtualization (SEV). Новая технология AMD имеет общие черты с другой аналогичной инициативой от Intel под названием Intel Software Guard Extensions (SGX), которая позволяет приложению выделять особые регионы виртуальной памяти (анклавы), не доступные для чтения даже приложениям с более высоким уровнем привилегий. В отличие от SGX, SEV предлагает аналогичную концепцию для памяти виртуальных машин, но защита, в таком случае, будет строиться за счет шифрования содержимого блоков памяти. Шифрование приватной части памяти виртуальных машин осуществляется guest-ключом, а памяти, находящейся в общем доступе (shared) специальным ключом гипервизора.
SEV is an extension to the AMD-V architecture which supports running multiple VMs under the control of a hypervisor. When enabled, SEV hardware tags all code and data with its VM ASID which indicates which VM the data originated from or is intended for. This tag is kept with the data at all times when inside the SOC, and prevents that data from being used by anyone other than the owner. While the tag protects VM data inside the SOC, AES with 128 bit encryption protects data outside the SOC. When data leaves or enters the SOC, it is encrypted/decrypted respectively by hardware with a key based on the associated tag.

11732e29e7b141328890ef4720df16ac.png

Рис. Архитектура SEV, содержимое памяти виртуальных машин шифруется с помощью симметричного алгоритма AES и индивидуальным для каждой виртуальной машины ключом.

Таким образом, операции шифрования/дешифрования содержимого памяти будут происходить на уровне микропроцессора (System-on-Chip, SOC) и в тот момент, когда сами данные будут находиться во внутреннем его кэше. При загрузке данных во внутреннюю память микропроцессора они будут расшифровываться, а при выгрузке зашифровываться.

056d50ecfd1148f8b35f16317de0ed56.png

Рис. SEV также позволяет изолировать и шифровать память отдельных приложений для защиты от постороннего доступа.

Специалисты AMD указывают, что операции изоляции и шифрования блоков памяти могут происходить не только на уровне целых виртуальных машин, но и на уровне отдельных приложений, как это предусмотрено в Intel SGX.

SEV is designed to protect guest VMs from a benign but vulnerable (i.e. not fully malicious) hypervisor. In particular, it reduces the attack surface of guest VMs and can prevent certain types of VM-escape bugs (e.g. hypervisor read-anywhere) from being used to steal guest data.

SEV позволяет приложениям защитить регионы памяти не только от приложений с более высоким уровнем привилегий, но также и от потенциально уязвимого гипервизора, уязвимости в котором могут быть использованы атакующими для атак типа VM-escape.
eb4fb71d95074ea5834e955752086820.png

Рис. Пример использования SEV.

На рисунке выше показан типичный пример использования SEV. Виртуальная машина (guest) помечает виртуальные страницы с кодом и данными приложений как приватные (т. е. подлежащие шифрованию), также в обязательном порядке защитная мера накладывается на страницы памяти с таблицами страниц процессов. Служебные общие данные (shared), которые доступны как гипервизору, так и виртуальной машине помечены как публичные. Все содержимое приватной части памяти шифруется с использованием индивидуального для данной виртуальной машины ключа, который неизвестен даже гипервизору. Содержимое общей памяти шифруется с использованием ключа гипервизора.

Более подробное описание SEV можно найти в мануале от AMD.

Комментарии (0)

© Habrahabr.ru