shell.exec и внешнюю сетевую область, — это ровно то,
что должно быть проверено до запуска, а не обнаружено в инциденте.
Управление Навыками (Skills) Firewall — это и есть такая проверка.
Каждая устанавливаемая возможность регистрируется как запись в рамках
рабочего пространства, сканируется детерминированным движком риска,
получает полосу риска и режим применения, и — во время выполнения — этот
режим накладывается поверх вердиктов правил
firewall.
1. Что такое «навык» здесь
Запись навыка — это одна устанавливаемая возможность агента. Единая модель обобщает три вида, так что одна плоскость сканирования, оценки и подтверждения управляет всем, что агент устанавливает сам:| Вид | Что это |
|---|---|
skill | Упакованная возможность — манифест плюс набор инструментов и фрагмент системного промпта. |
mcp_server | Bring-your-own MCP-сервер, зарегистрированный как управляемый артефакт. |
plugin | Расширение в стиле плагина. |
builtin, registry, private,
byo_mcp или auto_detected — который питает оценку доверия.
2. Сканер
При регистрации (и по требованию) сканер выполняет набор детерминированных, не зависящих от внешнего проходов по манифесту и объявленным областям. Каждый проход выдаёт findings с серьёзностьюinfo, warn или
error:
| Проход | Флагирует | Серьёзность |
|---|---|---|
| prompt_injection | Текст манифеста, пытающийся переопределить инструкции (ignore previous instructions, you are now, ведущий system:…). | warn |
| tool_creep | Имена инструментов, которые манифест использует, но не объявил в allowed_tools. | error |
| network_egress | HTTP(S)-хосты в манифесте, не одобренные в сетевых областях навыка. | warn |
| fs_write_unsafe | Файловая область в режиме записи на пути вне /tmp (защищено от traversal). | error |
| data_scope | Чувствительные области данных (pii, financial, customer). | info |
| unsigned | Навык registry без подписи. | warn |
error →
blocked; иначе любой warn → flagged; иначе clean.
3. Оценка риска и полосы
Те же findings питают детерминированную оценку риска (0–100, аддитивную с потолками по категориям). Самые тяжёлые вкладчики — опасные возможности:| Возможность | Вес |
|---|---|
| Выполнение shell | +30 |
| Eval произвольного кода | +30 |
Запись в файловую систему вне /tmp | +25 |
| Чтение секретов | +25 |
| Внешний сетевой egress | +20 |
| Полоса | Оценка |
|---|---|
low | 0–25 |
medium | 26–50 |
high | 51–75 |
critical | 76–100 |
4. Режим применения
Полоса и вердикт вместе выводят режим применения — что firewall на самом деле делает, когда вызывается инструмент, принадлежащий этому навыку:| Режим | Эффект во время выполнения |
|---|---|
allow | Навык не навязывает ничего своего; решают вердикты правил. |
quarantine | Эскалировать всё, что меньше deny, до pending_approval — инструменты навыка запускаются только после одобрения человеком. |
block | Принудительно дать deny на инструментах навыка. |
error-finding,
делающий вердикт blocked, поставит в карантин или заблокирует, даже
когда числовая полоса low — осторожное направление. Оператор может задать
режим явно; при пересканировании режим только когда-либо затягивается
туже, никогда не ослабляя block или quarantine, которые вы установили.
5. Сигналы доверия
Два сигнала помимо статического сканирования информируют, как трактуется навык:- Подписанные издатели. Навык, несущий подпись от доверенного издателя, трактуется как более надёжный (митигация подписи понижает его оценку риска); неподписанный registry-навык штрафуется. Вы управляете тем, каким издателям доверяет ваше рабочее пространство.
- Репутация ресурса. Положение навыка может корректироваться его живым поведением со временем — отказы и аномалии повышают его риск, чистые серии понижают — так что артефакт, который плохо ведёт себя в production, дрейфует к карантину, даже если его манифест отсканировался чисто.
6. Авто-детектированные возможности
Сканер запускается не только когда вы регистрируете что-то вручную. Когда агент устанавливает возможность сам и её инструменты впервые пересекают шлюз, Firewall авто-детектирует её (вне горячего пути, асинхронно), синтезирует манифест из того, что наблюдал, и прогоняет то же сканирование, оценку и вывод режима — сsource = auto_detected.
Авто-детектированные возможности находятся в карантине до проверки.
Всё авто-детектированное, что иначе разрешилось бы в
allow, опускается до
quarantine (а critical остаётся block), пока человек это не проверит.
Возможность, которую никто не одобрял, не получает бесплатного пропуска
лишь потому, что отсканировалась безобидно — она запускается только после
того, как вы на неё посмотрели.7. Применение во время выполнения
Когда вызов инструмента достигает движка firewall, он атрибутируется навыку-владельцу, затем режим навыка накладывается поверх вердикта правила:- Атрибуция. Вызов сопоставляется навыку по его объявленным
allowed_tools, затем по префиксу пространства имёнmcp_server, затем по применяющемуся наиболее ограничительному запасному варианту в масштабе рабочего пространства. - Вердикт правила. Правила политики выполняются как обычно — и
skill_name_globправила позволяет ограничить правило конкретными навыками. - Переопределение режимом. Навык
blockпринудительно даёт deny; навыкquarantineэскалирует всё, что меньше deny, доpending_approval;allowоставляет вердикт нетронутым.
Атрибуция навыка fail closed. Если инструмент не удаётся атрибутировать
(ошибка БД без кэша или необъявленный инструмент под курируемым
источником), вызов удерживается для проверки, а не разрешается. И
режим навыка независим от shadow-режима — карантинный или заблокированный
навык всё равно применяется, даже пока политика в shadow-развёртывании.
8. Жизненный цикл
- Register —
POST /skillsвалидирует и сканирует синхронно, возвращая навык плюс его findings и вердикт. Режим выводится (или ваш явный режим соблюдается). - Update — пересканирует новый манифест; режим затягивается туже при ухудшившемся сканировании, но никогда не ослабляет ваш хранимый block/quarantine.
- Rescan —
POST /skills/:id/rescanперезапускает сканирование; если вердикт заново деградирует до flagged или blocked, он выдаёт событие firewall, так что дрейф появляется в вашей ленте. - Delete — soft-delete и освобождает слот имени для перерегистрации.
API-справочник
В рамках рабочего пространства; чтения списка открыты любому участнику (и редактируют поля, несущие секреты), всё остальное требует Developer+.| Метод и путь | Роль | Назначение |
|---|---|---|
GET /api/workspace/firewall/skills | Member | Список навыков (отредактированный; фильтр по ?kind= и ?source=). |
GET /api/workspace/firewall/skills/:id | Developer+ | Полная запись навыка. |
POST /api/workspace/firewall/skills | Developer+ | Регистрация + сканирование (409 при дублирующемся имени). |
PUT /api/workspace/firewall/skills/:id | Developer+ | Обновление + пересканирование. |
POST /api/workspace/firewall/skills/:id/rescan | Developer+ | Пересканирование; выдаёт событие при деградации. |
DELETE /api/workspace/firewall/skills/:id | Developer+ | Soft-delete. |
Имена уникальны в рамках рабочего пространства через все виды — навык
skill с именем github и mcp_server с именем github сталкиваются в
одном рабочем пространстве. Выбирайте различимые имена для каждого
артефакта.FAQ
Чем это отличается от DSL правил?
Чем это отличается от DSL правил?
Правила шлюзуют вызовы инструментов по
имени и аргументам. Навыки шлюзуют возможности, которые загружает
агент — пакет, его манифест и запрашиваемые разрешения — до того, как
запустится любой из его инструментов. Режим навыка затем накладывается
поверх того, что решают правила, так что они компонуются: правило может
allow http.fetch в целом, пока карантинный навык, владеющий им, всё
равно удерживается.Что мешает вредоносному навыку объявить чистый манифест?
Что мешает вредоносному навыку объявить чистый манифест?
Должен ли я регистрировать каждый навык вручную?
Должен ли я регистрировать каждый навык вручную?
Смотрите также
Хотите глубже разобраться в безопасности агентов? Руководства «Защитите агентов — Zero Trust» встраивают эту функцию в рабочий процесс нулевого доверия.Базовый уровень Secure Agents
Примените позицию нулевого доверия к каждой возможности агента одним переключателем.
Guardrails для агентов
Guardrails, созданные для автономных агентов, использующих инструменты.
