ML · Reverse Engineering · Python · InfoSec · Neo4j · Ghidra · LLM27 июля в 22:31 · 3 мин

Локальные LLM и графовые базы данных: новая парадигма в автоматизации реверс-инжиниринга

Использование облачных больших языковых моделей для анализа вредоносного ПО сопряжено с рисками утечки цифровых следов (IOC) и цензуры со стороны поставщиков. Решением этих проблем становится развертывание локальных моделей искусственного интеллекта в связке с декомпилятором Ghidra и графовым хранилищем Neo4j. Описанная архитектура позволяет безопасно автоматизировать первоначальный анализ функций, выявлять индикаторы компрометации и конструировать поведенческие сценарии без нарушения конфиденциальности исследователя.

# Локальные LLM и графовые базы данных: новая парадигма в автоматизации реверс-инжиниринга

Развитие цифровых угроз требует от аналитиков информационной безопасности эффективных инструментов для понимания кода вредоносных программ. Традиционный подход к автоматизации с использованием облачных больших языковых моделей (LLM) сталкивается с серьезными ограничениями: риск утечки уникальных индикаторов компрометации (IOC) в общедоступные базы данных и жесткая цензура контента, характерная для публичных моделей. Чтобы преодолеть эти барьеры, специалисты разрабатывают автономные системы на базе локального оборудования.

В основе нового подхода лежит комбинация трех ключевых технологий:

1. PyGhidra — инструмент для автоматического дизассемблирования и декомпиляции без необходимости использования графического интерфейса. 2. Neo4j — графовая база данных, обеспечивающая удобную визуализацию вызовов функций и анализ взаимосвязей в коде. 3. Локальная LLM (например, Qwen3) — запускаемая на стороне пользователя модель, отвечающая за интерпретацию псевдокода.

Архитектура процесса анализа

Система работает в виде конвейера (pipeline), который последовательно проходит несколько этапов обработки. Сначала PyGhidra извлекает необходимые данные из бинарного файла: адреса функций, их размеры, цикломатическую сложность и декомпилированный C-псевдокод. Для сохранения контекста данные ограничиваются по объему (например, до 6000 символов). Затем вся информация загружается в граф Neo4j, где функции представлены как узлы, а вызовы одной функции другой — как ребра.

Далее локальная языковая модель анализирует каждую функцию индивидуально. Промпт (запрос к модели) включает не только код, но и информацию о «соседних» узлах в графе, что позволяет модели учитывать контекст окружения. Результатом работы модели становится JSON-объект с описанием назначения функции, выявленными IOC, сетевыми индикаторами и применимыми тегами.

Граф данных и уровни абстракции

Одной из главных преимуществ данной архитектуры является использование графового подхода к моделированию данных. Если анализировать бинарник в традиционных табличных базах, информация разбивается на плоские строки с колонками. Однако для аналитика важны именно связи: вызывает ли функция шифрования файлов также и функции для сетевого соединения? Являются ли анти-дебаг проверки частью одной логической цепочки?

Граф Neo4j решает эти вопросы через структуру узлов и связей. В системе выделяются четыре уровня абстракции:

* Sample (Образец): Хранит метаданные файла (хэши MD5, SHA1, SHA256, формат PE/ELF, архитектуру). * Function (Функция): Содержит адрес, имя функции и сам псевдокод. * Analysis (Анализ): Результат интерпретации локальной модели для конкретной функции. * Capability (Способность): Обобщенный функционал, подтвержденный множеством функций (например, «умение работать с файлами» подтверждено 40 разными функциями). * Behavior (Поведение): Итоговая интерпретация комбинации способностей, формирующая сценарий атаки (C2-коммуникация, шифровальщик и т.д.).

Такая структура позволяет строить сложные запросы Cypher на выявление поведенческих паттернов, которые в табличной базе потребовали бы рекурсивных соединений таблиц.

Результаты проверки и выводы

Тестирование проводилось на образцах вируса WannaCry из открытых источников. Анализ 195 функций на оборудовании с видеокартой Nvidia 5070 Ti и 60 ГБ оперативной памяти занял около двух часов. Локальная модель с высокой уверенностью выявила три ключевых поведения: шифрование файлов, связь с командным сервером и механизмы уклонения от анализа (anti-analysis). Найденный паттерн защиты от отладчиков был подтвержден соответствующим YARA-правилом.

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

Первоисточники

Habr AI
← Вернуться в эфир