Rowhammer адаптировали для взлома компьютеров через видеокарты — разработаны эксплойты GDDRHammer и GeForge
Читать в полной версииДве группы учёных независимо друг от друга разработали концепции атаки GDDRHammer и GeForge — схемы подмены данных в памяти видеокарт. Этот эксплойт открывает гипотетическому злоумышленнику неограниченный доступ к ресурсам всей системы вплоть до повышения привилегий пользователя.
Источник изображений: gddr.fail
В 2014 году исследователи впервые продемонстрировали схему атаки Rowhammer: многократный быстрый доступ к оперативной памяти создаёт электрические помехи, которые позволяют подменять значения битов — нулей на единицы и наоборот. На следующий год другая группа учёных показала, что если прицельно воздействовать на определённые строки DRAM, в которых хранятся конфиденциальные данные, можно обходить защиту песочницы безопасности и повышать привилегии ограниченных в правах пользователей — тогда обе атаки работали на памяти DDR3. Схема атаки Rowhammer развивалась и дальше, и в минувшем году её адаптировали для памяти на видеокартах (GDDR). На начальном этапе исследователи подменили всего восемь битов памяти и достигли простого ухудшения качества модели искусственного интеллекта.
Накануне две независимые друг от друга группы исследователей продемонстрировали два механизма атак на видеокарты Nvidia поколения Ampere — переключая биты GDDR, они добились полного контроля над памятью центрального процессора и полной компрометации целевой машины. Чтобы атака сработала, управление памятью IOMMU должно быть отключено, как это предусмотрено по умолчанию в настройках BIOS.
Атака первой группы учёных получила название GDDRHammer, и она срабатывает на профессиональных видеокартах Nvidia RTX 6000 на архитектуре Ampere, но не более новой Ada, в которой используется другая GDDR, и которую исследователи ещё не подвергли обратному проектированию. Схема атаки GDDRHammer помогла исследователям добиться в среднем 129 переключений битов на каждый банк памяти и открыла возможность манипулировать распределением памяти, нарушая изоляцию таблиц страниц — структур данных, отвечающих за сопоставление виртуальных и физических адресов DRAM. В результате гипотетический злоумышленник получает возможность как считывать данные из памяти видеокарты, так и производить запись в неё. Стандартных методов защиты от атак класса Rowhammer уже недостаточно, указывают учёные, потому что они не учитывают работу с памятью на видеокарте.
Предложенная другой группой учёных схема атаки GeForge позволяет манипулировать не таблицами с адресами страниц памяти, а уровнем выше — каталогом с указанием, где хранятся эти страницы. Используя эту схему, исследователи подменили знамения 1171 битов на видеокарте Nvidia GeForce RTX 3060 и 202 — на RTX 6000. Управляя данными в каталоге таблиц памяти, исследователи получили возможность изменять целые массивы адресации, а не отдельные записи в таблицах, что открывает большее пространство для злоупотреблений. Продемонстрированный авторами проекта эксплойт GeForge завершается открытием терминала командной строки с правами root, то есть с неограниченными привилегиями на хост-машине. То же, уверяют они, можно делать на RTX 6000.
Драйвер видеокарты Nvidia предусматривает хранение таблиц страниц памяти в зарезервированной области, для которой атаки класса Rowhammer не работают. Чтобы обойти эту защиту, эксплойты GDDRHammer и GeForge предусматривают перемещение этих данных в небезопасные области. В случае GDDRHammer производится воздействие на биты, отвечающие за доступ к защищённой области: эти таблицы определяют, какая область памяти доступна, и манипуляции этими данными открывают произвольный доступ ко всей памяти на видеокарте. Более того, можно менять данные таблиц на видеокартах таким образом, чтобы они ссылались на странице в основной памяти центрального процессора. В результате злоумышленнику открывается доступ к чтению и записи всей системной памяти, то есть машина компрометируется полностью.
В случае GeForge изолируется и берётся под контроль участок памяти размером 2 Мбайт. Далее производятся разреженные обращения к унифицированной виртуальной памяти (UVM), в результате которых опустошается ресурс выделения памяти, предусмотренный по умолчанию драйвером, и в нужный момент высвобождается изолированный блок, чтобы драйвер выделял память в этом фрагменте. В итоге необходимая запись попадает на нужную подстраницу в этом блоке, где можно подменять значения битов.
Чтобы защититься от этих схем атаки, необходимо включить в BIOS функцию IOMMU (Input-Output Memory Management Unit), которая сопоставляет видимые машине виртуальные адреса с физическими адресами в памяти хоста — она позволяет делать определённые фрагменты памяти недоступными. Но по умолчанию эта функция отключена из соображений совместимости и из-за того, что она снижает производительность системы. Ещё один способ — включить из командной строки коды коррекции ошибок (ECC), но это также грозит снижением производительности и обходится при помощи эффекта Rowhammer.
Пока учёные подтвердили возможность производить атаки на видеокарты Nvidia GeForce RTX 3060 и RTX 6000 поколения Ampere образца 2020 года. Но это не исключает возможности схожим образом взламывать видеокарты других поколений и других производителей. Следует также отметить, что прецедентов эксплуатации Rowhammer в реальных условиях до сих пор не зафиксировано.