Дроворуб: вредоностный Linux-фреймворк с руткит модулем ядра

Д
ЦРУ и ФБР опубликовали совместный отчёт об обнаружении ранее неизвестного комплексного зловреда «Дроворуб» (Drovorub), разработчики которого, как утверждают исследователи, связаны с российскими спецслужбами и хакерской группировкой Fancy Bear, также известной под именами APT28, Group 74, Iron Twilight, PawnStorm, Sednit, Sofacy и Strontium.

«Дроворуб» включает четыре основных исполняемых компонента: клиентский модуль-имплант, руткит в виде модуля ядра Linux, клиентские модуль для передачи файлов и перенаправления портов/трафика, управляющий сервер. Сервер отвечает за регистрацию, аутентификацию и отправку задачи клиентам. Для связи используется протокол WebSocket.

sm.drovorub.800.png
Клиентская часть поставляется с готовыми настройками для подключения к серверу и может выполнять произвольные команды от имени root-пользователя, скачивать и отправлять любые файлы, перенаправлять трафик на другие хосты и клиенты, в том числе организуя туннели до других заражённых хостов в скомпрометированной сети, которые могут не иметь выхода в Интернет.

sm.tun.800.png
После установки клиента загружается модуль ядра (руткит), и вот тут начинается самое интересное. Модуль Drovorub-kernel ставит хуки на системные вызовы самого ядра и перехватывает их. Модуль скрывает в списке процессов присутствие самого себя, клиента и его дочерних процессов — в /proc невозможно увидеть хоть какие-то следы присутствия лишнего ПО в системе. Также он скрывает любые файлы и директории самого клиента и любые другие по запросу. Кроме того, руткит занимается фильтрацией пакетов, сокетов (включая raw) и правил netfilter.

Общение между клиентом и модулем ядра организовано любопытным способом. Модуль создаёт псевдоустройство (такое как /dev/zero) и «прослушивает» весь поток данных, проходящих через него, вычленяя данные от клиента. Для обратной связи модуль посылает сигнал клиенту и когда тот обращается к псевдоустройству отдаёт необходимую порцию данных. И это, кстати, даёт один из самых простых способов проверить наличие руткита в системе, отправив на псевдоустройство команду скрыть какой-либо файл.

sm.c2packet.800.png

Остальные локальные методы включают более затратные анализ памяти и образа диска. Также можно заметить следы деятельности в сети и логах самого ядра. Для предотвращения заражения рекомендуется обновить ядро Linux до версии 3.7 или старше, устанавливать обновления, запретить загрузку недоверенных и неподписанных модулей ядра, а также использовать UEFI Secure Boot.


Источник:
  • Bleeping Computer
  • Servernews
 
Назад
Сверху Снизу