Понимание инъекций промптов: передовая проблема безопасности

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

A diagram illustrating how a prompt injection attack works. On the left, an icon of a smiling user is labeled

Что такое промпт-инъекция?

Промпт-инъекция (внедрение промптов) — это тип атак методом социальной инженерии, характерный для разговорного ИИ. Ранние системы ИИ представляли собой диалог между одним пользователем и одним агентом ИИ. В современных продуктах на базе ИИ ваш диалог может включать контент из самых разных источников, включая интернет. Идея о том, что третья сторона (которая не является ни пользователем, ни ИИ) может ввести модель в заблуждение, внедрив вредоносные инструкции в контекст разговора, привела к появлению термина «промпт-инъекция».

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

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

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

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

Краткий обзор

Что вы попросили сделать ИИ

Что делает злоумышленник

Возможный результат в случае успеха атаки

Вы просите ИИ найти апартаменты, но в результате промпт-инъекции он рекомендует вариант, который не является для вас лучшим выбором.

Вы просите ИИ найти апартаменты по заданным критериям.

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

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

Вы просите агента ИИ ответить на ночные письма, а в итоге он передает ваши банковские выписки.

Вы просите агента ИИ просто ответить на накопившиеся за ночь письма, так как сегодня утром вы заняты.

См. раздел «По возможности давайте агенту четкие инструкции» ниже


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

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

Наш подход к защите пользователей

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

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

Обучение безопасности

Нам нужен ИИ, который распознает промпт-инъекции и не поддается на них. Тем не менее, устойчивость к состязательным атакам (adversarial attacks) остается давней проблемой машинного обучения и искусственного интеллекта, что делает ее сложной и открытой задачей. Мы разработали концепцию под названием «Иерархия инструкций» (Instruction Hierarchy), направленную на то, чтобы научить модели различать доверенные и недоверенные инструкции. Мы продолжаем разрабатывать новые подходы к обучению моделей для более эффективного распознавания паттернов промпт-инъекций, чтобы модели могли игнорировать их или предупреждать о них пользователей. Один из применяемых нами методов — автоматизированное тестирование на проникновение (red-teaming), область, которую мы изучаем уже много лет для создания новых видов атак с внедрением промптов.

Мониторинг

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

Меры безопасности

Мы спроектировали наши продукты и инфраструктуру с использованием различных перекрывающих друг друга средств защиты пользовательских данных. Эти функции, которые мы подробно разберем с технической точки зрения в будущих публикациях, адаптируются для каждого продукта индивидуально. Например, чтобы помочь вам избежать перехода на ненадежные сайты, мы будем запрашивать ваше подтверждение для определенных ссылок в ChatGPT — особенно на веб-сайтах, которые просят не индексировать их — прежде чем их можно будет посетить. Когда наш ИИ использует инструменты для запуска других программ или кода (как в Canvas или нашем инструменте разработки Codex), мы применяем метод, называемый песочницей (sandboxing), чтобы помешать модели вносить вредоносные изменения, которые могут стать результатом промпт-инъекции.

Предоставление контроля пользователям

Мы встраиваем в наши продукты элементы управления, помогающие пользователям защитить себя. Например, в ChatGPT Atlas вы можете выбрать режим выхода из системы (logged-out mode), который позволяет агенту ChatGPT начинать выполнение задач без входа в учетные записи на сайтах. Агент ChatGPT также приостанавливает работу и запрашивает подтверждение перед совершением конфиденциальных действий, таких как завершение покупки. Когда агент работает на сайтах с конфиденциальной информацией, мы также реализуем «режим наблюдения» (Watch Mode), который предупреждает вас о конфиденциальном характере сайта и требует, чтобы вкладка была активна, пока вы следите за работой агента. Агент приостановит работу, если вы переключитесь с вкладки, содержащей конфиденциальные данные. Это гарантирует, что вы будете в курсе выполняемых агентом действий и сможете их контролировать.

Тестирование на проникновение (Red-teaming)

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

Программа поиска уязвимостей (Bug Bounty)

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

Право выбора за пользователями

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

Меры предосторожности для вашей безопасности

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

Используйте встроенные функции для ограничения доступа к конфиденциальным данным

По возможности ограничивайте доступ агента только теми конфиденциальными данными или учетными данными, которые необходимы ему для выполнения задачи. Например, при использовании режима агента в ChatGPT Atlas для поиска информации об отпуске, если агент выполняет только исследовательскую работу и ему не требуется авторизованный доступ, используйте режим выхода из системы («logged out»).

Когда агент запрашивает подтверждение, внимательно проверяйте, правильное ли действие он собирается совершить

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

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

По возможности давайте агенту четкие инструкции

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

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

Будьте в курсе и соблюдайте лучшие практики безопасности

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

Взгляд в будущее

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

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

Полный текст статьи читайте на OpenAI