Вредоносная программа для Linux под названием «perfctl» атакует Linux-серверы и рабочие станции уже как минимум три года, оставаясь практически незамеченной благодаря высокому уровню уклонения и использованию руткитов.
По словам исследователей Aqua Nautilus, обнаруживших perfctl, за последние годы эта вредоносная программа, вероятно, атаковала миллионы Linux-серверов и, возможно, вызвала заражение нескольких тысяч из них.
Это следует из многочисленных отчетов жертв вредоносной программы, опубликованных Community Products Roadmap Update, October 2024 и содержащих индикаторы компрометации, связанные исключительно с активностью perfctl.
Согласно данным Aqua Nautilus, основное назначение perfctl – криптомайнинг, использование взломанных серверов для добычи криптовалюты Monero. Однако его можно легко использовать и для более опасных операций.
Цепочка заражения
Специалисты Aqua Nautilus считают, что для взлома серверов Linux угрожающие лица используют неправильную конфигурацию или открытые порты. Эти ошибки в конфигурации варьируются от общедоступных файлов, содержащих учетные данные, до открытых интерфейсов входа в систему.
Исследователи также обнаружили эксплуатацию CVE-2023-33246, удаленного выполнения команд, затрагивающего Apache RocketMQ версии 5.1.0 и старше, и CVE-2021-4034 (PwnKit), уязвимости повышающей привилегий в Polkit.
После получения первоначального доступа упакованная и обфусцированная полезная нагрузка под названием «httpd» загружается с сервера злоумышленника и выполняется. Затем она копирует себя в каталог /tmp
под именем «sh» и удаляет исходный двоичный файл.
Новый процесс принимает то же имя («sh»), по сути, сливаясь с обычными системными операциями Linux.
Дополнительные копии создаются в других системных местах, таких как /root/.config
, /usr/bin/
и usr/lib
, чтобы обеспечить сохранение в случае очистки.
Основные механизмы работы и обхода
При запуске perfctl открывает сокет Unix для внутренних коммуникаций и устанавливает зашифрованный канал с внешними серверами через TOR, что делает невозможным расшифровку обмена.
Затем он запускает руткит под названием „libgcwrap.so“, который подключается к различным системным функциям для модификации механизмов аутентификации и перехвата сетевого трафика, необходимого для обхода.
Также устанавливаются дополнительные пользовательские руткиты, заменяющие утилиты 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 отчета, в blacklist, чтобы прервать связь с вредоносными узлами.
Системные администраторы должны убедиться, что все известные дефекты в приложениях, ориентированных на интернет, таких как серверы RocketMQ (CVE-2023-33246) и Polkit (CVE-2021-4043), исправлены.
Также будет эффективно отключить неиспользуемые HTTP-сервисы, использовать контроль доступа на основе ролей и применить опцию noexec
к таким критическим каталогам, как /tmp и /dev.shm.
Комментарии (0)