Коротко (TL;DR)
Безопасность Claude Code — это не переключатель «безопасно/опасно», а пять независимых периметров, и почти в каждом есть дефолт, который вас удивит.Периметр Что защищает Дефолт, который стоит проверить Permission-правила что агенту можно запускать/читать .env не входит в защищённые пути автоматическиPermission-режимы Plan / Auto / YOLO / Sandbox --dangerously-skip-permissions снимает всёOS-sandbox изоляция Bash-команд по умолчанию читает ~/.aws и ~/.sshПолитика провайдера что агенту запрещено делать нарушение может стоить доступа Приватность данных обучается ли модель на вашем коде на Pro/Max с 28 августа 2025 — по умолчанию да
- Коротко (TL;DR)
- Sandbox: что он изолирует, а что нет
- Защита секретов: то, что появилось недавно
- Protected paths: почему .env не защищён
- Три реальных уязвимости и чему они учат
- Что запрещает провайдер
- Куда уходят код и данные
- Enterprise: когда это действительно нужно
- Слабые места и остаточные риски
- Чек-лист: настроить за 15 минут
- FAQ
Если из этой таблицы вы узнали что-то новое — статья для вас. Дальше разберём каждый периметр, три реальных уязвимости 2025–2026 годов и чек-лист «что настроить за 15 минут». Базовую механику settings.json и режимов доступа мы разбираем в отдельных уроках курса; здесь идём глубже — в то, чему из защиты можно доверять и почему.
Sandbox: что он изолирует, а что нет
/sandbox в Claude Code — это ограничение на уровне операционной системы: агент пишет только в рабочую папку, а сеть режется по allowlist. Технически это Seatbelt на macOS и связка bubblewrap с socat на Linux.
Первое, что нужно понять: sandbox изолирует только Bash-команды. Инструменты Read, Edit, работа через MCP-серверы и хуки идут мимо песочницы — они контролируются обычными permission-правилами, а не ОС-изоляцией. То есть «включил sandbox — теперь всё безопасно» неверно: за пределами Bash действуют другие правила.
Второй сюрприз ломает главный миф о песочнице. По умолчанию sandbox не защищает ваши секреты — процессы внутри него спокойно читают ~/.aws/credentials и ~/.ssh/. Песочница ограничивает запись и сеть, но не чтение чувствительных файлов в домашней директории. Пока вы это не настроите, «изолированный» агент видит ваши облачные ключи.
Защита секретов: то, что появилось недавно
Ответ на проблему чтения кредов — настройка sandbox.credentials, и это свежий механизм: режим deny появился в версии v2.1.187, режим mask — в v2.1.199. Разница принципиальная. deny просто запрещает чтение файлов с секретами. А mask работает тоньше: секрет подменяется на уровне сетевого прокси, то есть реальное значение физически никогда не попадает в контекст модели — LLM видит заглушку, а настоящий ключ подставляется уже в исходящий запрос. Это редкая архитектура: не «запрет читать файл», а «секрет не существует для модели».
Отдельная тонкость — сеть. По умолчанию TLS-трафик не инспектируется, поэтому при слишком широком allowlist теоретически возможен domain fronting (запрос уходит будто на разрешённый домен, а реально — на другой). Настройку network.tlsTerminate (с версии v2.1.199) здесь легко переоценить: она решает узкую задачу — терминирует TLS только для того, чтобы работал режим mask у sandbox.credentials (иначе подмена секрета не сработает). Содержимое трафика она не инспектирует и от domain fronting не защищает. По документации Anthropic, эта проблема официально остаётся открытой: полноценная защита требует собственного прокси с инспекцией TLS, а более строгая изоляция названа «активной областью разработки».
Базовый паттерн «запретить агенту читать .env и слать его через curl» настраивается в settings.json — механику мы разбираем в отдельном уроке курса, здесь важнее следующий пункт.
Protected paths: почему .env не защищён
У Claude Code есть список защищённых путей — файлов и папок, которые агент не тронет даже с широкими правами: .git, .claude, .vscode и другие. Защита действует всегда, кроме режима bypassPermissions.
И вот ключевое заблуждение: .env в этот список не входит. Многие разработчики уверены, что файл с секретами защищён «из коробки», раз уж защищены .git и .claude. Это не так — за .env отвечаете вы сами, явным deny-правилом. Это системная особенность, а не ваша забывчивость, и знать о ней нужно до того, как агент прочитает production-ключи.
Три реальных уязвимости и чему они учат
За 2025–2026 годы в Claude Code задокументированы конкретные CVE. Три из них показательны.
- CVE-2025-59536 (оценка CVSS 3.1 — 8.8, HIGH; исправлено в версии 1.0.111, октябрь 2025). Инъекция кода, срабатывавшая до того, как пользователь подтвердил доверие к репозиторию.
- CVE-2026-21852 (CVSS 3.1 — 7.5 HIGH; по методике CVSS 4.0 — 5.3 MEDIUM; исправлено в 2.0.65, январь 2026). Утечка API-ключа через переменную
ANTHROPIC_BASE_URL. Обратите внимание на расхождение оценок: одни источники цитируют высокую 3.1-оценку, другие — заниженную 4.0; это разные методики, а не ошибка. - SOCKS5 null-byte bypass — обход сетевых ограничений песочницы. Здесь версия исправления спорна: независимый исследователь называет v2.1.90, а Anthropic в комментарии прессе утверждала, что патч был уже в 2.1.88. Мы приводим оба варианта, не выбирая за читателя.
Важнее номеров — общий паттерн. Все три случая объединяет исполнение до доверия: код или конфиг из репозитория срабатывал раньше, чем вы подтвердили, что доверяете этому репозиторию. Это смещает модель угроз. Опасность не в том, что «модель сделает что-то не то по своей воле», а в том, что вредоносным может быть сам репозиторий, который вы открыли. Правило простое: не запускайте агента с широкими правами в незнакомом чужом коде.
Что запрещает провайдер
Помимо технических периметров есть политика Anthropic — Usage Policy, действующая с 15 сентября 2025 года. Она запрещает не только «генерировать вредный контент», но и вполне конкретные агентные сценарии: эксплуатацию уязвимостей без авторизации, создание вредоносного ПО, инструментов для DDoS, обход защит (jailbreaking) без разрешения. Нарушение — это риск для вашего доступа к сервису. Если вы используете Claude Code для пентеста или security-исследований, держите авторизацию под рукой: граница проходит именно по разрешению владельца системы.
Куда уходят код и данные
Самый чувствительный периметр — приватность. Здесь дефолт менялся, и это важно.
С 28 августа 2025 года для планов Free, Pro и Max поменялась политика обучения на данных. По независимым публикациям (TechCrunch и другие), обучение на ваших диалогах и код-сессиях — включая работу в Claude Code — стало включённым по умолчанию, если вы явно не отключили это в настройках приватности. Сам Anthropic в официальной формулировке избегает слова «по умолчанию» и называет это «выбором пользователя» — но по факту охвата разработчику, который завёл Claude Code на личном Pro ещё в 2025 году и не трогал Privacy Settings, стоит проверить эту настройку прямо сейчас.
С коммерческими планами ситуация другая: Team, Enterprise, доступ через API, а также Bedrock, Vertex и подобные по умолчанию не используются для обучения. Отдельная опция — Zero Data Retention (ZDR): она доступна не всем, включается точечно для квалифицированных аккаунтов и отключает часть функций.
Ещё один момент, о котором забывают: транскрипты хранятся локально. Claude Code складывает историю сессий в ~/.claude/projects/ в открытом виде и держит их около 30 дней (настройка cleanupPeriodDays). Это удобно для возобновления работы, но это же — ваш код и промпты в plaintext на диске. Учитывайте это на общих или рабочих машинах.
Enterprise: когда это действительно нужно
Тарифы Enterprise дают то, чего нет в индивидуальных планах: SSO/SAML, SCIM для управления пользователями, ролевую модель RBAC, журналы аудита, Compliance API, HIPAA-BAA и сертификации (SOC 2, ISO 27001, соответствие GDPR и CCPA). Нужно ли это лично вам? Как правило, нет. Но если вы разворачиваете Claude-агентов на команду, где важны разграничение доступа и аудит, — именно здесь эти контролы перестают быть маркетингом и становятся требованием. Частый сигнал, что пора: когда одну подписку начинают «шарить» на нескольких людей без разграничения прав.
Слабые места и остаточные риски
Даже с настроенными периметрами остаются места, где полагаться на автоматику нельзя:
- Sandbox — не универсальная защита. Он покрывает только Bash; Read, Edit, MCP и хуки живут по обычным правам. Дыра в permission-правилах не закрывается песочницей.
- Дефолты меняются. Политика обучения на данных уже разворачивалась (28 августа 2025), версии CLI приносят и новые фичи безопасности, и новые уязвимости. То, что было безопасно полгода назад, стоит перепроверять.
- Расхождения в оценках. По одной и той же уязвимости источники дают разные CVSS-оценки и разные версии исправления — это нормально для свежих CVE, но означает, что «официальной единственной цифры» может не быть, и решение о рисках вы принимаете по совокупности.
- Приватность на общей машине. Локальные транскрипты в plaintext — это ваш код на диске. На общем или рабочем устройстве об этом отвечаете только вы.
Ни один из периметров не даёт стопроцентной гарантии по отдельности — безопасность здесь складывается из их суммы плюс вашей дисциплины.
Чек-лист: настроить за 15 минут
Свой синтез из всего вышесказанного — минимум, который стоит сделать до того, как оставлять агента работать всерьёз:
- Проверьте настройку приватности (обучение на данных) в аккаунте — особенно если это личный Pro/Max с 2025 года.
- Настройте
sandbox.credentials(denyилиmask), чтобы песочница не читала~/.awsи~/.ssh. - Добавьте явное deny-правило на
.env— на защищённые пути он не рассчитывает. - Не запускайте
--dangerously-skip-permissionsвне контейнера или изолированной виртуалки. - Обновляйте CLI — половина разобранных CVE закрыта конкретными версиями; на старой вы уязвимы.
- В незнакомом чужом репозитории работайте с минимальными правами: помните про «исполнение до доверия».
Как настроить угрозы для агента-инструмента в целом (не только Claude Code), мы разбираем на примере личного ИИ-агента — модель угроз там та же.
FAQ
Правда ли, что sandbox защищает мои секреты?
Нет, не по умолчанию. Песочница ограничивает запись и сеть, но процессы внутри неё читают ~/.aws/credentials и ~/.ssh/, пока вы не настроите sandbox.credentials. «Включил sandbox» и «защитил секреты» — разные вещи.
Обучается ли Claude на моём коде? Зависит от плана. На Free/Pro/Max с 28 августа 2025 года обучение на диалогах и код-сессиях включено по умолчанию, если вы не отключили его вручную. На коммерческих планах (Team/Enterprise/API) — нет. Проверьте настройки приватности, особенно на старом личном аккаунте.
Насколько опасен --dangerously-skip-permissions?
Он снимает все подтверждения — агент выполняет команды без спроса. Использовать это стоит только в контейнере или виртуалке, где агенту нечего сломать. На рабочей машине с доступом к продакшену это прямой риск.
Мой .env защищён автоматически?
Нет. В список защищённых путей (.git, .claude, .vscode) .env не входит. Защиту секретов настраивайте сами — явным deny-правилом и через sandbox.credentials.
Нужен ли мне Enterprise ради безопасности? Для личной работы — почти наверняка нет: базовые периметры (permissions, sandbox, приватность) настраиваются и без него. Enterprise нужен, когда важны SSO, ролевой доступ и аудит на команду — то есть когда за агентом работают несколько человек.
Курс «Claude Code с нуля до продакшена» · модуль «PRO: автономность и дисциплина». Полная программа и два маршрута обучения — на странице курса.
Предыдущий урок: Claude Agent SDK и headless · Следующий урок: Параллельные агенты: git worktree




