Практическая реализация атаки предполагает модификацию так называемого чипа SPD на модуле оперативной памяти, в котором прописаны параметры этого модуля. Таким образом атакующие могут сообщить процессору, что объем планки памяти в два раза больше, чем на самом деле, например, 32 гигабайта вместо 16. Таким образом можно перенаправить поток данных от «защищенной» виртуальной ОС в руки потенциального злоумышленника.
Демонстрация атаки показана на видео:
Здесь показана работа виртуальной машины, защищенной с помощью технологии AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging). Технология SEV предполагает шифрование памяти виртуальных машин, которым занимается специальный «защищенный» модуль в составе процессора AMD. SNP — дополнение к SEV, которое обеспечивает проверку целостности данных виртуальных машин и может определить попытку их взлома. В демонстрации же показано, как с помощью атаки BadRAM злоумышленник может читать данные из максимально защищенной памяти виртуальной системы. Исследователи смогли обойти не только шифрование данных, но и проверку целостности.
Все это стало возможно после довольно простого перепрограммирования SPD-чипа на модуле памяти, в результате которого чип сообщает процессору ложные данные об объеме, — в два раза больше, чем есть на самом деле. Это создает интересную ситуацию, когда две разных виртуальных области памяти соответствуют одной физической ячейке.
Естественно, на уровне ядра системы (все эксперименты проводились с ОС на базе Linux) нужно запретить запись любых данных в этот модуль памяти, кроме интересующих нас процессов. Большая часть работы посвящена достаточно сложному механизму подмены областей памяти, используемых защищенной виртуальной системой, так, чтобы они соответствовали реальным физическим ячейкам модифицированного модуля памяти. Была создана ситуация, когда к одной физической ячейке имеет доступ и (скомпрометированный) хост, и виртуальная ОС. Что позволяет читать данные из защищенной памяти виртуальной системы.
Перезапись данных в SPD возможна с помощью микрокомпьютера Raspberry Pi Pico. После модификации данных физический доступ к компьютеру или серверу больше не требуется, дальнейшие этапы атаки происходят полностью в софте. Интересно, что в двух протестированных модулях памяти базовая конфигурация не была заблокирована, что в теории открывает возможность полностью программной атаки. Требующей, впрочем, максимальных прав в системе.
Атака BadRAM ломает одну из реализаций концепции Trusted Execution Environment. TEE так или иначе позволяет защищать данные и вычисления даже в условиях «враждебного» окружения. Типичная задача, решаемая с помощью TEE, — это, например, защищенное проведение платежей с мобильного телефона, в условиях, когда сам телефон может быть заражен вредоносной программой либо намеренно взломан владельцем для похищения платежной информации. В случае виртуализации аналогичным образом речь идет о защите данных виртуальных систем, когда нельзя доверять «хосту». В таком сценарии и физическая модификация модулей памяти вполне может быть допустимым вариантом развития событий.
Преимуществом атаки BadRAM является дешевизна. Да, провести ее с реальным «полезным» результатом достаточно сложно, но для этого потребуется оборудование общей стоимостью долларов десять. Это можно сравнить с
В ответ на исследование компания AMD выпустила
Что еще произошло
Вышли еще три публикации экспертов «Лаборатории Касперского» в рамках отчета по итогам 2024 года. Это
Microsoft 10 декабря
Агентство по информационной безопасности в Германии (BSI)
Критическая уязвимость
В феврале следующего года разработчики браузера Firefox
Новая порция критических уязвимостей (две с рейтингом 9,1 балла, одна десятибалльная)