Claude Platform Docs
Лучшие практикиУсиление защитных механизмов

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

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

«Jailbreaking» (джейлбрейк) и «prompt injection» (инъекция подсказок) — это попытки заставить Claude игнорировать свои принципы или ваши инструкции. Хотя Claude изначально устойчив к таким атакам, дополнительные шаги, описанные на этой странице, усиливают ваши защитные механизмы, особенно против использования, нарушающего Условия обслуживания или Политику использования Anthropic.

Эти атаки делятся на две категории с разными моделями угроз:

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

Джейлбрейки и прямая инъекция подсказок

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

  • Проверки на безвредность: Используйте легковесную модель, такую как Claude Haiku 4.5, для предварительной проверки пользовательского ввода до того, как он попадёт в ваш основной диалог. Используйте структурированные выходные данные, чтобы ограничить ответ простой классификацией.

  • Валидация входных данных: Фильтруйте пользовательский ввод на наличие известных шаблонов инъекций до того, как он попадёт к Claude. Вы можете использовать «large language model» (большую языковую модель), или LLM, для создания обобщённой проверки, предоставив в качестве примеров известные формулировки джейлбрейков.

  • Инженерия подсказок: Создавайте системные подсказки, которые подчёркивают этические и правовые границы и явно указывают Claude, как отказывать.

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

Косвенная инъекция подсказок

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

Структурируйте ваше приложение так, чтобы Claude мог надёжно отличать недоверенное содержимое от ваших инструкций:

  • Помещайте недоверенное содержимое только в результаты инструментов. Передавайте стороннее содержимое Claude внутри блоков tool_result, никогда — в подсказках system или обычных пользовательских блоках text. Claude обучен относиться к инструкциям, появляющимся внутри результатов инструментов, с должным скептицизмом. Формат tool_result описан в разделе Обработка вызовов инструментов.

  • Сообщайте Claude, что это за содержимое и откуда оно получено. В поле description инструмента или в структуре самого результата явно укажите характер и источник содержимого: например, что это тело входящего электронного письма от неизвестного отправителя или текст OCR, извлечённый из загруженного пользователем изображения. Этот контекст помогает Claude оценить, насколько можно доверять встроенным директивам.

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

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

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

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

  • Проверяйте выходные данные инструментов до того, как Claude начнёт действовать на их основе. Применяйте тот же шаблон проверки с помощью легковесной модели, который вы используете для пользовательского ввода, к содержимому, возвращаемому вашими инструментами. Запустите каждый инструмент, передайте его необработанный вывод в небольшой вызов классификатора на Claude Haiku 4.5 и возвращайте содержимое в виде блока tool_result только в том случае, если проверка не выявила попытки инъекции. Используйте структурированные выходные данные, чтобы вердикт классификатора был разбираемым значением, по которому ваше приложение может выполнять ветвление.

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

  • Проведите red-teaming собственного агента. Перед развёртыванием протестируйте ваш рабочий процесс с документами, электронными письмами и выходными данными инструментов, которые намеренно содержат попытки инъекций, и убедитесь, что Claude их игнорирует, а ваши шаги проверки и подтверждения отлавливают остальное.

Непрерывный мониторинг

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

Продвинутый уровень: цепочка защитных мер

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

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

Was this page helpful?