Атаки GDDRHammer и GeForge: как искажение памяти GPU открывает доступ ко всей оперативной памяти
Исследователи из университетов США и Австралии представили два новых варианта атак класса RowHammer - GDDRHammer и GeForge. Эти методики позволяют, запустив на видеокарте NVIDIA непривилегированное ядро CUDA, намеренно вызывать ошибки в отдельных битах видеопамяти GDDR и в итоге получить доступ ко всей оперативной памяти, относящейся к адресному пространству центрального процессора. На практике это даёт возможность поднять привилегии до уровня root, не имея прав администратора в исходной системе.
В отличие от ранее описанной атаки GPUHammer, которая была ограничена воздействием на данные внутри памяти самой видеокарты, GDDRHammer и GeForge пробивают изоляцию между GPU и системной памятью. То есть злоумышленник, обладая доступом только к выполнению пользовательского CUDA-кода, может вмешаться в работу механизмов адресации памяти и выйти за пределы того, что ему разрешено.
---
Как именно работает атака: краткий разбор механизма
Обе атаки основаны на классической идее RowHammer: путём интенсивного, циклического чтения определённых строк памяти добиться преждевременной потери заряда в соседних ячейках DRAM. Поскольку каждая ячейка динамической памяти - это конденсатор плюс транзистор, непрерывное "дёргание" близких строк вызывает паразитные колебания напряжения. Если сделать это достаточно часто, соседняя ячейка не успевает полностью восстановить заряд при регенерации, и один или несколько битов в ней могут спонтанно изменить значение.
В случае с GDDRHammer и GeForge объектом атаки выступает видеопамять GDDR на видеокартах NVIDIA. Злоумышленник не имеет прямого доступа к тем ячейкам, в которых выполняется критически важный код или хранятся таблицы трансляции адресов, но за счёт правильно подобранного паттерна обращений способен индуцировать битовые ошибки именно в нужных местах - в структурах данных, управляющих виртуальной памятью GPU.
---
Взлом через подмену таблиц страниц GPU
Ключевая идея атак - вмешательство в работу аллокатора памяти GPU (функция cudaMalloc и связанные с ней механизмы). Эти компоненты зависят от таблиц страниц, которые описывают соответствие между виртуальными адресами в пространстве GPU и физическими адресами в видеопамяти или в системной оперативной памяти.
Таблицы страниц для GPU сами лежат в GDDR-памяти. Если через RowHammer исказить нужные биты внутри этих таблиц, можно:
- перенаправить виртуальный адрес CUDA-ядра на произвольный физический адрес,
- в том числе - на физические адреса в оперативной памяти CPU,
- изменить флаги, управляющие тем, отображается ли этот адрес на память видеокарты или на память системы (через механизм APERTURE).
В результате злоумышленник добивается того, что выполняемое на GPU непривилегированное ядро CUDA получает возможность читать и записывать данные в основной ОЗУ, обходя программные ограничения и защитные механизмы операционной системы.
---
Чем отличаются GDDRHammer и GeForge
Обе методики используют одну и ту же физическую основу - индукцию битовых ошибок в видеопамяти - но нацелены на разные уровни структур управления виртуальной памятью GPU:
- GDDRHammer фокусируется на модификации таблицы страниц последнего уровня (Last Level Page Table, PT). То есть атака направлена непосредственно на записи, которые описывают конечное соответствие виртуальных и физических адресов.
- GeForge воздействует на каталог страниц последнего уровня (Last Level Page Directory, PD0). В этом случае искажение происходит "выше по иерархии" - в записях, указывающих на сами таблицы страниц или их крупные блоки.
Разница в целевых структурах даёт исследователям гибкость: в одних конфигурациях проще эксплуатировать PT, в других - PD0. Но с точки зрения результата обе атаки приводят к тому, что GPU может обратиться к произвольным областям памяти CPU.
---
Обход защиты и работа с памятью CPU через PCIe
Таблицы трансляции адресов для GPU изначально разрабатывались в том числе для реализации прямого доступа видеокарты к системной памяти. Это удобно для высокопроизводительных вычислений: GPU может работать с большими массивами данных, не дублируя их полностью в видеопамяти.
Если злоумышленник, используя GDDRHammer или GeForge, подменяет адрес в таблице страниц на физический адрес в основной ОЗУ и одновременно выставляет флаг APERTURE, включающий режим отображения памяти CPU, видеокарта начинает напрямую обращаться к системной памяти по шине PCIe. При этом в конфигурациях, где IOMMU отключён (а по умолчанию это часто так и есть), механизм аппаратной изоляции устройств ввода-вывода не срабатывает, и защита от подобной подмены оказывается неактивной.
Так GPU получает возможность:
- читать произвольные участки оперативной памяти,
- изменять критически важные структуры (таблицу процессов, маркеры привилегий, криптографические ключи и т.п.),
- в итоге - добиться повышения привилегий до уровня ядра или суперпользователя.
---
На каких видеокартах атака уже подтверждена
Исследователи продемонстрировали успешную эксплуатацию GDDRHammer и GeForge на следующих моделях NVIDIA:
- профессиональные видеокарты RTX A6000 на архитектуре Ampere (новые - от нескольких тысяч долларов, б/у - всё ещё крайне дорогие и востребованные в сегменте высокопроизводительных вычислений);
- массовые потребительские карты RTX 3060, которые считаются типичными игровыми и рабочими GPU среднего ценового сегмента.
Важно, что атака работает не только на флагманских профессиональных решениях, но и на относительно доступных массовых моделях. Это означает, что потенциальное количество уязвимых систем огромно - от рабочих станций разработчиков и дата-сайентистов до игровых ПК и домашних машин с поддержкой CUDA.
---
Рост эффективности по сравнению с прошлыми атаками
Одним из ключевых достижений исследователей стала разработка техники, позволяющей существенно повысить частоту появления битовых искажений по сравнению с предыдущими GPU-ориентированными атаками.
Благодаря:
- более тонкому подбору паттернов обращений к памяти,
- использованию внутреннего параллелизма GPU и массового запуска потоков,
- оптимизации расположения целевых строк относительно "бомбардируемых" строк,
удалось увеличить частоту возникновения ошибок примерно в 64 раза по сравнению с ранними подходами. Это делает атаки не только теоретическими, но и практически осуществимыми за разумное время в реальных условиях, при типичной загрузке GPU пользовательскими задачами.
---
Временная защита: режим ECC и его ограничения
В качестве оперативной меры защиты производитель рекомендует включать режим коррекции ошибок ECC (Error Correcting Code). Это можно сделать через управляющие утилиты драйвера, что заставляет видеокарту:
- отслеживать одиночные битовые ошибки,
- автоматически их исправлять или хотя бы регистрировать,
- тем самым существенно снижая вероятность успешного проведения атаки RowHammer.
Однако у этого подхода есть несколько минусов:
- включение ECC приводит к дополнительным накладным расходам по памяти и производительности;
- не все массовые видеокарты поддерживают ECC или позволяют включать его в пользовательских системах;
- уже были показаны методы атак (например, ECCploit, ECC.fail-подобные идеи), демонстрирующие, что коррекция ошибок сама по себе не всегда гарантирует защиту от целенаправленных, аккуратно подготовленных RowHammer-эксплойтов.
То есть ECC - это полезная, но временная и не абсолютная защита, особенно в условиях, когда атакующий может долго подбирать и оттачивать шаблоны обращения к памяти.
---
RowHammer: от классической DRAM до GPU
Самому принципу RowHammer уже больше десяти лет. Впервые его описали ещё в 2014 году, после чего началась затяжная "гонка вооружений" между разработчиками аппаратного обеспечения и специалистами по безопасности. Производители памяти пытались встроить в чипы дополнительные механизмы защиты, а исследователи - находили способы их обойти.
Из важных вех:
- атаки были реализованы для DDR3, DDR4 и DDR5;
- уязвимыми оказались системы на процессорах Intel, AMD и ARM;
- показана возможность эксплуатации GDDR-памяти на видеокартах, в том числе NVIDIA;
- были предложены варианты обхода ECC и методы удалённой атаки, включая сценарии через выполнение JavaScript-кода в браузере.
Для защиты от RowHammer в чипы памяти добавили механизм TRR (Target Row Refresh), который должен автоматически обновлять соседние строки при подозрительно частых обращениях к одной и той же строке. Но практика показала, что TRR защищает только от части сценариев; у атак остаётся пространство для манёвра - достаточно подобрать такие паттерны доступа, которые обойдут установленный порог срабатывания TRR или распределят нагрузку по нескольким строкам.
---
Почему GPU становятся всё более привлекательной целью
Раньше большинство атак сосредотачивалось на CPU и системной памяти, а GPU воспринимались как вспомогательные устройства для рендеринга и вычислений без прямого доступа к критичным областям. Но современная роль видеокарт изменилась:
- GPU активно используются для задач машинного обучения, высокопроизводительных вычислений, обработки больших массивов данных;
- на них нередко обрабатываются чувствительные данные: модели, обучающие выборки, результаты вычислений, шифровальные ключи;
- операционные системы и драйверы часто предоставляют удобные API для передачи данных между памятью CPU и GPU, упрощая жизнь и разработчикам, и потенциальным злоумышленникам.
Как только GPU получает возможность напрямую обращаться к системной памяти (а это стандартная возможность для ускорения вычислений), любые уязвимости в механизмах трансляции адресов превращаются в опасный канал для обхода изоляции процессов и повышения привилегий.
---
Что это значит для пользователей и администраторов
Риски особенно серьёзны в следующих сценариях:
- облачные и виртуализированные среды, где одним GPU делятся несколько арендаторов;
- серверы с поддержкой GPU-пасстру в гипервизорах: гостевые системы получают почти прямой доступ к железу;
- рабочие станции разработчиков и дата-сайентистов, где запускаются сторонние CUDA-приложения и контейнеры;
- игровые и домашние ПК, на которые может быть установлен вредоносный софт, использующий CUDA или другие API для работы с GPU.
Основные меры предосторожности:
1. По возможности включать IOMMU в BIOS/UEFI и в операционной системе, чтобы ограничить доступ устройств ввода-вывода к системной памяти.
2. Включать ECC на видеокартах, где это возможно, особенно в серверных и критичных системах.
3. Минимизировать запуск недоверенного кода, использующего 3D- или CUDA-ускорение, особенно внутри виртуальных машин и контейнеров.
4. Обновлять драйверы GPU и прошивку, следить за исправлениями и рекомендациями производителя.
---
Особое внимание: виртуализация и 3D-ускорение
Ситуация с GDDRHammer и GeForge особенно актуальна для виртуальных машин и решений десктопной виртуализации. Если гостевая система получает доступ к трёхмерному ускорению или прямому использованию GPU, она фактически может запускать на видеокарте свой собственный непривилегированный код. При наличии уязвимостей типа RowHammer это создаёт реальный риск:
- выхода из гостевой ОС в хост;
- чтения и модификации памяти других гостевых машин, использующих тот же GPU;
- захвата контроля над системой, которая изначально считалась изолированной.
Поэтому в средах, где запускаются недоверенные гости, использование 3D-ускорения и GPU-пасстру для них должно рассматриваться как потенциально опасное и включаться только при строгой необходимости и дополнительных мерах защиты.
---
Перспективы: куда будет двигаться защита
GDDRHammer и GeForge показывают, что простое наращивание скорости и плотности памяти без переосмысления моделей безопасности ведёт к системным уязвимостям. Для реальной защиты потребуются:
- более надёжные аппаратные механизмы контроля за аномальными шаблонами доступа к памяти;
- усиление роли IOMMU и обязательное включение его в серверных и облачных конфигурациях;
- переосмысление архитектуры драйверов и подсистем виртуальной памяти для GPU, чтобы критически важные структуры либо не лежали в потенциально уязвимых областях, либо были дополнительно защищены;
- развитие средств мониторинга, позволяющих обнаруживать характерные признаки RowHammer-атак (например, необычные паттерны обращений к памяти GDDR).
С учётом того, что уже показаны обходы TRR и ECC, можно ожидать продолжения гонки между исследователями и производителями оборудования. В ближайшие годы проблема аппаратных атак на память - как системную, так и видеопамять - останется одной из ключевых тем в сфере кибербезопасности.
---
GDDRHammer и GeForge демонстрируют, что GPU давно перестали быть "второстепенным" компонентом и должны рассматриваться в модели угроз наравне с процессором и системной памятью. Любая система, где видеокарта активно используется для вычислений, - от домашнего ПК до крупного кластера машинного обучения, - потенциально подвержена подобным атакам и нуждается в продуманной стратегии защиты.



