MarsSnake и LuciDoor: индикатора компрометации недостаточно для обнаружения угрозы

MarsSnake и LuciDoor: индикатора компрометации недостаточно для обнаружения угрозы

Хеш файла, домен или сетевой адрес указывают лишь на то, что искать. О том, как поведёт себя вредоносная программа после запуска, они не сообщают ничего. Два образца способны совпадать по одному признаку и при этом действовать по-разному. Исследование VMRay построено вокруг этой недостающей части картины. Наблюдение за поведением в изолированной среде (песочнице, то есть отдельном безопасном контейнере) в нём соединили с ручным разбором кода. Разбирали два независимых сюжета.

Описание

Первый касается обращения к сервису определения местоположения. Запрос к такому сервису часто трактуют как попытку обмануть анализ, хотя сам по себе он об этом не говорит. Из 912 записанных запусков 908 достучались до сервиса. После удаления дубликатов осталось 726 уникальных образцов. Только 58 из них сравнили полученную страну с заранее заданным списком и завершили работу при совпадении. Остальные 668 узнали свою геопозицию и продолжили выполнение. Доля образцов, прекращающих работу по такому условию, составила около восьми процентов, и все 58 относились к семейству Twizt/Phorpiex. Список исключений включал десять стран: Канада, Швейцария, Германия, Великобритания, Лихтенштейн, Люксембург, Нидерланды, Новая Зеландия, Швеция и США. Повторяющийся набор помогает группировать файлы, но не объясняет, зачем выбраны эти страны. Отказ от анализа - лишь одна из возможных причин наряду с обычным географическим таргетингом.

Второй сюжет - пятнадцать файлов, связанных с публично описанной активностью UnsolicitedBooker. Среди них три документа с макросами, архив, сборки загрузчиков и семь сборок бэкдора MarsSnake, а также библиотека LuciDoor, извлечённая из загрузчиков. По данным аналитиков, в январе 2025 года MarsSnake применялся против международной организации в Саудовской Аравии, а сама группировка описана как связанная с Китаем. Позже Positive Technologies сообщила о MarsSnake и LuciDoor против телекоммуникационных компаний в Центральной Азии. Атрибуцию в этих отчётах проводят вендоры, а не авторы технического разбора: анализ не устанавливает оператора и его заказчика.

Доставка шла двумя маршрутами. Документы с макросами проверяли систему через штатный интерфейс управления Windows, затем собирали полезную нагрузку из текстовых блоков и запускали её с небольшой задержкой. Архивный маршрут начинался с ярлыка на китайском языке о платежах за воду в Чунцине. Часть файлов внутри архива прятали в служебных каталогах, а ярлык запускал сценарий, который переименовывал исполняемый файл и перемещал его в другую папку. В ноябрьской кампании применён другой приём: рядом с подписанной программой Microsoft положили поддельную системную библиотеку, и Windows загружала её вместо настоящей. Приём опирается на порядок поиска библиотек, а не на уязвимость в самой программе.

Извлечь скрытое удалось только распаковкой. Загрузчики хранили полезную нагрузку в зашифрованном и сжатом виде. MarsSnake держал настройки и ключи в закодированном состоянии и восстанавливал их прямо в памяти. Изолированная среда записывала поведение, но не показывала конкретные значения, нужные для точных правил обнаружения. Собственные распаковщики и декодеры дали адреса управляющих серверов, порты, ключ для маскировки трафика и строки, невидимые при обычном просмотре файла. Два разных загрузчика при этом выдавали одну и ту же библиотеку LuciDoor, чего хеш загрузчика не раскрывает.

В загрузчике LuciLoad есть отдельная проверка времени. Сначала он запрашивал паузу в пятнадцать секунд, а затем смотрел, сколько прошло на самом деле. Если пауза оказывалась короче ожидаемой, работа прекращалась. Это прямая попытка помешать автоматическому анализу, поскольку проверяется, не сократили ли задержку в песочнице. Для маскировки загрузчик создавал скрытое окно с названием, напоминающим фирменное имя OneDrive, причём с опечаткой. Публичные отчёты приводят другое написание, и для правил обнаружения важна именно та версия, что встречается в конкретных образцах.

MarsSnake оказался 64-битным бэкдором с набором команд: выполнение одиночной команды, интерактивная оболочка, приём и отправка файлов, перечисление дисков, просмотр каталогов, сигнал активности и разрыв соединения. Тело сообщения сначала маскировали обратимым преобразованием, а затем шифровали, тогда как заголовки запроса оставались открытыми. LuciDoor устроен иначе: это 32-битная программа, устанавливающая защищённое соединение встроенными средствами Windows. Она умеет обходить прокси-серверы и при необходимости искать подходящий узел среди активных соединений машины. При закреплении в системе создаётся задача планировщика с именем, имитирующим OneDrive, и загрузчик запускается при входе пользователя.

Проверка готовых правил на разобранных файлах и на наборе чистой легитимной программы дала совпадения только с нужными семействами. Ни один файл из системных каталогов не сработал. Такой результат ограничен конкретным набором и не заменяет измеренную долю ложных срабатываний в реальной инфраструктуре, поэтому правила стоит дополнительно настраивать на местные данные. Для расследований полезно сохранять несколько групп свидетельств. Первая - сам запрос к сервису, полученный ответ, сравнение и последовавшее действие. Вторая - связка исходного файла, загрузчика и извлечённой нагрузки. Третья - поля конфигурации и строки в исходном и расшифрованном виде. Четвёртая - создание задач, загрузку модулей и работу с файлами в привязке к конкретному процессу. Пятая - сетевые назначения вместе с данными о хосте и видимостью протокола. Хеш или адрес сам по себе мало что сообщает, а объяснение даёт наблюдение за поведением вместе с разбором кода.

Индикаторы компрометации

YARA

Комментарии: 0