Что делать, если ваша сеть считает, что все - страус.

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

Эта статья основана на содержании лекций, прочитанных в Гарварде на тему AC209b, причем большая заслуга принадлежит лектору Павлосу Протопапасу из отделения МАКО Гарварда.

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

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

Обзор

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

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

  • Что такое состязательное машинное обучение?
  • Как можно атаковать мои модели машинного обучения?
  • Как я могу защитить свои модели от атак?
  • Каковы последствия этих атак в реальном мире?

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

Нейронные сети в реальном мире

Вы, вероятно, никогда не знали, но, вероятно, используете нейронные сети каждый день, не задумываясь. Вы когда-нибудь задавали Сири вопрос? Есть нейронная сеть. Беспилотные автомобили? Нейронные сети. Распознавание лиц на вашей камере? Еще нейронные сети. Алекса? И снова нейронные сети…

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

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

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

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

Возьмем, к примеру, Alexa. Допустим, вы используете Alexa для регулярных покупок. Однажды особенно умный хакер сидит за пределами вашего дома (в мире кибербезопасности это часто называют вардрайвингом) и взламывает ваш Wi-Fi - это на удивление легко сделать с помощью aircrack-ng, если вы не защитили свой маршрутизатор. правильно или все еще есть пароль по умолчанию.

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

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

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

Состязательные атаки

В этом разделе я познакомлю читателя с таксономией состязательных атак.

Белый ящик против атак черного ящика

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

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

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

Атака белого ящика происходит, когда кто-то имеет доступ к базовой сети. В результате они будут знать архитектуру сети. Это аналогично «белому ящику» теста на проникновение в ИТ-сеть компании - он обычно проводится в корпоративном мире для проверки защитных возможностей ИТ-инфраструктуры компании. Как только хакер поймет, как устроена ваша ИТ-сеть, саботаж станет намного проще. Это ситуация, когда фраза «знание - сила» особенно актуальна, поскольку знание структуры сети может помочь вам выбрать наиболее опасные атаки для выполнения, а также выявить слабые места, относящиеся к структуре сети.

Атака черного ящика происходит, когда злоумышленник ничего не знает о базовой сети. В смысле нейронных сетей архитектуру можно рассматривать как черный ящик. Хотя атаковать черный ящик сложнее, он все же не является непроницаемым. Процедура, лежащая в основе атак черного ящика, была впервые описана Papernot et al. (2015) .

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

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

Эта модель не зависит от знания архитектуры сети, хотя это упростит выполнение атаки.

Физические атаки

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

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

Уклонение и отравляющие атаки

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

Другой хороший пример - компьютерная безопасность, где алгоритмы машинного обучения часто реализуются в системах обнаружения вторжений (IDS) или системах предотвращения вторжений (IPS). Когда сетевой пакет достигает моего компьютера, который имеет характерную сигнатуру вредоносного ПО, мой алгоритм срабатывает и останавливает пакет, прежде чем он сможет сделать что-нибудь вредоносное. Однако хакер может использовать запутанный код, чтобы «запутать» сеть, чтобы не выявить проблему.

В качестве последнего примера некоторые исследователи из Массачусетского технологического института разработали черепаху, напечатанную на 3D-принтере, текстура которой смогла обмануть алгоритм обнаружения объектов Google и заставить его классифицировать черепаху как винтовку. Последнее немного беспокоит, учитывая, что алгоритм Google в настоящее время используется во многих отраслях в коммерческих целях.

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

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

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

Конкретные типы атак

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

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

Атаки после Гудфеллоу 2015

За последние пару лет был разработан ряд новых векторов атак, основными из которых являются:

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

Сетевая защита

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

Состязательная тренировка

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

Плавные границы принятия решений

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

Смешивание

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



CleverHans

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





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

Тестирование на проникновение

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

Заключительные комментарии

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

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

Новостная рассылка

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



использованная литература

[1] Панда, П., Чакраборти, И., Рой, К., Решения на основе дискретизации для безопасного машинного обучения от атак противника. 2019.

[2] Чжан, Х., Сиссе, М., Дофин, Ю., и Лопес-Пас, Д. Смешивание: за пределами минимизации эмпирического риска. 2017 г.

[3] Гудфеллоу И., Шленс Дж. И Сегеди К. Объяснение и использование примеров противоборства. 2014 г.

[4] Папернот, Н., Макдэниел, П., Гудфеллоу, И., Джа, С., и Челик, З., Свами, А. Практические атаки черного ящика на машинное обучение. 2015 г.

[5] Папернот, Н., Макдэниел, П., Джа, С., Фредриксон, М., Челик, З. Б., и Свами, А. Ограничения глубокого обучения в условиях противостояния. В материалах 1-го Европейского симпозиума IEEE по безопасности и конфиденциальности, стр. 372–387, 2016 г.

[6] Куракин А., Гудфеллоу И., Бенжио С. Соревновательное машинное обучение в масштабе. 2016 г.

[7] Трамер, Ф., Куракин, А., Папернот, Н., Гудфеллоу, И., Бонех, Д., и МакДэниел, П. Тренировка противоборства в ансамбле: атаки и защиты. 2018.