«Jailbreaking» (джейлбрейк) и «prompt injection» (инъекция подсказок) — это попытки заставить Claude игнорировать свои руководящие принципы или ваши инструкции. Хотя Claude изначально устойчив к подобным атакам, дополнительные меры, описанные на этой странице, укрепляют ваши защитные механизмы, особенно против использования, нарушающего наши Условия обслуживания или Политику использования.
Эти атаки делятся на две категории с разными моделями угроз:
В этой модели угроз пользователь намеренно формирует входные данные, чтобы манипулировать вашим приложением и заставить его создавать контент или выполнять действия, которые вы не хотите допускать. Следующие меры укрепляют защитные механизмы вашего приложения:
Проверка на безвредность: используйте лёгкую модель, такую как Claude Haiku 4.5, для предварительной проверки пользовательского ввода до того, как он попадёт в основной разговор. Используйте структурированные выходные данные, чтобы ограничить ответ простой классификацией.
Валидация ввода: фильтруйте пользовательский ввод на предмет известных шаблонов инъекций до того, как он попадёт к Claude. Вы можете использовать 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 Opus 4.8 и более поздних версиях вы также можете использовать системное сообщение в середине разговора.
Ограничьте доступ Claude к конфиденциальным данным и действиям. Применяйте принцип наименьших привилегий, чтобы успешная инъекция могла нанести минимальный ущерб: не давайте Claude доступ к секретам, которые ему не нужны, запускайте инструменты в изолированных средах и ограничивайте разрешения настолько узко, насколько это возможно.
Проверяйте выходные данные инструментов до того, как Claude начнёт действовать на их основе. Применяйте тот же шаблон проверки с помощью лёгкой модели, который вы используете для пользовательского ввода, к контенту, возвращаемому вашими инструментами. Запустите каждый инструмент, передайте его необработанный вывод в небольшой вызов классификатора с Claude Haiku 4.5 и возвращайте контент в виде блока tool_result только в том случае, если проверка не обнаружила попытки инъекции. Используйте структурированные выходные данные, чтобы вердикт классификатора был разбираемым значением, на основе которого ваше приложение может принимать решения.
Вы также можете применять шаблоны валидации ввода из предыдущего раздела к результатам инструментов перед передачей их Claude.
Проводите red-team тестирование собственного агента. Перед развёртыванием протестируйте свой рабочий процесс с документами, электронными письмами и выводами инструментов, которые намеренно содержат попытки инъекций, и убедитесь, что Claude игнорирует их, а ваши этапы проверки и подтверждения перехватывают остальное.
Регулярно анализируйте выходные данные на предмет признаков успешной инъекции. Используйте этот мониторинг для итеративного совершенствования ваших подсказок, валидации и стратегий фильтрации.
Комбинируйте стратегии для надёжной защиты. Вот пример корпоративного уровня с использованием инструментов:
Комбинируя эти стратегии, вы создаёте надёжную защиту от джейлбрейков и инъекций подсказок, обеспечивая соответствие ваших приложений на базе Claude самым высоким стандартам безопасности и нормативным требованиям.
Was this page helpful?