Ошибка в чипе AMD позволяет незаметно встроить бэкдор в виртуальную машину.
Группа европейских ученых выявила уязвимость в механизме AMD Secure Encrypted Virtualization (SEV), который обеспечивает защиту виртуальных машин. Эксперты продемонстрировали, что обход системы возможен с использованием оборудования стоимостью около $10. Доклад будет представлен на симпозиуме IEEE по безопасности и приватности в 2025 году.
SEV служит для шифрования памяти виртуальных машин, защищая от несанкционированного доступа. Обновлённая версия SEV-SNP, добавляющая защиту от атак перераспределения памяти, также подверглась исследованию. Результаты показали, что ошибка позволяет обойти защиту и получить доступ к данным.
Атака основывается на манипуляции чипом Serial Presence Detect (SPD), который содержится в модулях оперативной памяти DDR4 и DDR5. Этот чип отвечает за передачу базовой информации о модулях памяти системе во время загрузки. BadRAM позволяет SPD-чипу предоставлять ложные данные о доступной памяти, создавая так называемые «призрачные» адреса. Эти адреса дают доступ к защищённым областям памяти, которые SEV-SNP должна блокировать.
Для проведения атаки достаточно использовать недорогое оборудование, например Raspberry Pi, стоимостью менее $10. Устройство подключается к чипу SPD на короткое время, чтобы изменить данные о памяти. В некоторых случаях можно обойтись только программными средствами, что делает уязвимость ещё более опасной.
Тестовый стенд (BadRAM.eu)
После модификации чипа SPD создаются «призрачные» адреса памяти, которые не отображаются системе как защищённые. Злоумышленник может перенастроить операционную систему, чтобы игнорировать эти адреса, но сохранить доступ к реальным данным. Например, в Linux можно использовать параметр memmap для настройки ядра таким образом, чтобы адреса отображались в системе корректно, несмотря на компрометацию.
Некоторые модули памяти, например DDR4 от Corsair, остаются уязвимыми из-за отсутствия защиты на уровне SPD. Даже более старые модули, такие как DDR3, могут быть подвержены атаке при манипуляциях с чипом SPD. Уязвимость затрагивает одну из самых защищённых линий процессоров AMD Epyc 7003, широко применяемых в облачных сервисах Amazon AWS, Google Cloud и Microsoft Azure. При этом решения от Intel (SGX, TDX) и Arm CCA защищены от подобных атак благодаря внедрённым контрмерам.
BadRAM позволяет получить доступ к защищённым данным, таким как криптографические хэши, подтверждающие целостность VM. С помощью этих данных атакующий может подменить хэш-значение, необходимое для запуска VM, и скрыть факт установки бэкдора. Так злоумышленник может получить полный доступ к зашифрованной памяти VM.
Исследователи сообщили о находке AMD 26 февраля и опубликовали доказательство концепции (Proof-of-Concept, PoC). Компания отслеживает уязвимость под кодами CVE-2024-21944 (CVSS: 5.3) и AMD-SB-3015. AMD подтвердила наличие проблемы и рекомендовала использовать модули памяти с защитой SPD, соблюдать физическую безопасность систем и обновить прошивки, выпущенные для устранения уязвимости.
От классики до авангарда — наука во всех жанрах