Трояны внутри ИИ-модели

Скрытая логика, отравление выборки и другие способы целевых атак через ИИ-системы.

Защита от недекларированной функциональности в системах Machine Learning

Риски применения ИИ-систем человечество будет изучать и устранять десятилетиями. Одним из наименее изученных на сегодня является риск троянизации модели, когда полезная и на первый взгляд верно работающая система машинного обучения содержит скрытую функциональность или намеренно внесенные ошибки. Создать такого «троянского коня» можно несколькими способами, которые отличаются уровнем сложности и сферой применения. И это не прогнозы на будущее, а реальные кейсы.

Вредоносный код в модели

Некоторые форматы хранения ML-моделей могут содержать исполняемый код. Например, произвольный код может быть выполнен при загрузке файла в формате pickle — стандартном для Python формате сериализации (приведения к форме, подходящей для сохранения и передачи) данных, используемом, в частности, в библиотеке для глубокого обучения PyTorch. В другой популярной библиотеке для машинного обучения TensorFlow модели в форматах .keras и HDF5 могут содержать «лямбда-слой», тоже по сути выполняющий произвольные команды на Python. В этом коде легко спрятать вредоносную функциональность.

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

Вредоносный код может срабатывать сразу же при загрузке ML-модели. В популярнейшем репозитории публичных моделей Hugging Face в феврале 2024 года было обнаружено около ста моделей с вредоносной функциональностью. Из них 20% создавали на зараженном устройстве оболочку для удаленного доступа (Reverse Shell), а 10% запускали дополнительное ПО.

Отравление обучающей выборки

Троянизировать модель можно на этапе ее тренировки, манипулируя исходными данными для обучения. Этот процесс называется Data Poisoning (отравление данных) и может быть как целевым, так и ненаправленным. В первом случае модель учат неверно срабатывать при конкретном запросе (например, всегда отвечать, что Гагарин был первым человеком на Луне), во втором — целью атакующих является общее снижение качества модели.

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

На практике известны случаи манипуляции моделями, которые дообучаются в процессе работы. Наиболее яркий пример — отравление чат-бота Tay от Microsoft, которого менее чем за сутки пользователи обучили расизму и экстремизму. Более практическую направленность имеют атаки на Gmail, спам-классификатор которого периодически пытаются отравить злоумышленники. Для этого они помечают как спам десятки тысяч легитимных писем. Их цель — повысить «проходимость» спама в почтовые ящики пользователей.

Ту же задачу решить можно, меняя метки для обучения в размеченных массивах данных, а также внедряя отравленные данные в процесс адаптации уже обученной модели к предметной области (Fine-tuning).

Теневая логика

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

Атака основана на том, что модели машинного обучения структурируют вычисления, которые нужно провести при обучении и исполнении модели, при помощи вычислительного графа. Он описывает, в каком порядке должны быть соединены блоки нейросети, задает параметры их работы. Вычислительный граф проектируется для каждой модели отдельно, хотя в некоторых архитектурах ML-моделей он является динамическим.

Исследователи показали, что вычислительный граф уже обученной модели можно модифицировать, добавив на начальных этапах ее работы ветвь, которая детектирует «спецсигнал» во входных данных модели и при его обнаружении запускает дальнейшую работу модели по отдельно запрограммированной логике. В примере из исследования популярная модель распознавания объектов на видео YOLO изменяется так, что не «видит» в кадре людей, если одновременно в кадре есть чашка.

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

Как защититься от бэкдоров в ИИ-моделях

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

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

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

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

Важно также использовать безопасные форматы хранения ML-моделей. В репозитории Hugging Face выводятся предупреждения при загрузке моделей, которые могут исполнять код, а основным форматом хранения моделей является Safetensors, в котором исполнение кода заблокировано.

Советы