Обнаружено опасное вредоносное ПО Perfctl, которому удалось заразить несколько тысяч машин под управлением Linux. Вирус отличают скрытые механизмы работы, способность эксплуатировать широкий набор ошибок в конфигурации, а также большой ассортимент вредоносных действий, которые он может выполнять.
Perfctl работает как минимум с 2021 года. Он устанавливается, эксплуатируя более 20 000 распространённых ошибок конфигурации, а значит, его потенциальными целями могут оказаться миллионы подключённых к интернету машин, говорят специалисты по вопросам кибербезопасности из компании Aqua Security. Вирус также может эксплуатировать уязвимость системы Apache RocketMQ за номером CVE-2023-33246 с рейтингом 10 из 10, которая была закрыта в прошлом году. Вредонос получил название Perfctl в честь компонента, который занимается скрытой добычей криптовалют, — имя составлено из названий средств мониторинга perf и ctl в Linux. Для вируса характерно использование имён процессов или файлов, идентичных или похожих на легитимные в Linux.
Вирус маскируется, прибегая и к множеству других трюков. Многие из своих компонентов он устанавливает как руткиты — особый класс вредоносов, способных скрывать своё присутствие от операционной системы и инструментов администрирования. Другие скрытые механизмы Perfctl:
- приостановка поддающихся лёгкому обнаружению действий, когда пользователь входит в систему;
- использование сокета Unix через Tor для внешней связи;
- удаление двоичного файла после установки и последующий запуск в качестве фоновой службы;
- манипуляции с процессом Linux pcap_loop, мешающие зафиксировать вредоносный трафик;
- подавление ошибок mesg, пресекающее вывод предупреждения во время выполнения.
Вирус способен оставаться на заражённой машине после перезагрузок или попыток удаления основных компонентов. Для этого он может настроить среду во время входа пользователя и загрузиться раньше легитимных рабочих нагрузок, а также копировать себя из памяти в несколько мест на диске. Perfctl не только занимается майнингом криптовалюты, но и превращает машину в прокси-сервер, за доступ к которому хакеры взимают плату с тех, кто хочет оставаться анонимным. Кроме того, вирус служит бэкдором для установки вредоносов других семейств.
Воспользовавшись уязвимостью или ошибкой конфигурации, код эксплойта загружает основную полезную нагрузку с сервера, который был взломан ранее и превратился в канал распространения вирусов — в одном из случаев такая полезная нагрузка называлась «httpd». После выполнения файл копирует себя из памяти в новое место назначения в каталоге «/tmp», запускает его, удаляет исходный процесс и загруженный двоичный файл. Переместившись в каталог «/tmp», файл выполняется под другим именем, которое имитирует имя известного процесса Linux — в одном из случаев он получил название «sh», — оттуда он устанавливает локальный процесс управления и контроля, а также пытается получить права root, эксплуатируя уязвимость CVE-2021-4043 открытого мультимедийного фреймворка Gpac, которая была закрыта в 2021 году.
Вирус продолжает копировать себя из памяти в несколько других мест на диске, используя имена, которые отображаются как обычные системные файлы. Далее устанавливается множество популярных утилит Linux, модифицированных для работы в качестве руткитов, и майнер. Для передачи управления стороннему оператору Perfctl открывает сокет Unix, создаёт два каталога и сохраняет там данные, которые необходимые для его работы: события хоста, местоположение копий, имена процессов, журналы связи, токены и дополнительная информация. Все двоичные файлы пакуются, шифруются и удаляются — это помогает обходить защитные механизмы и препятствует попыткам обратной разработки вируса. Perfctl приостанавливает работу, обнаруживая присутствие пользователя в файлах btmp или utmp, а также блокирует конкурирующие вирусы, чтобы сохранять контроль над заражённой системой.
Число заражённых Perfctl машин, по подсчётам экспертов, измеряется тысячами, но количество уязвимых машин — на которых не установлен патч от CVE-2023-33246 или присутствует неправильная конфигурация — исчисляется миллионами. Объёмы добытой скрытными майнерами криптовалюты исследователи ещё не подсчитали. Есть много признаков заражения — в частности, необычные всплески загрузки процессора или внезапные замедления работы системы, особенно во время простоя. Чтобы предотвратить заражение, необходимо закрыть на машине уязвимость CVE-2023-33246 и исправить ошибки конфигурации, на которые указали специалисты Aqua Security.