Комплексный подход к защите ИИ. Как обезопасить нейросети в приложениях от атак
Изображение создано нейросетью
Технологии искусственного интеллекта всё чаще применяются в пользовательских и бизнес-приложениях для автоматизации самых разных процессов и оперативной аналитики данных.
В то же время модель, которая не контролируется разработчиком, может быть подвержена атакам и компрометации. О видах атак на модели нейросетей и способах их предотвращения рассказывает руководитель департамента разработки Guardant (бизнес-направление Компании «Актив») Михаил Бакаляров.
Содержание:
Нейросеть как интеллектуальная собственность
Сегодня нам уже сложно представить мир без технологий искусственного интеллекта: нейросети находят всё большее применение как в повседневной жизни, так и в самых разных бизнес-процессах. И, скорее всего, это только начало: ведь методики ML постоянно совершенствуются, а количество направлений развития искусственного интеллекта продолжает расти. На данный момент наиболее востребованными среди них можно назвать голосовые помощники, распознавание и генерацию изображений, системы автономного вождения, медицинскую диагностику, биометрические системы. В этих категориях на рынке существует уже достаточное количество зрелых решений, приносящих реальную пользу. Например, по оценке Яндекса, к 2023 году генеративный ИИ использовали уже около 20% российских компаний.
При этом очевидно, что разработка модели и получение необходимого результата от машинного обучения требуют значительных финансовых и временных вложений. Обученная модель, как интеллектуальная собственность разработчика, является для него крайне ценным ресурсом. Любая потенциальная хакерская атака на нее может нанести ему серьезный ущерб. Общаясь с поставщиками программного обеспечения, компонентом которого служит ML-модель, мы видим их обеспокоенность данной проблемой и интерес к внедрению дополнительной защиты своих разработок.
Стоит напомнить о том, что наиболее популярные фреймворки машинного обучения используют бинарный формат хранения модели: например, в TensorFlow от Google используется ProtoBuf, а в PyTorch – Open Neural Network Exchange (ONNX). Для работы нейросети фреймворк загружает файл модели, который в некоторых случаях может открыто храниться на диске.
Модель нейросети может работать как из облака (Cloud-based Machine Learning – например, голосовые помощники вроде Алисы от Яндекса), так и непосредственно с пользовательского устройства (On-device Machine Learning или On-client Machine Learning – например, интеллектуальная система видеоаналитики в составе автомобильного ПО). Причем количество приложений, в которых модель разворачивается непосредственно на устройстве клиента, в последнее время активно растет. Такой вариант имеет ряд несомненных преимуществ: модель характеризуется отсутствием задержек, не требует подключения к сети и обеспечивает конфиденциальность пользовательских данных, поскольку в этом случае их не нужно отправлять на сторонний облачный сервер.
В то же время, в отличии от Cloud-based ML, при развертывании модели на устройстве всегда есть риск ее компрометации. Как правило, доступ к таким приложениям открыт для всех, а значит, разработчику приходится задумываться о защите моделей нейросетей от атак.
Количество приложений, использующих On-client ML, в ближайшем обозримом будущем продолжит расти. В качестве доказательства этого можно привести динамику рынка чипов с поддержкой ИИ. Statista оценивает объем глобального рынка ИИ-чипов в 2024 году в $30 млрд, что на $7 млрд больше, чем показатель 2023 года. К 2027 году аналитики прогнозируют двукратный рост рынка и достижения суммы в $67 млрд, а к 2034 году – десятикратный рост.
С технической стороны мы также наблюдаем сосредоточенность разработчиков на оптимизации нейросетей. Так, в чипы ИИ активно внедряются алгоритмы и новые форматы хранения чисел. Например, формат чисел с плавающей точкой bfloat16 (brain floating point), разработанный Google Brain, уже задействован в чипе M2 от Apple и добавлен в расширение AVX-512 от Intel. Он интересен тем, что в него легко конвертируется стандартный float32. При этом потеря точности не оказывает негативного влияния на работу алгоритмов машинного обучения: наоборот, скорость вычислений возрастает, и для них требуется меньше места в хранилище.
Как же злоумышленники могут угрожать разработчику и заказчикам приложений, использующих ML-модель? Рассмотрим схемы атак – от стандартных до самых изощренных.
Первая угроза. Копирование программного обеспечения
Когда модель развернута в приложении, к которому клиенты имеют доступ, основной риск заключается в том, что это программное обеспечение может быть легко скопировано и впоследствии запущено без лицензии. Без хорошей защиты и системы лицензирования ничто не помешает злоумышленнику запустить копию приложения на любом другом устройстве.
Вторая угроза. Кража модели из приложения (model theft)
В этом случае злоумышленник извлекает модель из оригинального приложения для того, чтобы переиспользовать ее в своем программном продукте. Если такой способ мошенничества практикуется конкурентом добросовестного разработчика, то последний рискует понести значительную потерю дохода.
Например, на каждом роботизированном предприятии используется технология компьютерного зрения, позволяющее роботам в автоматическом режиме выполнять различные функции распознавания. Для обучения таких моделей разработчику необходим объемный датасет, состоящий из тщательно подобранных, структурированных релевантных данных. Отсутствие жесткого контроля доступа на предприятие создает риск того, что злоумышленник сможет извлечь и скопировать эту уже обученную модель, а затем перенастроить ее, легко интегрировать в свои собственные приложения или перепродать.
Третья угроза. Модификация модели
Имея полный доступ к модели, злоумышленник может изменить подлинную модель или подменить ее совсем другой моделью. Иногда ему для этого может потребоваться знание интерфейса между моделью и приложением – то есть процедура реверс-инжиниринга кода. В число самых известных подобных атак на модели нейросетей входят отравление модели, отравление данных и атака с передачей обучения.
Отравление модели (model poisoning) подразумевает манипулирование данными модели напрямую: фактически злоумышленник просто меняет веса модели. В этом случае модель может демонстрировать случайные сбои, приложение начинает работать не так, как ожидается – например, выдавать неверные прогнозы или аналитику, отличающуюся от экспертных расчетов.
Отравление обучающего набора данных (transfer learning attack) подразумевает, что злоумышленник имеет доступ к обучающему датасету и может произвести с ним некие манипуляции: например, создать в модели бэкдор, который будет срабатывать только в определенном случае. Допустим, у нас есть нейросеть, которая умеет очень хорошо распознавать животных по их изображениям. Проблема в том, что нейросеть представляет изображение как набор пикселей, тогда как человек при идентификации животного руководствуется ассоциациями и логикой. Поэтому, несмотря на то, что модель обучена на тысячах фотографий, она все равно не сможет распознавать изображения так, как человек. И если мы, к примеру, нанесем на все картинки с изображением собаки некий условный знак, то обученная на этих картинках модель всегда будет искать его и отождествлять этот знак с собакой. Соответственно, изображение кошки, на котором присутствует этот знак, она будет так же считать изображением собаки. Читайте также
Цифровой рубль: что мы думаем о нем? Итоги опроса IT-World В преддверии запуска цифрового рубля – а это одна из самых обсуждаемых в социуме тем сегодня — мы в IT-World решили провести опрос среди своих читателей. Хотелось выяснить, а что они сами думают и знают о третьей форме национальной валюты? Итоги опроса показались нам несколько неожиданными, но, тем не менее, интересными.
Передача обучения – это способ создать новую, более специализированную, модель нейросети, взяв за основу заранее обученную базовую модель и добавив в нее некоторое количество новых слоев нейронов. Например, у нас есть базовая нейросеть, которая умеет распознавать листья деревьев и хорошо классифицировать их – то есть отличать друг от друга листья клена, березы, дуба, тополя и т. д. На ее основе мы можем построить новую модель, дообучив ее данными, необходимыми для распознавания заболеваний этих листьев. Но если базовая нейросеть содержит уязвимость, то и новая модель также будет ее содержать эту уязвимость – и работать неверно.
Атаки с передачей обучения могут применяться, когда модель работает не только на устройстве, но и в облаке. В частности, недобросовестный поставщик может сам заложить такую уязвимость в свою базовую сеть, на которой впоследствии будут строиться приложения. Последствия их применения могут быть самыми катастрофическими – например, если нейросеть в автомобильном ПО, используемая для распознавания дорожных знаков, будет реагировать с ошибками.
Поэтому защита модели от модификации является важной задачей разработчика. Базовыми контрмерами против всех перечисленных видов атак является шифрование модели, контроль ее целостности и разрешение только правильному приложению расшифровывать и использовать ее. При этом важно чтобы ключ шифрования не хранился внутри приложения. Оптимальный способ – сочетание шифрования с системой лицензирования, когда ключ шифрования хранится в лицензии отдельно от приложения. Кроме того, система лицензирования обеспечивает большую гибкость и защиту, поскольку может хранить ключи шифрования в различных источниках, включая аппаратные ключи шифрования.
Четвертая угроза. Атака на среду выполнения
В отличие от рассмотренных выше «лобовых» атак, злоумышленник может изменить поведение прикладной системы путем атаки непосредственно на среду выполнения. Каждое приложение имеет фрагменты кода, которые выполняются на основном процессоре. Получение и подготовка данных для ввода в модель и постобработка вывода модели являются точками, которые могут быть подвержены атакам манипуляции входными данными (input manipulation attack) и атакам целостности выходных данных (output integrity check).
Так, практически для любой обученной сети обычно можно найти состязательный пример – то есть вариант, на котором нейросеть ошибается. Допустим, если она умеет классифицировать объекты, то наложение шума (случайных пикселей) на изображение может привести к ошибкам классификации.
Для предотвращения атак на среду выполнения важно добиться того, чтобы приложение, которое общается с моделью, было достаточно защищено от обратного инжиниринга и модификации.
Пятая угроза. Использование злоумышленником исходной модели для обучения своих моделей
Обучение модели требует значительных временных и финансовых вложений. Помимо сбора эффективного набора обучающих данных, необходимо курировать его, правильно маркируя образцы. Конкурент может использовать готовую модель для маркировки своего немаркированного обучающего набора данных, а затем дообучить свою модель уже на своих датасетах. Таким образом он сэкономит время и трудозатраты, необходимые для создания правильной маркировки, а добросовестный разработчик потеряет преимущество.
Поскольку злоумышленник должен использовать приложение для запуска своих наборов данных, для предотвращения этого применяется упомянутая ранее комбинация способов защиты – жесткого контроля использования исходного приложения через лицензирование. Это достигается путем определения количества возможных классификаций в каждом временном интервале, ограничения общего количества классификаций и ограничения количества одновременно запущенных экземпляров приложения. Добавляя инструменты обнаружения и ограничения противоправного использования ML с контролем их целостности и защитой от обратного инжиниринга, разработчик дополнительно защищает приложение.
Как защитить модели нейросетей от атак
В 2021 году китайский университет провел исследование около полутора тысяч Android-приложений, в которых используются модели нейросетей. В основном это были модели для распознавания лиц, определения жизнеспособности, распознавания удостоверения личности, банковских карт, обнаружения вредоносных программ. Выяснилось, что около 2/3 поставщиков защищают свою модель, но даже в этом случае из большинства приложений модели извлекаются достаточно просто. При этом различные фреймворки продемонстрировали разную степень защиты модели: фреймворки с открытым исходным кодом (NCNN, Tensor Flow) показали относительно низкий уровень (около 25%), коммерческие фреймворки (Caffe, Sense Time) – гораздо более высокий (около 75%). Эти оценки кажутся достаточно спорными, но мы не можем не принимать их во внимание.
Исходя из анализа рынка, мы делаем следующие выводы:
Первый: количество моделей, работающих на устройствах, в ближайшем будущем продолжит расти.
Второй: проверенные технологии уже эффективно защищают модели от копирования, кражи и подмены.
Третий: точный контроль за использованием достигается через лицензирование. Например, лицензирование позволяет ограничить объем классификации данных на единицу времени и таким образом не дать недобросовестным поставщикам злоупотреблять исходной моделью для собственных нужд.
Четвертый: поддержка архитектуры ARM и ОС Android снимает ограничение использования средств защиты только на десктопных устройствах. Например, в 2024 году в Guardant появилась поддержка ARM, а в 2025 будет выпущена поддержка Android. Использование нашего SLK расширяет возможности защиты.
Пятый: популярные уязвимости требуют многогранного подхода к защите модели. Во-первых, необходимо полноценно использовать фреймворк – в частности, библиотеки, которые позволяют создавать состязательные примеры, тестировать нейросеть на уязвимости. Во-вторых – стоит внедрять дополнительную защиту от копирования, если модель работает непосредственно на устройствах.
Важно, что система лицензирования может эффективно дополнять фреймворк. Она позволяет надежно хранить ключи шифрования моделей как в программных, так и в аппаратных ключах. Встроенная в нее обфускация кода позволяет усилить защиту от взлома и копирования. Также она дает возможность использовать готовые инструменты для построения кастомной защиты от дампа модели в памяти.
Михаил Бакаляроврассказывает руководитель департамента разработки Guardant (бизнес-направление компании «Актив»)