ZeroPost
Все статьи

Я скормил малварь нейросети. Вот что получилось

ZeroPost AI6 июня 2026 г. 4 мин чтения
Я скормил малварь нейросети. Вот что получилось

Несколько недель назад мне попался подозрительный скрипт. Не в смысле "что-то тут не так" — а буквально: коллега прислал файл с припиской "глянь, что это вообще делает". Файл был обфусцирован так, что читать его руками — это полчаса боли и стакан кофе. Я решил попробовать другой путь и закинул его в Claude.

За сорок секунд я получил разбор, который сам бы писал минут сорок. После этого я начал использовать ИИ для анализа подозрительного кода регулярно — и понял несколько вещей, которые не очевидны с первого раза.

Что умеет ИИ, а что — нет

Начну с честного: ИИ не заменяет реверс-инжиниринг. Он не запускает код, не строит граф вызовов динамически, не видит что происходит в памяти. Всё это по-прежнему делается инструментами вроде IDA, Ghidra или x64dbg.

Но есть класс задач, где ИИ работает быстрее любого другого инструмента — это понимание намерения кода. Когда у тебя есть кусок PowerShell с тремя уровнями base64 и переменными вида $a1b2c3, вопрос не "как это работает технически", а "что это пытается сделать". И вот здесь нейросеть даёт результат за секунды.

Я закидываю код с простым промптом: "объясни что делает этот скрипт, построчно, без воды". Модель разворачивает обфускацию в голове, объясняет логику, указывает на подозрительные вызовы. Иногда сразу называет семейство малвари — если паттерн известный.

Обфускация — главная точка применения

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

Руками разворачивать это — честно, скучно. Берёшь строку, декодируешь, берёшь следующую. ИИ делает это моментально и при этом удерживает контекст — понимает, что вот эта раскодированная строка это URL следующей стадии загрузки, а вот это имя задачи в планировщике, которую малварь создаёт для закрепления в системе.

Несколько раз я ловил себя на том, что модель замечала связь между двумя кусками кода, которую я бы пропустил при линейном чтении.

Где я обжёгся

Первые несколько раз я слишком доверял выводам. ИИ уверенно объяснял что делает код — и я принимал это как факт. А потом один раз проверил вручную и обнаружил, что модель неверно интерпретировала один из вызовов: написала что функция читает реестр, а на деле она туда писала. Направление операции — критично. Это разница между "наблюдает" и "закрепляется".

С тех пор я использую ИИ как первый слой — чтобы быстро понять структуру и намерение. Критичные выводы перепроверяю. Это добавляет времени, но не много — зато снижает вероятность ошибки в отчёте.

Ещё одна ловушка — галлюцинации на малоизвестных семействах. Если код достаточно нестандартный, модель может начать "угадывать" и называть атрибуцию с уверенностью, которой нет оснований. Правило простое: атрибуцию по одному скрипту не делать в принципе, с ИИ или без.

Практика: как я это делаю

Мой рабочий порядок выглядит примерно так. Сначала смотрю на файл глазами — размер, тип, очевидные строки. Потом закидываю в ИИ с просьбой дать обзор: что делает, какие API вызывает, на что обратить внимание. Это занимает минуту.

Дальше — в зависимости от результата. Если ИИ говорит "тут три стадии загрузки и попытка отключить Windows Defender" — это уже карта для дальнейшего анализа. Я знаю куда смотреть, не трачу время на нерелевантные части.

Для PowerShell и Python это работает особенно хорошо — языки читаемые, ИИ с ними знаком хорошо. С нативным кодом после дизассемблирования хуже, но тоже полезно: можно скормить псевдокод из Ghidra и получить объяснение логики функции.

Про безопасность, которую все забывают упомянуть

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

Я использую локальные модели для реального анализа инцидентов. Ollama с достаточно большой моделью справляется с большинством задач. Медленнее, чем Claude или GPT-4, но данные никуда не уходят. Облачные — только для учебных семплов или публично известных образцов, где конфиденциальности нет в принципе.


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

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