1. Что guardrail безопасности кода реально делает
OrcaRouter поставляет семейство пресетовcode_security, которое вы
применяете из выборщика шаблонов. Каждый — обычное правило
guardrail — ограниченное рабочим
пространством, упорядоченное, привязываемое к любому ключу — настроенное
под код:
.env / Secret-File Block
Блокирует присваивания секретов в стиле
.env (DATABASE_URL=,
AWS_SECRET_ACCESS_KEY=, API_TOKEN=…) и вставленные многострочные
дампы конфигов до того, как они дойдут до провайдера. Ориентируется на
синтаксис присваивания, а не на значение.License Compliance (copyleft)
Флагирует запросы, несущие заголовки сильного copyleft — SPDX-теги или
полные имена лицензий GPL / AGPL / LGPL / SSPL — чтобы рецензент мог
подтвердить, что код безопасно смешивать в permissive-кодовую базу.
Только flag.
GPL/AGPL Provenance (output)
Флаг на стадии output на предложениях модели, несущих сигнатуры
происхождения copyleft — маркер того, что модель могла отрыгнуть
copyleft-данные обучения в сгенерированный код.
Insecure-API Advisory
Аннотирует промпт уведомлением безопасности, когда он ссылается на
высокорисковый сток —
eval( / exec( / os.system( /
subprocess.run( / pickle.loads( / child_process.exec(. Не
блокирует.Пресеты
code_security детерминированы — чистый regex, без сетевого
вызова, безопасны на горячем пути. Сетевые сканеры (поиск CVE, SBOM,
SAST) — отдельные внешние подключения, а не пресеты. См.
§3.2. Annotate — предупредить модель, не меняя трафик
Действия, которые вы настраиваете на guardrail, — это block (отклонить вызов, HTTP 400), mask (отредактировать совпадение) и flag (только лог). Безопасность кода добавляет четвёртое поведение под капотом: annotate, которое ни блокирует, ни маскирует. Когда правило annotate совпадает, шлюз записывает короткую заметку, а ретрансляция внедряет её вышестоящей системе как системное уведомление — так что модели говорят, например, «this request references a high-risk API (code eval, shell execution, or unsafe deserialization); prefer safer alternatives» — до того, как она ответит. Текст пользователя никогда не отклоняется и никогда не переписывается.Один конкретный пример
Примените пресет Insecure-API Advisory к guardrail и привяжите его к ключу. Затем отправьте код, который вызывает опасный сток:3. Декорация CVE и SBOM через внешние сканеры
Примитив уведомления обобщается. Подключите сканер безопасности кода как внешнего вендора, и его находки едут тем же путём annotate:Поиск CVE зависимостей (OSV)
Поиск CVE зависимостей (OSV)
Извлекает импорты и закрепления манифеста из текста запроса и
перекрёстно сверяет их с публичной базой уязвимостей OSV. Попадание
декорирует промпт, например, «requests@2.0.0 has CVE-2014-1830
(HIGH). Fixed in 2.20.0.» — так что модели говорят об известной
уязвимости в пакете, который её попросили использовать. Бесплатный и
без аутентификации, так что нет поля для API-ключа. По умолчанию
annotate; вы можете установить flag или block вместо этого.
Сканеры SBOM и SAST
Сканеры SBOM и SAST
Подключите сканер SBOM (software bill-of-materials) или SAST
(статический анализ) так же, как подключаете любого внешнего вендора —
базовый URL плюс учётные данные, хранимые зашифрованными и
маскируемые при чтении. Каждая находка несёт стабильную
идентичность, так что находка, которую вы уже отсортировали, не
срабатывает заново на каждом запросе.
fail_open в false на
правиле, чтобы fail closed для политик, где пропущенный скан недопустим.
4. Сочетание с правилами секретов и лицензий
Guardrail безопасности кода редко едет в одиночку. Распространённая форма — один guardrail с несколькими правилами:| Цель | Правило |
|---|---|
| Остановить вставленные учётные данные | .env / Secret-File Block (block) |
| Ловить inline-значения секретов | Secrets Blocker (block) |
| Шлюзовать copyleft-код | License Compliance (flag) |
| Направить опасные стоки | Insecure-API Advisory (annotate) |
5. Настройте это (консоль + роли)
Всё здесь настраивается в консоли, а не через relay-ключ. Маршруты управления (/api/guardrail/*) аутентифицируются вашей сессией /
access-токеном, а не relay-ключом sk-. Чтения — перечисление
guardrails и лента Matches — открыты каждому участнику рабочего
пространства. Записи (создание / редактирование / удаление) и
тестовая песочница требуют роли Developer или выше: песочница может
запускать платные вызовы модели и исходящие запросы к вендорам, так что
она шлюзована как запись.
Создайте guardrail
В консоли откройте Guardrails → New guardrail. Split-кнопка
помещает вас в библиотеку шаблонов — выберите пресет Code
security как отправную точку.
Редактируйте свободно
Пресет — это семя, а не замок. Настройте regex, добавьте правило
Secrets Blocker, измените действие. Используйте вкладку Test,
чтобы доказать, что правило срабатывает так, как вы ожидаете, против
образца текста, прежде чем привязывать его к ключу.
Находки попадают в ленту Matches рабочего пространства (тип правила,
действие, стадия, деталь). Совпавшая подстрока записывается только,
когда включён Log raw content — по умолчанию выключен, консервативная
по приватности позиция. См.
логирование и приватность.
6. Куда двигаться дальше
- Блокировка секретов — сопутствующее правило, которое ловит значения учётных данных в аргументах запроса.
- Действия — block, mask, flag, annotate и spotlight в деталях.
- Логгер соответствия — держите неизменяемую запись каждой находки безопасности кода.
- Тестирование и eval — докажите, что ваша политика ловит заведомо плохой код, прежде чем зашипите его.
- Справочник Guardrails — полный движок.
- Защита ИИ-агентов — где рельсы безопасности кода вписываются в стек управления нулевого доверия.
