Взлом за четверть секунды? Уязвимость в AMD рушит защиту в AWS, Azure и Google Cloud

От грязной строки кеша до полного компромата — в этом вся RMPocalypse.


0yox63hywgd371x46mtis73uod0wjcz9.jpg


В архитектуре аппаратной защиты AMD SEV-SNP, широко используемой крупнейшими облачными провайдерами — AWS, Microsoft Azure и Google Cloud — выявлена критическая уязвимость, позволяющая вредоносным гипервизорам скомпрометировать зашифрованные виртуальные машины и получить полный доступ к их памяти. Атака, получившая название RMPocalypse, разрушает фундаментальные гарантии конфиденциальности и целостности, на которых построена модель доверенного исполнения SEV-SNP.

Исследование было представлено на конференции ACM CCS 2025 в Тайбэе и подробно описывает, как эксплуатируется уязвимость в процессе инициализации ключевой структуры SEV-SNP — Reverse Map Table (RMP). Эта таблица сопоставляет физические адреса хоста с виртуальными страницами гостевых систем и отвечает за предотвращение атак вроде подмены страниц, известных по более ранним поколениям SEV и SEV-ES. Однако на этапе загрузки самой RMP ещё не существует, и потому она не может защитить себя от записей со стороны x86-ядер, работающих параллельно с процессом инициализации.

Уязвимость отслеживается как CVE-2025-0033 (оценка CVSS: 8.2) и затрагивает процессоры AMD на архитектурах Zen 3, Zen 4 и Zen 5, включая серверные чипы EPYC, активно используемые в облачной инфраструктуре. Проблема заключается в «ловушке-22»: RMP должна охранять себя от изменений, но на этапе начальной настройки такой защиты ещё нет. Обработка этого этапа возложена на сопроцессор Platform Security Processor (PSP) с ARM-архитектурой. Он создаёт барьеры в виде Trusted Memory Regions (TMR) на контроллере памяти, а также блокирует x86-ядра от записи в память. Но, как показали исследователи Бенедикт Шлютер и Швета Шинде из ETH Zurich, эти меры оказываются недостаточными.

Асинхронная работа ядер x86 позволяет им записывать грязные кэш-линии в память RMP до того, как PSP активирует полную защиту. Когда TMR снимаются после завершения инициализации, эти неочищенные записи сбрасываются в DRAM, перезаписывая таблицу RMP произвольными значениями. Проведённые эксперименты на EPYC 9135 (Zen 5), 9124 (Zen 4) и 7313 (Zen 3) подтвердили, что перезапись проходит без ошибок — особенно на Zen 3, где проблемы когерентности усугубляют ситуацию. Хотя прошивка PSP содержит намёки на защитные механизмы, такие как сброс кэша, отсутствие глобальной очистки TLB и закрытость некоторых компонентов мешают полноценной защите.

Атака RMPocalypse даёт злоумышленникам возможность перевести защищённые страницы в состояние, при котором гипервизор может их свободно изменять. Это позволяет реализовать сразу четыре типа атак:

1. Подделка отчётов об аттестации. Злоумышленник может подменить контекстные страницы на старые зашифрованные копии, тем самым обманув гостевую систему и вызвав ложное доверие к вредоносной виртуальной машине. Контекстные страницы не защищены от перезаписи, поскольку не имеют криптографической подписи целостности.

2. Включение режима отладки. Через незаметную модификацию одного бита в политике контекста атака позволяет активировать SNPDEBUGDECRYPT/ENCRYPT API, обеспечивая гипервизору полный доступ к памяти конфиденциальной виртуальной машины. Всё это происходит без нарушения аттестации и с надёжностью выше 99,9% за менее чем 15 мс.

3. Воспроизведение состояния VMSA. Этот вектор позволяет вернуть регистры виртуальной машины к предыдущему снимку, нарушая целостность исполнения и открывая путь для откатов к уязвимым состояниям.

4. Инъекция произвольного кода. Злоумышленник использует SNPPAGEMOVE для подмены tweak-значений и вставляет вредоносный трафик (например, сетевые пакеты) прямо в код ядра, обходя криптографическую защиту и ASLR. Весь процесс занимает около 5 мс.

Таким образом, SEV-SNP полностью теряет защитные свойства в условиях недоверенного гипервизора. Это критически опасно для задач, обрабатывающих конфиденциальные данные: от корпоративных приложений до ИИ-моделей и облачных хранилищ.

AMD подтвердила уязвимость и сообщила о работе над патчами, однако на момент публикации исправления для затронутых процессоров отсутствуют. В качестве временных мер исследователи предлагают перенастроить барьеры на уровне ядер, включая предварительную проверку кэшей до снятия TMR или принудительный глобальный сброс кэша и TLB после завершения настройки RMP. Для Zen 3 это усложняется необходимостью дополнительной синхронизации из-за проблем с когерентностью.

RMPocalypse встаёт в один ряд с атаками CacheWarp и Heckler , демонстрируя, насколько уязвимыми остаются даже усовершенствованные технологии конфиденциальных вычислений. Хотя AMD частично открыла исходный код прошивки PSP, закрытые компоненты по-прежнему мешают полноценному анализу и устранению рисков. Поскольку уязвимость можно эксплуатировать менее чем за 234 миллисекунды в фазе SNPINITEX, возникает необходимость переоценки доверия к аппаратным механизмам безопасности.