
Всем привет! Меня зовут Евгений Пищик, и сегодня я хочу поделиться с вами опытом разработки метода переноса нейросетевых атак, над которым я работал под руководством Александра Рогачева, руководителя группы компьютерного зрения AI VK, в рамках мастерской по сервисам и платформам ИИ в Инженерно‑математической школе НИУ ВШЭ и VK.
С каждым апдейтом нейронных сетей растёт и количество исследований, посвящённых их уязвимостям. Когда от работы моделей зависят кредитные решения, автопилот на шоссе или диагноз в кардиологии, цена ошибки стремится к неприлично высокой отметке. Неудивительно, что вопросы безопасности — от поиска уязвимостей до проектирования методов защиты — сегодня выведены в первую линию приоритетов.
Параллельно эволюционируют мультимодальные модели, которые используют сразу несколько моделей‑компонент для разных модальностей, тем самым открывая больше возможностей для атак. Логичный след — атаки, мигрировавшие из классического одномодального мира, которые используют особенности мультимодальной структуры моделей. Сегодня в статье разберём, как перенести атаку с визуального энкодера на целую мультимодальную систему.
Таксономия атак: кто, к какой двери и с каким ломом
На практике сама по себе атака на нейросеть — это всегда про доступ и метод. Сначала определяем, сколько информации о модели у нас есть, а потом — как будем атаковать.
White/Gray/Black‑box — три режима доступа к весам и архитектуре модели.
Тип доступа | Что доступно |
White‑box | Полный набор: веса, архитектура, градиенты. |
Gray‑box | Частичный инсайд: например, архитектуру модели или ее части мы знаем, но не располагаем весами. |
Black‑box | Лишь API‑эндпоинт: можем получить только ответ по входным данным. |
Основные существующие методы: Adversarial, Jailbreak, Poisoning, Backdoor.
Метод | Суть операции | Где встречается |
Adversarial | Добавляем едва заметный шум → модель ошибается. | Спуфинг дорожных знаков. |
Jailbreak | Обход защитных механизмов системы, например, с помощью специального промпта для LLM чат‑бота. | Чат‑боты крупных компаний: ChatGPT, Claude, Gemini. |
Poisoning | Добавляем «вредоносные» данные на этапе обучения. | Датасеты без модерации |
Backdoor | Добавляем в данные триггер на котором модель будет ошибаться. | Датасеты без модерации |
По способу доступа к модели
White‑box‑атака — когда тебе достались не только ключи от квартиры, но и план всех электрокабелей. Архитектура, её особенности и недостатки известны, веса доступны, градиенты вычисляются по щелчку пальцев. Минус очевиден: в 99% случаев у атакующей стороны нет доступа к такому количеству информации.
Black‑box — диаметрально противоположная к white‑box ситуация: мы вообще ничего не знаем, видим только данные, которые подаём на вход, и какой ответ система отдала — наиболее реалистичный сценарий.
Gray‑box — золотая середина: располагаем некоторыми знаниями про модель, но нет полного доступа. Например, знаем только энкодер изображений внутри VLM и можем найти его веса. Многие существующие методы работают в таком сетапе: и реалистично, и в модели можно покопаться, применяя методы на основе знания архитектуры.
По способу проведения атаки

Adversarial. Классический пример — FGSM: один шаг по градиенту, и панда превращается в гиббона.
За счёт того, что шаг по знаку градиента минимален, человеческий глаз не замечает подмену, а модель уже радостно кричит: «Gibbon — 99.3%».
Jailbreak. Добавляем к безопасному запросу хитрый prompt, обходящий системные правила (печально известный DAN, aka Do‑Anything‑Now).

Poisoning. Тут мы забираемся глубже: на этапе обучения в датасет подмешиваются «вредоносные» примеры. Риск? Модель пожизненно несёт в себе ошибку.
Backdoor — старший брат poisoning: вместе с «вредоносными» данными встраиваем триггер (например, пиксельный водяной знак). На обычных примерах сеть ведёт себя образцово, но стоит показать триггер — и получаем заранее заданный ответ.
Poisoning/backdoor‑атаки почти не встречаются в реальной жизни, т. к. нужен полный контроль за процессом обучения.
Алгоритмы атак
В данной статье сфокусируемся на четырех методах атаки, которые я использовал в своем исследовании — PGD, RayS, SurFree и M-Attack.
PGD
PGD — итеративно изменяем входной пример по направлению градиента функции потерь, после каждого шага обрезаем всё, что выходит за ограничивающий L∞-шар по значению пикселя.
Шаг алгоритма:
где:
Символ | Значение |
атакуемый пример на t-й итерации | |
допустимый «радиус» | |
оператор проекции | |
шаг атаки | |
функция потерь (cross-entropy для классификатора) | |
веса модели | |
истинная метка | |
градиент по входным данным |
Если при обучении мы минимизировали , то для атаки хочется максимизировать, тем самым направляя модель в сторону некорректного решения.
При этом тут есть свои проблемы: нет стопроцентной гарантии, что за фиксированное число итераций пример изменится так, что модель начнёт ошибаться. White-box-сетап — нужно иметь доступ к весам модели и градиентам.
RayS
RayS — query‑based black‑box‑атака цель которой, заставить модель попадать в область на границе принятия решения.
Концепт: перебираем векторы из дискретного множества вершин
‑шара и бинарным поиском ищем минимальный радиус
, при котором
меняет предсказание модели:
где:
— лучший вектор-направление из дискретного набора;
— подбирается бинарным поиском для текущего
.

SurFree
SurFree — ещё один query-based подход, который старается заставить модель попасть на границу принятия решения. Поиск радиуса и направления происходит иначе, чем в RayS: тут мы подбираем угол поворота относительно уже найденного направления к границе решения, но ищем его так, чтобы изменение оригинального примера было минимально.

Стартуем с уже найденной точки на decision boundary, оригинал помечаем
. На каждом цикле генерируем кандидата:
где:
— расстояние от исходной точки до точки на границе принятия решения;
— единичный вектор направления к границе принятия решения;
ортогонален
и последним
направлениям;
— угол поворота,
корректирует радиус.
Минимальное искажение достигается при . Подставляем и получаем формулу:
Один шаг итеративного алгоритма атаки:
ищем новый вектор-направление
(ортогональный
и предыдущим
направлениям);
подбираем знак
;
бинарным поиском ищем конкретный
для минимального искажения.
Боль та же: лимит запросов. Не успели подобрать оптимальный — атака будет не столь удачной.
M-Attack
Берём ансамбль из энкодеров изображений, каждой итерацией PGD подбираем шум так, чтобы косинусная схожесть между эмбеддингом оригинального и целевого изображения стремилась к 1.
где:
— количество энкодеров в ансамбле;
— эмбеддинг от
‑го энкодера;
— косинусная схожесть.

Ограничения
зависит от того самого энкодера VLM: если внутри другая архитектура или дообученная версия модели, перенос может не сработать;
наследует минусы PGD (white‑box, число итераций).
Разработка методов
Пришло время перейти от теории к тому самому фокусу исследования: можно ли перенести удачную атаку на vision-энкодер прямо в готовую мультимодальную модель?
Идея простая: если энкодер внутри VLM заморожен и является достаточно популярным (а это частое явление для VLM-моделей), то и «ядро» уязвимости останется идентичным. Значит, пробуем получить adversarial-примеры для предполагаемого vision-энкодера, а потом уже тестируем VLM в полноценном black-box-сетапе на полученных примерах — без доступа к весам и градиентам.
Почему это возможно:
Подавляющее большинство современных VLM обучаются с «замороженным» vision‑энкодером.
Небольшой набор популярных vision‑энкодеров. Самые часто встречаемые энкодеры — OpenAI CLIP ViT‑L/14 и Google SigLIP‑SO400M.
Популярные VLM и то, какие vision-энкодеры внутри них используются:
VLM | Vision Encoder |
LLaVA-1.5 | OpenAI CLIP ViT-L/14 |
Molmo | OpenAI CLIP ViT-L/14 |
Phi-3.5-Vision | OpenAI CLIP ViT-L/14 |
LLaVA-NeXT-Video | OpenAI CLIP ViT-L/14 |
LLaVA-Onevision-Qwen2 | Google SigLIP-SO400M |
MiniCPM-V2.6 | Google SigLIP-SO400M |
PaliGemma2 | Google SigLIP-SO400M |
Перенос атаки с энкодера на VLM
Подходим к самому интересному: как именно перенести атаку с энкодера на VLM. Данный эксперимент был направлен на изучение того, как VLM-модель будет классифицировать примеры до атаки и после.
В качестве базовых атак использовались RayS и SurFree. Для данных атак необходимо определить критерий успешности атаки. В моём случае — это совпадение наиболее похожего класса по CLIP-классификации с истинным классом. Отсюда и логика:
Каждое название класса превращается в эмбеддинг через текстовый энкодер, тот самый, что использовался при обучении CLIP.
Атакуемый пример прогоняется через визуальный энкодер, получаем эмбеддинг.
Сравниваем эмбеддинг картинки с эмбеддингами названий классов по косинусной близости. Самый близкий — и есть предсказание.
Атака засчитывается как успешная, если предсказанный класс ≠ истинный.

После этого полученные примеры от RayS и SurFree подаём в VLM и просим дать ответ в виде одного класса. Если класс отличается от истинного, значит, атака сработала и на VLM.
Данные
Что касается самих данных — использовались подмножества из CIFAR-10, CIFAR-100 и CALTECH-101:
Для RayS — 1000 случайных примеров из CIFAR-10, CIFAR-100;
Для SurFree — 1487 примеров из CIFAR-10 и 503 из 20 классов CALTECH-101.
Почему именно 20 классов, а не все 101? Потому что VLM-модели даже на «чистых» примерах слишком часто ошибались с таким количеством классов.
Оценка качества
Чтобы оценить эффективность атаки, вводится ASR (Attack Success Rate) — это доля успешных атак, когда:
исходный пример модель определяет правильно;
атакованный пример — неправильно.
Формула:
где:
— атакуемая модель (VLM);
— исходные примеры;
— атакованные версии тех же примеров;
— истинные метки;
— индикатор (возвращает 1, если условие выполняется, иначе 0);
— количество примеров, на которых модель изначально отвечает правильно.
Если модель и без атаки ошибалась, считать такие примеры за успешные атаки — бессмысленно. Поэтому в метрике такие случаи отбрасываются.
Чтобы подтвердить, что атака даёт эффект не просто из-за шума, дополнительно сравнивали ASR с результатами на изображениях, зашумлённых случайным гауссовым шумом, но такой же амплитуды. Это даёт возможность честной проверки работоспособности атаки, а не просто случайного совпадения.
Перенос атаки с энкодера на Video-VLM
Видеопоток дробим на N кадров и атакуем каждый кадр независимо — ровно так же, как будто перед нами пачка обычных картинок. Готовый набор кадров собираем обратно в ролик и скармливаем Video‑VLM. При этом необязательно использовать все атакованные кадры, в работе использовались различные стратегии формирования итогового видеоролика по набору «чистых» и атакованных кадров, которые будут описаны ниже.
Зачастую в любой Video‑VLM есть собственное сэмплирование: из длинного видео выбирают кадры, которые далее проходят через vision‑энкодер, например, равномерно. Чтобы иметь полный контроль над экспериментом, я делаю это сэмплирование заранее и прогоняю несколько экспериментов, где соотношение «чистых» и «отравленных» кадров варьируется.
Multimodal M-Attack (MMM-Attack)
Базой служит M-Attack, в котором PGD-атака максимизирует косинусную близость между эмбеддингами кропа атакуемого и кропа целевого изображений. Его функция потерь выглядит следующим образом:
где
,
— множества
энкодеров изображений (для атакуемых и целевых кропов, в M-Attack они совпадают);
,
— кропы атакуемого и целевого изображений.
Мы же решили использовать комбинации сразу с двух модальностей для большей вариативности атаки, поэтому были собраны четвёрки , состоящие из двух кропов: целевого и атакуемого, а также двух описаний соответствующих изображений. Теперь проводим атаку сразу по трём направлениям:
— приблизить эмбеддинг атакуемого изображения
к эмбеддингу целевого изображения
;
— приблизить эмбеддинг атакуемого изображения
к эмбеддингу целевого описания
;
— отдалить эмбеддинг атакуемого изображения
от эмбеддинга собственного описания
.
Итоговая функция потерь для PGD в MMM-Attack:
где:
— энкодеры изображений из CLIP/SigLIP подходов,
— соответствующие им текстовые энкодеры;
— веса компонент функции потерь.

Frame Selection — шесть сценариев формирования итогового видеоролика
После того, как каждый кадр был атакован с помощью MMM-Attack:
Стратегия | Что попадает в итоговый ролик |
0 | Все кадры — оригинальные |
1 | Случайно 1 атакованный кадр, остальные — чистые |
0.25 N | ¼ кадров атакованы |
0.5 N | ½ кадров атакованы |
0.75 N | ¾ кадров атакованы |
N | Все N кадров атакованы |
Ожидаем, что рост доли атакованных кадров повысит итоговую метрику IoU.
В качестве данных использовались две независимые выборки, каждая решала свою задачу. Первая — калибровочный HPO-набор на базе VQA-корпуса RLAIF-V: из него случайно выбирали объект, брали его изображение и текстовое описание, после чего подбирали другой произвольный объект — он становился «целевой» парой. Таким образом сформировали четвёрки вида: «атакуемое изображение + его описание / целевое изображение + его описание».
Вторая выборка нужна была для самого переноса атаки на Video-VLM. За основу взяли публичный датасет LLaVA-Video-178K и случайно извлекли сто коротких (до тридцати секунд) роликов. Каждый видеофайл равномерно сэмплировали по десять кадров и для получившихся клипов сгенерировали описания через модель LLaVA-NeXT-Video-7B. Итогом стали сто объектов формата «видео из десяти кадров + описание», из которых затем случайным образом собрали сто пар «атакуемый ролик / целевой ролик» — именно на этом наборе проводилась MMM-Attack.
Оценка качества
Для оценки качества использовалась метрика IoU между:
— ответ Video-VLM на атакованный ролик;
— описание целевого видео, сгенерированное атакуемой Video-VLM.
где функция разбивает строку по пробелу на слова, приводит слова к lower‑case, удаляет пунктуацию и оставляет только уникальные слова в виде множества.
t(«Атака на энкодер, не на VLM!») = {атака, на, энкодер, не, vlm}
HPO
Для проведения наиболее успешной атаки при помощи HPO подбираются следующие гиперпараметры:
веса
,
,
для функции потерь в PGD;
диапазоны масштабов кропа атакуемого кадра
,
;
диапазоны масштабов кропа целевого кадра
,
.

Картинка выше показывает, почему байесовская оптимизация (BO) выгодней: вместо перебора огромного количества конфигураций (Grid Search) и случайных «выстрелов», которые не факт, что попадут в нужную область (Random Search) она с каждой итерацией все ближе подбирается к глобальному оптимуму.
Также были проведены эксперименты по восьми комбинациям , оставив кроп-диапазоны фиксированными на лучших значениях с BO. Все комбинации дали метрики хуже, чем найденные по BO конфигурации, при этом что важно — метрики комбинации (1,1,1) были самыми высокими среди восьми комбинаций (и в целом с увеличением количества единичных весов в комбинации метрики росли), что говорит о важности использования всех трех компонент в атаке.
Итого: MMM-Attack даёт три независимых рычага давления (,
,
) — если модель вдруг устойчива к одному, всегда остаются два других.
Байесовская оптимизация существенно экономит вычислительные ресурсы и быстрее выводит на рабочие конфиги, чем привычный grid-search или random-search.
Ограничения метода и что с ними делать
Первое ограничение — мы предполагаем, что в Video-VLM используется именно тот vision-энкодер, который мы атаковали, либо хотя бы его схожий вариант. В реальности авторы сервиса могли подменить vision-энкодер на свой собственный вариант.
Полностью снять неопределенность нельзя, зато её можно сократить:
Перебор популярных CLIP/SigLIP архитектур. Я прогоняю атаку через 5-6 популярных моделей (OpenAI ViT-L/14, OpenAI ViT-B/16, Google SigLIP-SO400M и т. д.) и смотрю, где перенос работает лучше.
Поиск по статье. Если у модели есть статья — читаю, какие vision-энкодеры авторы упоминали.
Второе ограничение — сходимость исходной атаки на суррогатной модели. Причины провалов типичные:
не те гиперпараметры: PGD не может сделать достаточную оптимизацию из-за ограничения по дельте изменения, RayS упирается в лимит запросов;
не хватает вычислительных ресурсов.
Третий фактор — Video-VLM сама решает, какие кадры использовать. Допустим, авторы используют ровно три «золотых» фрейма, а вы атакуете каждый десятый — ваши атакованные кадры не будут обработаны. Что можно делать в таком случае:
Атаковать кадры-якоря. В новостных роликах это титульный слайд, в TikTok — первый кадр;
Баланс между успешностью и заметностью: атака всех N кадров = бОльшая вероятность успеха, но и бОльшая заметность, однако если вы опасаетесь проблем из-за сэмплирования, этот вариант для вас будет достаточно валидным.
Последний по очередности, но не по важности нюанс — наличие текста на экране. Если ролик содержит «hello-world» баннер, Video-VLM с радостью ухватится за OCR и проигнорирует вашу атаку.
Что здесь нового
Большинство существующих атак предпочитает одномодальные сценарии: либо картинка → картинка, либо текст → текст. MMM-Attack использует сразу три направления атаки:
(изображение → изображение) — смещение исходного картиночного эмбеддинга к целевому;
(изображение → целевой текст) — заставляем эмбеддинг картинки быть похожим на эмбеддинг целевого описания;
(изображение → собственный текст) — отдаляем эмбеддинг изображения от эмбеддинга её исходного описания.
Такой тройной лосс гибче: если модель вдруг устойчива к одному направлению, остаются два других.
Польза для изучения потенциальных улучшений механизмов безопасности моделей очевидна: вместо того чтобы защищаться только от одного вида уязвимостей, вы изучаете, как система реагирует на комбинированные атаки.
Эксперименты
В качестве моделей для атаки на VLM в сетапе классификации выбрал LLaVA-1.5-7B и Molmo-7B. Обе модели используют OpenAI CLIP ViT-L/14 @ 336px.
RayS vs SurFree — метрики
Dataset | VLM | Attack ASR | Noise ASR | Samples (m) |
CIFAR-10 | LLaVA-1.5-7B | 0.4184 | 0.0354 | 423 |
CIFAR-10 | Molmo-7B | 0.4394 | 0.0947 | 380 |
CIFAR-100 | LLaVA-1.5-7B | 0.4430 | 0.1341 | 246 |
CIFAR-100 | Molmo-7B | 0.4736 | 0.1821 | 247 |
RayS: метрики атаки против случайного шума.
Dataset | VLM | Attack ASR | Noise ASR | Samples (m) |
CIFAR-10 | LLaVA-1.5-7B | 0.3561 | 0.0298 | 1140 |
CIFAR-10 | Molmo-7B | 0.3844 | 0.1047 | 1069 |
CALTECH-101 | LLaVA-1.5-7B | 0.5471 | 0.1570 | 382 |
CALTECH-101 | Molmo-7B | 0.3047 | 0.1627 | 338 |
SurFree: метрики атаки против случайного шума.
Где бы ни запускали атаку, ASR на порядок выше, чем у атаки случайным шумом — значит, модели реагируют именно на сгенерированные изменения от атак, а не на случайные изменения.
В рамках исследования частоты появления ошибок на определенных 30 классах было выявлено, что модели под действием атак склонны ошибаться на определенных парах классов. Например, если посмотреть на ошибки модели LLaVA-1.5-7B на датасете CALTECH-101-20 для изображений класса «accordion», то можно увидеть, что в 15 из 16 случаев модель ответила, что изображение является классом «electric_guitar». Схожие зависимости можно наблюдать и для других пар классов, более подробные результаты представлены на рисунке:

Далее приведена наглядная визуализация для класса ant: слева кадр после атаки SurFree, в центре — тот же кадр со случайным шумом, справа — оригинальное изображение без изменений. В результате атаки модель изменила своё решение на класс, отличный от ant, при том что внесённые искажения визуально почти неуловимы для примера от атаки SurFree.

Перенос атаки на Video-VLM
HPO-v1 — ансамбль из 5 энкодеров из CLIP и SigLIP семейств. HPO-v2 — один единственный OpenAI CLIP ViT-L/14 @ 336px.
Гиперпараметр | HPO-v1 | HPO-v2 |
0.9495 | 0.8508 | |
0.4019 | 0.1927 | |
0.3010 | 0.8091 | |
0.3178 | 0.4989 | |
0.7291 | 0.7952 | |
0.3192 | 0.4256 | |
0.6172 | 0.6153 |
Лучшие настройки по HPO.
Метрика | HPO-v1 | HPO-v2 |
IoU | 0.1525 | 0.1392 |
Итоговые метрики по HPO.
MMM-Attack — single vs multi encoder
ME-HPO-v1 — 5 энкодеров + гиперпараметры v1;
SE-HPO-v1 — 1 энкодер + гиперпараметры v1;
SE-HPO-v2 — 1 энкодер + гиперпараметры v2.
Frame Sel. | ME-HPO-v1 | SE-HPO-v1 | SE-HPO-v2 |
0 | 0.1736 | 0.1736 | 0.1736 |
1 | 0.1825 | 0.1767 | 0.1767 |
0.25N | 0.1872 | 0.1816 | 0.1834 |
0.5N | 0.2110 | 0.1937 | 0.1942 |
0.75N | 0.2249 | 0.2048 | 0.2085 |
N | 0.2597 | 0.2352 | 0.2435 |
Ансамбль энкодеров всегда даёт более высокий IoU, подтверждая тезис M-Attack: чем разнообразнее ансамбль, тем больше шанс на успешную атаку.
Рост IoU с числом атакованных кадров очевиден. При выборе 1 кадра из 10 результат всё ещё впечатляющий — Video-VLM переходит к тексту, близкому к целевому, но при этом разница глазами практически неуловима.

Type | Text (сокр.) |
Original | The video shows a group of people walking around a city street, with some individuals standing and others walking. The scene appears to be a casual, everyday setting, possibly a public area or a busy street. |
Target | The video shows a person holding a tennis ball and a bottle of water, presumably preparing to play tennis or practice. The person is wearing a black hoodie and appears to be in an outdoor setting with a building in the background. The focus is on the person and their actions with the ball and water bottle, suggesting they are either about to start a game or take a break during a game. |
Adversarial «N» | The video shows a group of people playing tennis on a court. Some of them are holding tennis rackets and hitting the ball back and forth, while others are watching or waiting for their turn. The setting appears to be an urban outdoor court with buildings in the background. The focus is on the activity of the players and the game being played. |
Adversarial «1» | The video shows a group of people playing tennis on a city street. They are hitting the ball back and forth, and some of them are watching the game. The players are dressed in casual sportswear, and the setting appears to be an urban environment with buildings in the background. |
Итоги
В рамках проделанной работы удалось изучить существующие методы атак на мультимодальные модели, адаптировать существующие алгоритмы атак для переноса с энкодера изображений на VLM, а также разработать свой подход — MMM-Attack — на основе M-Attack для переноса атаки с нескольких энкодеров на Video-VLM. Были измерены и проанализированы результаты различных экспериментов. Многие эксперименты можно считать удачными, т. к. конечная цель — искажение поведения моделей — была достигнута.
Данная работа может использоваться в качестве основы для дальнейших исследований в области изучения и разработки атак на мультимодальные модели, а также может быть полезна для разработки методов борьбы с такими атаками с целью защиты систем, использующих мультимодальные модели в реальной жизни.
Кейс был предоставлен AI VK.