Атаката BadRAM, позволяваща да се заобиколи механизмът за атестация SEV-SNP в CPU AMD.

Група изследователи от университета в Льовен, Любек и Бирмингем разработи метод на атака BadRAM (CVE-2024-21944), който позволява да се заобиколи механизма за удостоверяване и да се компрометират среди, защитени с разширението SEV-SNP в процесорите AMD. За да извърши атака, нападателят, с редки изключения, трябва да получи физически достъп до модулите с памет и да има възможност за изпълнение на код на ниво нулева защита (ring0) на сървъра, изпълняващ защитени гостови среди.

Разширенията AMD SEV (Secure Encrypted Virtualization) са насочени към осигуряване на гаранции за целостта на паметта на виртуалните машини, както и тяхната защита от намеса и анализ от страна на администратора на хост системата, способен да изпълнява код на ниво хипервизор. Първоначално защитата на AMD SEV се ограничаваше до шифроване на съдържанието на паметта на гостовата система и изолиране на регистрите, но по-късно в процесорите AMD EPYC бе реализирано допълнително разширение SEV-SNP (Secure Nested Paging) за безопасна работа с вложени таблици на страниците в паметта, гарантиращо запазването на целостта на паметта и предотвратяващо изменения в паметта на гостовата система от хипервизора.

Механизмът AMD SEV-SNP е разработен, за да не могат службите за сигурност или персоналът на дата центрове и облачни доставчици, в които се изпълняват защитени гостови системи, да се намесят в работата на гостовата система. Предложеният метод на атака BadRAM дава възможност да се заобиколят предоставените гаранции чрез промяна на метаданните SPD (Serial Presence Detect) в модулите с памет DDR4 или DDR5. При успешна атака нападателят може да презапише криптираните данни в паметта на гостовата система (на ниво шифротекст, без възможност за декриптиране) и да заобиколи механизма за атестация, например, за да скрие внедряването на бекдор в виртуална машина, защитена с помощта на технологията SEV-SNP.

Атаката се основава на манипулирането на фиктивни параметри на модула памет в SPD, които карат процесора да адресира несъществуващи адреси, отражаващи се в съществуващите области на паметта. Нападателят може да коригира SPD по такъв начин, че модулът памет да предостави на процесора размер, надвишаващ реалните характеристики на модула. След това нападателят може да извърши мапинг на измислената несъществуваща памет към реална област в DRAM, която вече се използва в зашифрован вид в защитените гост системи. В резултат се получава ситуация, в която различни адреси сочат към една и съща физическа памет (две области отразени в една област в чипа DRAM), т.е. по адреса на фиктивната отразена област на паметта може да се получи достъп до вече използваната реална памет и да се заобиколят механизмите за защита на паметта в CPU.

Атаката BadRAM, позволяваща да се заобиколи механизмът за атестация SEV-SNP в CPU AMD.

За извършване на атаката е достатъчно да се сглоби прост програмистки инструмент на стойност около 10 долара, състоящ се от микроконтролер Raspberry Pi Pico, конектор за DDR4/DD5 модули и източник на захранване. Използваните за извършване на атаката инструменти, модулът на ядрото и прототипите на експлоити са разположени на GitHub.

Атаката BadRAM, позволяваща да се заобиколи механизмът за атестация SEV-SNP в CPU AMD.

За чиповете на някои производители, при които не е извършена блокировка на преписването на SPD, извършването на атаката е възможно по програмния път без физически достъп до сървъра. Например, програмно могат да се променят параметрите на паметните модули на компанията Corsair с RGB осветление. В случай на напълно програмна атака, системата може да бъде компрометирана, например, чрез прилагане на злонамерено обновление на BIOS или чрез диверсия от страна на администраторите. сървъри в облачните услуги.

Атаката BadRAM, позволяваща да се заобиколи механизмът за атестация SEV-SNP в CPU AMD.

Като потвърждение на работата на метода са демонстрирани две атаки. В първата атака е показана възможността за повторно възпроизвеждане на шифротекста — при използване на AMD SEV данните в паметта се съ хранят в зашифрован вид и нападателят не може да определи съдържанието, но има възможност да прочете зашифрените данни и след това да ги подмени вместо друго зашифрено съдържание.

Във втората атака е демонстрирана способността за заобикаляне на механизма за удостоверяване SEV-SNP, предоставящ криптографско потвърждение за целостта на виртуалната машина, стартирана в защитена среда. Атакуващият може да прихване отчета за удостоверяване на коректната виртуална машина и след това да го подмени с такъв за компрометирана виртуална машина, например, скривайки следите от внедрения бекдор.

Проблемът засяга 3-то и 4-то поколение процесори AMD от серията EPYC, доставяни под кодовите имена Milan, Milan-X, Genoa, Bergamo, Genoa-X и Siena. За блокиране на уязвимостта компания AMD вече е пуснала обновление на фърмуера SEV, в което се реализира проверка ALIAS_CHECK, която не допуска манипулации с паметта, присъщи за разглежданата атака.

Предлаганите от Intel технологии Scalable SGX и TDX не са подложени на атаката, тъй като необходимите проверки са налични по подразбиране. Класическата технология Intel SGX, която през 2021 година Intel класифицира като остаряла, частично е подложена на атаката (по аналогия с предишно известната атака MemBuster, нападателят може да анализира достъпа до криптирана памет, т.е. е възможно само четене на шифротекста, но не и неговото презаписване). Тестването на разширенията CCA (Confidential Compute Architecture) в процесорите на компания ARM не е проведено.

Допълнително се съобщава за още една уязвимост, свързана с AMD SEV-SNP. Уязвимостта е открита в развитието на AMD форка на емулатора QEMU, предназначен за стартиране на виртуални машини с SEV-SNP. Проблемът позволява на администратора на хост-средата да получи root-достъп до гостуващите системи чрез манипулации с таблиците ACPI. Уязвимостта е причинена от това, че при зареждане на гостуващата система се извършва проверка на целостта на ядрото на Linux, началния RAM-диск и параметрите на ядрото, но не се вземат предвид ACPI-таблиците, чрез които хипервизорът може да предостави специално оформен код AML (ACPI Machine Language), предназначен за изпълнение в гостуващата среда. Твърди се, че проблемът не е специфичен за QEMU и се проявява в каквито и да е хипервизори и емулатори, тъй като ядрото на Linux се доверява на всякакви данни ACPI, постъпващи от хипервизора.

Възпроизведи видео
Възпроизведи видео


Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster