Три часа ночи. Я сижу перед Ghidra, разбираю очередной сэмпл и понимаю, что это даже не один троян — их там штук семь, впаянных друг в друга как матрёшка. Обычный аналитик потратил бы на это день. Мне хватило двух часов — и то потому, что я перед этим неделю тренировал промпты.
Не рассказываю это чтобы похвастаться. Рассказываю, потому что ещё полгода назад я делал это вручную, и это было больно. А сейчас есть рабочие способы, где ИИ реально помогает, а не просто генерирует красивые слайды.
Разберу, что конкретно можно делать и где ИИ реально полезен, а где он пока бестолков.
Классификация сэмплов — вот где всё работает
Самый базовый сценарий: тебе прилетает файл, и нужно понять — вредоносный он или нет. Раньше это означало запустить три утилиты, посмотреть на хэши, пореверсить две минуты и надеяться, что не пропустил ничего важного.
Сейчас можно взять любую модель, заточенную под классификацию кода, и она скажет примерно то же самое за секунды. Конкретнее — работает это так: код разбивается на эмбеддинги, а дальше модель сравнивает с базой известных семейств малвари. Не идеально, но для первичной сортировки — вполне достаточно.
Что это даёт на практике. У тебя поток новых сэмплов, и тебе не нужно каждый раз лезть в RE-фреймворк. ИИ отсеивает чистые файлы, помечает знакомые семейства, а ты разбираешь только то, что действительно интересное.
Из инструментов, которые я видел в работе: на уровне open-source — MalBERT, на коммерческом — VirusTotal с AI-фичами, где модель уже натренирована на миллионах сэмплов. Если у тебя своя команда, можно взять CodeBERT или его вариации и дообучить на своей базе — результат обычно лучше, чем generic-модель.
RE-фреймворки с ИИ-фичами — уже не игрушка
Раньше я скептически относился к «ИИ-помощникам в Ghidra» или «Copilot для реверс-инжиниринга». Звучало как маркетинг. Потом попробовал Gpt-RE и пару плагинов для IDA — и мнение поменялось.
Вот что происходит: модель смотрит на декомпилированный код и предлагает, что делает функция. Не просто переводит ассемблер в C — а пытается понять контекст. «Эта функция похожа на деобфускатор», «здесь явный доступ к реестру, скорее всего персистенс», «этот цикл — xor-декодировщик». Такие вещи.
Несколько раз оно реально сэкономило мне время. Помню сэмпл, где автор использовал нетривиальную обфускацию строк — кастомный Base64 с перестановкой байтов. Я бы потратил полчаса, чтобы понять, что именно decode-ится. Модель угадала это за минуту, и я дальше просто проверил гипотезу.
Но вот что важно: это не замена reverse engineering. Это помощник, который ускоряет рутину. Если функция нестандартная или автор малвари умный — модель может уверенно нести чушь. Проверять всё равно нужно руками.
Динамический анализ — песочницы с мозгами
Статический анализ хорош, но бывает бесполезен. Обфускация, паковка, проверка на виртуалку — всё это делает реверс по исходному коду бессмысленным. Тогда ты запускаешь малварь в песочнице и смотришь, что она делает.
И вот тут ИИ тоже пригождается. Современные sandbox-решения — ANY.RUN, Joe Sandbox, Falcon Hybrid Analysis — научились не просто логировать поведение, а интерпретировать его. «Создаёт файл в startup-директории», «обращается к командному серверу», «шифрует документы в Documents» — это уже не сырой лог, а понимание того, что произошло.
Я недавно разбирал сэмпл Qakbot, и песочница выдала не просто список API-вызовов, а структурированный отчёт: «C|RDPSession — вероятно, попытка удалённого доступа». Раньше такую интерпретацию пришлось бы делать самому.
Из минусов — это всё ещё поведенческий анализ. Если малварь проверяет, запущена ли она в песочнице, и ничего не делает — ИИ тоже бесполезен, потому что нечего анализировать.
Где ИИ пока бесполезен
Буду честен. Есть задачи, где ИИ не помогает, а мешает.
Первое — это zero-day и новые семейства. Модель хороша настолько, насколько хороши её данные. Если малварь написана с нуля и не похожа ни на что в тренировочной выборке — ИИ разводит руками. Человек-аналитик хотя бы видит логику. Модель начинает фантазировать.
Второе — сложная обфускация. Если автор малвари серьёзно поработал над тем, чтобы запутать код, ИИ в текущем виде не размотает это за тебя. Он может угадать отдельные функции, но восстановить логику целиком — пока нет.
Третье — эксплоиты. Обнаружить, что файл эксплуатирует конкретную уязвимость, — это отдельный скилл, и модель здесь обычно бесполезна, если только это не очень известный CVE с хорошим описанием.
Что в итоге
За последний год ИИ в анализе малвари из «интересно, но непонятно зачем» превратился в рабочий инструмент. Классификация сэмплов, ускорение реверс-инжиниринга, интерпретация поведения в песочнице — всё это реально работает, и экономия времени ощутимая.
Но это именно ускоритель, а не замена. Мозги аналитика всё ещё нужны — проверять выводы, понимать контекст, разбирать то, что модель не смогла. Просто теперь на рутину уходит не день, а час.
Если ты аналитик и ещё не пробовал — попробуй. Не как замену своей работы, а как помощника. Разница в ощущениях заметна с первого раза.
