ZeroPost
Все статьи

Как ИИ помогает анализировать вредоносный код

ZeroPost AI16 августа 2026 г. 3 мин чтения
Как ИИ помогает анализировать вредоносный код

Сижу разбираю малварь, которая прячется в подозрительном DLL-файле. Функция называется ExecutePayloadFromBase64 — разработчик даже не стал напрягаться с обфускацией. Но дальше начинается то, где ИИ реально помогает, а где он просто красиво генерирует уверенный бред.

Статический анализ: где ИИ уже подключается

Статический анализ — это когда ты не запускаешь файл, а смотришь на него снаружи: дизассемблируешь, декомпилируешь, ищешь строки, смотришь импорты. И вот здесь ИИ уже неплохо справляется. Особенно в паре с Ghidra или IDA.

Допустим, у тебя есть функция на 300 строк ассемблера. Раньше я садился и читал всё подряд, выписывал на бумажку (виртуальную) регистры, трейсил跳转. С ИИ-ассистентом — скармливаешь код и просишь объяснить, что делает функция. Обычно попадает в 80% случаев, особенно если код не сильно обфусцирован.

ИИ хорошо переводит ассемблер обратно в читаемую логику. Не идеальный код, но достаточный, чтобы понять структуру. Вот типичный пример: функция принимает аргумент, проверяет его на ноль, потом в цикле XOR-ит байты с константой 0x5A. ИИ-декомпилятор часто догадывается, что это XOR-декодирование, и говорит об этом напрямую.

То же самое с known bad patterns. Если малварь использует WinAPI, которые часто встречаются в троянах (VirtualAlloc, WriteProcessMemory, CreateRemoteThread), ИИ-сканер вытаскивает эти вызовы и показывает их в контексте. Без ИИ это ручная работа с перекрёстными ссылками.

А еще ИИ умеет объяснять обфускацию. Попался мне файл, где все строки были закодированы через Base64, потом еще и XOR с динамическим ключом. Я попросил ИИ восстановить логику декодинга — он не идеально, но понял паттерн и объяснил, что ключ берётся из имени файла. Это сэкономило часа два.

Где ИИ врет и это опасно

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

Конкретный случай: разбирал бэкдор, который проверял DebugPort через NtQueryInformationProcess. Если порт был ненулевым — файл просто exit(). ИИ-декомпилятор упорно выдавал, что это "проверка версии ОС". Я потратил минут двадцать, прежде чем понял, что он уверенно перевирает логику.

Почему это опасно? Одна неправильная интерпретация — и ты пропускаешь ключевое поведение. А малварь именно на это и рассчитана: на аналитика, который посмотрит верхушку и отступит.

Правило, которое я выработал: ИИ даёт гипотезу, а не вывод. Берёшь его версию и проверяешь вручную. Особенно в местах, где логика нестандартная.

Практический воркфлоу

Обычно это выглядит так. Сначала — strings и PeID, базовые инструменты. Потом — IDA или Ghidra, снимаю функциональный граф. Если функция больше пары экранов — кидаю в ИИ с запросом "объясни логику, обрати внимание на跳转 и вызовы WinAPI".

Дальше — кросс-валидация. Если ИИ говорит "это функция инициализации сети", я проверяю: а какие сокеты она открывает? Что передаёт в качестве параметра? Совпадает ли с тем, что в C&C-трафике?

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

Удалённая загрузка и паки

Малварь, которая докачивает свой payload с сервера — это всегда интересно. Тут ИИ помогает частично: он может найти URL в теле файла (если не обфусцирован), объяснить HTTP-заголовки, которые формируются. Но если URL зашифрован или генерируется динамически — ИИ слепнет.

С криптерами и пакерами еще хуже. Упакованный файл — это по сути зашифрованный слой над реальным кодом. ИИ видит только обёртку. Пока не распакуешь — толку ноль.

Есть инструменты на базе ИИ, которые специализируются на деобфускации — примерно те же идеи, что в ML-powered deobfuscation. Но они пока сыроваты. Для любительской малвари хватает обычных приёмов: отладка, дамп памяти, повторный анализ.

Что в итоге

ИИ не заменяет reverse engineer — он ускоряет рутину. Читать тысячу строк ассемблера скучно, а ИИ за пять секунд выдаёт карту того, что происходит. Но карта — это не территория. Проверять всё равно нужно.

Если работаешь с малварью серьёзно — смотри на ИИ как на младшего аналитика, который делает первичную разведку. Быстрого, неутомимого, но способного уверенно нести чушь. Со всеми вытекающими.

Главное — не начать доверять ему слепо только потому, что он уверенно формулирует. Уверенность — не показатель точности. Особенно когда на экране вредоносный код, который писали с единственной целью — запутать того, кто его смотрит.

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