Уязвимост в процесорите AMD, която позволява заобикаляне на механизма за защита SEV (Secure Encrypted Virtualization)

Изследователи на Центъра по информационна безопасност (CISPA) обявиха нов метод на атака CacheWarp, който компрометира механизма за защита AMD SEV (Secure Encrypted Virtualization), приложен в системите за виртуализация, за да защитят виртуалните машини от намеса от хипервизора или администратора на хост системата. Предложеният метод позволява на нападателя с достъп до хипервизора да постигне изпълнение на злонамерен код и повишаване на привилегиите в виртуалната машина, защитена с AMD SEV.

Атаката се основава на използване на уязвимост (CVE-2023-20592), причинена от некоректна работа с кеша по време на изпълнението на инструкциите на процесора INVD, чрез която е възможно да се постигне несъответствие на данните в паметта и кеша и да се заобиколят механизмите за поддържане на целостта на паметта на виртуалните машини, реализирани на базата на разширенията SEV-ES и SEV-SNP. Уязвимостта засяга процесорите AMD EPYC от първо до трето поколение.

За процесорите AMD EPYC от трето поколение (Zen 3) проблемът е решен в ноемврийското обновление на микрокода, издадено вчера от AMD (поправката не води до намаляване на производителността). За първо и второ поколение AMD EPYC (Zen 1 и Zen 2) защита не е предвидена, тъй като в тези CPU липсва поддръжка на разширението SEV-SNP, осигуряващо контрол на целостта. виртуални машиниЧетвърто поколение процесори AMD AMD EPYC «Genoa» на базата на микроархитектурата «Zen 4» не е уязвимо.

Технологията AMD SEV се прилага за изолиране на виртуални машини от облачни доставчици като Amazon Web Services (AWS), Google Cloud, Microsoft Azure и Oracle Compute Infrastructure (OCI). Защитата AMD SEV е реализирана чрез криптиране на хардуерно ниво на паметта на виртуалните машини. Освен това, чрез разширението SEV-ES (Encrypted State) се осигурява защита на регистрите на CPU. Достъпът до разшифрованите данни имат само текущата гостуваща система, а другите виртуални машини и хипервизорът получават криптиран набор от данни при опит за достъп до тази памет.

В третото поколение процесори AMD EPYC е реализирано допълнително разширение SEV-SNP (Secure Nested Paging), осигуряващо безопасна работа с вложени таблици за страници в паметта. В допълнение към общото криптиране на паметта и изолацията на регистрите, в SEV-SNP са внедрени допълнителни средства за защита на целостта на паметта, които предотвратяват промени във VM от страна на хипервизора. Управлението на ключовете за криптиране се осъществява от страна на вградения в чипа отделен процесор PSP (Platform Security Processor), реализиран на базата на архитектурата ARM.

Същността на предложения метод за атака е използването на инструкция INVD за анулиране на блокове (линии) в кеша на мръсни (dirty) страници, без да се нулират натрупаните в кеша данни в паметта (write-back). По този начин методът позволява изтласкването на променени данни от кеша, без да се променя състоянието на паметта. За извършването на атаката се предлага да се използват софтуерни изключения (fault injection) за прекъсване на работата на виртуалната машина на две места: първо, атакуващият извиква инструкцията «wbnoinvd» за нулиране на всички натрупани операции за запис в паметта, а на второ място извиква инструкцията «invd» за възстановяване на неотразените в паметта операции за запис в старото им състояние.

За проверка на системите си за наличие на уязвимости е публикуван прототип на експлоит, позволяващ извършването на подмяна на изключение в виртуалната машина, защитена чрез AMD SEV, и възстановяване в предишно състояние на несброшени в паметта промени в VM. Възстановяването на промените може да бъде използвано за изменение на протичането на програмата чрез връщане на стар адрес за връщане в стека или за използване на входни параметри от стар сеанс, за който преди това е била извършена автентикация, чрез връщане на стойността на признака за автентикация.

Например, изследователи демонстрираха възможността за прилагане на метода CacheWarp за извършване на атака Bellcore срещу реализацията на алгоритъма RSA-CRT в библиотеката ipp-crypto, което позволи възстановяването на частния ключ чрез подмяна на грешки при изчисляването на цифровия подпис. Също така бе показано как могат да се подменят параметрите за проверка на сесията на OpenSSH при дистанционно свързване към гостовата система, а след това да се промени състоянието на проверката при изпълнението на утилитата sudo за получаване на права root в Ubuntu 20.04. Работата на експлоита е проверена на системи с процесори AMD EPYC 7252, 7313P и 7443.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster