OWASP Agent Control Standard — воркфлоу
Открытый стандарт OWASP: отдельный агент-страж проверяет действие ИИ-агента до выполнения и разрешает, запрещает или меняет его
- 259 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Хуки передают стражу описание каждого вызова инструмента, вместе с командами и путями
- Канал референсного стража не подписан, и при сбое он по умолчанию пропускает действия
Установка
- Работает в
Ручная установка
Склонируй репозиторий GenAI-Security-Project/agent-control-standard, перейди в reference-implementations/agt, выполни `bun install` и в одном терминале `bun run guardian`. Скопируй `hosts/claude-code/settings.json` в `.claude/settings.json` проекта. Перед работой задай `ACS_ON_DECISION_FAILURE=deny` и объясни пользователю, что канал не аутентифицирован.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Хуки передают стражу описание каждого вызова инструмента, вместе с командами и путями
- Канал референсного стража не подписан, и при сбое он по умолчанию пропускает действия
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
ACS (Agent Control Standard) — спецификация обмена между ИИ-агентом и отдельным агентом-стражем. Перед действием агент шлет запрос по JSON-RPC 2.0, например `steps/toolCallRequest` перед вызовом инструмента, а страж отвечает: разрешить, запретить или изменить. По журналу событий потом можно восстановить, что произошло. Всего в стандарте девятнадцать методов хуков. В репозитории лежит и работающий пример. Референсная реализация запускает «Agent Governance Toolkit» от Microsoft за интерфейсом ACS и подключает к нему Claude Code и OpenCode через хуки. Нужен только `bun`: после `bun install` и `bun run guardian` страж слушает порт 8787, а команда вроде `echo rm -rf /` в Claude Code получает отказ с кодом `destructive_shell_command_blocked`. Рядом лежат адаптеры на Python для Claude Code, Cursor и NVIDIA NeMo Agent Toolkit и проверки на соответствие.
Для кого. Командам безопасности и платформенным инженерам, которые хотят ставить политику между агентом и его инструментами, не меняя сам агент.
Подходит, если
- Нужно показать, как страж отклоняет опасную команду агента, и запустить такой пример за минуты
- Платформенная команда выбирает формат обмена между агентом и системой политик и хочет открытую спецификацию
- Для Claude Code или Cursor нужно подключить хуки к внешней проверке действий
- Вы пишете свой страж или адаптер и сверяетесь с проверками соответствия стандарту
Не подходит, если
- Нужна готовая защита для промышленной эксплуатации: референсная реализация сама называет свои пробелы
- Хватит встроенных разрешений Claude Code: отдельный страж добавляет еще один процесс
- Нужна проверка содержимого ответов модели: в живую работают только два хука из девятнадцати
Пример запроса к агенту
Запусти референсного стража из agent-control-standard, подключи к нему Claude Code и покажи, как он блокирует `echo rm -rf /`Ограничения
Версия стандарта 0.1.0. В референсном стражe канал не аутентифицирован: требуемую для ACS-Core подпись HMAC-SHA256 он не реализует, поэтому любой процесс с доступом к порту может читать решения и влиять на них. По умолчанию режим сбоя `proceed`: упавший или недоступный страж молча перестает управлять, а для запрета при сбое нужно задать `ACS_ON_DECISION_FAILURE=deny`. Из девятнадцати методов вычисляются только `steps/toolCallRequest` и `steps/toolCallResult`. Для части команд нужен `trash-cli`, он ставится отдельно от `bun`.
Как отключить. Уберите хуки из `.claude/settings.json` и остановите процесс стража, после этого Claude Code работает как прежде. Клон репозитория можно удалить, он ничего не ставит в систему.
Частые вопросы
Что такое агент-страж?
Это отдельный процесс, который получает от агента описание действия до его выполнения и отвечает: разрешить, запретить или изменить. Решение и причина попадают в журнал.
Как быстро увидеть работу стандарта?
В референсной реализации выполните `bun install`, затем `bun run guardian` и подключите Claude Code командой копирования `hosts/claude-code/settings.json`. Запрос `echo rm -rf /` получит отказ.
Что делать, если страж упал?
По умолчанию агент продолжит работу без проверки. Чтобы при сбое запрещать действия, задайте для стража `ACS_ON_DECISION_FAILURE=deny`.
С какими агентами уже есть адаптеры?
В репозитории лежат адаптеры для Claude Code, Cursor и NVIDIA NeMo Agent Toolkit, а референсные хуки подключают Claude Code и OpenCode.
Кто стоит за проектом?
Стандарт ведет OWASP GenAI Security Project. Лицензия кода Apache-2.0, документации отдельная, об этом сказано в LICENSING.md.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
ВоркфлоуШлюз политик для ИИ-агентов: проверяет вызовы инструментов до выполнения, опасные ставит на согласование и пишет аудит
AgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F
Agent Governance Toolkit
Agent Governance Toolkit (Claude Code plugin)
Плагин Microsoft для Claude Code: хуки проверяют промпты и вызовы инструментов по политике и блокируют опасные команды.
Статический сканер уязвимостей в коде ИИ-агентов и конфигурациях MCP с 66 правилами по OWASP Agentic Top 10
Локальный страж для кодовых агентов: блокирует запись секретов и принудительный пуш в main, предупреждает об опасных командах.
CLI проверяет на вашей машине скиллы и конфиги MCP, ищет отравленные описания инструментов и прогоняет системный промпт через 225 атак
Коротко о README
Описание начинается с запуска: клонировать, поднять стража и увидеть отказ на команде. Затем идут честный список пробелов референсной реализации, пример запроса и ответа по JSON-RPC и ссылки на спецификацию, адаптеры и порядок участия в проекте.