Безопасность для машинного обучения

Отравляющие атаки на машинное обучение

Проблема безопасности, возникшая 15 лет назад, возвращается

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

Сегодня мы обсудим атаки отравления - тип атаки, который использует вашу модель машинного обучения во время обучения (в отличие от логического вывода).

Давайте начнем.

Спам или Хэм?

Несмотря на то, что все шумиха может заставить вас поверить, в атаках отравлений нет ничего нового. Фактически, как только машинное обучение стало серьезно использоваться в сфере безопасности, киберпреступники начали искать способы обойти это. Таким образом, первые примеры атак с отравлением относятся еще к 2004 и 2005, когда они проводились для обхода классификаторов спама.

Но что такое отравление?

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

Отравляющие атаки бывают двух видов: нацеленные на доступность вашего ML и на его целостность (также известные как бэкдор). .

Первые атаки были доступными. Такие атаки направлены на внедрение в вашу систему такого количества плохих данных, что любая граница, которую изучает ваша модель, в основном становится бесполезной. Предыдущие работы были выполнены по Байесовским сетям, SVM, а в последнее время - по нейронным сетям. Например, Steinhardt сообщил, что даже при сильной защите 3% отравление обучающего набора данных приводит к падению точности на 11%. Другие предлагали подходы с обратным градиентом для генерации ядов и даже использовали эвтоэнкодер в качестве генератора атаки.

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

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

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

Возможности атакующего и отравляющие атаки

Важно, насколько злоумышленник знает о вашей системе - до того, как начнет атаку. Размышляя о доступе к информации, принято различать два типа злоумышленников: WhiteBox (знает внутреннее устройство вашей модели) и BlackBox (не знает).

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

Однако в атаках с отравлением существует второй не менее важный параметр, который определяет возможности злоумышленника - доступ со стороны злоумышленников - или насколько глубоко они могут проникнуть в вашу систему. Как и доступ к информации, состязательный доступ имеет уровни (от наиболее опасного до наименее опасного):

  • Разрушение логики
  • Манипуляция данными
  • Внедрение данных
  • Передача обучения

Пойдем по одному.

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

Чтобы помочь вам представить себе, как выглядит искажение логики, вот отрывок из недавней статьи, в которой к нейронной сети добавлен «детектор бэкдора»:

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

Единственное, что они могли сделать, - это манипулировать ярлыками. Например, они могут случайным образом нарисовать новые метки для части тренировочного пула или попытаться оптимизировать их, чтобы вызвать максимальное нарушение работы. Атака хорошо подходит, если целью является компромисс доступности, но становится более сложной, если злоумышленник хочет установить бэкдор. Кроме того, из-за своего ограниченного пространства возмущений (вы можете изменить метки только на фиксированное количество других меток) атака требует, чтобы злоумышленник мог изменить большую часть всех обучающих данных (например, 40% здесь, с случайное переворачивание меток, 30% с эвристикой).

Более изощренный злоумышленник может манипулировать самим входом - например, нарушить его, чтобы сместить границу классификации, изменить кластерное расстояние или добавить невидимые водяные знаки, которые позже можно использовать для бэкдора в модель. . Акт возмущения должен напоминать вам об атаках уклонения, и на самом деле это часто делается аналогичным образом, оптимизируя функцию потерь в другом направлении (градиентный подъем). Такие атаки похожи в том, как они извлекают выгоду из дополнительной информации, доступной злоумышленнику (белый ящик, черный ящик и т. Д.).

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

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

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

Последнее замечание о возможностях - когда мы говорим об отравлении пула данных обучения, возникает естественный вопрос: а сколько из них мы можем отравить? Потому что, возможно, если бы мы могли все это изменить, мы могли бы заставить модель машинного обучения изучать все, что мы хотим. Ответ - по крайней мере, из исследовательской литературы - кажется стремящимся к менее 20%. Помимо этого, модель угроз начинает казаться нереалистичной.

Защита от отравления данными

Как и в случае с атаками уклонения, когда дело касается защиты, мы находимся в затруднительном положении. Методы существуют, но ни один из них не гарантирует надежности в 100% случаев.

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

Проблема состоит в том, чтобы количественно оценить «очень». Иногда введенный яд действительно поступает из другого распределения данных и может быть легко изолирован:

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

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

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

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

Некоторые другие интересные средства защиты, которые я видел, включают:

  • STRIP = намеренно нарушить входные данные и наблюдать расхождения в предсказаниях по сравнению с невозмущенными. Если не достаточно дисперсии = злонамеренный.
  • Человек в петле = известно, что отравление выбросов ведет к большим сдвигам границ, так почему бы не сосредоточить внимание человека (предположительно аналитика по безопасности) только на таких случаях?
  • TRIM = модель учится в итерациях из усеченных версий MSE (регрессия).

Уклонение и отравление - две стороны одной монеты

Помните, в начале я сказал, что большинство атак отравления работают, сдвигая границы классификатора? Как вы думаете, что делают другие?

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

  1. Они хотели отравить классификатор, чтобы классифицировать A как B
  2. Итак, они взяли кучу B, возмущали их, пока классификатор не подумал, что это As, а затем по-прежнему пометили их как B и вставили в тренировочный пул.
  3. Таким образом, они отравили классификатор враждебными примерами Bs.

Результат, по задумке авторов, оказался таким, что классификатор начал распознавать As как Bs. Но вот самое интересное: как еще называется шаг (3) выше?

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

Как это для вешалки на скалах?