SLEEPWALKER просыпается от одного пакета

Независимый исследователь вредоносного ПО Доминик Райхель, ранее работавший в подразделении Palo Alto Networks Unit 42, описал прежде неизвестный бэкдор SLEEPWALKER для Windows. Имплант бездействует в памяти, пока компьютер не получит специально подготовленный «магический пакет», после чего исполняет команды на собственном языке из 23 инструкций. Читаемых команд и привычной инфраструктуры управления в коде нет. Райхель оценил архитектуру как «соответствующую целевой, хорошо обеспеченной ресурсами операции, а не случайной атаке».
Исследование опирается на единственный бинарный файл, переданный без сведений о месте обнаружения и способе установки. Поэтому неизвестно, применялся ли он в реальной атаке, кто мог им управлять и как оператор первоначально проникал на компьютер. Райхелю не удалось установить жертву, страну, отрасль или связь с известной хакерской группой. Любая более точная атрибуция при таком наборе данных была бы гаданием.
Образец представляет собой неподписанную 64-разрядную DLL для Windows размером 59 904 байта. Она рассчитана на боковую загрузку процессом ERAAgent.exe, входящим в ESET Management Agent, выдает себя за системную библиотеку Microsoft dpapi.dll и экспортирует те же семь функций защиты данных, что и подлинный файл. Ресурс версии скопирован у ESET Management Agent. SHA-256 образца: d347170752a28e2b8c4b8b9f3cab2e3a6541ba11682c94498d26eb9002779d60, MD5: 2318327b29bb1c0e2d2b5f0211fc7fac.
В SLEEPWALKER нет встроенных доменов, IP-адресов и URL, а самостоятельно устанавливать исходящее соединение он не умеет. Компьютер может выглядеть чистым для средств защиты, сосредоточенных на обращениях к известным вредоносным серверам. Команды поступают в зашифрованном байткоде. Даже получив ключ, аналитик увидит проприетарные коды операций, формат которых определен только внутри данного бинарного файла.
Встроенная конфигурация защищена алгоритмом AES-256-CCM. После расшифровки в ней обнаруживается одна команда: бесконечно прослушивать все сетевые интерфейсы в ожидании триггера. Захват ведется в неразборчивом режиме, поэтому SLEEPWALKER видит проходящий через интерфейс трафик, включая пакеты для других машин. Имплант на шлюзе, VPN-сервере либо компьютере, соединяющем два сегмента сети, способен принять активационный пакет, формально адресованный другому узлу.
В бинарном файле реализованы два вида активации. Первый реагирует на сырые сетевые пакеты и использует неразборчивый захват; именно он включен в исследованной сборке. Второй распознает триггер через DNS и запускается отдельным кодом операции, но в этой конфигурации отключен. Отсутствие исходящего трафика здесь принципиально: оператору достаточно доставить подходящий пакет по маршруту, который просматривает зараженная машина.
Язык SLEEPWALKER содержит 23 инструкции для планирования операций, перемещения данных несколькими способами, поэтапной доставки файлов, контроля их SHA-256 перед запуском, исполнения кода прямо в памяти, наблюдения за триггерами и обмена через разные каналы. При этом отдельной инструкции для записи на диск нет. Файлы, которые бэкдор рассчитывает найти на компьютере, должен заранее разместить другой инструмент. Такая зависимость указывает на роль SLEEPWALKER как одного компонента более крупного набора для уже взломанной системы.
Поддерживаются шесть транспортов: TCP, UDP, ICMP, именованные каналы SMB, сырой неразборчивый захват пакетов и VMware Virtual Machine Communication Interface, или VMCI. Через SMB предусмотрено боковое перемещение с учетными данными. VMCI проходит через слой виртуализации, минуя обычный сетевой адаптер, поэтому захват трафика между двумя физическими машинами такую связь полностью пропустит. Mandiant ранее документировала, как группа UNC3886 применяла сокеты VMCI для закрепления и обмена между зараженными хостами VMware ESXi и их гостевыми виртуальными машинами. Это лишь известный прецедент вредоносного использования VMCI: данных о связи UNC3886 со SLEEPWALKER нет.
Перед запуском DLL проверяет только имя родительского процесса. Цифровая подпись и полный путь к ERAAgent.exe не сверяются. Для помещения вредоносной библиотеки в нужный каталог требуются права локального администратора, которые сам SLEEPWALKER не получает: он наследует контекст безопасности процесса ESET Management Agent. Следовательно, это имплант для этапа после компрометации, а не средство первоначального доступа. Каким способом злоумышленник мог получить административные права и записать DLL в каталог ESET, неизвестно.
Единственный обнаруженный способ закрепления основан на порядке поиска DLL в Windows. Вредоносный файл кладут рядом с ERAAgent.exe, и система загружает его при каждом запуске службы ESET Management Agent. Этот прием не описывается как уязвимость программ ESET, поэтому исправлять в связи с данным образцом компании нечего. При подтвержденном заражении рекомендованы полноценное расследование инцидента и пересборка компьютера. Ранее продукты ESET уже использовали для боковой загрузки: Kaspersky сообщала, что ToddyCat задействовала особенность порядка поиска библиотек в консольном сканере ESET, заставляя доверенный процесс открыть вредоносную DLL. Связи ToddyCat со SLEEPWALKER не установлено.
Для приема подключений через именованный канал SMB от неаутентифицированных клиентов SLEEPWALKER устанавливает значение реестра EveryoneIncludesAnonymous в 1 и добавляет имя своего канала в NullSessionPipes. В процедуре очистки есть неприятная ошибка: она запоминает успешность собственной записи в NullSessionPipes, но не проверяет, существовала ли такая запись до заражения. При удалении имплант способен стереть легитимный параметр, созданный раньше. Поэтому сами по себе EveryoneIncludesAnonymous и NullSessionPipes заражение не доказывают, их следует сравнивать с заведомо исправной конфигурацией конкретной машины.
К возможным индикаторам относятся подозрительная DLL рядом с ERAAgent.exe, неожиданный файл dpapisvc.dll в том же каталоге, оба указанных хеша, значение EveryoneIncludesAnonymous, равное 1, и неизвестная запись в NullSessionPipes. Райхель опубликовал правило YARA и сканер PowerShell, работающий только на чтение и предназначенный для проверки парка компьютеров. На момент публикации он считал уровень обнаружения файла низким, хотя основание этой оценки не привел. Правило YARA частично зависит от статического AES-ключа и скомпилированного кода протокола; пересборка с другими настройками компилятора может изменить эти признаки и обойти сигнатуру.
По состоянию на 26 августа, год в доступных данных не указан, The Hacker News не нашла публичных версий упомянутых Райхелем набора аналитических инструментов и руководства по снижению риска ни на его сайте, ни в профиле GitHub. Тем, кто подозревает целевую атаку, исследователь предложил обращаться к нему напрямую. The Hacker News также запросила у ESET сведения о телеметрии по образцу и обещала обновить материал после ответа; к 26 августа компания не выпустила ни бюллетеня, ни публичного заявления о SLEEPWALKER. Пассивная схема активации уже встречалась на Linux: Rapid7 описывала операции Red Menshen с бэкдором BPFDoor в сетях операторов связи. Это сходство ограничивается общей идеей ожидания специально сформированного трафика и не доказывает технического родства или общего оператора.


Новое на сайте

Ссылка