Недавно раскрытая атака класса Rowhammer под названием GPUThor способна обходить защиту на основе кодов коррекции ошибок (ECC) в видеокартах NVIDIA, что позволяет проводить атаки типа «отказ в обслуживании» (DoS) и повышать привилегии до уровня root.
В исследовательской работе, опубликованной специалистами Университета Торонто, отмечается, что GPUThor позволяет добиться значительно более практичной частоты переворота битов, чем предыдущие концепции, включая разработанные той же командой атаки GPUHammer и GPUBreach. Эти методы фактически потеряли актуальность после внедрения ECC.
Атаку продемонстрировали на профессиональных видеокартах NVIDIA поколения Ampere с памятью GDDR6. В число протестированных моделей вошли RTX A4000, RTX A4500, RTX A5000 и RTX A6000 – все они широко используются в инфраструктуре для искусственного интеллекта и облачных вычислений.
В чём доработка
Rowhammer – это название класса атак, при которых к строкам памяти многократно обращаются, чтобы повысить вероятность изменения битов в соседних областях памяти: с единицы на ноль или наоборот. Это приводит к повреждению данных и создаёт риски для безопасности. Поскольку обучение моделей ИИ в значительной степени зависит от вычислительной мощности GPU, успешная атака Rowhammer может серьёзно повлиять на точность модели.
Чтобы снизить риски, NVIDIA использует механизмы защиты вроде SECDED ECC: он исправляет одиночные битовые ошибки и обнаруживает двойные в контролируемых блоках памяти.
Исследователи доработали GPUThor так, чтобы обращения к памяти выполнялись по неравномерной схеме и с такой частотой, которая позволяет избежать срабатывания механизма Target Row Refresh (TRR) в памяти GDDR6. Им удалось добиться этого, учитывая две недокументированные особенности работы GPU: то, как объединяются повторяющиеся запросы к памяти, и то, насколько часто срабатывает TRR.

По сравнению с предыдущими концепциями доработка позволяет генерировать в 6,6 раза больше активаций строк-агрессоров и добиваться от 72 000 до 377 000 переворотов битов на каждый гигабайт памяти на протестированных GPU без защиты ECC. Это в 4 548–23 597 раз выше, чем у GPUHammer, и приближается к частоте переворотов, которую обеспечивают мощные Rowhammer-атаки на процессоры вроде Blacksmith.

При такой частоте пригодный для эксплуатации переворот бита находится примерно за 1,1 минуты. Для GPUHammer на это требовалось 21,9 часа.
При включённой ECC-защите GPUThor вызвала 387 двойных битовых ошибок, которые ECC способна обнаружить, но не может исправить, а также две тройные битовые ошибки, которые ECC исправила неправильно, что привело к повреждению данных.
Отказ в обслуживании и повышение привилегий
Исследователи показали, что GPUThor может вызвать состояние отказа в обслуживании на RTX A6000 с включённой ECC-защитой. В результате GPU перезагружается каждые два часа, а все выполняющиеся на нём рабочие нагрузки завершаются. После многократного повторения атаки на той же видеокарте устройство в конечном итоге помечает себя как требующее замены.

Более интересный сценарий связан с повышением привилегий до уровня root. Исследователи утверждают, что этого можно добиться за счёт повреждения таблиц страниц GPU: непривилегированная программа CUDA получает произвольный доступ к памяти, что позволяет открыть root-оболочку в основной системе.
Как защититься
Помимо четырёх моделей, уязвимость которых подтверждена, исследователи отмечают, что повышение привилегий по-прежнему возможно на серверных GPU поколения Ampere, включая A100 – даже там, где ограничения архитектуры повышают устойчивость к отказу в обслуживании, поскольку такие ускорители всё ещё используют ECC уровня SECDED.
В случае некоторых GPU поколения Blackwell механизм устойчивости RAS Repair делает проведение атаки более длительным, но не предотвращает её полностью. Согласно исследованию, даже GPU с памятью HBM3/e и GDDR7, оснащённой встроенной ECC на уровне кристалла, потенциально могут быть уязвимы, если атакующему удастся вызвать множественные перевороты битов.
Исследователи сообщили NVIDIA о своих результатах 29 апреля, а 21 августа компания опубликовала рекомендации по защите. NVIDIA советует включить одновременно SYS-ECC и изоляцию IOMMU/DMA, отслеживать телеметрию ошибок GPU, а также ограничить совместное использование ресурсов и выполнение недоверенных рабочих нагрузок.
Компания отмечает, что уровень риска зависит от конкретного устройства DRAM, технологии памяти, архитектуры платформы, встроенных механизмов защиты DRAM и конфигурации системы. При этом NVIDIA указывает, что на протестированных GPU с памятью GDDR6X и HBM2e при использовании тех же шаблонов атаки переворотов битов обнаружено не было.
Что советуют исследователи. По возможности избегать совместного использования GPU несколькими арендаторами, отслеживать счётчики ошибок ECC и ограничивать выполнение недоверенных рабочих нагрузок CUDA. Для полной защиты, вероятно, потребуются более надёжные механизмы ECC, способные исправлять множественные битовые ошибки, а также аппаратные средства защиты в будущих поколениях GPU.
Подробности об атаке и список затронутых моделей исследователи собрали на отдельном сайте GPUThor.