Перейти к основному содержанию
Секреты оказываются там, где им не место. Разработчик вставляет файл .env в промпт «для помощи в отладке». Извлечённый документ несёт встроенный API-ключ. Модель, которую попросили «показать конфиг», выдаёт ключ доступа AWS прямо обратно клиенту. Агент конструирует вызов инструмента с живым токеном, запечённым в аргументах. Каждый из этих случаев — путь для учётных данных к побегу: в логи вышестоящего провайдера, в транскрипт клиента или в сторонний инструмент. Эта страница описывает, как Guardrails и Agent Firewall OrcaRouter позволяют защититься от утечки секретов в LLM — без изменения кода вашего приложения.
Обнаружение происходит на шлюзе, перед каждым привязанным ключом — так что одна политика покрывает каждого провайдера, каждую модель и каждого агента без изменений SDK.

1. Где утекают секреты

Учётные данные могут сбежать в трёх различных точках запроса:
Учётные данные находятся в запросе до того, как модель вообще запустится — вставленный ключ, фрагмент .env, токен внутри извлечённого RAG-чанка. Оставленные без проверки, они достигают вышестоящего провайдера и могут попасть в его логи. Остановите их входным guardrail-ом Secrets Blocker (§2).
Модель выдаёт секрет обратно вашему клиенту — она извлекает ключ из своего контекста или галлюцинирует строку в форме учётных данных. Поймайте его правилом секретов на выводе (§3).
Ваш агент строит вызов инструмента с токеном в аргументах. Вердикт sanitize Firewall удаляет совпавшие подстроки из аргументов до того, как вызов отправится (§4).
Первые два — это контентные проверки (Guardrails); третья — проверка действия (Firewall). Наслаивайте все три для глубокой защиты.

2. Secrets Blocker — остановите учётные данные в промпте

Secrets Blocker — это пресет guardrail в категории secrets, который работает на этапе input. Он сканирует запрос на формы учётных данных — ключи доступа AWS, ключи в стиле OpenAI и токены GitHub — и блокирует вызов до того, как он покинет шлюз. Учётные данные никогда не достигают модели. Напишите его один раз в консоли, привяжите ключ, и каждый запрос через этот ключ будет проверяться:
1

Создайте guardrail

В консоли откройте /console/guardrails, нажмите New guardrail и примените пресет Secrets & API-Key Blocker из категории secrets. Он засевает guardrail правилами блокировки на этапе входа для распространённых форм учётных данных — далее редактируйте свободно.
2

Привяжите ключ

Откройте /console/token, отредактируйте API-ключ и выберите guardrail из выпадающего списка Guardrail — или установите его как дефолт рабочего пространства, чтобы каждый непривязанный ключ его унаследовал.
3

Отправьте запрос

Вызовите шлюз точно как раньше с этим ключом sk-orca-...:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "why is AKIAIOSFODNN7EXAMPLE rejected"}
    ]
  }'
Форма AWS-ключа задевает guardrail, и запрос отклоняется с HTTP 400 guardrail_blocked. Ключ никогда не достигает модели.
Заблокированный запрос не стоит квоты — блокировка на этапе входа срабатывает до учёта — и помечается skip-retry, так что повторный прогон того же промпта просто блокируется снова, а не сжигает резервный канал.
Нужно более широкое покрытие? Категория secrets также поставляет пресет Private Keys & Cloud Tokens, который блокирует приватные ключи PEM, токены Slack и Stripe, API-ключи Google и JWT. Примените оба — guardrail может содержать любое число правил. Чтобы ловить JWT и формы учётных данных как типизированные сущности (с тегами [JWT] / [AWS_ACCESS_KEY]), правило pii, покрывающее jwt, aws_access_key и api_key_openai, является альтернативой, управляемой сущностями; см. Справочник Guardrails.
Уровень автономии tight у Firewall включает guardrail Secrets Blocker как часть своей позиции, наряду с PII Shield и запретами деструктивных shell-вызовов. Если вам нужен один переключатель вместо ручного написания правил, это быстрый путь. Сама проверка учётных данных — это всегда guardrail, а не сканер аргументов firewall.

3. Блокировка секретов в выводе модели

Секрет может также уйти в ответе — модель повторяет ключ из своего контекста или выдаёт строку в форме учётных данных. Добавьте правило на этапе output, чтобы проверить ответ модели до того, как он вернётся клиенту. Категория secrets поставляет пресет Code Secret in Output именно для этого: правила блокировки на этапе вывода для приватных ключей PEM, ключей доступа AWS и секретных токенов в стиле OpenAI.
{
  "type": "regex",
  "stage": "output",
  "action": "block",
  "pattern": "AKIA[0-9A-Z]{16}"
}
Блокировка на выводе применяется как к нестриминговым, так и к стриминговым ответам — на стриме сканер обрывает ответ на лету до того, как какой-либо заблокированный контент достигнет клиента. Блокировка вывода возвращает предварительно списанную квоту.
Маскирование на выводе (замена совпадения типизированным тегом вместо отклонения всего ответа) в настоящее время применяется только к нестриминговым ответам. Для учётных данных в выводе действие block — надёжный выбор на стриминговом трафике. Проверьте вашу комбинацию этап/стрим во вкладке Test guardrail до того, как на неё полагаться.

4. Очистка секретов из аргументов вызовов инструментов

Когда ваш агент конструирует вызов инструмента, учётные данные могут проехать вместе в аргументах. Вердикт sanitize Firewall удаляет совпавшие подстроки из аргументов вызова инструмента и пересылает очищенный вызов — на поверхностях response и mcp, где есть живые аргументы времени вызова для переписывания. Правило sanitize называет, какие детекторы удалять, в своей конфигурации sanitize_json — набор встроенных пресетов плюс опциональные пользовательские regex-ы. Совпавший материал заменяется на [redacted:<preset>] (пользовательские совпадения — на [redacted:custom]):
{
  "priority": 10,
  "label": "Redact AWS keys from tool args",
  "stage": "response",
  "tool_name_glob": "*",
  "verdict": "sanitize",
  "sanitize_json": {
    "presets": ["aws_access_key", "aws_secret_key", "openai_key", "anthropic_key", "bearer_token"],
    "custom": []
  }
}
Пресеты форм секретов, доступные очистителю: aws_access_key, aws_secret_key, openai_key, anthropic_key и bearer_token (плюс email, ssn_us и credit_card для PII). Правило sanitize должно называть хотя бы один пресет или пользовательский паттерн — пустой очиститель отклоняется при сохранении.
Sanitize удаляет аргументы, а не результаты. Он очищает аргументы вызова инструмента, который создал ваш агент; он не вычищает контент, который инструмент возвращает. А на поверхности inbound — где живых аргументов времени вызова ещё нет — sanitize эскалирует до deny. См. справочник правил firewall для языка сопоставления.
Guardrail Secrets Blocker (§2) остаётся вашей основной защитой для учётных данных в теле запроса — очиститель firewall является дополнением на уровне действий для секретов, появляющихся именно внутри аргументов вызовов инструментов.

5. Наслоение трёх защит

Где находится секретСлой, который его останавливаетДействие
В промптеSecrets Blocker (входной guardrail)block
В ответе моделиПравило секретов на выводе (выходной guardrail)block
В аргументе вызова инструментаОчиститель firewallsanitize
Выкатывайте любое новое правило сначала в shadow mode (firewall) или с действием flag (guardrail). Наблюдайте за лентой событий / Matches, чтобы убедиться, что оно срабатывает на реальных учётных данных, а не на безобидных похожих строках, затем переключите на применяющее действие.

6. Наблюдайте за тем, что сработало

Каждое сработавшее правило guardrail записывает совпадение — тип правила, действие, этап и строку детализации — в ленту Matches рабочего пространства (GET /api/guardrail/match, Member). Совпавшая подстрока записывается только когда включён «Log raw content», что выключено по умолчанию — позиция, консервативная к приватности, чтобы лента Matches сама не становилась местом накопления секретов. Оставьте его выключенным для правил учётных данных, если вам специально не нужна подстрока для триажа. Решения sanitize firewall попадают в ленту Firewall Events (GET /api/workspace/firewall/events, Developer+), при этом секреты и блобы правил никогда не логируются.

7. Куда двигаться дальше

Справочник Guardrails

Типы правил, PII-сущности, пресеты, тестовая песочница и evaluation-харнесс в полном объёме.

Справочник правил Firewall

Язык сопоставления — глобы инструментов, клаузы аргументов и очистители.

Раскрытие PII

Родственная контентная угроза: персональные данные в промптах и ответах.

Эксфильтрация данных

Когда утёкшие учётные данные становятся полезной нагрузкой исходящего exfil-вызова.

Guardrails vs Firewall

Какая плоскость останавливает какой класс утечек и как они комбинируются.

Базовый уровень Secure Agents

Стартовая позиция, которая включает эти защиты вместе.