Permissions, sandbox и безопасность агентной разработки

Claude Code способен редактировать файлы, выполнять команды и обращаться к сети, поэтому разрешения и sandbox должны соответствовать риску задачи.

Краткий ответ

Claude Code способен редактировать файлы, выполнять команды и обращаться к сети, поэтому разрешения и sandbox должны соответствовать риску задачи. Удобство автоматического подтверждения не должно превращаться в неограниченный доступ к секретам и внешним системам.

Claude Code способен редактировать файлы, выполнять команды и обращаться к сети, поэтому разрешения и sandbox должны соответствовать риску задачи. Удобство автоматического подтверждения не должно превращаться в неограниченный доступ к секретам и внешним системам.

Разрешения и режимы

Permission rules управляют тем, какие инструменты и ресурсы разрешены, требуют подтверждения или запрещены. В интерактивном режиме Shift+Tab переключает режимы: manual, accept edits, plan и, если доступен, auto. Команда /permissions позволяет просмотреть и настроить правила.

Разрешайте повторяемые безопасные операции узко: например, конкретную команду тестов. Не создавайте широкое правило только ради исчезновения диалогов.

Почему sandbox — отдельный слой

Permissions контролируют попытку использования инструментов. Sandbox обеспечивает системную изоляцию дочерних Bash-процессов: ограничивает файловую систему и сеть. Эти слои дополняют друг друга. Deny-правило может остановить вызов заранее, а sandbox ограничивает процесс, даже если вредоносная инструкция добралась до Bash.

Команда /sandbox открывает настройку встроенной песочницы. Если изоляция является обязательным требованием, настройка sandbox.failIfUnavailable должна обеспечивать отказ, а не незаметное выполнение без sandbox.

Prompt injection и недоверенные данные

README внешнего проекта, issue, веб-страница или результат MCP могут содержать фразу, которая пытается изменить цель агента. Это данные, а не доверенная команда. Не давайте агенту доступ к секретам «на всякий случай», проверяйте домены и внимательно рассматривайте запросы на необычные команды.

Удалённые действия — push, публикация, изменение базы или вызов API — не восстанавливаются checkpoint-механизмом.

Модель минимальных привилегий

Для исследования достаточно Read, Grep, Glob и безопасных Git-команд. Для локальной реализации нужны Edit и ограниченный Bash. Сеть следует открывать только нужным доменам. Деплой и доступ к production лучше вынести в отдельный контролируемый процесс с человеческим подтверждением и журналом.

Практический threat-check

Перед автономной задачей ответьте:

Если на последний вопрос нет ответа, уменьшите область задачи.

Частые вопросы

CLAUDE.md может запретить удаление файлов?

Он может попросить этого не делать, но не обеспечивает технический запрет. Используйте deny rules, sandbox и при необходимости PreToolUse hook.

Sandbox отменяет необходимость permissions?

Нет. Permissions управляют инструментами и подтверждениями, sandbox ограничивает Bash на уровне ОС. Безопаснее использовать оба слоя.

Можно ли полностью отключить подтверждения?

Некоторые режимы допускают широкую автономность, но это повышает риск. Для обычной разработки предпочтительны узкие allow-правила и явный запрет опасных действий.

Что важно запомнить

https://yadro-code.ru/lessons/without-university/claude-code-workflows/claude-code-06