Вредоносное ПО под названием "perfctl" на протяжении как минимум трёх лет нацелено на серверы и рабочие станции Linux, оставаясь в основном незамеченным благодаря высоким уровням скрытности и использованию руткитов.
Согласно исследователям Aqua Nautilus, которые обнаружили perfctl, это вредоносное ПО, вероятно, нацелилось на миллионы серверов Linux за последние годы и, возможно, заразило несколько тысяч из них.
Эти выводы основаны на многочисленных сообщениях жертв вредоносного ПО, опубликованных на онлайн-форумах, все из которых содержат индикаторы компрометации, связанные исключительно с активностью perfctl.
Вектор атаки — неверно настроенные сервера и утёкшие данные доступа. Руткиты для скрытности, сокет Unix для внутренней коммуникации и TOR для стука вовне.
Малварь также резко обрубает активность, если юзер заходит на сервер. Так, у одного юзера ЦП шкалил под 100%, но вредонос сразу отключался при логине через SSH или консоль.
За счёт этого и других методов обхода обнаружения Perfctl играет с юзером в кошки-мышки. И то если последний не ленится мониторить загрузку ЦП и прочее подозрительное.
Подробный анализ зловреда:
При запуске perfctl открывает Unix-сокет для внутренней связи и устанавливает зашифрованный канал с серверами злоумышленников через TOR, что делает невозможным расшифровку обмена данными.
Затем устанавливается руткит под названием 'libgcwrap.so', который подключается к различным системным функциям для изменения механизмов аутентификации и перехвата сетевого трафика, чтобы обеспечить уклонение от обнаружения.
Дополнительно разворачиваются руткиты уровня userland, заменяющие утилиты ldd, top, crontab и lsof на троянские версии, что вновь препятствует прямому обнаружению активности вредоносного ПО.
Наконец, на систему загружается и запускается майнер XMRIG, использующий ресурсы процессора сервера для добычи Monero.
Криптомайнер общается с настроенными майнинговыми пулами через TOR, что скрывает сетевой трафик и делает невозможным отслеживание прибыли.
В некоторых случаях Aqua Nautilus также наблюдала использование прокси-джекерного программного обеспечения, которое предоставляет злоумышленникам дополнительный способ монетизации, позволяя продавать неиспользованную пропускную способность через такие сервисы, как Bitping, Repocket, Speedshare и другие подобные платформы.
Большинство пользователей начинают подозревать, что их серверы заражены, когда замечают, что использование процессора достигает 100% из-за майнинга криптовалюты.
Однако вредоносное ПО очень хорошо уклоняется от обнаружения, выполняя майнинг до тех пор, пока пользователь не войдет на сервер, что вызывает немедленную остановку процесса и ожидание, пока сервер снова не станет неактивным.
«Я узнал о вредоносном ПО только потому, что моя система мониторинга уведомила меня о 100% загрузке процессора», сообщил один из пользователей на Reddit.
«Однако процесс сразу останавливался, как только я заходил на сервер через SSH или консоль. Как только я выходил, вредоносное ПО снова запускалось через несколько секунд или минут».
Использование руткитов также затрудняет удаление вредоносного ПО, поскольку процессы скрываются от утилит уровня пользователя и стандартных методов удаления вредоносных программ. Обычно для этого требуется отключить сервер или загрузиться с Live CD для проверки файловой системы.
Однако, поскольку заражение модифицирует и заменяет легитимные файлы Linux, лучший способ решения проблемы — это полное очищение и переустановка устройства, чтобы убедиться, что не осталось никаких следов вредоносного ПО.
Обнаружение и остановка perfctl
Aqua Nautilus предлагает несколько способов обнаружения и остановки perfctl, которые делятся на четыре основные категории: мониторинг системы, анализ сетевого трафика, мониторинг целостности файлов и процессов, а также проактивные меры предотвращения.
Для обнаружения вредоносного ПО Aqua Nautilus рекомендует следующие меры:
- Регулярно проверять каталоги /tmp, /usr и /root на наличие подозрительных бинарных файлов, замаскированных под легитимные системные файлы.
- Следить за пиками загрузки процессора и процессами, такими как httpd и sh, которые могут запускаться из неожиданных мест.
- Тщательно проверять файлы ~/.profile, ~/.bashrc и /etc/ld.so.preload на наличие несанкционированных изменений.
- Перехватывать и анализировать сетевой трафик на наличие соединений через TOR с внешними IP-адресами.
- Искать исходящие соединения с известными криптомайнинговыми пулами или сервисами прокси-джекера.
- Добавить IP-адреса, указанные в разделе индикаторов компрометации (IoC) отчета, в список блокировок для прерывания связи с вредоносными узлами.
Также будет эффективно отключить неиспользуемые HTTP-сервисы, использовать контроль доступа на основе ролей и применять опцию 'noexec' для критически важных директорий, таких как '/tmp' и '/dev/shm'.