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

Компанія 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, with AES 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.

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

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


Рис. 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 surface of attack 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.


Рис. Приклад використання SEV.

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

Більш докладний опис SEV можна знайти на мануале від AMD.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.