Представлены работающие на GPU прототипы руткита и кейлоггера для Linux

Исследователи безопасности из команды Team Jellyfish воплотили в жизнь теоретический метод применения GPU для отслеживания активности в системе и подготовили рабочие прототипы руткита и кейлоггера, выполняемые на GPU для скрытия своего присутствия в системе. Руткит и кейлоггер примечательны тем, что получив доступ к GPU, они обходятся без традиционных привязок и изменений кода ядра операционной системы. Отслеживание буфера, содержащего данные о нажатых клавишах, производится непосредственно из GPU при помощи DMA. На CPU выполняется только инициализация, после чего вся активность руткита ограничивается GPU.

В настоящее время реализована только работа на системах с отдельными видеокартами (GPU, интегрированные с CPU, пока не поддерживаются) AMD и NVIDIA. Прототип руткита реализован в пространстве пользователя и загружается при помощи LD_PRELOAD. Для организации выполнения кода на GPU применяется OpenCL API, что требует наличия драйверов с поддержкой OpenCL. После загрузки все данные размещаются в видеопамяти, что затрудняет обнаружение руткита. Перехват содержимого памяти CPU производится через DMA. Выполнение на стороне GPU также позволяет задействовать средства GPU для выполнения сложных вычислений.

Руткит: github.com/x0r1/jellyfish
Кейлоггер: github.com/x0r1/Demon