Спецпроекты

Безопасность Бизнес

ПО для кражи данных кредиток ловко прячется в кодах знаменитого российского веб-сервера Nginx

Обнаруженная вредоносная программа NginRAT почти невидима для защитных средств, поскольку умеет скрываться в легитимных процессах веб-сервера Nginx. Что характерно, устанавливает этот вредонос другой RAT-троянец.

Парная работа

Злоумышленники устанавливают на серверы электронной коммерции новый скрытный вредонос, обеспечивающий им удаленный доступ к системе — NginRAT. Эта программа встраивается в легитимные процессы всемирно известного веб-сервера Nginx, разработанного российским программистом Игорем Сысоевым, так, что средства обнаружения ее не видят.

NginRAT может использоваться для кражи данных платежных карт из онлайн-магазинов. Данную программу обнаружили на нескольких серверах электронной коммерции в США и Европе. Они уже были заражены другим RAT-троянцем — CronRAT, который, по данным экспертов компании Sansec, устанавливает NginRAT на атакованные системы. Для этого он скачивает вредоносную системную библиотеку Linux в /dev/shm/php-shared и запускает ее с помощью отладочной программы LD_PRELOAD.

Такой симбиоз выглядит довольно странно, учитывая, что NginRAT и CronRAT выполняют примерно одну и ту же функцию обеспечения удаленного доступа к серверу. Как отметил директор по исследованиям угроз Sansec Виллем де Грот (Willemde Groot), оба троянца, скорее всего, дублируют друг друга, чтобы обеспечивать постоянный удаленный доступ к зараженным серверам.

Орфографическая ошибка как улика

Для того, чтобы изучить NginRAT, экспертам Sansec пришлось создать модифицированную версию CronRAT и с ее помощью перехватить обмен информацией между троянцем и контрольным сервером, который, как оказалось, располагается на территории Китая.

Исследователи заставили контрольный сервер прислать и запустить поддельный код общей библиотеки, «подсветив» таким образом вредонос.

hak601.jpg
RAT-троянец прячется в процессах сервера Nginx для невидимости

«NginRAT фактически захватывает приложение Nginx на хосте, чтобы оставаться незамеченным. Для этого он модифицирует ключевую функциональность ОС Linux, запущенной на хосте. Когда легитимный веб-сервер Nginx использует эту функциональность (например, dlopen), NginRAT перехватывает ее, чтобы внедрить себя в процесс», — поясняется в публикации Sansec.

Такое внедрение процесса обеспечивает его невидимость: отличить легитимный процесс Nginx от вредоносного практически невозможно. К тому же код NginRAT существует только в памяти сервера.

Как установили исследователи, вредонос запускается с помощью двух переменных: LD_PRELOAD и LD_L1BRARY_PATH. Во второй, в слове Library вместо буквы «i» используется «1», поэтому активный вредоносный процесс можно выявить, запустив команду

$ sudo grep -al LD_L1BRARY_PATH /proc/*/environ | grep -v self/

/proc/17199/environ

/proc/25074/environ

Эксперты Sansec указывают, что если на сервере найден NginRAT, то это означает присутствие и CronRAT. Администраторам рекомендовано в таком случае проверить задачи планировщика Cron.

«Ничего нового в том, что один вредонос устанавливает другой, в сущности, нет, однако обычно такие программы различаются по своему назначению, — говорит Никита Павлов, эксперт по информационной безопасности компании SEQ. — В данном же случае речь идет о взаимной страховке двух, в разной степени скрытных RAT-троянцев, так что даже если один будет обнаружен и нейтрализован, у злоумышленников все равно останется удаленный доступ к системе. Такое встречается довольно редко».

Роман Георгиев

Короткая ссылка