SLEEPWALKER: бэкдор, который спит до прихода одного «волшебного пакета»
Независимый исследователь вредоносного ПО Доминик Райхель, ранее работавший в Unit 42 компании Palo Alto Networks, опубликовал разбор ранее не описанного бэкдора для Windows под названием SLEEPWALKER. Образец — неподписанная 64-битная DLL размером 59 904 байта. Она выдаёт себя за системную библиотеку Microsoft dpapi.dll, экспортируя те же семь функций защиты данных, и предназначена для side-loading в ERAAgent.exe — исполняемый файл ESET Management Agent.
Молчит, пока не постучат
Главная особенность SLEEPWALKER в том, что он ничего не делает сам. В файле нет ни доменов, ни IP-адресов, ни URL, и он не устанавливает исходящих соединений — заражённая машина выглядит чистой для инструментов, следящих за обращениями к известной вредоносной инфраструктуре. Вместо этого бэкдор бесконечно слушает все сетевые интерфейсы в ожидании одного специально сформированного пакета. Слушатель захватывает весь проходящий трафик, включая адресованный другим машинам, поэтому шлюз, VPN-сервер или узел на стыке сегментов может случайно поймать триггер, предназначенный для соседа.
Получив сигнал, SLEEPWALKER исполняет команды, приходящие в виде байткода на языке из 23 инструкций собственной разработки. Даже восстановив ключ шифрования (AES-256-CCM), аналитик получит опкоды в формате, который существует только внутри этого файла. Райхель считает такой подход признаком «целенаправленной, хорошо обеспеченной ресурсами операции, а не оппортунистической».
Что умеет язык из 23 команд
Инструкции покрывают планирование задач, несколько способов передачи данных, поэтапную доставку файлов с проверкой по SHA-256 перед запуском и исполнение кода прямо в памяти. Ни одна команда не пишет на диск. Транспортов шесть: TCP, UDP, ICMP, именованные каналы SMB с перемещением по сети, «сырой» перехват пакетов и VMware VMCI. Трафик VMCI идёт через слой виртуализации, минуя сетевой адаптер, — перехват между двумя машинами его попросту не увидит.
Чтобы открыть неаутентифицированный доступ к своему именованному каналу, бэкдор выставляет реестровый параметр EveryoneIncludesAnonymous и добавляет имя канала в NullSessionPipes. При этом его процедура очистки может удалить легитимную запись, существовавшую до заражения.
Не входная дверь, а последствие взлома
SLEEPWALKER — это постэксплуатационный имплант, а не точка входа: чтобы записать DLL в нужную директорию, оператор уже должен обладать правами локального администратора. Side-loading опирается на порядок поиска DLL в Windows, а не на уязвимость в продуктах ESET, так что «патчить» здесь нечего — ответом на подтверждённое совпадение служит реагирование на инцидент и пересборка системы. ESET по состоянию на 26 августа не выпустила никаких заявлений.
Райхель не смог привязать образец к известной группировке, установить жертву или страну и даже определить, применялся ли он в реальных атаках. Он опубликовал индикаторы компрометации, YARA-правило и PowerShell-сканер, отметив, что покрытие детектированием на момент публикации было низким.
Источник: The Hacker News
Комментарии
Войдите, чтобы комментировать.