5.4 KiB
Balda — SSH и Seatbelt: проверка 2026-10-18
Статус этой заметки — 2026-10-19
Ниже сохранён датированный технический прогон 2026-10-18, включая его тогдашние открытые проверки. Текущая эксплуатационная сводка: personal/projects/balda/setup, планы: personal/plans/balda-remote-agent и personal/plans/workspace-gateway. С тех пор приняты production SSH/SRT к Mac, SMB доступ/отзыв, shared Beads fixture, native approval bridge и generic SSH Manager 0.3.2 с импортом существующего доверенного доступа Mac и проверкой установленного ключа из клиента; текущая приёмка: personal/projects/balda/ssh-client-route-2026-10-19. Полный модельный Prism lifecycle и реальные project DB остаются отдельной приёмкой.
Исторический протокол проверки
Общий план: personal/plans/balda-remote-agent. Workspace Gateway: personal/plans/workspace-gateway.
Факты установки на дату исходной проверки
- Docker context:
colima; Docker daemon сообщаетUbuntu 24.04.4 LTS. - На Mac
26.7.1присутствует/usr/bin/sandbox-exec. - Из основного контейнера
balda-mm-macоткрывается SSH TCP/22 доhost.docker.internal, получен bannerSSH-2.0-OpenSSH_10.3. - Из того же контейнера доступен внешний
github.com:22, получен SSH banner. - Эти сетевые пробы не передавали ключи и не выполняли удалённых команд: рабочая авторизация, host key pinning и права пользователя ими не приняты.
- В production по-прежнему
permissions.mode: allow_all; профиль Seatbelt для рабочего запуска из Balda этим тестом не устанавливался.
Проверка Seatbelt
На синтетических файлах выполнены чтение разрешённого пути, запрещённое чтение другого пути и запрещённая запись через дочерний /bin/sh.
Оба запрещённых действия завершились Operation not permitted, исходный файл сохранился.
Это проверка работы правила и наследования ограничения, а не готовая политика изоляции агента: тестовый профиль разрешал остальные операции и запрещал только контрольную папку.
{
"macos": "26.7.1",
"allowed_read": {
"exit_code": 0,
"stdout": "allowed",
"stderr": ""
},
"blocked_read": {
"exit_code": 1,
"stdout": "",
"stderr": "cat: /private/tmp/workspace-gateway-seatbelt-nh3ciwhu/blocked/probe: Operation not permitted"
},
"blocked_child_write": {
"exit_code": 1,
"stdout": "",
"stderr": "fixture: /private/tmp/workspace-gateway-seatbelt-nh3ciwhu/blocked/probe: Operation not permitted"
},
"blocked_file_unchanged": true,
"scope": "Synthetic deny-rule/inheritance probe, not an approved production agent profile"
}
Готовые средства
anthropics/sandbox-runtime уже предоставляет запуск произвольного процесса с ограничениями файлов и сети, на macOS используя Seatbelt. Изучена документация; пакет не устанавливался и рабочие профили этого проекта не принимались. Сначала проверяется готовое средство и штатная sandbox конкретного агента, затем определяется, нужен ли какой-либо дополнительный launcher.
Beads рекомендует Dolt server mode для одновременных записывающих клиентов. Настройка общего серверного доступа из Balda и удалённых сред ещё не выполнена.
Открытые проверки на дату исходного прогона
- Авторизованный SSH из контейнера в реальные среды с проверкой host key и ограниченными credentials.
- Запуск настоящих ACP-агентов и обычных команд на Mac внутри принятой sandbox.
- Запрет обхода sandbox через альтернативную SSH-команду, дочерний процесс или доступ к секретам.
- Права на файлы и сеть, совместимость native sandbox агента с внешней оболочкой.
- Запросы разрешений у агента и штатный
askBalda. - MCP, общая БД Beads и полный цикл оригинального Prism на реальном подключении.