.env в
промпт «для помощи в отладке». Извлечённый документ несёт встроенный API-ключ.
Модель, которую попросили «показать конфиг», выдаёт ключ доступа AWS прямо обратно
клиенту. Агент конструирует вызов инструмента с живым токеном, запечённым в
аргументах. Каждый из этих случаев — путь для учётных данных к побегу: в логи
вышестоящего провайдера, в транскрипт клиента или в сторонний инструмент.
Эта страница описывает, как Guardrails и
Agent Firewall OrcaRouter позволяют защититься от
утечки секретов в LLM — без изменения кода вашего приложения.
Обнаружение происходит на шлюзе, перед каждым привязанным ключом — так что одна
политика покрывает каждого провайдера, каждую модель и каждого агента без
изменений SDK.
1. Где утекают секреты
Учётные данные могут сбежать в трёх различных точках запроса:В промпте (input)
В промпте (input)
Учётные данные находятся в запросе до того, как модель вообще запустится —
вставленный ключ, фрагмент
.env, токен внутри извлечённого RAG-чанка.
Оставленные без проверки, они достигают вышестоящего провайдера и могут
попасть в его логи. Остановите их входным guardrail-ом Secrets Blocker
(§2).В ответе (output)
В ответе (output)
Модель выдаёт секрет обратно вашему клиенту — она извлекает ключ из своего
контекста или галлюцинирует строку в форме учётных данных. Поймайте его
правилом секретов на выводе
(§3).
В аргументе вызова инструмента
В аргументе вызова инструмента
Ваш агент строит вызов инструмента с токеном в аргументах. Вердикт
sanitize Firewall удаляет совпавшие подстроки из аргументов до того, как
вызов отправится
(§4).
2. Secrets Blocker — остановите учётные данные в промпте
Secrets Blocker — это пресет guardrail в категории secrets, который работает на этапе input. Он сканирует запрос на формы учётных данных — ключи доступа AWS, ключи в стиле OpenAI и токены GitHub — и блокирует вызов до того, как он покинет шлюз. Учётные данные никогда не достигают модели. Напишите его один раз в консоли, привяжите ключ, и каждый запрос через этот ключ будет проверяться:Создайте guardrail
В консоли откройте
/console/guardrails, нажмите New guardrail и примените
пресет Secrets & API-Key Blocker из категории secrets. Он засевает
guardrail правилами блокировки на этапе входа для распространённых форм учётных
данных — далее редактируйте свободно.Привяжите ключ
Откройте
/console/token, отредактируйте API-ключ и выберите guardrail из
выпадающего списка Guardrail — или установите его как дефолт рабочего
пространства, чтобы каждый непривязанный ключ его унаследовал.[JWT] / [AWS_ACCESS_KEY]), правило pii, покрывающее jwt,
aws_access_key и api_key_openai, является альтернативой, управляемой
сущностями; см. Справочник Guardrails.
3. Блокировка секретов в выводе модели
Секрет может также уйти в ответе — модель повторяет ключ из своего контекста или выдаёт строку в форме учётных данных. Добавьте правило на этапе output, чтобы проверить ответ модели до того, как он вернётся клиенту. Категория secrets поставляет пресет Code Secret in Output именно для этого: правила блокировки на этапе вывода для приватных ключей PEM, ключей доступа AWS и секретных токенов в стиле OpenAI.Маскирование на выводе (замена совпадения типизированным тегом вместо отклонения
всего ответа) в настоящее время применяется только к нестриминговым ответам. Для
учётных данных в выводе действие block — надёжный выбор на стриминговом
трафике. Проверьте вашу комбинацию этап/стрим во вкладке Test guardrail до
того, как на неё полагаться.
4. Очистка секретов из аргументов вызовов инструментов
Когда ваш агент конструирует вызов инструмента, учётные данные могут проехать вместе в аргументах. Вердикт sanitize Firewall удаляет совпавшие подстроки из аргументов вызова инструмента и пересылает очищенный вызов — на поверхностяхresponse и mcp, где есть живые аргументы времени вызова для переписывания.
Правило sanitize называет, какие детекторы удалять, в своей конфигурации
sanitize_json — набор встроенных пресетов плюс опциональные
пользовательские regex-ы. Совпавший материал заменяется на
[redacted:<preset>] (пользовательские совпадения — на [redacted:custom]):
aws_access_key, aws_secret_key,
openai_key, anthropic_key и bearer_token (плюс email, ssn_us и
credit_card для PII). Правило sanitize должно называть хотя бы один пресет или
пользовательский паттерн — пустой очиститель отклоняется при сохранении.
Guardrail Secrets Blocker (§2)
остаётся вашей основной защитой для учётных данных в теле запроса — очиститель
firewall является дополнением на уровне действий для секретов, появляющихся
именно внутри аргументов вызовов инструментов.
5. Наслоение трёх защит
| Где находится секрет | Слой, который его останавливает | Действие |
|---|---|---|
| В промпте | Secrets Blocker (входной guardrail) | block |
| В ответе модели | Правило секретов на выводе (выходной guardrail) | block |
| В аргументе вызова инструмента | Очиститель firewall | sanitize |
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
Стартовая позиция, которая включает эти защиты вместе.
