Угрозы

Хакеры спрятали бэкдор прямо в Linux-аутентификации

Маша Даровская
By Маша Даровская , IT-редактор и автор
Хакеры спрятали бэкдор прямо в Linux-аутентификации
Обложка © Anonhaven

Sygnia опубликовала расследование Operation Highland — инцидента, где следы активности Velvet Ant в сети жертвы уходят к 2016 году. Речь о почти десятилетнем присутствии в чувствительной инфраструктуре.

Целью стала сеть, отделенная от интернета. Прямого внешнего пути к критическому сегменту не было. Атакующие сначала закрепились на интернет-доступных системах, затем прошли через ИТ-сеть и только после этого добрались до внутреннего контура.

Главная техническая особенность атаки — подмена доверенных компонентов входа. Вместо отдельного трояна, который можно найти как лишний процесс или файл, злоумышленники модифицировали сам механизм аутентификации Linux, внедряя бэкдоры в модули Linux PAM и бинарные файлы OpenSSH.

PAM, или Pluggable Authentication Modules, — это подсистема, через которую Linux-сервисы проверяют пользователя при входе. pam_unix.so — один из базовых модулей, участвующих в проверке логина и пароля.

OpenSSH — стандартный набор инструментов для удаленного доступа к Linux-серверам. В него входят ssh, sshd, scp, sftp и другие компоненты.

Если атакующий подменяет PAM и OpenSSH, то незаметно начинает контролировать проверку входа и сбор учетных данных.

Sygnia нашла девять вариантов модифицированного pam_unix.so. Они собраны в разных средах, что указывает на подготовленный процесс сборки под разные системы.

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

В одном из описанных вариантов модуль сохранял введенные учетные данные в скрытый файл /usr/sbin/.ssh.log. Для защиты от лишних следов отдельные строки могли не дублироваться. После обхода аутентификации вредоносный модуль затирал в памяти строку с бэкдор-паролем, чтобы усложнить анализ.

Атакующие также подменяли компоненты OpenSSH. Sygnia описывает модифицированные версии ssh, sshd и scp, а в одном наборе также фигурировал ssh-keygen.

Новые варианты ssh и sshd собирали учетные данные при входящих и исходящих подключениях. Данные сохранялись в зашифрованном виде, например в файле /usr/share/man9/ph/.ph.man. В записях были признаки направления подключения, типа аутентификации, успешности входа, пользователя, адреса и пароля.

Кроме паролей, измененные бинарные файлы записывали команды, введенные в SSH-сессиях. Это превращало удаленный доступ администраторов в источник разведданных: атакующие могли видеть, кто куда подключался, какие системы обслуживал и какие команды выполнял.

В модифицированный ssh добавили скрытый флаг -d, который отключал вредоносное логирование для операций самих атакующих. Это помогало им работать через зараженные инструменты и не оставлять собственные команды в тех же журналах, куда попадала активность легитимных пользователей.

Изоляция критического сегмента осложнила атаку, но не остановила ее. Sygnia описывает многоступенчатую цепочку.

Сначала Velvet Ant закрепилась на интернет-доступных серверах. Для удаленного управления использовалась модифицированная версия GS-Netcat, замаскированная под системную утилиту auditdb и размещенная в /usr/sbin/. Для автозапуска использовались unit-файлы systemd, замаскированные под сервисы Chrome, а на старых системах — изменения в скриптах SysVinit.

Для перемещения внутри сети использовался SOCKS5-прокси на Perl. Он работал как фоновый процесс и маскировался под обычные системные процессы, например smbd -D.

Дальше атакующие использовали Nginx и FastCGI как мост. Измененные конфигурации Nginx направляли специальные HTTP-запросы на бэкенд, где FastCGI-обёртка запускала кастомный бинарник. Тот устанавливал SSH-соединение уже в сторону критического сегмента. Так внешний HTTP-запрос превращался в канал выполнения действий внутри сети, которая не имела прямого интернет-доступа.

Sygnia отмечает: ротацию учетных данных нужно было проводить только после удаления механизма перехвата. Иначе новые пароли будут собраны тем же модифицированным pam_unix.so, ssh или sshd.

Удаление тоже было рискованным. PAM и OpenSSH — это инструменты, через которые администраторы управляют серверами. Неправильная замена библиотеки, несовместимый пакет или ошибка в зависимости могли привести к полной потере удаленного доступа или к остановке критичных процессов.

Для очистки пришлось готовить отдельную лабораторную среду, проверять замену компонентов, профилировать хосты, подбирать корректные версии бинарных файлов и заранее продумывать откат.

В атаке не было одного яркого признака вроде массового шифрования файлов или шумной эксплуатации известной уязвимости. Злоумышленники изменили компоненты, которые и так есть почти на каждом Linux-сервере. Такой тип закрепления плохо ловится сигнатурами. Вредоносный файл может называться как легитимный, лежать в ожидаемом каталоге и выполнять настоящие функции. Отличие находится внутри бинарника и в поведении, которое не всегда видно обычному мониторингу.

Администраторам Linux стоит проверить целостность компонентов аутентификации. Критичны pam_unix.so, конфигурации /etc/pam.d/, бинарные файлы OpenSSH (ssh, sshd, scp, sftp, ssh-keygen), sshd_config, привилегированные authorized_keys, systemd unit-файлы и старые init-скрипты.

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

Отдельный пункт — порядок реагирования. Сначала нужно восстановить доверие к механизму входа и убрать перехват, затем менять пароли и ключи. При обратном порядке новые учетные данные могут снова попасть атакующему.

Для критических и изолированных сетей нужны заранее подготовленные сценарии оффлайн-восстановления: проверенные пакеты, чистые образы, резервные каналы доступа, план отката и протестированные процедуры замены компонентов аутентификации.

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.