Безопасность 6 мая 2026 г.

2026: списки разрешений MCP файловой системы OpenClaw, корни песочницы POSIX и контроль blast radius на Mac mini ProxyMac

Инженерная команда ProxyMac 6 мая 2026 г. ~13 мин чтения

Агенты OpenClaw, оркестрирующие сборки на арендованных Mac mini M4 в Гонконге, Японии, Корее, Сингапуре и США, часто включают upstream-сервер MCP файловой системы, чтобы модели сравнивали репозитории или читали логи. Удобство оборачивается катастрофой, если argv-корни включают весь домашний каталог—MCP наследует POSIX-права Unix-пользователя шлюза, а не идеалы внутренней политики. Плейбук даёт (1) жёсткую модель угроз, (2) трёхуровневый контракт каталогов чтение/запись/scratch, (3) матрицу прав для учёток автоматизации, (4) семишаговый рунбук ужесточения и (5) шаги при полуночном chmod -R 777. Мониторьте отказы open(2) в минуту: длительные всплески ENFILE/EMFILE часто означают, что агент долбит запрещённые деревья. Сочетайте с настройкой MCP, секретами и Keychain и TCC macOS, чтобы защита была многослойной, а не декоративной.

Ежеквартальные учения: расширить argv в staging, посмотреть JSONL-алерты, за 30 минут снова сузить—это лучше импровизации в проде.

Регулируемые отрасли должны связывать читаемые пути с классификацией данных; ошибка chmod в зоне PCI может вызвать обязанности по уведомлению.

Почему MCP файловой системы опаснее браузерной автоматизации на macOS-шлюзах

В отличие от ограничений headless Chromium, MCP может обходить любой путь, читаемый UID демона—включая SSH-ключи в ~/.ssh при неверной конфигурации домашних каталогов. Prompt injection не требует RCE: достаточно вежливого cat ~/.aws/credentials. Области как IAM-роли: deny-by-default, тикет на каждое включение, предположение о злонамеренных промптах еженедельно.

  • Цифры: команды с JSONL часто видят 120–400 файловых операций за длинную сессию агента.
  • Apple Silicon: клоны APFS могут случайно делить снимки inode между средами.
  • Аудит: хэши путей в JSONL-диагностику для SOC без сырых имён клиентов.

Трёхуровневая allowlist: корни чтения, записи и scratch

УровеньНазначениеТипичный путь APFSРазрешённые глаголы MCP
Только чтениеSDK вендоров, утверждённые документы/srv/oc-mcp/read/sdk-cacheСписок + чтение байтов
ЗаписьАртефакты, сборочные выходы/srv/oc-mcp/write/build-outСоздание/дозапись в поддереве
ScratchЭфемерные куски diff/srv/oc-mcp/scratch/$JOB_IDВсё кроме symlink-escape

Не связывайте scratch симлинками с write—при дрейфе ACL macOS может разрешить обход. После апгрейдов аудит chmod -h.

Внешние SSD: после смены железа перезапускайте шлюз и автоматически инвалидируйте scratch младше 24 часов.

Матрица POSIX: пользователи LaunchDaemon ↔ области файловой системы

Unix-учёткаОсновная группаumaskВладеемые каталоги
automationstaff027только /srv/oc-mcp/*
builder (интерактив)developer022Деревья Homebrew, не MCP-корни
rootwheeln/aНикогда не запускать MCP от root—снижать привилегии до exec
Владение: один раз sudo chown -R automation:staff /srv/oc-mcp, затем запрет sudo в LaunchAgents—скрипты break-glass в git с контрольными суммами.

Семишаговый рунбук ужесточения перед продом MCP файловой системы

  1. Заморозить инвентарь: каждый argv-корень MCP в CM—нет теневых копий в Downloads.
  2. Создать папки/тома APFS со sticky при необходимости; scratch по job ID с датой в префиксе.
  3. Урезать окружение: по возможности HOME=/srv/oc-mcp svc в LaunchAgents.
  4. Секретный файрвол: токены вне читаемых корней или Keychain по гайду.
  5. Линт промптов: middleware режет абсолютные пути вне allowlist.
  6. Канарейка: в staging читать ../../etc/passwd—ждём детерминированные отказы в логах.
  7. Ежеквартально: diff find /srv/oc-mcp -perm +020 с baseline—шире = откат.
Напоминание: TCC Screen Recording не ограничивает POSIX-чтение—сочетайте ACL файловой системы, а не только переключатели из статьи TCC.

Реагирование при чтении за пределами контракта

JSONL с неожиданными префиксами или всплесками FD — считать компрометацию: (1) launchctl bootout plist MCP, (2) при наличии Time Machine — tmutil compare, (3) ротация облачных PAT рядом с читаемыми каталогами, (4) уведомление клиентов при регулируемых данных, (5) гвардрейлы regex для промптов до появления middleware.

Временные метки с точностью ±5 минут для финансовой корреляции.

После сдерживания — виноватый без обвинений: какие argv были шире политики, кто одобрил, какой тест пропустил, как долго JSONL хранил доказательства, помогла бы изоляция сред. Ответы с ссылками на PR.

Вопросы и ответы

Помогают ли профили песочницы macOS? Только при обёртке бинарников MCP—чаще allowlist, так как upstream не подписан.

Удалённый NFS? Избегать из-за задержки; если нужно — только чтение и мониторинг TCP-зависаний.

APFS без учёта регистра? Нормализовать пути до экспозиции MCP.

Тесты symlink? ln -s ../../etc/hosts в scratch, ожидать ошибки прав и запись в JSONL—повторять после минорных апгрейдов Node.

Почему Mac mini ProxyMac подходит для строгой MCP-позиции

Однотенантные M4 дают предсказуемые пути без соседних контейнеров, тихо монтирующих ваше /srv; Apple Silicon сохраняет пропускную способность при массовом чтении в HK / JP / KR / SG / US. Сравните на странице цен, стандартизируйте удалёнку через справочный центр, держите VNC для визуальной проверки «временного» chmod.

Области MCP как прод IAM

OpenClaw · Apple Silicon M4 · HK / JP / KR / SG / US