
AI-агенты кодирования, которые не могут эксфильтровать секреты или сливать свои собственные PR.
Вы ответственный инженер. Вы бы ни за что не позволили ИИ безнаказанно хозяйничать в ваших самых чувствительных системах и кодовых базах.
Именно поэтому вы никогда не отключаете защиту для такого инструмента, как Claude Code. Он запрашивает разрешение на каждое опасное действие! Безопасно!
И вот вы ждете. И отвечаете. Наступает усталость от принятия решений. И именно в этот момент это происходит.
Подсказки с запросом разрешения упускают из виду самую слабую часть модели угроз: уставшего пользователя. Что, если бы мы могли дать агенту больше свободы, одновременно ограничив радиус поражения, отложив ваши решения до момента проверки PR?
Это было бы здорово! И это и есть yolo-cage.
curl -fsSL https://github.com/borenstein/yolo-cage/releases/latest/download/yolo-cage -o yolo-cage
chmod +x yolo-cage && sudo mv yolo-cage /usr/local/bin/
yolo-cage build --interactive --up
Затем создайте песочницу и начинайте кодить:
yolo-cage create feature-branch
yolo-cage attach feature-branch # Подключение к агенту в tmux
Предварительные требования: Vagrant с libvirt (Linux) или QEMU (macOS, экспериментально), 8 ГБ ОЗУ, 4 ядра CPU, GitHub PAT (разрешение repo), учетная запись Claude. Смотрите документацию по настройке.
Секреты в HTTP/HTTPS - исходящий прокси сканирует тела запросов, заголовки, URL:
sk-ant-*, AKIA*, ghp_*, закрытые ключи SSH, общие шаблоны учетных данныхGit-операции - диспетчер обеспечивает изоляцию веток:
git remote, git clone, git config, git credentialGitHub CLI - диспетчер блокирует опасные команды:
gh pr merge, gh repo delete, gh apiGitHub API - прокси блокирует на уровне HTTP:
PUT /repos/*/pulls/*/merge, DELETE /repos/*, изменения вебхуковСайты для выгрузки данных: pastebin.com, file.io, transfer.sh и т.д.
Подробнее см. в Архитектуре.
┌──────────────────────────────────────────────────────────────────────────┐
│ Среда выполнения (Vagrant VM + MicroK8s) │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ Песочница │ │
│ │ │ │
│ │ Агент (Claude Code в режиме YOLO) │ │
│ │ │ │ │
│ │ ├── git/gh ──▶ Диспетчер ──▶ GitHub │ │
│ │ │ • Принудительная изоляция веток │ │
│ │ │ • Предварительное сканирование TruffleHog │ │
│ │ │ │ │
│ │ └── HTTP/S ──▶ Исходящий прокси ──▶ Интернет │ │
│ │ • Сканирование секретов (LLM-Guard) │ │
│ │ • Блок-лист доменов │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
Одна песочница на ветку. Агенты могут отправлять только в свою назначенную ветку. Весь исходящий трафик фильтруется.
Доступ к веб-приложениям, работающим внутри песочницы:
yolo-cage port-forward feature-x 8080 # localhost:8080 → песочница:8080
yolo-cage port-forward feature-x 9000:3000 # localhost:9000 → песочница:3000
yolo-cage port-forward feature-x 8080 --bind 0.0.0.0 # Доступно в локальной сети
См. Конфигурацию для информации об обходе прокси, хуках и ограничениях ресурсов.
Это снижает риск. Это не устраняет его полностью.
Используйте учетные данные с ограниченными правами. Не используйте производственные секреты там, где эксфильтрация может быть катастрофической. См. Аудит безопасности, чтобы протестировать это самостоятельно.
MIT. См. LICENSE.
| Команда | Описание |
|---|
create <branch> | Создать песочницу |
attach <branch> | Подключиться (Claude в tmux) |
shell <branch> | Подключиться (bash) |
list | Список песочниц |
delete <branch> | Удалить песочницу |
port-forward <branch> <port> | Перенаправить порт из песочницы |
up / down | Запустить/остановить ВМ |
upgrade [--rebuild] | Обновить до последней версии |
version | Показать версию |