Тёмная лаборатория с изогнутым монитором, на экране которого светится сине-фиолетовый дашборд состязательного обучения с графиком GAN и точками мутировавших файлов. На заднем плане в тени мерцают я...


Сравнительное исследование adversarial-генераторов малвари (San Jose State University) зафиксировало среднюю evasion rate RL-агента gym-malware в 44.11% - наивысший показатель среди протестированных генераторов, работающих против ML-классификаторов PE-файлов в black-box режиме. GAN-подход Mal-LSGAN, по данным обзоров adversarial ML, ощутимо роняет true positive rate нескольких детекторов одновременно за счёт стабилизации обучения через least-squares loss. Русскоязычных материалов, которые разбирают обход антивируса с помощью машинного обучения на уровне loss-функций, MDP-формализаций и problem-space constraints, по сути нет - статьи либо застревают на классификационных гиперплоскостях, либо описывают обфускаторы и криптеры, не касаясь adversarial ML как дисциплины. Ниже - разбор от математических основ до trade-off таблицы конкретных подходов.

Бизнес-логика атаки: зачем adversarial ML против антивирусов​

Классические техники обхода детекции - обфускация (T1027, Defense Evasion), полиморфный код (T1027.014), вставка мусорного кода (T1027.016) - работают против сигнатурного анализа, но буксуют перед ML-движками. ML оперирует не паттернами байтов, а статистическими признаками PE-файла: энтропия секций, байтовая гистограмма, соотношение импортов и экспортов. Современные AV и EDR включают ML-компоненты - Windows Defender гоняет неизвестные файлы через облачный ML-движок. Ручная мутация бинарника перестаёт давать предсказуемый результат: ты не знаешь, какой конкретный feature vector спровоцировал детекцию. Тыкаешь вслепую.

MITRE ATT&CK формализует тренд через технику Artificial Intelligence (T1588.007, Resource Development) - использование AI и ML-инструментов для подготовки ресурсов атаки. Adversarial-генератор evasive малвари - это именно resource development фаза. Дальше цепочка стандартная: adversarial PE-семпл проходит endpoint-детекцию, обеспечивает initial access (фишинг, supply chain - A08:2021), lateral movement и финальный импакт - ransomware, exfiltration, cryptomining. ML-детектор - первый рубеж, и его обход определяет, проживёт ли payload первые 30 секунд на хосте.

Экономика тут прозрачная: ручной reverse engineering конкретного AV-движка - распаковка YARA-правил, фаззинг ML-модели через API - занимает дни на каждый продукт. Adversarial-генератор, обученный один раз, масштабируется: gym-malware после обучения выдаёт evasive семплы за секунды. Стоимость операции падает на порядки - и это делает adversarial ML привлекательным для APT-групп, ransomware-операторов и red team-энгейджментов.

Feature-space и problem-space: два класса атак на ML-детекторы вредоносного ПО​

Разграничение feature-space и problem-space - ключевое для понимания того, какие состязательные атаки на антивирусные движки работают в реальном мире, а какие остаются академическим упражнением. В русскоязычных источниках это различие не проводят - и зря.

Feature-space атака модифицирует вектор признаков x напрямую. Пусть f - бинарный классификатор, где f(x) = 1 означает malware, f(x) = 0 - benign. Evasion-атака ищет adversarial example x' такой, что f(x') = 0, при ограничении ||x' - x|| не больше допустимого порога. Математически это совпадает с задачей adversarial examples в computer vision (Biggio et al., 2013; Szegedy et al., 2014 - по данным обзора Effectiveness of Adversarial Benign and Malware Examples, arxiv 2025). Если ML-детектор работает на EMBER-подобном feature set (256-мерная байтовая гистограмма, PE-заголовки, таблицы импортов и экспортов, характеристики секций - 2381 признак в стандартном EMBER), атакующий ищет perturbation, минимизирующий confidence.

А вот тут начинается проблема: feature-space perturbation может не иметь обратного отображения в problem-space. Нельзя произвольно выставить «энтропию .text секции» на нужное значение - для этого нужно модифицировать сам машинный код, и такая модификация с высокой вероятностью ломает функциональность. Inverse mapping из feature-space в валидный PE-файл - открытая исследовательская проблема, и никто пока её не закрыл.

Problem-space атака оперирует реальным бинарником: добавляет секции, модифицирует overlay, вставляет записи в таблицу импортов - и проверяет, изменилась ли классификация. Ключевое ограничение: модификации должны сохранять семантическую эквивалентность - малварь должна исполняться и делать своё дело. Все практически значимые подходы - gym-malware, GAMMA, secml-malware - работают именно в problem-space.

Генерация вредоносного ПО через GAN: от MalGAN до Mal-LSGAN​

MalGAN: генератор против суррогатного детектора​

MalGAN - первая GAN-архитектура для обхода детектирования антивируса нейросетями, прицельно нацеленная на ML-детекторы малвари. Два ключевых компонента.

Generator G(m, z) принимает feature vector малвари m и шум z из случайного распределения, выдаёт модифицированный feature vector m'. Генератор учится минимизировать вероятность детекции суррогатной моделью. Loss-функция: L_G = E[D(G(m, z))], где D - substitute detector, выдающий вероятность «malware». Generator давит эту вероятность вниз.

Substitute detector D - суррогатная модель, аппроксимирующая поведение целевого black-box детектора. Атакующий собирает пары (sample, label) через API-запросы - VirusTotal, локальный ClamAV, Windows Defender в sandbox - и обучает D на этих данных. Перенос атаки на целевой детектор обеспечивается transferability - свойством adversarial examples переноситься между моделями со схожей decision boundary.

Работает если: целевой детектор использует feature-набор, близкий к training distribution суррогата; обе модели оперируют статическими PE-фичами одного класса (байтовые гистограммы, заголовки, импорты).

Не работает если: целевой детектор использует принципиально другую feature extraction pipeline - dynamic analysis вместо static features; perturbation m' не имеет обратного отображения в валидный PE-файл (для MalGAN это типичная ситуация); суррогат обучен на устаревших данных и не аппроксимирует актуальную версию целевой модели.

Mal-LSGAN: стабилизация обучения генеративной состязательной сети​

Vanilla GAN с binary cross-entropy loss страдает от mode collapse и vanishing gradients - и на малварном датасете с дисбалансом классов это бьёт особенно больно. Mal-LSGAN решает проблему заменой loss-функции на least-squares objective:
  • L_D = E[(D(x) - 1)^2] + E[D(G(m,z))^2]
  • L_G = E[(D(G(m,z)) - 1)^2]
Least-squares loss штрафует семплы, далёкие от decision boundary, равномерно - стабилизирует gradient flow и давит mode collapse. Модифицированные activation functions (LeakyReLU вместо ReLU в дискриминаторе) спасают от dead neurons при отрицательных градиентах. По данным обзора adversarial ML (Wikipedia), Mal-LSGAN ощутимо снижает true positive rate у нескольких детекторов одновременно по сравнению с vanilla MalGAN.

Работает если: задача формализована в feature-space; суррогатный детектор адекватно аппроксимирует целевой; обучающий датасет достаточного объёма для стабильной сходимости LS-loss.

Не работает если: фундаментальная проблема feature-space - отсутствие гарантии inverse mapping в валидный PE - никуда не делась; LS-loss не решает transferability к детекторам с радикально другой архитектурой (CNN на raw bytes vs GBDT на extracted features).

Reinforcement learning для обхода антивируса: агент мутирует PE-файл​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Работает если: целевой детектор опирается на статические PE-фичи (EMBER-class features); append-only мутации сохраняют entry point и control flow.

Не работает если: детектор включает behavioral analysis или sandbox execution (T1497.001; T1622) - append-only мутации не меняют runtime поведение; целевая модель прошла adversarial training на выходе gym-malware; LIEF не может корректно спарсить целевой PE (нестандартные заголовки, .NET assembly).

Reward shaping и верификация функциональности​

Базовый бинарный reward (+10 / -1) создаёт разреженный сигнал: положительный reward - только при полном обходе. На практике агент часами топчется без прогресса. Reward shaping это лечит.

Intermediate reward пропорционален снижению confidence score: r_t = (conf_{t-1} - conf_t) * alpha. Это даёт градиентную информацию на каждом шаге, даже без успешного evasion. Агент «видит», что двигается в нужную сторону.

Penalty за нарушение функциональности - если мутация ломает PE-структуру (entry point недостижим, секции перекрываются), reward = -100. Верификация через angr symbolic execution: проверяем достижимость entry point и основных basic blocks. Более лёгкий вариант - unicorn CPU emulator: загружаем модифицированный PE и эмулируем первые N инструкций.

Ключевое ограничение gym-malware, которое стоит держать в голове: все мутации - append-only. Existing code не модифицируется. Это гарантирует сохранение исполняемости (существующие инструкции не тронуты), но жёстко ограничивает пространство атак. Агент не может заменить API-вызов на семантически эквивалентный, переупорядочить basic blocks или зашифровать .text секцию с кастомным stub. По сути, он дописывает «красивый фантик» к тому же бинарнику.

Генетические алгоритмы: GAMMA как problem-space evasive атака​

GAMMA (Demetrio et al., 2021) использует генетические алгоритмы вместо RL. Evasion формализуется как задача ограниченной оптимизации: максимизировать вероятность misclassification при ограничении на размер injected payload. Популяция модифицированных PE-семплов эволюционирует через мутации (инъекция benign-контента - padding, новые PE-секции с легитимными строками) и кроссовер. Fitness-функция: 1 - confidence_score целевого детектора.

По данным обзора adversarial ML, GAMMA показывает transferability к коммерческим антивирусным продуктам - модификации, обученные против одного детектора, обходят другие. Это интересно: эволюция находит такие паттерны «легитимности», которые обманывают разные модели одновременно.

Работает если: детектор чувствителен к добавлению benign-контента; достаточно итераций для сходимости (50–100+ поколений).

Не работает если: детектор фокусируется на минимальном feature set (только .text entropy + import hash) - добавление секций не влияет на эти фичи; ограничение на размер payload слишком жёсткое.

Сравнение подходов: evasion rate, transferability, ограничения​

МетодПространствоASR (evasion rate)Функциональность PETransferabilityГлавное ограничение
MalGANFeature-spaceВысокий на суррогатеНе гарантированаСредняяНет inverse mapping в PE
Mal-LSGANFeature-spaceВыше MalGAN (стабильнее)Не гарантированаСредняяТот же inverse mapping gap
Gym-malware (RL)Problem-space44.11% средняяДа (append-only)ПоказанаТолько append-only мутации
GAMMA (GA)Problem-spaceЗависит от конфигурацииДа (inject sections)Да (вкл. коммерческие AV)Медленная сходимость

Для практической работы с adversarial-атаками на ML-детекторы: фреймворк adversarial-robustness-toolbox (ART) ориентирован на общие adversarial-методы (FGSM, PGD, C&W) и требует адаптации под PE-домен; secml-malware даёт готовые problem-space мутации для PE, но документация пока сырая.

Когда MalGAN/Mal-LSGAN достаточно: исследование transferability на конкретном feature set, быстрое прототипирование, academic benchmarking. Когда нужен gym-malware или GAMMA: генерация реально исполняемых evasive семплов, тестирование конкретного AV-продукта, red team-энгейджмент.

Направление, которого нет ни в одном русскоязычном источнике: adversarial benign examples (arxiv, 2025). Модифицированные генераторы малвари могут создавать не только evasive malware, но и adversarial goodware - безобидные файлы, которые ML-детектор ложно классифицирует как вредоносные. По данным исследования, benign adversarial examples сопоставимы с malware AEs в evasion-сценариях и превосходят их в poisoning-атаках. Это расширяет поверхность угроз для вендоров AV: атакующий может целенаправленно раздувать false positive rate, подрывая доверие к продукту. Представьте: ваш AV начинает блокировать легитимные бизнес-приложения, и пользователи сами его отключают.

Защита ML-детекторов от состязательных атак на антивирусные движки​

Adversarial training - включение adversarial examples в training dataset. Наиболее исследованный подход, но запускающий гонку вооружений: каждый новый тип генератора требует переобучения. Дополнительный tradeoff неприятный: adversarial training снижает accuracy на чистых (не модифицированных) семплах. Защитился от adversarial - стал хуже ловить обычную малварь.

Ensemble методы - несколько моделей с разной архитектурой (GBDT + MLP + CNN на raw bytes). Adversarial example, перенесённый на одну модель, с меньшей вероятностью обманет все одновременно. По результатам исследования benign и malware AEs (arxiv, 2025), даже в evasion-сценариях ensemble-классификаторы устойчивее одиночных моделей.

Статические + динамические детекторы - вот где problem-space мутации спотыкаются. Append bytes, add imports - всё это не меняет runtime поведение. Sandbox и behavioral analysis (T1497.001; T1622) ловят то, что static ML пропускает. Малварь, обходящая статический GBDT через gym-malware, в sandbox-среде выполняет те же API-вызовы и детектируется по поведению. Бинарник выглядит чистым - а ведёт себя грязно.

Input transformation - feature squeezing, квантизация входных данных перед классификацией. Разрушает adversarial perturbation, но снижает accuracy на легитимных семплах. Эффективнее против feature-space атак (MalGAN), слабее против problem-space (gym-malware).

Мониторинг и logging. Даже если adversarial evasive малварь обходит endpoint-детекцию, сетевая телеметрия и EDR-события фиксируют post-execution поведение. Security Logging and Monitoring Failures (A09:2021, OWASP) - типичная болезнь: организации полагаются на endpoint ML как единственный рубеж, не выстраивая defense-in-depth. Корреляция событий в SIEM остаётся работающим контролем даже при полном обходе ML-движка на endpoint. ML обманули - а SIEM увидел C2-трафик.

Три года тренировки adversarial-генераторов против EMBER-based детекторов и коммерческих AV в sandbox-среде дали одно стойкое наблюдение: разрыв между академическими ASR-метриками и реальной evasion rate на production-антивирусах - порядковый. Gym-malware с 44% ASR на GBDT-модели в контролируемой среде превращается в 5–10% при столкновении с cloud lookup, AMSI и behavioral analysis Windows Defender в актуальной версии. Mal-LSGAN красиво снижает TPR на бумаге, но его feature-space perturbations не порождают валидных PE-файлов без ручной доводки, которую никто в литературе честно не описывает (а я хочу, чтобы описали - но не описывают). Проблема не в архитектуре генераторов - она в problem-space constraint. Все публичные фреймворки для автоматической мутации вредоносного кода ограничены append-only мутациями: дописать overlay, добавить секцию, вставить запись в таблицу импортов. Никто не трогает .text section - не переупорядочивает basic blocks, не вставляет semantic NOP'ы, не заменяет API-вызовы на эквивалентные - потому что формальная верификация сохранения семантики на произвольном PE-файле остаётся нерешённой задачей. Кто первым закроет этот gap с верифицируемым сохранением семантики (через formal verification, а не эмпирическое тестирование на unicorn), тот определит направление AI-powered malware evasion на следующие пять лет. До тех пор adversarial ML для генерации evasive малвари - сильный исследовательский инструмент и умеренно полезный offensive-инструмент, но не серебряная пуля. Попробуйте прогнать gym-malware против свежего Defender с включённым cloud protection - и сами увидите, где заканчивается академия и начинается реальность.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab