Перейти к основному содержимому

Защита от промт-инъекций

Jailbreak-атаки и промт-инъекции применяют для того, чтобы изменить поведение LLM: заставить модель обойти ограничения или выполнить что-то нежелательное. Jay Guard распознает такие угрозы и блокирует запросы до того, как они попадут в языковую модель.

к сведению

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

Как работает защита

Jay Guard проверяет каждый пользовательский запрос. Если он находит попытку инъекции или манипуляции, запрос отклоняется и до LLM не доходит.

При интеграции с Jay Copilot пользователь увидит уведомление о блокировке:

Сообщение заблокировано

Ваша компания блокирует отправку этого сообщения нейросети по следующим политикам: Защита от промт-инъекций.

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

Как включить защиту

  1. При создании или редактировании фильтра включите опцию Защита от промт-инъекций.
  2. Сохраните изменения.

Особенности и ограничения

  • Защита работает только при проксировании в LLM (сообщений чата). Отдельного метода API для проверки произвольного текста на инъекции нет.

  • Сканируется только текст. Вложения (изображения, аудио и другие файлы) система не проверяет.

    подсказка

    Чтобы контролировать отправку файлов в модель, настройте фильтрацию вложений.

  • Система проверяет запрос пользователя перед отправкой в LLM. Ответ модели проверяется, если фильтр с этой защитой назначен фильтром ответов.

  • Вердикт модуля бинарный: запрос либо распознается как промт-инъекция или jailbreak-атака и блокируется, либо признается безопасным и пропускается в LLM. Тип атаки не детализируется.

Мониторинг заблокированных запросов

События блокировки фиксируются в разделе Аудит. У отклоненного запроса будет указано действие deny, а в поле Обнаружено при модерации развернутой записи появится Защита от промт-инъекций.

Действие redact (маскирование) для данного типа проверок не используется.

Использование через API

Проверка работает для эндпоинтов проксирования: POST /api/dataguard/public/{serviceName}/{proxyPath}, где {serviceName} — имя сервиса (например, openai).

Условия срабатывания:

  • опция защиты включена в настройках применяемого фильтра;
  • тело запроса передается в формате JSON;
  • в теле запроса присутствует текст для анализа (сообщения, состоящие только из вложений, пропускаются).

Результат проверки

  • Угроза не найдена — запрос уходит к LLM, клиент получает ответ от модели.
  • Обнаружена инъекция — запрос прерывается, Jay Guard применяет действие deny.
примечание

Если для запроса одновременно срабатывает правило маскирования данных (redact), система все равно заблокирует весь запрос, так как действие deny имеет приоритет (allow < redact < deny).

Ответ API при блокировке

В случае выявления атаки или инъекции Jay Guard возвращает HTTP-статус 400 с JSON-телом:

{
"error": {
"error": "dataguard.request_action.deny",
"message": "Request denied due to internal policies",
"args": {
"moderators": [
{
"key": "prompt-injection-detector",
"localization": { "EN": "Prompt injection protection", "RU": "Защита от промт-инъекций" }
}
]
}
}
}

В ответе:

  • error.error — код ошибки, всегда принимает значение dataguard.request_action.deny.
  • error.message — фиксированный текст сообщения.
  • error.args.moderators — список сработавших проверок.

Для сравнения: если запрос блокируется по правилу маскирования персональных данных, вернется код dataguard.common.personal_data_detected.

При прямой интеграции по API вам необходимо самостоятельно обрабатывать статус 400 и код dataguard.request_action.deny, чтобы формировать уведомление для пользователя.