ZeroPost
Все статьи

ИИ в реверс-инжиниринге: что реально работает, а что — хайп

ZeroPost AI30 июля 2026 г. 4 мин чтения
ИИ в реверс-инжиниринге: что реально работает, а что — хайп

Сижу разбираю семпл, который прислали с пометкой «ничего серьёзного». Открываю в IDA — три тысячи функций. Раньше это означало вечер в компании кофе и реверс-инжиниринга. Теперь кидаю код в ИИ-ассистент и за пять минут получаю карту: вот здесь стилер, вот здесь кейлоггер, а вот эта функция — прокси-бэкдор, который ждёт команду с внешнего сервера. Выглядит впечатляюще. Давайте разберёмся, что там на самом деле работает, а что — маркетинг.

Зачем ИИ в реверс-инжиниринге

Статический анализ вредоноса — это когда ты не запускаешь файл, а смотришь на него глазами и в отладчике. Функции, строки, импорты, граф потока управления. Для опытного реверсера это читаемый текст. Для остальных — стена байтов, в которой непонятно, где сигнал, а где шум.

ИИ встраивается на нескольких уровнях. Самая простая роль — ассистент-interpretator. Объясни эту функцию. Что делает этот системный вызов. Зачем здесь base64. Раньше такие вопросы ты задавал коллеге в чате. Теперь — модели, которая видела миллионы функций и умеет делать предположения.

Но это базовый уровень. Интереснее, когда ИИ помогает строить гипотезы о поведении. Он берёт disassembly или псевдокод и говорит: «с высокой вероятностью это троян категории Remote Access Trojan, использует Windows API для захвата экрана, данные отправляет POST-запросом на hxxp://185.xxx.xxx.xxx:8080/update». Не идеально. Но отправная точка, с которой можно работать.

Что реально умеют модели

Я тестировал несколько подходов. Стандартный сценарий — дать модели вывод strings, objdump или IDA pseudocode и попросить описать функционал. Результат зависит от трёх вещей: качества входных данных, размера контекста модели и того, насколько удачно модель обучена на коде.

GPT-4 и Claude справляются прилично: распознают типовые пакеры, видят обфускацию среднего уровня, объясняют неочевидные WinAPI-вызовы. CodeLlama и её производные в локальном варианте работают медленнее и ошибаются чаще, зато не отправляют бинарник наружу.

Что конкретно я получаю на практике.

Первичный triage. На стол ложится пачка семплов, нужно за часы, а не за дни, понять, что лежит в папке «срочно разобрать», а что — в папке «потом». Кидаешь каждый файл через strings, потом ИИ-суммаризация — и через минуту у тебя карта. Без ИИ на каждый семпл уходит минимум двадцать минут.

Обфускация. Xor, rot13, base64 — это ещё терпимо. Когда попадается кастомный пакер с нелинейным потоком управления, разбирать его вручную — неделя. ИИ на основе pattern matching способен находить паттерны деобфускации в новых вариантах старых семейств. Не универсально, но процентов тридцать времени экономит.

Классификация. Модель, обученная на дизассемблированном коде и метаданных, может предсказать семейство вредоноса. Иногда лучше, чем YARA-правила, написанные человеком. Особенно когда семейство новое и правил ещё нет.

Где ИИ косячит

Буду честен: косячит он часто. Три основные проблемы.

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

Вторая — контекстное окно. Ограничение на размер входных данных означает, что для большого бинарника ты работаешь с фрагментами. Модель анализирует кусок, не зная, что происходит в других кусках. Связи между компонентами она теряет. Например, часть малвари зашифрована, а ключ формируется в функции, которая в другом куске кода. Модель видит каждую часть по отдельности — и не складывает.

Третья — zero-day и кастомные вредоносы. ИИ хорош на известных семействах, на типовых приёмах, на паттернах из тренировочных данных. Когда автор малвари написал что-то своё, никогда раньше не виденное, модель плывёт. Она выдаёт «наиболее вероятную» интерпретацию, которая оказывается неверной. Человек-реверсер с опытом в конкретной области справится лучше.

Как я это использую в работе

Свою цепочку я выстроил так. Сначала — автоматические инструменты: IDA, Ghidra, YARA, песочница. Это fast path. Потом — ИИ-ассистент для тех семплов, где нужно быстро понять общую картину. Одновременно с этим — ручной реверс для ключевых функций, где точность критична.

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

Отдельно стоит сказать про локальные модели. Бывают ситуации, когда отправлять бинарник внешнему сервису нельзя. Образец от заказчика, NDA, расследование инцидента, которое ещё не стало публичным. В таких случаях CodeLlama или StarCoder на локальной машине — единственный вариант. Качество ниже, чем у закрытых API, но данные никуда не уходят.

Стоит ли бояться

Обратная сторона — злоумышленники тоже используют ИИ. Пишут полиморфные вредоносы, автоматизируют генерацию обфускации, создают фейковые документы для фишинга. Это реальность, и она осложняет работу. Но ровно так же, как ИИ помогает аналитику, он помогает и атакующему. Ситуация не нова: та же динамика была с metasploit и готовыми эксплойтами. У обороны просто теперь другие вводные.

По моему опыту, ИИ на стороне защиты пока выигрывает. По крайней мере в нише анализа. Деобфускация, распознавание семейства, построение гипотез о поведении — задачи, где модель хорошо справляется и скорость решает. Но без человека, который ставит рамки и проверяет результат, ИИ остаётся инструментом, который уверенно ведёт в тупик.

Расклад простой: не доверяй слепо, но и не игнорируй. Используй как ускоритель рутины. Оставь время на ту работу, где нужен живой взгляд.

Зеро
Понравилась заметка?
Зеро публикует новые материалы каждый день в Telegram. Подпишитесь — следующая уже завтра.
✈️ В канал