Атаки на нейросети

Атаки на нейросети

Evgenii Pishchik
Эта и другие статьи про различные технологии ИИ выходят в рамках телеграм канала @neural_info.

Введение

Источник: https://arxiv.org/abs/1712.07107

В эпоху стремительного развития искусственного интеллекта все больше компаний интегрируют в свои продукты различные типы ИИ-моделей - LLM, VLM, классические CV / NLP модели и т.д.

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

Примеры реальных кейсов:

В ответ на эти вызовы активно развивается область исследований, посвященная изучению различных типов атак на ИИ-модели и методов защиты от них. Понимание механизмов таких атак критически важно для разработки более надежных и безопасных систем. В рамках этой статьи мы сфокусируемся на рассмотрении основных способов "обмана" ИИ-систем, что поможет лучше понять потенциальные уязвимости современных ИИ-продуктов.

Типы атак

Атаки на системы искусственного интеллекта можно классифицировать по нескольким ключевым параметрам, что помогает лучше понять их природу и потенциальное влияние.

По методу проведения атаки выделяют несколько основных типов:

  • Adversarial атаки: создание специально сконструированных входных данных (примеров) для обмана модели;
  • Transferable атаки: перенос "зараженных" примеров между разными моделями (часто схожей архитектуры и размера);
  • Poison атаки: загрязняют тренировочные данные так, что после обучения модели на таких данных ответы будут совсем некорректными, данный метод является самым спорным, потому что в реальной жизни вряд ли его можно применить, т.к. большинство продуктов использует внутренние данные компании;
  • Prompt injection атаки - специфические для LLM / VLM (в основном) атаки, которые модифицируют входной текстовый промпт таким образом, что модель начитает ошибаться в своих ответах;
  • Jailbreak атаки: нацелены на обход встроенных ограничений модели (prompt injection атаки тоже сюда относятся);
  • Backdoor атаки: создающие скрытые уязвимости у модели, атака срабатывает только при подаче определенного вида данных (triger), зачастую такие атаки требуют полного доступа к модели, что делает их достаточно неприменимыми в реальной жизни (только если вы не злостный разработчик, который хочет навредить своей же компании).

По степени доступа к атакуемой модели различают три основных уровня:

  • White-box: полный доступ к архитектуре и параметрам модели;
  • Gray-box: частичный доступ к информации о модели, например, для VLM часто используют замороженные модели ViT в качестве энкодера изображений, можно, зная эту информацию, проводить adversarial / transferable атаки, при этом не имея доступа к параметрам модели, получая только ответы;
  • Black-box: доступ только к ответам модели, например, gpt4o-mini API.

С точки зрения получаемого от модели ответа атаки подразделяются на:

  • Soft-label: ответ в виде вероятности для всех возможных классов (ответов);
  • Hard-label: ответ в виде лейбла без распределения вероятностей классов (ответов).

По направлению атаки можно разделить на две категории:

  • Targeted: атака пытается направить модель отдавать определенный, заранее заданный класс (ответ);
  • Random: атака направляет ответы модели в любые другие классы (ответы), отличающиеся от реального.

Атаки на реальные системы

В практических сценариях доступ к системам, использующим нейросети, обычно весьма ограничен. Типичный пользователь имеет в своем распоряжении только:

  • Выходные данные системы: это может быть текстовый ответ, классификационная метка или сгенерированное изображение. Никакой дополнительной информации о внутренних процессах обработки данных система обычно не предоставляет;
  • Общие предположения об архитектуре: в некоторых случаях можно сделать обоснованные предположения о структуре системы. Например, если известно, что продукт VLM, можно предположить наличие конкретного (например, можно заглянуть в карточку модели на HuggingFace, если она там представлена) предобученного визуального энкодера, так как это стандартная практика в данной области.

Учитывая эти ограничения, из спектра описанных выше атак практически применимыми остаются лишь следующие категории:

  • По методу атаки: adversarial, transferable, prompt injection, jailbreak;
  • По уровню доступа к модели: black-box, gray-box;
  • По типу получаемого ответа: hard-label.
  • По направлению атаки: random, targeted.

Hard-label black-box атаки на картиночные модели

Источник: https://arxiv.org/abs/2006.12792

В рамках hard-label black-box атак популярным является query-based подход. Суть метода заключается в последовательном взаимодействии с моделью через ограниченное количество запросов для поиска такого входного изображения, которое приведет к ошибочной классификации.

Ключевым аспектом этого подхода является минимизация визуальных различий между исходным и модифицированным (adversarial) изображением. Для этого используются различные метрики, такие как L_2 и L_inf нормы, которые позволяют оценить степень внесенных изменений. Цель состоит в том, чтобы создать такое изображение, которое визуально почти неотличимо от оригинала, но вызывает некорректный ответ модели.

Типичный алгоритм query-based hard-label black-box атаки состоит из следующих шагов:

  • Инициализация: начинаем с оригинального изображения, которое корректно классифицируется моделью;
  • Поиск направления: алгоритм определяет направление изменения изображения и проверяет, приводит ли это к изменению классификации. При успехе алгоритм начинает поиск коэффициента масштабирования вектора направления, при неудаче выбирается новое направление;
  • Оптимизация коэффициента масштабирования: после нахождения успешного направления атаки происходит поиск минимального коэффициента масштабирования, который сохраняет некорректную классификацию при минимальном визуальном искажении исходного изображения;
  • Итеративное улучшение: процесс поиска направления и оптимизации коэффициента масштабирования повторяется заданное количество раз в рамках выделенного бюджета запросов к модели или пока норма разности не станет меньше определенного порога.

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

Такой алгоритм на самом деле можно отнести к jailbreak атаке, т.к. он итеративно пытается взломать модель, отправляя различные запросы. Поэтому отдельного разбора jailbreak атак не будет :)

Примеры интересных статей по этой теме:

Transferable атаки

Источник: https://phibenz.github.io/talk/2d3d.ai_transferability_and_beyond/

Основная идея transferable атак - использование суррогатной модели в white-box режиме для создания модифицированных (adversarial) примеров, которые потом подаются в black-box модель, таким образом происходит перенос.

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

Примеры интересных статей по этой теме:

Атаки на VLM

Источник: https://arxiv.org/abs/2412.05892

Атаки на VLM можно проводить в трех основных следующих сетапах:

  • Атака только на LLM часть;
  • Атака только на визуальный энкодер;
  • Атака на LLM и на визуальный энкодер (bimodal attack).

Примеры интересных статей, которые реализуют bimodal атаки:

Prompt injection атаки

Источник: https://arxiv.org/abs/2308.03825

Данный вид атак чаще всего используется для атак на LLM. Выглядит он как добавление определенного "вредоносного" текста в контекст, используемый LLM. Такой "вредоносный" текст заставляет LLM генерировать неприемлемые ответы.

Есть два основных типа prompt injection техник:

  • Direct: добавление "вредоносного" текста напрямую в промпт / системный промпт (не уверен, но возможно также будет работать с функцией памяти и личной информации у ChatGPT);
  • Indirect: добавление "вредоносного" текста в какие-то внешние документы, которые LLM в какой-то момент может использовать для своего ответа.

Пайплайн атаки в таких подходах выглядит достаточно просто (верхнеуровневого):

  • Выбери промпт и добавь его к определенным данным, кинь запрос в LLM;
  • Провалидируй ответ, если атака не удалась, то скорректируй / выбери другой промпт;
  • При необходимости повтори шаги, описанные выше.

Примеры интересных статей по этой теме:

Метрики качества атак

Для измерения качества атак используют следующие достаточно понятные и простые метрики:

  • ASR (attack success rate): доля успешных атак относительно всех проведенных попыток атаки;
  • Любые метрики, подходящие под оригинальную задачу: accuracy, precision, recall, f1, ndcg, mrr и т.п, сравнение метрик происходит попарно с метриками модели на оригинальных примерах, таким образом можно понять насколько атака просаживает качество модели.

Конечно это не весь лист. Например, для атак, основанных на границе принятия решения (RayS), используется метрика ADBD (average decision boundary distance), которая показывает насколько в среднем оригинальные примеры близки к границе принятия решения (по сути, насколько они будут склонны к изменению лейбла при атаке).

Выводы

Не стоит забывать про безопасность своих моделей и стоит знать врага в лицо! Однако, я считаю, что и закапываться в эту тему не стоит, т.к. бОльшая часть атак не применима в реальной жизни, особенно если вы не используете полностью предобученные модели в своих продуктах.

Дополнительные материалы

Статьи:

Различные инструменты:

Report Page