Как можно взломать промышленный сервер через его GPU, не оставив следов? Столь сложная атака, носящая преимущественно теоретический характер, обычно опирается на аппаратные уязвимости. Здесь речь идет даже не о конструктивных дефектах самого оборудования, а скорее об особенностях его функционирования, порой на физическом уровне. В article недавней работе канадских исследователей из Университета Торонто представлена GPUThor — новая, более эффективная атака типа Rowhammer, которая эксплуатирует именно такое аппаратное поведение в видеопамяти.
Rowhammer и графические процессоры
GPUThor опирается на идею, лежащую в основе первоначальной атаки на оперативную память (RAM), впервые представленной в 2014 году в étude Rowhammer. Rowhammer и все аналогичные атаки основаны на простом факте: ячейки памяти не полностью изолированы друг от друга. Повторяющийся доступ (hammering) к одной и той же строке ячеек может при определенных условиях повредить данные (то есть инвертировать биты) в соседних строках. Как только подтверждается возможность такого эффекта, остается лишь найти способ использовать его в злонамеренных целях, например, вызвав отказ в обслуживании или даже выполнив произвольный код.
Какую же роль во всем этом играют серверы и графические ускорители? Стремительное развитие технологий искусственного интеллекта сопровождалось резким ростом спроса на аппаратное обеспечение, способное выполнять множество параллельных и однотипных вычислений. А ускорители, встроенные в видеокарты, предназначенные для видеоигр, идеально подходят для таких нагрузок. Поэтому облачные провайдеры, сдающие графические ускорители в аренду всем желающим, представляют собой лакомую мишень для атак типа Rowhammer. Гипотетический сценарий выглядит следующим образом: злоумышленник покупает доступ к графическому процессору и использует его для попытки скомпрометировать всю инфраструктуру провайдера. Именно поэтому атаки на видеопамять продолжают вызывать особый интерес у исследователей.
Как работает атака GPUThor?
Весной этого года было опубликовано три новых отчета, в каждом из которых описывалась новая атака на ускорители Nvidia, оснащенные памятью GDDR6. Все три исследования дали довольно скромные результаты: наибольший ущерб наносился при атаке на потребительскую видеокарту, в то время как атаки на промышленный ускоритель вроде Nvidia A6000 оказались значительно менее эффективными. Кроме того, ни одна из этих атак не сработала при включенной защите памяти ECC (код коррекции ошибок).
GPUThor также рассматривает возможность взлома старых ускорителей Nvidia Ampere с памятью GDDR6: исследователи изучили модели A4000, A4500, A5000 и A6000. Однако эффективность этого нового метода, измеряемая количеством ячеек с принудительно измененными данными, оказалась значительно выше. Исследователи также утверждают, что эту технику можно применить и к более новым ускорителям, по крайней мере в теории.
Эффективность GPUThor по сравнению с предыдущими атаками. Source
Как были получены эти результаты? Стандартным механизмом защиты от атак типа Rowhammer является Target Row Refresh (TRR), который и был подробно изучен канадскими исследователями. Оказывается, если механизм TRR обнаруживает попытки повторяющегося доступа, он принудительно обновляет соседние ячейки, что делает повреждение данных сложным или даже невозможным. Злоумышленники обычно пытаются обойти механизм TRR, обращаясь к ячейкам случайным образом, что вносит путаницу в систему защиты и снижает ее эффективность. Исследователи обнаружили, что на картах Nvidia Ampere механизм TRR срабатывает лишь раз в 72 цикла обновления ячеек памяти. Опираясь на это открытие, они разработали схему нерегулярного доступа, целясь в нужные ячейки гораздо интенсивнее, чем раньше. В результате по сравнению с исходной атакой GDDR, известной как «GPUHammer» и служащей эталоном, GPUThor оказалась примерно в 7000–23000 раз эффективнее.
Результаты и перспективы
Сочетание этого более агрессивного метода атаки с другими улучшениями позволило получить от 72 000 до 377 000 инверсий битов на гигабайт. Первые варианты Rowhammer в лучшем случае достигали лишь нескольких сотен. Это позволило исследователям добиться ошибок в два и даже три бита. Защита ECC легко исправляет однобитовую ошибку, но не двухбитовую.
Этот новый метод также наглядно демонстрирует реальный ущерб, который может нанести атака типа Rowhammer: повторяющийся доступ к видеопамяти с помощью GPUThor вызывает отказ в обслуживании. Ускоритель сначала перезагружается, что приводит к потере данных, а затем сообщает администратору о необходимости его замены.
Несмотря на эти впечатляющие результаты исследований, атаки GPUThor не достигают полного успеха. С одной стороны, исследователям не удалось продемонстрировать выполнение произвольного кода в результате повреждения данных, хотя они утверждают, что это возможно даже при включенной технологии ECC. С другой стороны, атака, которая в тысячи раз эффективнее, намекает на теоретическую возможность компрометации и более новых ускорителей, но это предположение еще предстоит доказать.
Тем не менее канадские исследователи доказали, что атаки Rowhammer на графические ускорители все еще таят в себе неиспользованный потенциал. Не стоит удивляться, если в будущих исследованиях появятся аналогичные атаки на еще более сложные устройства, которые до сих пор считались весьма устойчивыми к подобным угрозам.








