Запутать робота: как и зачем люди обманывают искусственный интеллект
Технологии машинного обучения развиваются невероятными темпами. Не отстают и киберугрозы. А алгоритмы искусственного интеллекта (ИИ) имеют очень серьезную родовую проблему — чувствительность к данным, этим могут воспользоваться хакеры. Появления реальных угроз для ИИ можно ждать в ближайшее время.
Общая слабость большей части созданных алгоритмов заключается в том, что они натренированы не на понимание информации, а на правильные ответы. Например, технология машинного обучения с учителем позволяет натренировать модель на принятие правильных решений только в том случае, если у вас уже имеется таблица с сотнями и тысячами примеров верного решения. И знание принципов работы таких алгоритмов позволяет злоумышленникам найти способы обмануть их.
Первый способ обмануть алгоритм заключается как раз в подмене данных в такой таблице решений. Так называемая poison attack («отравление») заключается в том, что злоумышленник намеренно «подсовывает» искусственному интеллекту неверные исходные данные, и на этапе обучения программа усваивает, например, что круг — это квадрат, и работает потом неверно. Можно тщательно спрятать «яд», заложенный в таблицу, и отравить только какую-то часть «разума» ИИ. Например, если предположить, что вход в режимное помещение будет охранять роботизированная система, вполне можно заложить в алгоритм какой-то символ, при получении которого система будет разрешать доступ любому человеку. В остальном ИИ будет работать нормально и не вызовет подозрений.
Второй пример касается атаки на алгоритм уже на этапе его применения. Зная тонкости работы ИИ, можно вынудить систему принимать неправильное решение с помощью различных приемов. В сети много говорили про эксперименты с изображениями, когда программа принимает ошибочное решение о том, что изображено, если на фото добавляют цветной шум. В примере, изображенном ниже, после незаметного человеку изменения картинки искусственный интеллект начинает считать, что панда — это гиббон, с вероятностью 99,3%. Другой успешный эксперимент провели ученые из Университета Карнеги. Они успешно выдавали себя за известных людей, используя оправы очков, оклеенные цветной бумагой.
Вредоносному воздействию поддаются не только технологии распознавания изображений. Семантический анализ и поведение чат-ботов также оказываются уязвимы. Известны случаи, когда компьютерные программы специально учат давать неверные ответы на вопросы пользователей. Например, в 2016 году чат-бот Тай, созданный компанией Microsoft, начал грубо общаться с пользователями. Как оказалось, его алгоритмы атаковала группа злоумышленников, которые, не имея никакого доступа к исходному коду, просто научили Тая неприличным фразам.
Однако все это становится совсем несмешно, когда мы говорим о реальной безопасности. Ученые из четырех разных университетов США (а именно в Америке автомобили с автопилотом на данный момент сравнительно часто используются) замаскировали дорожные знаки таким образом, что искусственный интеллект автомобиля распознавал их неправильно. Например, облепленный наклейками знак STOP автомобиль в 100% случаев распознавал как знак ограничения скорости. Знак поворота направо, напротив, был расценен как знак STOP.
Защитники концепции виртуального водителя сочли эксперимент провокацией. По их версии беспилотный автомобиль не просто анализирует изображения, но воспринимает их в контексте и не может быть обманут простыми стикерами. Однако группе исследователей из OpenAI удалось создать изображение, которое похоже на котенка с любой стороны и при любой точке обзора, но искусственным интеллектом оно распознается как настольный компьютер.
Почему ошибается ИИ?
Проблема заключается в том, что нейронная сеть анализирует изображения по блокам, в то время как человеческий глаз видит картинку целиком. В примерах, которые мы рассмотрели, количество наложенных пикселей было небольшим и не превышало 4%. Однако даже это приводит к сбою в 97% случаев.
На практике происходит следующее: искусственный интеллект разбивает обнаруженный знак на несколько областей и анализирует их на предмет принадлежности к определенной группе. Производители автомобилей используют разные алгоритмы, но все они работают схожим образом: разбивают изображение на сегменты и классифицируют их. Чтобы автомобиль понял, что перед ним знак «стоп», на этом объекте (допустим, что автопилот делит изображение на девять квадратов) должно быть три квадрата верхней границы, два квадрата с красными полосками, три квадрата нижней границы и так далее. Таким образом, если шесть из девяти анализируемых зон знака по всем признакам относятся к знаку ограничения скорости, а остальные зоны не распознаются (например, если на них что-то наклеили), компьютер будет уверен, что перед ним знак ограничения скорости. Как вы думаете, остановился бы такой автомобиль на перекрестке?
Но это только один пример возможной опасности. По мере того как роботы будут принимать все более ответственные решения, атаки на искусственный интеллект станут не предметом исследований, а повседневной реальностью. И хотя понимание уязвимостей ИИ на ранней стадии его развития дает ученым возможность устранить эти пробелы и сделать алгоритмы более эффективными, но эти же знания дают киберпреступникам возможность совершенствовать способы атак.
Будут ли атакованы программные продукты? На самом деле это уже происходит, причем под угрозой оказываются как традиционные компьютерные системы, так и средства защиты данных с внедрением ИИ. Например, зная, как работает классический антивирус, злоумышленники регулярно перешифровывают тело вредоносной программы, чтобы она не распознавалась антивирусами, работающими по сигнатурам. Но если использовать этот факт как дополнительную информацию для алгоритмов ИИ, идентифицировать вредоносную программу удается намного раньше.
Советы по защите ИИ
Существует несколько принципов, которые позволяют защитить инновационные алгоритмы, основанные на машинном обучении. И на мой взгляд, их необходимо использовать, чтобы обезопасить себя от возможных атак и сохранить репутацию компании.
Использовать только достоверные источники. Если вы не уверены в том, откуда были получены данные, или не можете гарантировать 100-процентную достоверность информации, лучше выбрать другие источники для обучения искусственного интеллекта. Например, хорошим вариантом является получение информации с компьютеров пользователей систем, статистика, собранная вашими же приложениями, или другие данные, которые можно проверить. Любая сторонняя информация может не только содержать шум и ошибки, но также оказаться специально «отравленной» злоумышленниками.
Проводить качественный анализ. Предварительная обработка данных необходима на всех этапах тренировки и применения алгоритмов. Внимание к набору данных для тренировки нейронной сети позволяет исключить аномалии в нем, снижая риски обучения на некорректных примерах и возможность проведения подобных атак. Например, использование картинок в оригинальном виде делает их уязвимыми к poison attack: мы не знаем, не наложил ли кто-нибудь пиксельные помехи на фотографии и иллюстрации. Однако небольшое предварительное размытие изображения сведет вероятность таких атак к нулю.
Отрабатывать максимальное количество ситуаций на этапе тренировки алгоритма. В компании мы постоянно получаем данные от системы Active Protection и каждый день обучаем свою систему защиты, основываясь на реальных ситуациях, происходящих на компьютерах пользователей. Учитывая, что было вчера или неделю назад, мы повышаем точность работы алгоритма. Синхронизация алгоритма с реальностью и отслеживание изменений очень важны. И если даже они не предотвратят саму атаку, то помогут уменьшить ее последствия, так как алгоритм быстрее научится отрабатывать новые ситуации.
Не пренебрегать техническими приемами. Кроме правильной организации процесса работы с данными не стоит забывать и про технические приемы. Например, использование методологии drop out позволяет обеспечить правильное функционирование нейронной сети даже при выходе из строя определенного количества «нейронов». В конечном счете устойчивость работы алгоритма зависит от того, насколько надежную основу вы обеспечили для него.
Заключение
Использование ИИ с сфере кибербезопасности может обеспечить высокую точность распознавания вредоносного ПО. Однако все алгоритмы ИИ имеют уязвимости, которые можно использовать при наличии определенных знаний. Поэтому необходимо уделять достаточно внимания защите алгоритмов от возможных атак.
Простые примеры обмана нейронных сетей говорят о том, что злоумышленники имеют возможность атаковать любой искусственный интеллект. Более того, не исключено, что в ближайшем будущем сами вредоносные программы будут использовать алгоритмы искусственного интеллекта для проведения атак. Но бороться с этим можно, в этом материале рассказано как.