Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
claude-code-devcontainer — Изолированный devcontainer для безопасного запуска Claude Code в режиме обхода. Создан для аудита безопасности и проверки ненадёжного кода. | Kitploit
Инструменты/GitHubGitHub/trailofbits/claude-code-devcontainer
Оборонительные ИнструментыБезопасность контейнеровАнализ КодаВиртуализация для безопасностиDevSecOpsУтилиты и фреймворкиОбучение и Образование
GitHubtrailofbits/claude-code-devcontainer

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

claude-code-devcontainer

Изолированный devcontainer для безопасного запуска Claude Code в режиме обхода. Создан для аудита безопасности и проверки ненадёжного кода.

Репозиторий
904972 месяцев назадПроверено Kitploit

Claude Code в devcontainer

Песочница для разработки запуска Claude Code с безопасно включённым bypassPermissions. Создана в Trail of Bits для рабочих процессов аудита безопасности.

Зачем это нужно?

Запуск Claude с bypassPermissions на вашей хост-машине рискован — он может выполнить любую команду без подтверждения. Этот devcontainer обеспечивает изоляцию файловой системы, так что вы получаете преимущества продуктивности неограниченного Claude без риска для вашей хост-системы.

Предназначен для:

  • Аудит безопасности: Просмотр клиентского кода без риска для вашего хоста
  • Недоверенные репозитории: Безопасное исследование незнакомых кодовых баз
  • Экспериментальная работа: Позволить Claude свободно изменять код в изоляции
  • Работа с несколькими репозиториями: Работа с несколькими связанными репозиториями

Необходимые условия

  • Среда выполнения Docker (одна из):

    • Docker Desktop — убедитесь, что она запущена
    • OrbStack
    • Colima: brew install colima docker && colima start
  • Для терминальной работы (однократная установка):

    root@kitploit:~
    npm install -g @devcontainers/cli
    git clone https://github.com/trailofbits/claude-code-devcontainer ~/.claude-devcontainer
    ~/.claude-devcontainer/install.sh self-install
    
Оптимизация Colima для Apple Silicon

Настройки по умолчанию Colima (QEMU + sshfs) консервативны. Для лучшей производительности:

root@kitploit:~
# Stop and delete current VM (removes containers/images)
colima stop && colima delete

# Start with optimized settings
colima start \
  --cpu 4 \
  --memory 8 \
  --disk 100 \
  --vm-type vz \
  --vz-rosetta \
  --mount-type virtiofs

Настройте --cpu и --memory в зависимости от вашего Mac (например, 6/16 для Pro, 8/32 для Max).

Быстрый старт

Выберите шаблон, соответствующий вашему рабочему процессу:

Шаблон A: Контейнер на проект (изолированный)

Каждый проект получает свой собственный контейнер с независимыми томами. Лучше всего подходит для разовых проверок, недоверенных репозиториев или когда необходима изоляция между проектами.

Терминал:

root@kitploit:~
git clone <untrusted-repo>
cd untrusted-repo
devc .          # Installs template + starts container
devc shell      # Opens shell in container

VS Code / Cursor:

  1. Установите расширение Dev Containers:

    • VS Code: ms-vscode-remote.remote-containers
    • Cursor: anysphere.remote-containers
  2. Настройте devcontainer (выберите один):

    root@kitploit:~
    # Option A: Use devc (recommended)
    devc .
    
    # Option B: Clone manually
    git clone https://github.com/trailofbits/claude-code-devcontainer .devcontainer/
    
  3. Откройте папку вашего проекта в VS Code, затем:

    • Нажмите Cmd+Shift+P (Mac) или Ctrl+Shift+P (Windows/Linux)
    • Введите "Reopen in Container" и выберите Dev Containers: Reopen in Container

Шаблон B: Общий рабочий контейнер (сгруппированный)

Родительский каталог содержит конфигурацию devcontainer, и вы клонируете несколько репозиториев внутри. Общие тома для всех репозиториев. Лучше всего подходит для работы с клиентами, связанными репозиториями или текущими задачами.

root@kitploit:~
# Create workspace for a client engagement
mkdir -p ~/sandbox/client-name
cd ~/sandbox/client-name
devc .          # Install template + start container
devc shell      # Opens shell in container

# Inside container:
git clone <client-repo-1>
git clone <client-repo-2>
cd client-repo-1
claude          # Ready to work

Аутентификация на основе токена (безголовый режим)

Для безголовых серверов или чтобы пропустить интерактивного мастера входа:

root@kitploit:~
claude setup-token                          # run on host, one-time
export CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
devc rebuild                                # rebuilds with token

Токен передаётся в контейнер. При каждом создании контейнера post_install.py выполняет однократное подтверждение аутентификации, так что claude запускается без мастера входа.

Это обходит проблему постоянного отображения интерактивного мастера настройки Claude Code в контейнерах, даже с действительными учётными данными (#8938).

Если вы не задаёте токен, интерактивный вход работает как прежде.

Вспомогательные команды CLI

root@kitploit:~
devc .              Установить шаблон + запустить контейнер в текущем каталоге
devc up             Запустить devcontainer
devc rebuild        Пересобрать контейнер (сохраняет постоянные тома)
devc destroy [-f]   Удалить контейнер, тома и образ для текущего проекта
devc down           Остановить контейнер
devc shell          Открыть zsh-оболочку в контейнере
devc exec CMD       Выполнить команду внутри контейнера
devc upgrade        Обновить Claude Code в контейнере
devc mount SRC DST  Добавить связывание монтирования (хост → контейнер)
devc sync [NAME]    Синхронизировать сеансы Claude Code из devcontainers на хост
devc template DIR   Скопировать файлы devcontainer в каталог
devc self-install   Установить devc в ~/.local/bin

Примечание: Используйте devc destroy для очистки Docker-ресурсов проекта. Ручное удаление контейнеров (например, docker rm) оставит сиротские тома и образы, которые devc destroy не сможет найти.

Синхронизация сеансов для /insights

Команда /insights анализирует историю ваших сеансов, но она читает только из ~/.claude/projects/ на хосте. Сеансы внутри томов devcontainer для неё невидимы.

devc sync копирует журналы сеансов из всех devcontainers (работающих и остановленных) на хост, чтобы /insights могла их включить:

root@kitploit:~
devc sync              # Sync all devcontainers
devc sync crypto       # Filter by project name (substring match)

Devcontainers автоматически обнаруживаются через метки Docker — не нужно знать имена или идентификаторы контейнеров. Синхронизация инкрементальная, поэтому её можно запускать многократно.

Общий доступ к файлам

VS Code / Cursor

Перетаскивайте файлы с хост-машины на панель обозревателя VS Code — они автоматически копируются в /workspace/. Никакой настройки не требуется.

Терминал: devc mount

Чтобы сделать каталог хоста доступным внутри контейнера:

root@kitploit:~
devc mount ~/drop /drop           # Read-write
devc mount ~/secrets /secrets --readonly

Это добавляет связывание монтирования в devcontainer.json и пересоздаёт контейнер. Существующие монтирования сохраняются при обновлениях devc template.

Совет: общая "папка для передачи" полезна для передачи файлов без монтирования всей домашней директории.

Замечание по безопасности: Избегайте монтирования больших каталогов хоста (например, $HOME). Каждый смонтированный путь доступен для записи изнутри контейнера, если не указан --readonly, что подрывает изоляцию файловой системы, которую обеспечивает этот проект.

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

По умолчанию контейнеры имеют полный исходящий сетевой доступ. Для более строгой безопасности используйте iptables для ограничения доступа к сети.

Когда включать изоляцию сети

  • Просмотр кода, который может содержать вредоносные зависимости
  • Аудит программного обеспечения с телеметрией или поведением "звонка домой"
  • Максимальная изоляция для высокочувствительных проверок

Пример: Claude + GitHub + Пакетные реестры

root@kitploit:~
sudo iptables -A OUTPUT -d api.anthropic.com -j ACCEPT
sudo iptables -A OUTPUT -d github.com -j ACCEPT
sudo iptables -A OUTPUT -d raw.githubusercontent.com -j ACCEPT
sudo iptables -A OUTPUT -d registry.npmjs.org -j ACCEPT
sudo iptables -A OUTPUT -d pypi.org -j ACCEPT
sudo iptables -A OUTPUT -d files.pythonhosted.org -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A OUTPUT -j DROP

Компромиссы

  • Блокирует менеджеры пакетов, если вы не добавите реестры в белый список
  • Может нарушить работу инструментов, требующих сетевого доступа
  • DNS-резолюция всё ещё работает (рассмотрите возможность блокировки, если вы параноик)

Модель угроз

Основная угроза, которую решает этот проект, — Claude Code, выполняющий произвольные команды на вашей хост-машине. Когда bypassPermissions включён, Claude исполняет shell-команды, устанавливает пакеты и изменяет файлы без подтверждения. На хост-машине это означает, что он может изменить вашу конфигурацию оболочки, выполнить rm -rf за пределами каталога проекта или злоупотребить локально сохранёнными учётными данными. Devcontainer ограничивает всё это одноразовым контейнером, где радиус поражения ограничен /workspace.

Контейнер включает распространённые инструменты разработки, так что вы можете выполнять всю работу по разработке внутри него — не только запускать Claude. Предполагаемый рабочий процесс: клонируйте репозиторий, запустите devcontainer и работайте полностью внутри него. Если вашему проекту требуются дополнительные среды выполнения или инструменты сверх включённых, либо добавьте их в Dockerfile для повторного использования, либо установите их в ad-hoc режиме с помощью devc exec.

Что касается конкретных границ изоляции — см. Модель безопасности ниже. Один нюанс, который стоит отметить: среда выполнения devcontainer автоматически перенаправляет сокет SSH-агента хоста (SSH_AUTH_SOCK) в контейнер. Это позволяет коду внутри контейнера аутентифицироваться от вашего имени по SSH (например, git push), но сам закрытый ключ остаётся на хосте и никогда не раскрывается контейнеру.

Модель безопасности

Этот devcontainer обеспечивает изоляцию файловой системы, но не полную песочницу.

Изолировано: Файловая система (файлы хоста недоступны), процессы (изолированы от хоста), установки пакетов (остаются в контейнере)

Не изолировано: Сеть (полный исходящий доступ по умолчанию — см. Изоляция сети), git-идентичность (~/.gitconfig смонтирован только для чтения), SSH-агент (сокет перенаправлен, ключи остаются на хосте), Docker-сокет (не смонтирован по умолчанию)

Контейнер автоматически настраивает режим bypassPermissions — Claude запускает команды без подтверждения. Это было бы рискованно на хост-машине, но сам контейнер является песочницей.

Детали контейнера

Тома хранятся вне контейнера, поэтому ваша история shell, настройки Claude и логин gh сохраняются даже после devc rebuild. Хост ~/.gitconfig смонтирован только для чтения для git-идентичности.

Устранение неполадок

"devcontainer CLI not found"

root@kitploit:~
npm install -g @devcontainers/cli

Контейнер не запускается

  1. Проверьте, запущен ли Docker
  2. Попробуйте пересобрать: devc rebuild
  3. Проверьте логи: docker logs $(docker ps -lq)

Аутентификация GitHub CLI не сохраняется

Тому gh может потребоваться исправление прав доступа:

root@kitploit:~
sudo chown -R $(id -u):$(id -g) ~/.config/gh

Python/uv не работает

Python управляется через uv:

root@kitploit:~
uv run script.py              # Run a script
uv add package                # Add project dependency
uv run --with requests py.py  # Ad-hoc dependency

Разработка

Соберите образ вручную:

root@kitploit:~
devcontainer build --workspace-folder .

Протестируйте контейнер:

root@kitploit:~
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . zsh
Скачать инструмент
ОпцияПреимущество
--vm-type vzApple Virtualization.framework (быстрее, чем QEMU)
--mount-type virtiofsв 5-10 раз быстрее файлового ввода-вывода, чем sshfs
--vz-rosettaЗапуск x86 контейнеров через Rosetta

Проверьте с помощью colima status — должно показывать "macOS Virtualization.Framework" и "virtiofs".

КомпонентДетали
БазаUbuntu 24.04, Node.js 22, Python 3.13 + uv, zsh
Пользовательvscode (passwordless sudo), рабочий каталог /workspace
Инструментыrg, fd, tmux, fzf, delta, iptables, ipset
Тома (переживают пересборки)История команд (/commandhistory), Конфигурация Claude (~/.claude), Аутентификация GitHub CLI (~/.config/gh)
Монтирования хоста~/.gitconfig (только для чтения), .devcontainer/ (только для чтения)
Автонастройкаanthropics + trailofbits skills, git-delta