Обнаружено опасное вредоносное ПО Perfctl, которому удалось заразить несколько тысяч машин под управлением Linux. Вирус отличают скрытые механизмы работы, способность эксплуатировать широкий набор ошибок в конфигурации, а также большой ассортимент вредоносных действий, которые он может выполнять.
Perfctl работает как минимум с 2021 года. Он устанавливается, эксплуатируя более 20 000 распространённых ошибок конфигурации, а значит, его потенциальными целями могут оказаться миллионы подключённых к интернету машин, говорят специалисты по вопросам кибербезопасности из компании Aqua Security. Вирус также может эксплуатировать уязвимость системы Apache RocketMQ за номером CVE-2023-33246 с рейтингом 10 из 10, которая была закрыта в прошлом году. Вредонос получил название Perfctl в честь компонента, который занимается скрытой добычей криптовалют, — имя составлено из названий средств мониторинга perf и ctl в Linux. Для вируса характерно использование имён процессов или файлов, идентичных или похожих на легитимные в Linux.
Вирус маскируется, прибегая и к множеству других трюков. Многие из своих компонентов он устанавливает как руткиты — особый класс вредоносов, способных скрывать своё присутствие от операционной системы и инструментов администрирования. Другие скрытые механизмы Perfctl:
Вирус способен оставаться на заражённой машине после перезагрузок или попыток удаления основных компонентов. Для этого он может настроить среду во время входа пользователя и загрузиться раньше легитимных рабочих нагрузок, а также копировать себя из памяти в несколько мест на диске. 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.