Вразливість у AMD SEV, що дозволяє визначити ключі шифрування

Розробники з Google Cloud виявили вразливість (CVE-2019-9836) у реалізації технології AMD SEV (Secure Encrypted Virtualization), що дозволяє скомпрометувати захищені за допомогою цієї технології дані. AMD SEV на апаратному рівні забезпечує прозоре шифрування пам'яті віртуальних машин, при якій доступ до розшифрованих даних має лише поточна гостьова система, а решта віртуальних машин та гіпервізор при спробі звернення до цієї пам'яті отримують зашифрований набір даних.

Виявлена ​​проблема дозволяє повністю відновити вміст закритого PDH-ключа, що обробляється на рівні окремого захищеного PSP (AMD Security Processor), недоступного для основної ОС.
Маючи PDH-ключ атакуючий, потім може відновити сесійний ключ і секретну послідовність, задану при створенні віртуальної машини, і отримати доступ до зашифрованих даних.

Вразливість викликана недоробками в реалізації еліптичних кривих (ECC), що застосовуються для шифрування, які дозволяють провести атаку відновлення параметрів кривої. Під час виконання команди запуску захищеної віртуальної машини атакуючий може відправити параметри кривої, що не відповідають параметрам, рекомендованим NIST, що призведе до використання значень точки малого порядку в операціях множення з даними закритого ключа.

Захищеність протоколу ECDH безпосередньо залежить від порядку генерованої початкової точки кривої, дискретне логарифмування якої є дуже складним завданням. На одному з кроків ініціалізації оточення AMD SEV у обчисленнях із закритим ключем використовуються параметри, отримані від користувача. По суті, виконується операція множення двох точок, одна з яких відповідає закритому ключу. Якщо друга точка відноситься до простих чисел низького порядку, то атакуючий може визначити параметри першої точки (біти модуля, що використовується в операції зведення в ступінь модуля) через перебір всіх можливих значень. Для визначення закритого ключа підібрані фрагменти простих чисел можуть бути зібрані воєдино за допомогою Китайської теореми про залишки.

Проблемі схильні серверні платформи AMD EPYC, які використовують прошивки SEV аж до версії 0.17 build 11. Компанія AMD вже опублікувала оновлення прошивки, в якому додано блокування використання точок, що не відповідають кривій NIST. При цьому раніше згенеровані сертифікати для ключів PDH залишаються валідними, що дозволяє зловмиснику провести атаку по міграції віртуальних машин з оточень, захищених від уразливості, в оточення, схильні до проблеми. Також згадується можливість здійснення атаки по відкату версії прошивки на старий вразливий випуск, але ця можливість поки що не підтверджена.

Джерело: opennet.ru

Додати коментар або відгук