NightMARE: новый инструмент для анализа вредоносных программ и извлечения разведданных

information security

Компания Elastic Security Labs официально выпустила версию 0.16 библиотеки nightMARE - комплексного решения на языке Python, предназначенного для оптимизации процессов анализа вредоносного программного обеспечения и обратной разработки. Этот инструмент с открытым исходным кодом объединяет множество функций анализа в единую структуру, позволяя исследователям в области безопасности эффективнее извлекать данные конфигурации и индикаторы компрометации из распространенных семейств вредоносных программ.

Разработка nightMARE решает ключевую проблему, с которой сталкиваются аналитики: управление многочисленными зависимостями и сокращение дублирования кода в инструментах анализа. Ранее Elastic Security Labs использовала отдельные модули Python, включая LIEF для анализа исполняемых файлов, Capstone для дизассемблирования и SMDA для анализа перекрестных ссылок. Такой разрозненный подход создавал сложности в поддержке и снижал эффективность рабочих процессов.

Для решения этой проблемы команда разработчиков интегрировала Rizin - фреймворк для обратной разработки с открытым исходным кодом, ответвленный от Radare2, в качестве основной backend-системы. Модульная архитектура Rizin, обширный набор функций и интерфейс на основе команд предоставляют исследователям мощные возможности анализа через модуль rz-pipe, который обеспечивает бесперебойную интеграцию с Python. Эта консолидация значительно сокращает количество сторонних зависимостей, одновременно расширяя аналитическую функциональность.

Архитектура библиотеки организована в три основных модуля. Модуль анализа отвечает за статический анализ бинарных файлов через дизассемблирование и эмуляцию инструкций. Базовый модуль предоставляет необходимые утилиты для побитовых операций, преобразования целых чисел и извлечения конфигураций с использованием регулярных выражений. Модуль вредоносных программ содержит реализации алгоритмов, организованные по семействам и версиям, включая криптографические функции, процедуры распаковки и инструменты извлечения конфигураций.

NightMARE предлагает две взаимодополняющие методики анализа, охватывающие различные сценарии обратной разработки. Модуль реверс-инжиниринга предоставляет уровень абстракции над функциональностью Rizin, раскрывая часто используемые возможности без необходимости глубокого знания фреймворка. Аналитики могут выполнять сопоставление шаблонов, дизассемблирование, анализ перекрестных ссылок и извлечение данных с помощью простых вызовов функций, которые автоматически обрабатывают базовые команды Rizin.

Модуль эмуляции, переработанный в версии 0.16, использует возможности Rizin вместе с движком Unicorn для выполнения фрагментов кода из образцов вредоносных программ. Класс WindowsEmulator обеспечивает облегченную эмуляцию PE-файлов, ориентированную на выполнение конкретных последовательностей кода, а не на полную эмуляцию системы. Такой подход особенно полезен при анализе обфусцированных вредоносных программ, которые вручную создают данные в стеке или реализуют собственные криптографические функции. Вместо того чтобы вручную переписывать сложные алгоритмы, аналитики могут напрямую вызывать собственные функции вредоносной программы в контролируемой среде эмуляции.

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

Чтобы продемонстрировать возможности nightMARE, Elastic Security Labs предоставила подробное руководство по извлечению данных конфигурации из LUMMA Stealer - вредоносной программы-похитителя информации, которая продолжает активно использоваться в кампаниях заражения, несмотря на операцию по ее нейтрализации в мае 2025 года. LUMMA использует обфускацию потока управления и шифрование ChaCha20, чтобы усложнить как статический, так и динамический анализ.

Процесс извлечения включает четыре ключевых этапа. Сначала сопоставление шаблонов находит код инициализации ChaCha20 и извлекает ключ дешифрования и одноразовый номер из операндов инструкций. Затем функция дешифрования идентифицируется путем сопоставления шестнадцатеричных шаблонов из кода, который загружает импорты WinHTTP. Третий этап - анализ перекрестных ссылок от функции дешифрования - выявляет базовый адрес, по которому хранятся зашифрованные домены командования и управления. Наконец, модуль эмуляции напрямую вызывает собственную функцию дешифрования ChaCha20 вредоносной программы для расшифровки доменных имен, устраняя необходимость повторной реализации пользовательского криптографического алгоритма.

Эта методика успешно извлекла девять URL-адресов командования и управления из проанализированного образца, демонстрируя, как nightMARE сокращает время анализа, объединяя сопоставление шаблонов, дизассемблирование и эмуляцию в единый рабочий процесс. Полная реализация доступна в репозитории проекта на GitHub, предоставляя исследователям практический пример для создания собственных инструментов извлечения.

В версии 0.16 nightMARE поддерживает извлечение конфигураций и анализ для тринадцати семейств вредоносных программ, включая Blister, GhostPulse, Latrodectus, Lobshot, LUMMA, NetWire, RedLine Stealer, Remcos, SmokeLoader, StealC, Strela Stealer и XorDDos. Алгоритмы для каждого семейства реализованы в виде подмодулей, демонстрирующих практическое применение аналитических возможностей библиотеки.

Elastic Security Labs признает, что быстрое развитие вредоносных программ создает постоянные проблемы для поддержки. Злоумышленники часто изменяют код вредоносных программ, чтобы избежать обнаружения и анализа, что требует непрерывного обновления инструментов извлечения конфигураций и реализаций алгоритмов. Команда разработчиков приветствует вклад сообщества через прямые предложения кода или сообщения о проблемах, чтобы помочь расширить охват и поддерживать совместимость с появляющимися вариантами вредоносных программ.

NightMARE представляет собой значительный вклад в сообщество безопасности с открытым исходным кодом, предоставляя исследователям возможности анализа вредоносных программ корпоративного уровня, которые ранее были разбросаны по множеству инструментов. Объединяя функции обратной разработки в унифицированную структуру на основе Rizin, библиотека обеспечивает более эффективное извлечение разведданных о угрозах и оптимизирует рабочие процессы исследования вредоносных программ.

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