Перейти к основному содержанию

Обзор

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

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

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

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

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

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

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

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

Применение на уровне ОС

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

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

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

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

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

Настройте поведение песочницы через ваш файл settings.json. См. Параметры для полного справочника по конфигурации.
Не все команды совместимы с изоляцией в песочнице из коробки. Вот несколько заметок, которые могут помочь вам максимально использовать песочницу:
  • Многие инструменты CLI требуют доступа к определенным хостам. По мере использования этих инструментов они будут запрашивать разрешение на доступ к определенным хостам. Предоставление разрешения позволит им получить доступ к этим хостам сейчас и в будущем, позволяя им безопасно выполняться внутри песочницы.
  • watchman несовместим с запуском в песочнице. Если вы запускаете jest, рассмотрите возможность использования jest --no-watchman
  • docker несовместим с запуском в песочнице. Рассмотрите возможность указания docker в excludedCommands для принудительного запуска вне песочницы.
Claude Code включает намеренный механизм выхода, который позволяет командам запускаться вне песочницы при необходимости. Когда команда не выполняется из-за ограничений песочницы (таких как проблемы с сетевым подключением или несовместимые инструменты), Claude получает запрос на анализ сбоя и может повторить команду с параметром dangerouslyDisableSandbox. Команды, использующие этот параметр, проходят через обычный поток разрешений Claude Code, требующий разрешения пользователя на выполнение. Это позволяет Claude Code обрабатывать граничные случаи, когда определенные инструменты или сетевые операции не могут функционировать в пределах ограничений песочницы.Вы можете отключить этот механизм выхода, установив "allowUnsandboxedCommands": false в ваших параметрах песочницы. Когда отключено, параметр dangerouslyDisableSandbox полностью игнорируется и все команды должны либо запускаться в песочнице, либо быть явно указаны в excludedCommands.

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

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

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

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

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

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

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

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

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

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

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

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

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

Инструмент sandboxed 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