Всё здесь привязывается к вашему рабочему пространству и настраивается из
консоли. Ваш агент продолжает вызывать
https://api.orcarouter.ai/v1/... с тем
же ключом sk-orca-... — меняется только политика в шлюзе. Действия по
конфигурации требуют ролей, указанных на каждом шаге; вызовы ретрансляции
используют ограниченный ключ. Firewall видит egress только для назначений,
маршрутизированных через шлюз (путь MCP-диспетча или хук evaluate), —
маршрутизируйте ваши сетевые вызовы инструментов через него, и они управляемы.1. Три слоя, которые предотвращают эксфильтрацию данных ИИ
Каждый слой ловит атаку в разной точке жизненного цикла запроса. Сложите все три — они независимы и взаимодополняющи.Учётные данные в промпте
Секрет, вставленный (или подтянутый) в запрос, ловится на стадии input
guardrail’ом Secrets Blocker — до того, как его увидит любая модель.
Секреты в аргументах инструментов
Модель, выдающая вызов инструмента, несущий учётные данные, очищается
правилом firewall sanitize, которое редактирует совпавший аргумент.
Исходящее назначение
Сам сетевой шаг ограничен egress allow-list — проходят только
перечисленные хосты; всё остальное запрещается.
2. Остановите учётные данные на промпте — guardrail Secrets Blocker
Первое, что нужно ограничить, — это сам учётный данные. Guardrail Secrets & API-Key Blocker работает на стадии input и сканирует запрос на паттерны учётных данных — access-ключи в стиле AWS, ключи OpenAI, JWT и подобные токены — до того, как запрос покинет шлюз. На совпадении запрос блокируется: учётные данные никогда не достигают модели и никогда не приземляются в вызов инструмента. В консоли откройте Guardrails → New guardrail (роль Developer; чтения и песочница Test открыты любому участнику), назовите егоexfil-shield и
примените пресет Secrets & API-Key Blocker из библиотеки шаблонов
(категория secrets). Пресет засеивает три regex-block-правила стадии
input, по одному на каждую форму учётных данных — AWS access-ключи, ключи в
стиле OpenAI и токены GitHub:
guardrail_blocked, не стоит
никакой квоты (блок стадии input срабатывает до учёта) и помечается
skip-retry. Докажите это во вкладке Test — вставьте образец AWS-ключа,
выберите стадию input и подтвердите вердикт — прежде чем привязать ключ.
3. Очистите секреты из аргументов вызовов инструментов
Guardrail проверяет промпт; он не видит вызовы инструментов, которые выдаёт модель. Когда модель производитtool_call, чьи аргументы несут учётные
данные, правило firewall sanitize его ловит. Sanitize редактирует
совпавшие подстроки из аргументов вызова инструмента и пересылает очищенный
вызов — инструмент запускается, но с удалённым секретом.
В Firewall → Policies → New policy (роль Developer) назовите её
exfil-firewall и добавьте правило sanitize на поверхности response —
tool_calls, которые модель выдаёт в своём ответе:
4. Ограничьте исходящие назначения — egress allow-list
Самая прочная защита — это сама сетевая граница: перечислите хосты, к которым вашим агентам легитимно разрешено дотягиваться, и запретите всё остальное. Egress-правило используетstage: egress и поле egress; вердикт задаёт
полярность — allow пропускает перечисленные назначения, а deny-catch-all
меньшего приоритета блокирует остальное.
Добавьте эти правила в ту же политику exfil-firewall:
169.254.169.254) и приватные диапазоны RFC-1918 (10.0.0.0/8,
172.16.0.0/12, 192.168.0.0/16). Запрещённый вызов возвращает HTTP 400
firewall_blocked.
Ни один пресет не поставляет CIDR egress-правил — вы пишете записи allow и
deny host/CIDR сами. Уровень автономии
tight
(уровень автономии) — соседний
быстрый путь: он запрещает fetch-образные имена инструментов (http_fetch,
web_search, fetch_url, request) целиком, убирая сетевую возможность до
того, как назначение вообще вычислится. Используйте его, когда вашему агенту
эти инструменты вообще не нужны.5. Привяжите один ограниченный ключ
Политика применяется только на ключах, которые к ней разрешаются. Дайте агенту его собственный ключ, ограниченный минимумом, который ему нужен, — никогда не ваш ключ уровня аккаунта. В API Keys → New key (роль Developer):Привяжите обе политики
Привяжите обе политики
Выберите
exfil-shield из выпадающего списка Guardrail (устанавливает
guardrail_id) и exfil-firewall из выпадающего списка Firewall
policy (устанавливает firewall_policy_id). Обе привязки живут на ключе
в шлюзе. Явная привязка guardrail никогда не откатывается молча — её
отключение и есть off-переключатель. Отключённая firewall-политика, в
противоположность, откатывается к default-политике рабочего пространства.Ограничьте радиус поражения
Ограничьте радиус поражения
Установите
credit_limit_usd на разумный потолок (0 = без лимита),
чтобы скомпрометированный ключ не мог вычерпать квоту, и allow_ips на
egress-IP вашего бэкенда, если агент вызывает с фиксированного сервера.
Установите expired_time для временных ключей (-1 = никогда не истекает).exfil-shield, а каждый вызов
инструмента через exfil-firewall без какого-либо кода, осознающего, что
происходит применение.
6. Выкатывайте в shadow-режиме, затем наблюдайте
Если вы пока не знаете каждый хост, к которому ваш агент легитимно дотягивается, не применяйте вслепую — сначала наблюдайте. См. режимы применения для полного пути observe → shadow → enforce.Запустите egress-правила в shadow
Установите
shadow_mode: true на exfil-firewall. Каждый применяющий
вердикт понижается до audit и логируется как [shadow] would deny с
назначением. Пока shadow-режим включён, трафик не блокируется.Наблюдайте за лентами
Firewall → Events / Runs (Developer+) показывает каждый вызов
инструмента и egress-назначение, на которое попал ваш агент, и что
было бы запрещено. Guardrails → Matches (любой Member) показывает
каждый секрет, который поймал input-guardrail. Настраивайте egress-список
allow, пока запрещались бы только достижимые злоумышленником хосты.Лента Matches записывает совпавшую подстроку только когда для guardrail
включено Log raw content (выключено по умолчанию — консервативная по
приватности позиция). Отметьте ложное срабатывание (Admin), чтобы
настроить политику. Каждое изменение guardrail пишет строку истории версий,
которую можно сравнивать diff и откатывать; изменения политики firewall
записываются в журнал аудита.
7. Покрытие с одного взгляда
| Шаг эксфильтрации | Слой, который его останавливает |
|---|---|
| Учётные данные входят в запрос | Guardrail Secrets Blocker (input) |
| Модель выдаёт вызов инструмента, несущий секрет | Правило firewall sanitize (поверхность response) |
| Инструмент дозванивается до хоста злоумышленника | Egress-правило allow / deny |
| Агент дотягивается до облачных метаданных или RFC-1918 | Egress-deny-правило, перечисляющее эти CIDR |
| Fetch-образный инструмент предложен модели | Уровень автономии tight (deny имён инструментов) |
8. Куда дальше
Справочник правил Firewall
Полный язык сопоставления — egress-списки, CIDR, очистители и все вердикты.
Угроза эксфильтрации данных
Анатомия атаки, от которой защищает этот рецепт, от начала до конца.
Защитите MCP-агента
Управляйте каждым
tools/call, который агент диспетчеризует через
MCP-сервер.PII-безопасное логирование
Держите чувствительные данные вне ваших request-логов и ленты Matches.
