Обзор

Claude Code имеет встроенную изоляцию в песочнице для обеспечения более безопасной среды выполнения агентов, одновременно снижая необходимость в постоянных запросах разрешения. Вместо запроса разрешения для каждой команды bash, изоляция в песочнице создает определенные границы заранее, где Claude Code может работать более свободно с сниженным риском. Инструмент bash в песочнице использует примитивы уровня ОС для обеспечения как изоляции файловой системы, так и изоляции сети.

Почему изоляция в песочнице важна

Традиционная безопасность на основе разрешений требует постоянного одобрения пользователя для команд bash. Хотя это обеспечивает контроль, это может привести к:
  • Усталости от одобрения: Повторное нажатие кнопки “одобрить” может привести к тому, что пользователи будут меньше внимания уделять тому, что они одобряют
  • Снижению производительности: Постоянные прерывания замедляют рабочие процессы разработки
  • Ограниченной автономии: Claude Code не может работать эффективно при ожидании одобрений
Изоляция в песочнице решает эти проблемы путем:
  1. Определения четких границ: Укажите точно, какие каталоги и сетевые хосты может использовать Claude Code
  2. Снижения запросов разрешения: Безопасные команды в песочнице не требуют одобрения
  3. Сохранения безопасности: Попытки доступа к ресурсам вне песочницы вызывают немедленные уведомления
  4. Обеспечения автономии: Claude Code может работать более независимо в определенных пределах
Эффективная изоляция в песочнице требует как изоляции файловой системы, так и изоляции сети. Без изоляции сети скомпрометированный агент может экспортировать конфиденциальные файлы, такие как ключи SSH. Без изоляции файловой системы скомпрометированный агент может установить бэкдор в системные ресурсы для получения доступа к сети. При настройке изоляции в песочнице важно убедиться, что ваши настройки не создают обходные пути в этих системах.

Как это работает

Изоляция файловой системы

Инструмент bash в песочнице ограничивает доступ к файловой системе определенными каталогами:
  • Поведение по умолчанию при записи: Доступ на чтение и запись к текущему рабочему каталогу и его подкаталогам
  • Поведение по умолчанию при чтении: Доступ на чтение ко всему компьютеру, кроме определенных запрещенных каталогов
  • Заблокированный доступ: Невозможно изменять файлы вне текущего рабочего каталога без явного разрешения
  • Настраиваемо: Определите пользовательские разрешенные и запрещенные пути через параметры

Изоляция сети

Доступ в сеть контролируется через прокси-сервер, работающий вне песочницы:
  • Ограничения по доменам: Доступ возможен только к одобренным доменам
  • Подтверждение пользователем: Новые запросы доменов вызывают запросы разрешения
  • Поддержка пользовательского прокси: Продвинутые пользователи могут реализовать пользовательские правила для исходящего трафика
  • Полное покрытие: Ограничения применяются ко всем скриптам, программам и подпроцессам, запущенным командами

Принудительное применение на уровне ОС

Инструмент bash в песочнице использует примитивы безопасности операционной системы:
  • Linux: Использует bubblewrap для изоляции
  • macOS: Использует Seatbelt для принудительного применения песочницы
Эти ограничения на уровне ОС гарантируют, что все дочерние процессы, запущенные командами Claude Code, наследуют те же границы безопасности.

Начало работы

Включение изоляции в песочнице

Вы можете включить изоляцию в песочнице, запустив команду /sandbox:
> /sandbox
Это активирует инструмент bash в песочнице с параметрами по умолчанию, позволяя получить доступ к вашему текущему рабочему каталогу, одновременно блокируя доступ к конфиденциальным системным местоположениям.

Настройка изоляции в песочнице

Настройте поведение песочницы через ваш файл settings.json. См. Параметры для полного справочника конфигурации.
Поддержка шаблонов:
  • Пути поддерживают абсолютные (/home/user), относительные (./src), домашний каталог (~) и подстановочные знаки (**/*.json)
  • Домены поддерживают точные совпадения (github.com), подстановочные знаки (*.npmjs.org) и поддомены

Преимущества безопасности

Защита от инъекции подсказок

Даже если злоумышленник успешно манипулирует поведением Claude Code через инъекцию подсказок, песочница гарантирует, что ваша система остается в безопасности: Защита файловой системы:
  • Невозможно изменять критические файлы конфигурации, такие как ~/.bashrc
  • Невозможно изменять файлы системного уровня в /bin/
  • Невозможно читать файлы, которые запрещены в ваших параметрах разрешений Claude
Защита сети:
  • Невозможно экспортировать данные на серверы, контролируемые злоумышленником
  • Невозможно загружать вредоносные скрипты с неавторизованных доменов
  • Невозможно делать неожиданные вызовы API к неодобренным сервисам
  • Невозможно связаться с какими-либо доменами, которые не явно разрешены
Мониторинг и контроль:
  • Все попытки доступа вне песочницы блокируются на уровне ОС
  • Вы получаете немедленные уведомления, когда границы проверяются
  • Вы можете выбрать отказ, разрешение один раз или постоянное обновление вашей конфигурации

Сокращенная поверхность атаки

Изоляция в песочнице ограничивает потенциальный ущерб от:
  • Вредоносных зависимостей: Пакетов NPM или других зависимостей с вредоносным кодом
  • Скомпрометированных скриптов: Скриптов сборки или инструментов с уязвимостями безопасности
  • Социальной инженерии: Атак, которые обманывают пользователей, заставляя их запускать опасные команды
  • Инъекции подсказок: Атак, которые обманывают Claude, заставляя его запускать опасные команды

Прозрачная работа

Когда Claude Code пытается получить доступ к сетевым ресурсам вне песочницы:
  1. Операция блокируется на уровне ОС
  2. Вы получаете немедленное уведомление
  3. Вы можете выбрать:
    • Отказать в запросе
    • Разрешить один раз
    • Обновить конфигурацию песочницы, чтобы постоянно разрешить это

Ограничения безопасности

  • Ограничения сетевой изоляции: Система фильтрации сети работает путем ограничения доменов, к которым процессы могут подключаться. Она не проверяет трафик, проходящий через прокси, и пользователи несут ответственность за обеспечение того, чтобы они разрешали только доверенные домены в своей политике.
Пользователи должны знать о потенциальных рисках, связанных с разрешением широких доменов, таких как github.com, которые могут позволить экспортировать данные. Также в некоторых случаях может быть возможно обойти фильтрацию сети через фронтинг доменов.
  • Повышение привилегий через Unix сокеты: Конфигурация allowUnixSockets может непреднамеренно предоставить доступ к мощным системным сервисам, которые могут привести к обходу песочницы. Например, если она используется для разрешения доступа к /var/run/docker.sock, это фактически предоставит доступ к хост-системе путем эксплуатации сокета docker. Пользователям рекомендуется тщательно рассмотреть любые unix сокеты, которые они разрешают через песочницу.
  • Повышение привилегий разрешений файловой системы: Чрезмерно широкие разрешения на запись в файловую систему могут включить атаки повышения привилегий. Разрешение записи в каталоги, содержащие исполняемые файлы в $PATH, каталоги конфигурации системы или файлы конфигурации оболочки пользователя (.bashrc, .zshrc) может привести к выполнению кода в различных контекстах безопасности, когда другие пользователи или системные процессы получают доступ к этим файлам.
  • Надежность Linux песочницы: Реализация Linux обеспечивает сильную изоляцию файловой системы и сети, но включает режим enableWeakerNestedSandbox, который позволяет ей работать внутри окружений Docker без привилегированных пространств имен. Эта опция значительно ослабляет безопасность и должна использоваться только в случаях, когда дополнительная изоляция иным образом обеспечена.

Продвинутое использование

Пользовательская конфигурация прокси

Для организаций, требующих продвинутой сетевой безопасности, вы можете реализовать пользовательский прокси для:
  • Расшифровки и проверки трафика HTTPS
  • Применения пользовательских правил фильтрации
  • Логирования всех сетевых запросов
  • Интеграции с существующей инфраструктурой безопасности
{
  "sandbox": {
    "httpProxyPort": 8080,
    "socksProxyPort": 8081,
  }
}

Интеграция с существующими инструментами безопасности

Инструмент bash в песочнице работает вместе с:

Лучшие практики

  1. Начните с ограничений: Начните с минимальных разрешений и расширяйте по мере необходимости
  2. Мониторьте журналы: Проверьте попытки нарушения песочницы, чтобы понять потребности Claude Code
  3. Используйте конфигурации для конкретной среды: Различные правила песочницы для контекстов разработки и производства
  4. Объедините с разрешениями: Используйте изоляцию в песочнице вместе с политиками IAM для комплексной безопасности
  5. Протестируйте конфигурации: Проверьте, что ваши параметры песочницы не блокируют законные рабочие процессы

Открытый исходный код

Среда выполнения песочницы доступна как пакет npm с открытым исходным кодом для использования в ваших собственных проектах агентов. Это позволяет более широкому сообществу AI агентов создавать более безопасные и защищенные автономные системы. Это также можно использовать для изоляции других программ, которые вы можете захотеть запустить. Например, для изоляции MCP сервера вы можете запустить:
npx @anthropic-ai/sandbox-runtime <command-to-sandbox>
Для деталей реализации и исходного кода посетите репозиторий GitHub.

Ограничения

  • Накладные расходы производительности: Минимальные, но некоторые операции файловой системы могут быть немного медленнее
  • Совместимость: Некоторые инструменты, требующие определенных шаблонов доступа к системе, могут нуждаться в корректировке конфигурации или даже могут нуждаться в запуске вне песочницы
  • Поддержка платформ: В настоящее время поддерживает Linux и macOS; поддержка Windows планируется

См. также

  • Безопасность - Комплексные функции безопасности и лучшие практики
  • IAM - Конфигурация разрешений и контроль доступа
  • Параметры - Полный справочник конфигурации
  • Справочник CLI - Параметры командной строки, включая -sb