GDDRHammer, GeForge и GPUBreach используют уязвимости в памяти графического процессора, перехватывая управление центральным процессором.
Источник: Getty Images Источник: Getty Images Настройки текстаТекст рассказа Размер Маленький Стандартный Большой Ширина * Стандартный Широкий Ссылки Стандартный Оранжевый * Только для подписчиков
Узнать больше Свернуть в навигацию
Высокая стоимость высокопроизводительных графических процессоров, обычно составляющая 8000 долларов и более, означает, что в облачных средах они часто используются десятками пользователей. Три новые атаки демонстрируют, как злоумышленник может получить полный root-доступ к хост-машине, выполняя новые атаки Rowhammer на высокопроизводительные графические карты производства Nvidia.
Атаки используют растущую уязвимость аппаратного обеспечения памяти к переключению битов, при котором нули, хранящиеся в памяти, заменяются единицами и наоборот. В 2014 году исследователи впервые продемонстрировали, что многократный быстрый доступ — или «взлом» — к аппаратному обеспечению памяти, известному как DRAM, создает электрические помехи, которые переключают биты. Год спустя другая исследовательская группа показала, что, нацелившись на определенные строки DRAM, хранящие конфиденциальные данные, злоумышленник может использовать это явление для повышения привилегий непривилегированного пользователя до уровня root или обхода защиты в песочнице безопасности. Обе атаки были направлены на DRAM поколения DDR3.
От центрального процессора к графическому процессору: десятилетний путь компании Rowhammer.
За последнее десятилетие десятки новых атак Rowhammer эволюционировали, в частности, в следующие направления:
- Расширьте круг поддерживаемых типов DRAM, таких как DDR3 с защитой от ошибок и поколения DDR4, включая те, которые имеют защиту от ошибок и обновление строк памяти (Target Row Refresh) и защиту от ошибок (ECC).
- Используйте новые методы воздействия, такие как Rowhammer feng shui и RowPress, которые нацелены на чрезвычайно малые области памяти, хранящие конфиденциальные данные.
- Используйте подобные методы для осуществления атак по локальным сетям, получения root-прав на устройствах Android, кражи 2048-битных ключей шифрования.
- Впервые в прошлом году была проведена работа с памятью GDDR, используемой в высокопроизводительных графических процессорах Nvidia.
Последнее достижение доказало, что GDDR уязвима для атак типа Rowhammer, но результаты оказались скромными. Исследователи добились всего восьми переворотов битов, что составляет малую долю от того, что было возможно на DRAM для ЦП, а ущерб ограничился ухудшением производительности нейронной сети, работающей на целевом графическом процессоре.
В четверг две исследовательские группы, работающие независимо друг от друга, продемонстрировали атаки на две видеокарты поколения Ampere от Nvidia, которые выводят атаки на графический процессор на новый — и потенциально гораздо более серьезный — уровень: изменение битов в памяти GDDR, дающее злоумышленникам полный контроль над памятью ЦП, что приводит к полной компрометации системы хост-машины. Для успешной атаки необходимо отключить управление памятью IOMMU, как это предусмотрено по умолчанию в настройках BIOS.
«Наша работа показывает, что Rowhammer, хорошо изученный на центральных процессорах, представляет серьезную угрозу и для графических процессоров», — сказал Эндрю Квонг, соавтор одной из статей. «GDDRHammer: сильно нарушающие работу строк DRAM — межкомпонентные атаки Rowhammer с современных графических процессоров». «В нашей работе мы… показываем, как злоумышленник может вызвать перестановку битов на графическом процессоре, чтобы получить произвольный доступ на чтение/запись ко всей памяти центрального процессора, что приводит к полной компрометации системы».
Обновление от пятницы, 3 апреля: В пятницу исследователи представили третью атаку Rowhammer, которая также демонстрирует атаки Rowhammer на RTX A6000, позволяющие повысить привилегии до корневой оболочки. В отличие от двух предыдущих, по словам исследователей, она работает даже при включенном IOMMU.
«Повреждая таблицы страниц графического процессора , непривилегированное ядро CUDA может получить доступ к произвольному чтению/записи в память графического процессора, а затем использовать эту возможность для повышения привилегий на стороне ЦП, эксплуатируя недавно обнаруженные уязвимости безопасности памяти в драйвере NVIDIA», — объяснили исследователи. «В результате происходит компрометация всей системы вплоть до получения root-прав , без отключения IOMMU, в отличие от современных разработок, что делает GPUBreach более серьезной угрозой».
Представляем: GDDRHammer, GeForge, GPUBreach
Первая атака называется GDDRHammer, где первые четыре буквы означают как «Graphics DDR», так и «Greatly Disturbing DRAM Rows» (значительно тревожные ряды DRAM). Она работает против видеокарт RTX 6000 с архитектурой Ampere от Nvidia. Атака не работает против моделей RTX 6000 с более поздней архитектурой Ada, поскольку они используют более новую форму GDDR, которую исследователи не смогли реконструировать.
Используя новые схемы взлома и технику, называемую «массажем памяти», GDDRHammer вызвал в среднем 129 переключений на каждый банк памяти, что в 64 раза больше, чем у упомянутого ранее GPUHammer прошлого года. Что еще более важно, GDDRHammer может манипулировать распределителем памяти, чтобы нарушить изоляцию таблиц страниц GPU — которые, как и таблицы страниц CPU, представляют собой структуры данных, используемые для хранения сопоставлений между виртуальными адресами и физическими адресами DRAM — и пользовательских данных, хранящихся на GPU. В результате злоумышленник получает возможность как читать, так и записывать данные в память GPU.
В электронном письме Квонг продолжил:
Отличительной особенностью нашей работы от предыдущих атак является то, что мы обнаружили, что атака Rowhammer на память графического процессора представляет собой столь же серьезную угрозу безопасности, как и атака Rowhammer на центральный процессор, и что меры по смягчению последствий атаки Rowhammer на память центрального процессора недостаточны, если они не учитывают также угрозу, исходящую от атаки Rowhammer на память графического процессора.
Существует обширный объем работ, как теоретических, так и широко применяемых, посвященных программным и аппаратным средствам защиты от Rowhammer на ЦП. Однако мы показываем, что злоумышленник может обойти все эти средства защиты, используя Rowhammer на графическом процессоре и тем самым компрометируя ЦП. Таким образом, в будущем решения для защиты от Rowhammer должны учитывать как память ЦП, так и память графического процессора.
Вторая статья — «GeForge: Hammering GDDR Memory to Forge GPU Page Tables for Fun and Profit» — делает в основном то же самое, за исключением того, что вместо использования таблицы страниц последнего уровня, как это делает GDDRHammer, она манипулирует каталогом страниц последнего уровня. Ей удалось вызвать 1171 битовое изменение на RTX 3060 и 202 битовых изменения на RTX 6000.
GeForge также использует новые схемы взлома и манипуляции с памятью для искажения отображений таблиц страниц GPU в памяти GDDR6 с целью получения доступа на чтение и запись в адресное пространство памяти GPU. Оттуда он получает те же привилегии над памятью центрального процессора. Эксплойт GeForge, демонстрирующий возможность взлома RTX 3060, завершается открытием окна командной оболочки с правами root, что позволяет злоумышленнику выполнять команды с неограниченными привилегиями на хост-машине. Исследователи заявили, что GDDRHammer и GeForge могут сделать то же самое против RTC 6000.
«Манипулируя трансляцией адресов графического процессора, мы осуществляем атаки, нарушающие конфиденциальность и целостность данных в контексте графических процессоров», — написали авторы статьи на GeForge (которая в настоящее время недоступна для публичного просмотра). «Что еще более важно, мы подделываем отображения системных адресов в поврежденных таблицах страниц графического процессора, чтобы получить доступ к физической памяти хоста, что позволяет повысить привилегии с пользователя до root в Linux. Насколько нам известно, это первый эксплойт Rowhammer на стороне графического процессора, который позволяет повысить привилегии хоста».
GPUBreach, третья атака, обнаруженная в пятницу, использует другой подход. Она эксплуатирует уязвимости безопасности памяти в самом драйвере графического процессора. Ключевое преимущество заключается в том, что даже когда IOMMU ограничивает прямой доступ графического процессора к памяти буферами, принадлежащими драйверу, как и предполагалось, GPUBreach все равно повысит привилегии до уровня root. По словам исследователей, это происходит за счет «повреждения метаданных в этих разрешенных буферах, что заставляет драйвер (работающий с привилегиями ядра на ЦП) выполнять записи за пределы допустимого диапазона, которые контролируются злоумышленником, обходя защиту IOMMU без необходимости ее отключения».
Как и в двух других атаках, здесь также используется манипуляция памятью.
«Массировка памяти»: терапия для эксплуатации уязвимостей графического процессора.
Драйвер графического процессора Nvidia хранит таблицы страниц в зарезервированной области низкоуровневой памяти, где сохраненные биты не могут быть изменены с помощью алгоритма Rowhammer. Чтобы обойти это ограничение, GDDRHammer и GeForge перемещают таблицы в области, не защищенные от электрических помех. В GDDRHammer изменение данных осуществляется с помощью алгоритма Rowhammer, который изменяет биты, выделяющие доступ к защищенной области.
«Поскольку эти таблицы страниц определяют, какая память доступна, злоумышленник может изменить запись в таблице страниц, чтобы получить произвольный доступ ко всей памяти графического процессора», — пояснил Квонг по электронной почте. «Более того, мы обнаружили, что злоумышленник может изменить таблицу страниц на графическом процессоре так, чтобы она указывала на память центрального процессора, тем самым предоставляя ему возможность читать/записывать данные во всю память центрального процессора, что, конечно же, полностью компрометирует систему».
Между тем, Чжэнькай Чжан, соавтор статьи в GeForge, описал процесс массажа следующим образом:
Имея заданное место назначения, мы сначала изолируем содержащий его фрейм страницы размером 2 МБ. Затем мы используем разреженные обращения к UVM [унифицированной виртуальной памяти], чтобы опустошить пул выделения памяти драйвера по умолчанию для таблицы страниц и освободить изолированный фрейм точно в нужный момент, чтобы он стал новой областью выделения таблицы страниц драйвера. Далее мы тщательно продвигаем выделение памяти таким образом, чтобы запись каталога страниц попадала на уязвимую подстраницу внутри этого фрейма. Наконец, мы запускаем битовый инверс, чтобы поврежденная запись каталога страниц перенаправляла свой указатель в память, контролируемую злоумышленником, где поддельная таблица страниц может быть заполнена специально созданными записями.
В электронном письме представитель Nvidia сообщил, что пользователи, желающие получить информацию о том, подвержены ли они уязвимости и какие действия им следует предпринять, могут ознакомиться с этой страницей, опубликованной в июле в ответ на предыдущую атаку GPUHammer. Представитель не стал вдаваться в подробности.
Итак, куда же нам теперь двигаться?
Исследователи заявили, что уязвимы как видеокарты RTX 3060, так и RTX 6000. По их словам, изменение настроек BIOS по умолчанию для включения IOMMU устраняет уязвимость. IOMMU (Input-Output Memory Management Unit) сопоставляет видимые устройству виртуальные адреса с физическими адресами в памяти хоста. Его можно использовать для того, чтобы сделать определенные участки памяти недоступными.
«В контексте нашей атаки IOMMU может просто ограничить доступ графического процессора к конфиденциальным областям памяти на хосте», — пояснил Квонг. «Однако IOMMU по умолчанию отключен в BIOS для обеспечения максимальной совместимости, а также потому, что включение IOMMU влечет за собой снижение производительности из-за накладных расходов на преобразование адресов».
Как отмечалось в приведенных выше обновлениях, исследователи GPUBreach заявляют, что защита IOMMU не является защитой от их атаки.
Отдельным способом снижения рисков является включение кодов коррекции ошибок (ECC) на графическом процессоре, что Nvidia позволяет сделать с помощью командной строки. Как и в случае с IOMMU, включение ECC влечет за собой некоторые накладные расходы на производительность, поскольку уменьшает общий объем доступной рабочей памяти. Кроме того, некоторые атаки Rowhammer могут обойти меры по снижению рисков, связанные с ECC.
Пользователям видеокарт следует понимать, что единственными известными уязвимостями для Rowhammer являются RTX 3060 и RTX 6000 поколения Ampere, представленные в 2020 году. Неудивительно, если более новые поколения видеокарт от Nvidia и других производителей также подвержены подобным атакам, но поскольку темпы научных исследований обычно значительно отстают от более высоких темпов выпуска продукции, сейчас это невозможно узнать наверняка.
Лучшие облачные платформы, как правило, обеспечивают уровни безопасности, значительно превосходящие те, которые доступны по умолчанию на любительских и бытовых компьютерах. Ещё один важный момент: неизвестно ни одного случая активного использования атак Rowhammer в реальных условиях.
Истинная ценность этого исследования заключается в том, чтобы предупредить как производителей, так и пользователей графических процессоров о том, что атаки Rowhammer на эти платформы потенциально могут серьезно подорвать безопасность. Более подробная информация о GDDRHammer и GeForge доступна здесь.
В текст внесены изменения, добавлены новые сведения о GPUBreach.
Источник: arstechnica.com





















