https://api.orcarouter.ai/v1/...; меняются только ключи и политики в шлюзе. О
лежащей в основе анатомии атаки читайте
Prompt injection и
Опасные вызовы инструментов; эта
страница — реагирование.
Роли, нужные каждому шагу, указаны по месту. Чтение ленты guardrail
Matches открыто любому Member; представления firewall Events,
Runs и трассировки требуют Developer+; отзыв ключа, применение позиции
автономии и редактирование политики требуют Developer+; пометка совпадения
guardrail ложным срабатыванием требует Admin.
1. Цикл реагирования на ИИ-инциденты безопасности
Три фазы, выполняемые по порядку. Не перепрыгивайте прямо к укреплению — сначала сдержите, чтобы атакующий потерял доступ, пока вы расследуете.Сдержать
Отзовите скомпрометированный ключ, чтобы атакующий не мог сделать ещё один
вызов. Выпустите свежую, жёстко ограниченную замену.
Оценить
Прочитайте ленты firewall Events / Runs и guardrail Matches, чтобы
увидеть в точности, что делал ключ и что сработало.
Укрепить
Ужесточите позицию автономии и добавьте правило, которое бы это поймало,
чтобы та же атака не могла повториться.
2. Сдержать — отзовите ключ
Первый ход — отрезать доступ. Утёкший ключsk-orca-... продолжает работать,
пока вы его не отзовёте, так что сделайте это прежде всего остального.
В консоли откройте API Keys, найдите скомпрометированный ключ (он
замаскирован при отображении — сопоставьте его по имени, окружению или
последнему использованию) и удалите его (роль Developer). Удаление
немедленно: самый следующий запрос на этом ключе отклоняется в шлюзе.
Затем выпустите замену, ограниченную минимумом, который нужен нагрузке, —
никогда не ваш ключ уровня аккаунта. В API Keys → New key (роль
Developer):
Ограничьте радиус поражения на новом ключе
Ограничьте радиус поражения на новом ключе
Установите
credit_limit_usd на разумный потолок (0 = без лимита), чтобы
будущая утечка не могла вычерпать квоту, allow_ips на egress-IP вашего
бэкенда, если вызывающий работает с фиксированного сервера, и
expired_time для всего временного (-1 = никогда не истекает).
Используйте model_limits (с model_limits_enabled), чтобы огородить ключ
только теми моделями, которые ему нужны.Привяжите ваши политики к новому ключу
Привяжите ваши политики к новому ключу
Выберите ваш укреплённый guardrail из выпадающего списка Guardrail
(устанавливает
guardrail_id) и вашу политику firewall из выпадающего
списка Firewall policy (устанавливает firewall_policy_id). Обе
привязки живут на ключе в шлюзе, так что новый ключ управляется с первого
вызова. Скопируйте plaintext один раз — он замаскирован везде после
создания.3. Оценить — прочитайте ленты Events и Matches
Теперь выясните, что ключ реально сделал. Шлюз уже записал каждый вызов инструмента и каждое сработавшее правило — в рамках рабочего пространства, без дополнительной инструментовки.| Лента | Где | Роль | На что отвечает |
|---|---|---|---|
| Firewall → Events | по вызову инструмента | Developer+ | Каждое вычисление — вердикт, поверхность, инструмент, аргументы, прогон, которому он принадлежит. |
| Firewall → Runs | свёрнуто | Developer+ | «Что эта сессия агента реально сделала» — микс вердиктов, различимые инструменты и модели. |
| Guardrails → Matches | по попаданию правила | Member | Каждое сработавшее правило guardrail — тип, действие, стадия, деталь. |
deny и audit, чтобы увидеть, что было
заблокировано против того, что проскользнуло под observe-only позицией.
Перекрёстно проверьте Guardrails → Matches за то же окно. Если правило
Prompt-Injection Basics флагировало запрос — фразы вроде «ignore previous
instructions» или «reveal your system prompt» — оно приземляется здесь с
типом и стадией правила.
Лента Matches записывает совпавшую подстроку только когда для этого
guardrail включено Log raw content — оно выключено по умолчанию
(консервативная по приватности позиция). С выключенным вы всё равно видите,
что правило сработало, и его мета-строку детали, просто не литеральный текст.
Включайте его per guardrail, когда вам нужна подстрока для разбора; настройка
не ретроактивна.
POST /api/guardrail/match/:id/mark-fp, Admin), чтобы оно перестало
искажать ваш сигнал, пока вы настраиваете.
4. Укрепить — закройте пробел
Сдерживание останавливает этого атакующего; укрепление останавливает следующего. Два хода: немедленно ужесточить позицию рабочего пространства, затем добавить конкретное правило, которое бы поймало то, что вы только что увидели.Быстрый путь — поднимите уровень автономии
Если инцидент обнажил агента, работавшего слишком открыто, переключите всю позицию рабочего пространства в одной транзакции. В Firewall → Posture примените уровень автономииtight
(уровень автономии) (роль
Developer). В один ход это задаёт default-deny, запрещает деструктивный
shell, запрещает fetch-образные SSRF имена инструментов и применяет guardrails
PII Shield и Secrets & API-Key Blocker. Каждое изменение — одна
транзакция с отменой в один клик из снимка аудита, так что вы можете
откатиться прямо, если это слишком строго.
Точный путь — добавьте правило, которое бы это поймало
Для prompt-injection конкретно OrcaRouter поставляет пресет Prompt-Injection Basics (категория safety) — правило по ключевым словам, которое флагирует распространённые фразы инъекций для проверки, не блокируя пользователя. Начните там, чтобы получить сигнал, затем эскалируйте. Его более строгий собрат, Jailbreak / Role-Play Blocker, блокирует тот же класс с помощью regex. В Guardrails → New guardrail (роль Developer; песочница Test запускает кандидатские правила inline —llm_judge делает платный вызов
модели — так что это тоже Developer+) примените пресет Prompt-Injection
Basics, затем добавьте правило llm_judge, чтобы ловить запутанные инъекции,
которые список ключевых слов упускает:
judge_fail_open: false, чтобы трактовать ошибку или таймаут судьи
как блок, когда пропущенная проверка недопустима. Докажите всю политику во
вкладке Test и против корпуса Eval, прежде чем привязать её к ключу.
Выкатайте новое правило безопасно
Не применяйте свежее правило вслепую на живом трафике. Для firewall установитеshadow_mode: true на политике — каждый применяющий вердикт понижается до
audit и логируется как [shadow] would …, так что вы наблюдаете его
срабатывание на ленте Events до того, как оно изменит трафик. Для
guardrails установите действие нового правила сначала на flag,
понаблюдайте за лентой Matches, затем продвиньте его до block или
mask. См. режимы применения для
полного пути observe → shadow → enforce.
5. Проверьте исправление
Убедитесь, что петля замкнута, прежде чем считать это разрешённым.Повторите атаку в песочнице
Вставьте вредоносный промпт во вкладку guardrail Test на стадии
input и убедитесь, что вердикт теперь блок (или flag). Для инцидента с
вызовом инструмента прогоните провинившийся вызов вхолостую в Firewall →
Test (Developer+) и убедитесь, что вердикт deny. Ни одна песочница не
отправляет ничего вышестояще и не сохраняет ничего.Убедитесь, что старый ключ мёртв
Отправьте запрос на отозванном ключе и убедитесь, что он отклонён.
Заблокированный guardrail возвращает HTTP 400
guardrail_blocked;
запрещённый вызов инструмента возвращает HTTP 400 firewall_blocked —
и блок не стоит никакой квоты (input-блоки срабатывают до учёта;
output-блоки возвращают предпотреблённую квоту) и помечается skip-retry.Сделайте снимок таймлайна
Каждое изменение guardrail пишет строку истории версий, которую можно
сравнивать diff и откатывать. Изменения firewall захватываются в
журнале аудита, а применение уровня автономии несёт снимок отмены в один
клик. Вместе с журналом аудита рабочего пространства это ваша запись
инцидента — кто что изменил, когда и какой была позиция до и после.
6. Ранбук с одного взгляда
| Фаза | Действие | Где | Роль |
|---|---|---|---|
| Сдержать | Удалить утёкший ключ | API Keys | Developer+ |
| Сдержать | Выпустить ограниченную замену | API Keys → New key | Developer+ |
| Оценить | Прочитать вызовы инструментов + вердикты | Firewall → Events / Runs | Developer+ |
| Оценить | Прочитать сработавшие правила | Guardrails → Matches | Member |
| Укрепить | Поднять позицию | Firewall → Posture (tight) | Developer+ |
| Укрепить | Добавить ловящее правило | Guardrails / Firewall | Developer+ |
| Проверить | Повторить в песочнице | Вкладки Test | Developer+ |
7. Куда дальше
Чек-лист go-live
Допроизводственный проход укрепления — ограничьте ключи и зафиксируйте
позицию до выкатки.
Prompt injection
Атака, на которую отвечает этот ранбук, от начала до конца.
Режимы применения
Observe → shadow → enforce — выкатайте новое правило, не ломая трафик.
Остановите эксфильтрацию
Ограничьте исходящие назначения, если инцидент коснулся сети.
