Нейронные сети являются неотъемлемой частью нашей повседневной жизни и находят широкое применение в различных областях, включая системы распознавания (банковской, идентификационной и другой чувствительной информации), а также различные системы управления и обеспечения безопасности. Однако нейронные сети – всего лишь мощный инструмент обработки данных, у которого, как и у всякого инструмента, есть недостатки.
Например, самый серьезный конструктивно-обусловленный их недостаток – потенциальная нестабильность работы. Суть этого недостатка заключается в том, что можно подобрать специальные примеры, называемые вредоносными, которые будут мало отличаться от типичных входных данных сети, на которых она, однако, будет выдавать совершенно некорректный ответ. Методы создания таких вредоносных искажений в литературе стали называться атаками на нейронные сети.
Неизбежные ассоциации с областью информационной безопасности породили вопросы: а что еще нехорошего можно сделать с нейросетевой моделью? Оказалось, что много чего:
узнать архитектуру модели и ее коэффициенты,
получить информацию об обучающих данных,
скопировать функционал сети.
И способы это сделать также стали называться атаками на нейронные сети! В результате, в современных работах можно встретить множество различных классификаций атак на нейронные сети, которые частично пересекаются друг с другом. Зачастую, очередная обзорная статья предлагает новую таксономию атак, стремясь охватить новые предложенные методы. В этой статье мы не будем даже пытаться построить единую классификацию атак, а рассмотрим несколько основных критериев классификации и постараемся понятно объяснить, в чем заключается их смысл.
Можно выделить 5 основных критериев (см. Рис. 1), в основе которых лежат разные принципы воздействия на сеть или данные. Начнем рассмотрение с атак, которые по-разному воздействуют на систему.
![Рис. 1. Различные классификации атак на нейронные сети. Рис. 1. Различные классификации атак на нейронные сети.](https://habrastorage.org/getpro/habr/upload_files/6fe/a10/e21/6fea10e21368c8fc450818f5b929ba16.png)
Результат воздействия на систему
Атаки изменения поведения ставят своей целью изменить результат работы модели, то есть нарушить целостность системы.
Заметим, что непосредственная реализация таких атак заключается в подаче на вход модели каким-либо образом модифицированных входных данных, поскольку других способов воздействовать на обученную модель без прямого доступа к системе нет. Например, если посветить лазером в камеру распознающей системы, нейронная сеть получит нетипичное изображение на вход и может выдать внезапный результат. Такое воздействие также будет атакой на целостность системы. Пример атаки изменения поведения модели показан на Рис. 2.
![Рис. 2. Пример атаки, изменяющей поведение нейросетевой модели. Человек с заранее распечатанным патчем не детектируется системой распознавания (https://arxiv.org/pdf/1904.08653.pdf). Забегая вперед, скажем, что это также пример атаки уклонения, а еще атаки в физическом мире. Рис. 2. Пример атаки, изменяющей поведение нейросетевой модели. Человек с заранее распечатанным патчем не детектируется системой распознавания (https://arxiv.org/pdf/1904.08653.pdf). Забегая вперед, скажем, что это также пример атаки уклонения, а еще атаки в физическом мире.](https://habrastorage.org/getpro/habr/upload_files/b42/dd7/b44/b42dd7b44601206ceeda8c1a33030c02.png)
Атаки нарушения конфиденциальности ставят своей целью получение доступа к различным артефактам сети, таким как обучающие данные, архитектура, веса обученной модели и т.д. Также сюда относятся атаки, позволяющие узнать что-то об обучающей выборке или получить модель, которая копирует функционал исходной модели.
Доступ к артефактам машинного обучения – вещь крайне неприятная, поскольку непосредственно архитектура и веса нейросетевой модели могут представлять собой коммерческую тайну, а обучающие данные – еще и содержать персональную информацию, не подлежащую разглашению. Кроме того, эту информацию можно использовать для создания вредоносных примеров, изменяющих поведение конкретной модели. Однако есть и хорошая новость: взять и извлечь ее не так просто. Чаще всего для этого нужен непосредственный доступ к “железу”, на котором происходило обучение или исполнение нейронной сети, а применяемые методы основаны на анализе содержимого кэшей и вызовов библиотек, то есть находятся в компетенции специалистов по классической информационной безопасности.
Тем не менее, и без доступа к оборудованию можно узнать что-нибудь про обучающую выборку. Можно установить ее отдельные свойства, определить, училась ли нейронная сеть на конкретных обучающих данных или попробовать восстановить обучающие примеры. Зачем это может быть нужно? Самый интересный с практической точки зрения пример: можно попробовать узнать, что модель училась на какой-либо открытой выборке и использовать эту информацию для подбора вредоносных искажений. Кроме того, в литературе приводится пример с медицинскими данными: если в обучающей выборке использовались реальные данные, то становится возможным узнать, что конкретный человек страдает от определенного заболевания/принимал участие в экспериментальном лечении. Однако на наш взгляд, это довольно странно: для такой атаки нужно уже иметь довольно большой объем конфиденциальных данных и выполнять атаку ради одного обучающего примера выглядит нецелесообразным.
И, наконец, выделяют группу атак на конфиденциальность, которые позволяют скопировать функционал нейронной сети. Таким способом сторонние лица получают модель, которая работает сопоставимо с исходной, но тратят меньше усилий (да? точно?) на сбор данных, подбор архитектуры и обучение моделей. Еще эту модель можно использовать для дальнейшей генерации вредоносных примеров.
Пример такой атаки (https://arxiv.org/pdf/2010.11158.pdf) показан на Рис. 3-4. В ней функционал закрытой модели пытаются скопировать методом дистилляции знаний и генерации размеченной выборки.
![Рис. 3. Шаг 1: генерируется набор случайных примеров в скрытом пространстве и пропускается через обучаемый генератор и учителя (атакуемую модель). Шаг 2: оптимизируется представление в скрытом пространстве с помощью эволюционного поиска. Шаг 3: оптимизированные примеры и вероятности классов учителя на них используются в качестве цели для извлечения знаний. Рис. 3. Шаг 1: генерируется набор случайных примеров в скрытом пространстве и пропускается через обучаемый генератор и учителя (атакуемую модель). Шаг 2: оптимизируется представление в скрытом пространстве с помощью эволюционного поиска. Шаг 3: оптимизированные примеры и вероятности классов учителя на них используются в качестве цели для извлечения знаний.](https://habrastorage.org/getpro/habr/upload_files/eec/c39/d79/eecc39d79736bc11d1723922ccd3026f.png)
Таким образом, без знания о модели и наборе данных, на котором она училась, получается скопировать ее поведение.
![Рис. 4. Пример работы генератора в процессе оптимизации. Над картинкой указана уверенность скрытой модели в принадлежности классу (squirrel monkey - верхний ряд) и (bald uakari - нижний ряд) Рис. 4. Пример работы генератора в процессе оптимизации. Над картинкой указана уверенность скрытой модели в принадлежности классу (squirrel monkey - верхний ряд) и (bald uakari - нижний ряд)](https://habrastorage.org/getpro/habr/upload_files/adf/c98/dd3/adfc98dd37ea4f89ec1addf03c4e37c7.png)
Вид атаки
Метод отравления подразумевает малозаметную манипуляцию обучающими данными для изменения работы сети. Такая манипуляция может заключаться как в модификации самих данных, так и их меток. В результате можно добиться того, что сеть изучит неверные признаки и будет делать неверные прогнозы на изображениях с тем или иным свойством, при этом достаточно хорошо работая на тестовой выборке. В частности, этим свойством может быть наличие небольшого паттерна или предмета на изображении. Его называют триггером. При наличии триггера модель будет “обращать внимание” только на него и работать неверным образом, продолжая выдавать корректные результаты на изображениях без него.
Приведем другой пример. Предположим, есть нейронная сеть, обученная классифицировать изображения животных. Обучающий набор данных состоит из различных изображений рыб и собак. Однако в сеть (зло)намеренно добавляется несколько изображений рыб, помеченных как собаки. Эти отравленные примеры могут запутать сеть во время обучения, заставив ее изучать неверные связи между определенными признаками и метками. В результате сеть может классифицировать рыб как собак в будущем (см. Рис. 5).
![Рис 5. Пример атаки отравления. Также такая атака является целевой, так как в этом примере рыбы и собаки намеренно меняются местами (https://arxiv.org/pdf/1804.00792v2.pdf). Рис 5. Пример атаки отравления. Также такая атака является целевой, так как в этом примере рыбы и собаки намеренно меняются местами (https://arxiv.org/pdf/1804.00792v2.pdf).](https://habrastorage.org/getpro/habr/upload_files/f19/ad0/1fa/f19ad01fa23e0c4a3a404e42f3cecee1.png)
Атаки уклонения, с другой стороны, нацелены на развернутую нейронную сеть. При таких атаках выполняется манипуляция только входными данными непосредственно во время работы сети, а их цель состоит в том, чтобы заставить ее делать неверные прогнозы или вести себя неожиданно. В литературе зачастую упоминаются варианты атак уклонения, которые не будут сильно бросаться в глаза человеку (а это либо совсем небольшие изменения, либо изменения не вызывающие подозрений).
Продолжая пример классификации животных, предположим, что нейронная сеть развернута в системе распознавания изображений, которая помогает идентифицировать животных в режиме реального времени. Злоумышленник может создать небольшие вредоносные искажения, которые при наложении на изображения смогут привести к неверной классификации (см. Рис. 6).
![Рис 6. Левые изображения классифицировались правильно, но после добавления шума (средний столбец) все картинки стали распознаваться как страус (https://arxiv.org/pdf/1312.6199.pdf). Рис 6. Левые изображения классифицировались правильно, но после добавления шума (средний столбец) все картинки стали распознаваться как страус (https://arxiv.org/pdf/1312.6199.pdf).](https://habrastorage.org/getpro/habr/upload_files/3bf/bd8/64f/3bfbd864f1ca270d920bac3c9d154ba5.png)
Однако отметим, что предлагаемые в литературе модификации могут быть вполне заметными и даже подозрительными (см. Рис. 7). В реальном мире неформатные дорожные знаки рано или поздно заменили бы (заменили бы, да?).
![Рис 7. Стикеры, “превращающие” 35 миль в час в 85. Рис 7. Стикеры, “превращающие” 35 миль в час в 85.](https://habrastorage.org/getpro/habr/upload_files/8c9/8eb/f29/8c98ebf29da389ab66cd27304d7c33d3.png)
Информация о модели
Атаки "белого ящика" (white box) предполагают наличие полной информации об атакуемой модели, включая ее архитектуру, параметры и иногда данные, использованные для обучения. В таких атаках для генерации вредоносных примеров, как правило, считаются фактические градиенты относительно входных изображений целевой модели. Поэтому атаки "белого ящика" на сегодняшний день наиболее эффективны, но наименее приближены к реальным условиям.
Атаки "черного ящика" (black box) представляют более реалистичный сценарий, где атакующий не обладает информацией о модели. Поэтому для создания вредоносных примеров они могут использовать только ответы модели. Чтобы собрать достаточно информации, они выполняют множество запросов к модели. Например, если число запросов неограниченно, можно сгенерировать и разметить данные, обучить на них новую модель и уже для нее создавать вредоносные примеры (см. пример на Рис. 3-4). Кстати, поэтому число запросов к нейронной сети полезно делать конечным и не очень большим.
Атаки "серого ящика" (gray box) сочетают характеристики атак "белого" и "черного" ящиков. В этом случае атакующий располагает частичной информацией о модели, что делает такие атаки более реалистичными, но все же накладывает некоторые ограничения. Например, может быть известна архитектура модели или информация о данных, на которых модель была обучена, однако отсутствовать доступ к самим данным или обученным весам.
Тип атаки
Нецелевые атаки вводят в заблуждение целевую модель таким образом, чтобы она выдавала любой ответ, кроме правильного. Внутри сети при этом происходит следующее: входной пример представляется в некотором пространстве признаков, в котором каждой области соответствует определенный ответ модели. У этих областей есть границы, которые называются границами принятия решения. И идея нецелевых атак заключается в том, чтобы найти ближайшую границу принятия решения и вредоносный пример, лежащий по другую сторону этой границы. Таким образом минимально возможная модификация обеспечивает изменение работы нейронной сети.
Целевые атаки заключаются в модификации входных данных модели с целью получения заранее определенного ответа (отличного от правильного). Подразумевается, что такая модификация не мешает человеку правильно распознать изображение, то есть мы все-таки можем говорить о правильном ответе. При этом возможны целевые атаки не только на классификацию изображений, но и на детектирование объектов и другие задачи. Возможность реализовать целевую атаку зависит от расстояния между исходным объектом и границей принятия решения целевого класса, если оно велико, то модификация, необходимая для реализации такой атаки, будет значительной и заметной. Примеры целевой и нецелевой атак показаны на Рис. 8.
![Рис 8. Примеры целевой и нецелевой атаки. Рис 8. Примеры целевой и нецелевой атаки.](https://habrastorage.org/getpro/habr/upload_files/033/7f7/939/0337f7939e39872a64091080755e7649.png)
Тип применимости
Виртуальные атаки – атаки, возможные исключительно в цифровой среде, при которых модифицируется все изображение целиком. Например, на Рис. 6 на изображении автобуса шум накладывается в том числе и на небо, хотя в реальном мире такое было бы трудно реализуемо.
Физические атаки предназначены для воздействия на нейронные сети в реальном мире. Для реализации таких атак чаще всего применяются специальные наклейки или камуфлирующее текстуры. Например, на Рис. 2 используется заранее напечатанный стикер, позволяющий человеку избежать обнаружения нейронной сетью. Другой пример, когда из-за наличия камуфлирующей текстуры объект определяется неверно, приведен на Рис. 9. Главным отличием таких атак от виртуальных является то, что область атаки ограничена конкретным объектом, который можно модифицировать или добавить в кадр.
![Рис 9. Пример физической атаки с применением камуфлирующей текстуры. Машина в зеленой рамке была принята моделью за торт (https://openreview.net/pdf?id=SJgEl3A5tm). Рис 9. Пример физической атаки с применением камуфлирующей текстуры. Машина в зеленой рамке была принята моделью за торт (https://openreview.net/pdf?id=SJgEl3A5tm).](https://habrastorage.org/getpro/habr/upload_files/624/d2c/55e/624d2c55e3aa6ffdc89550b6f6c8eabb.png)
Заключение
Все больше исследователей говорят, что при работе с нейросетевыми моделями искусственного интеллекта необходимо проявлять осторожность и ответственность. Повсеместное внедрение автоматизированных систем без тщательной оценки их стабильности к случайным или намеренным вариациям входных данных может иметь крайне негативные последствия.
В данной работе мы рассмотрели основные критерии классификации атак на нейронные сети, позволяющие лучше понять их суть и принципы воздействия на системы искусственного интеллекта. Мы объяснили и показали, чем эти критерии отличаются и где пересекаются: как видно из примеров, зачастую одну и ту же атаку можно классифицировать абсолютно по-разному. Надеемся, что у нас получилось внести структуру в разрозненную информацию, которую читатели могли видеть в медиа-пространстве, и надеемся, что эта статья будет кому-то полезной.
Во второй части нашей статьи мы покажем несколько атак на нейронные сети с примерами кода и результатами применения на реальной распознающей модели.