Пользователи по всему миру ежедневно общаются с сотнями тысяч чат-ботов, отправляя им различную информацию, включая персональные и конфиденциальные данные. Между тем безопасность виртуальных помощников вызывает много вопросов. Злоумышленники активно интересуются чат-ботами, и атаки на них будут становиться всё изощрённее.
- Введение
- Инъекция стимула (Prompt Injection)
- Обход ограничений (Jailbreak)
- Утечка стимула (Prompt Leaking)
- Инъекция SQL
- Уязвимости в API
- Уязвимости в исходном коде
- Выводы
Введение
С каждым днём чат-боты становятся всё популярнее. ChatGPT буквально взорвал рынок, достигнув аудитории в 100 млн активных пользователей всего за 2 месяца после запуска. Чат-боты используются сегодня в здравоохранении, в сфере путешествий, дизайна, создания текстов, программирования, продаж и т. д. С их помощью возможно значительно упростить общение с клиентами и сократить затраты на персонал; бизнес активно этим пользуется. Однако важно понимать, что в любую популярную отрасль одними из первых приходят злоумышленники. И они уже вовсю атакуют чат-боты, используя различные уязвимости и слабости. Об основных угрозах в этой сфере, а также о том, как от них защититься, ниже расскажет Артем Семенов, пентестер RTM Group.
Для начала давайте определимся с понятиями. Их два. Первое — чат-боты: программы, которые взаимодействуют с пользователем через текстовые сообщения или голосовые команды. Они основаны на машинном обучении и используют нейронные сети для обработки запросов пользователя и предоставления ответов. Второе — языковые модели: системы, которые применяют нейронные сети для генерации текстов на основе образцов. Они могут использоваться для создания текстовых сообщений, генерации описаний и т. д.
Инъекция стимула (Prompt Injection)
«Prompt Injection» — это метод атаки на модели машинного обучения, где используется стимул (prompt), то есть запрос, вводные данные, которые пользователь набирает, когда общается с нейросетью. Если стимул корректен, то и информация на выходе будет релевантной.
Злоумышленники пытаются изменить или добавить стимулы, которые применяются для обучения модели, таким образом, чтобы вводные данные были искажены и выходные данные не соответствовали им. В процессе реализации такой атаки обычно используется перебор стимулов, генерация или анализ их содержания. Так злоумышленники пытаются определить наиболее эффективные изменения, которые не будут вызывать слишком большой доли ошибок и при этом смогут негативно повлиять на работу модели. В итоге всё это может привести к некорректной обработке данных моделью и, следовательно, к ошибочным исходящим результатам.
В целом такая инъекция представляет собой серьёзную угрозу моделям машинного обучения, которые применяют возможность ввода стимулов. Если чат-бот находится в локальной сети, то реализация такой атаки может стать для хакера ступенькой к получению закрытой информации или даже способом получить полный контроль над информационной системой. Для того чтобы защититься от этой угрозы, необходимо постоянно осуществлять контроль качества данных, защиту стимулов от изменений и валидацию входных данных. Также важно обеспечить безопасность конфиденциальных сведений, используемых для обучения модели, и предоставлять доступ к ним только авторизованным пользователям.
С описанной выше связана и другая уязвимость — «Indirect Prompt Injection» (IPI). Она угрожает компьютерным программам, которые создают текст на основе образцов и правил, полученных из больших объёмов данных. Примерами таких языковых моделей могут служить GPT3 или GPT4, Rubert.
IPI — это проблема, которая может возникнуть, если злоумышленник будет специально формулировать запрос или манипулировать текстом с целью заставить программу делать или говорить что-то определённое. Это может привести к непредсказуемым или нежелательным результатам, поскольку злоумышленники могут использовать эту слабость для контроля над выходными данными программы.
Для того чтобы защититься от данной уязвимости, необходимо принимать следующие меры:
- Ограничивать количество текста, который пользователи могут вводить, чтобы уменьшить пространство для манипуляций.
- Проверять и фильтровать текст, который пользователи вводят, чтобы удалять или заменять потенциально опасные слова или фразы.
- По возможности при разработке программ и их совершенствовании делать их менее подверженными манипуляциям.
Обход ограничений (Jailbreak)
«Jailbreak» — это ещё один вид атак на чат-боты. Для его реализации, как правило, применяется стимул, который позволяет обмануть языковую модель и обойти ограничения, которым она подчинялась.
Есть даже специальный ресурс, который предоставляет пользователям различные текстовые стимулы для обхода ограничений ChatGPT. Он создавался для того, чтобы упорядочить существующие способы «взлома», но со временем злоумышленники стали активно им пользоваться.
Для того чтобы затруднить реализацию подобных атак, рекомендуется применять защиту от вредоносных программ и регулярно обновлять программное обеспечение чат-ботов и языковых моделей.
Утечка стимула (Prompt Leaking)
«Prompt Leaking» — это метод атаки на модели машинного обучения, основанный на получении доступа к стимулам, которые применяются для обучения моделей. На этой основе разрабатываются подходящие вводные данные, которые могут улучшить или ухудшить производительность модели. В процессе реализации атаки могут использоваться такие методы, как перебор, генерация или анализ содержания стимулов. Конечной целью злоумышленников является доступ к конфиденциальным данным с их последующим использованием для чего-либо.
Рисунок 1. Атака «Prompt Leaking»
Защититься от «Prompt Leaking» помогут различные методы, включая шифрование и скрытие стимулов. Также важно обеспечить безопасность конфиденциальных данных, применяемых для обучения модели, и дать доступ к ним только авторизованным пользователям.
Инъекция SQL
Одним из известных векторов атак на чат-боты является инъекция SQL, в рамках которой при помощи специальных запросов злоумышленники создают хаос, получают несанкционированный доступ к базам данных, содержащим конфиденциальную информацию. Также могут быть применены инъекции скриптов и другие методы выполнения вредоносного кода на сервере, на котором работает чат-бот.
Для защиты от инъекции SQL рекомендуется использовать параметризованные запросы и проверять входные данные на наличие нежелательных символов.
Уязвимости в API
Уязвимости в прикладном программном интерфейсе также могут представлять серьёзную угрозу для безопасности чат-ботов, особенно в случае если API применяется для обмена данными с другими системами и приложениями.
Через уязвимости в API злоумышленники могут получить незаконный доступ к конфиденциальным данным, включая личные сведения клиентов, пароли и другую подобную информацию. Кроме того, слабые места могут облегчить им реализацию атак на систему, включая злонамеренный отказ в обслуживании (DDoS), а также манипуляцию данными и обход механизмов безопасности.
Возможные уязвимости в API могут быть связаны с отсутствием аутентификации и авторизации, неправильным использованием методов HTTP, отсутствием проверки входных данных и другими изъянами.
Для защиты от уязвимостей в API рекомендуем следующее:
- использовать методологию безопасной разработки и инструменты статического анализа кода и уязвимостей,
- осуществлять регулярное тестирование защищённости, в том числе перед выпуском в продуктив (production),
- обеспечить безопасность передачи данных через API (шифрование трафика, защита от атак с межсайтовым запуском сценариев (XSS), переполнением буфера и т. д.),
- проводить мониторинг и журналирование событий, связанных с использованием API, чтобы своевременно обнаруживать уязвимости и принимать меры по их устранению.
Уязвимости в исходном коде
Уязвимости в исходном коде чат-ботов могут позволить злоумышленникам получить доступ к конфиденциальной информации, включая личные сведения клиентов, а также проводить атаки на систему (в том числе DDoS), манипулировать пользовательскими данными и так далее.
К уязвимостям в исходном коде чат-ботов относятся неправильное использование аутентификации и авторизации, отсутствие обработки ошибок, отсутствие проверки данных перед их использованием, неправильное хранение паролей, проблемы с безопасностью передачи данных и другие подобные недочёты.
Помимо использования технических мер защиты, не менее важно обучать персонал, который работает с чат-ботами и языковыми моделями, правилам безопасности и методам защиты от атак. Регулярное проведение тренингов и семинаров позволит повысить уровень осведомлённости и готовности к действиям в случае возникновения угрозы безопасности.
Выводы
Атаки на чат-боты и языковые модели являются серьёзной угрозой для бизнеса и пользователей. Для защиты от них важно использовать комплексный подход, который включает в себя применение современных технологий и методов защиты, обучение персонала и постоянный мониторинг работы чат-ботов и языковых моделей. Помимо этого, стоит постоянно развивать и совершенствовать средства обеспечения безопасности.