OpenClaw: allowlist MCP-серверов против политики tools.exec — матрица 2026 на арендованном Mac mini
Архитекторы безопасности, разворачивающие OpenClaw на арендованном Apple Silicon Mac mini у VmMac, уже ужесточили tools.exec — и обнаруживают, что модель всё ещё может достучаться до MCP-серверов, которые читают базы клиентов или дергают исходящие вебхуки. Эта матрица 2026 года трактует MCP как вторую поверхность выполнения: другой транспорт, тот же радиус поражения. Вы сравните границы доверия, освоите совместные паттерны allowlist, пройдёте лестницу из восьми шагов управления и разберёте двухколоночную таблицу сигналов для флотов в Гонконге, Японии, Корее, Сингапуре и США. Сочетайте с материалами про одобрения exec, цепочку сторонних навыков и установку и развёртывание, чтобы ни один файл политики не оставался единственной линией обороны. Для разделения сред см. изоляцию staging и production через launchd.
См. справку по схемам доступа, тарифы, когда выносите рискованные MCP-шлюзы на выделенные хосты, и VNC для отладки сессий, где нужен графический вход.
Почему MCP — вторая поверхность exec, даже если shell уже заперт
MCP подключает модель к инструментам по структурированным протоколам — часто stdio, иногда HTTP или WebSocket — минуя разбор argv, под который проектировался ваш allowlist exec. Скомпрометированный MCP-сервер может стримить эксфильтрацию кусками как «результаты инструментов», пока tools.exec.security=deny по-прежнему зелёный в дашбордах. Относитесь к каталогам MCP как к дополнительным файлам sudoers: маленьким, ревьюнутым, версионируемым и скучным.
- Понижение транспорта — подмена TLS на открытый текст в сегменте ЛВС, которому вы доверяли.
- Затенение инструментов — два MCP-сервера регистрируют перекрывающиеся имена возможностей с разной реализацией.
- Маскировка задержкой — медленные вызовы MCP истощают пул воркеров шлюза, не срабатывая CPU-алертов.
Матрица: транспорт, идентичность и где правила exec заканчиваются
| Поверхность | Основной риск | Естественный контроль | Типичный пробел |
|---|---|---|---|
tools.exec |
Эксфильтрация через shell хоста | Allowlist argv + режимы ask | Слишком широкие обёртки sh -c |
| MCP stdio-сервер | Локальная имперсонация процесса | Закрепление пути к бинарнику + контрольная сумма | Изменяемый PATH в plist launchd |
| MCP удалённый HTTP | SSRF + кража токена | mTLS + DNS allowlist | Общий DNS staging в prod plist (см. изоляцию сред) |
Совместные паттерны allowlist, которые переживают код-ревью
Храните в git два артефакта: exec-allowlist.v1.yaml и mcp-catalog.v1.json с парными владельцами. Требуйте, чтобы каждая запись MCP называла SHA256 бинарника или digest контейнера, максимальный RPS и метку класса данных (PUBLIC, INTERNAL, CUSTOMER). Блокируйте записи, у которых заявленный класс данных шире, чем разрешено обрабатывать региону VmMac хоста. При изменении записей поднимайте semver вместе, чтобы CI отклоняло частичные продвижения.
Для HTTP MCP закрепляйте сертификаты хэшами SPKI и крутите их на цикле 45 дней с перекрытием, а не аварийными пятничными срезами.
Когда модели просят «просто добавить этот URL MCP», относитесь к диффу как к изменению файрвола: нужны threat brief, тест отката и именованный дежурный, который может выключить запись каталога быстрее 10 минут. Фиксируйте хэш промпта модели рядом с версией манифеста, чтобы постмортемы отличали регрессию политики от дрейфа модели. Если шлюз работает в неинтерактивной сессии launchd, убедитесь также, что клиенты MCP не вызывают диалоги TCC, на которые некому ответить — такие зависания выглядят как даунтайм, но это тупик разрешений.
В многореповых монорепозиториях нормализуйте имена инструментов MCP префиксом репозитория, чтобы два сервиса случайно не удовлетворили один вызов инструмента разными объёмами данных. Этот небольшой «налог на именование» отсекает самый коварный класс межпроектных утечек на общих мини.
Мультиарендатор на общем арендованном Mac mini: метки, порты и корни состояния
Клиенты VmMac иногда делят один мини между двумя командами ради бюджета — это опасно для MCP, потому что пространства имён процессов всё ещё разделяют одно ядро. Разделяйте метки LaunchAgent, TCP-порты и каталоги состояния так же, как для шлюзов production и staging. Никогда не указывайте обе команды на один и тот же сокет MCP по умолчанию; коллизии дают межтенантные результаты инструментов — кошмар для аудита.
Лестница из восьми шагов управления на 2026 год
- Инвентаризируйте каждый транспорт MCP в продакшене; удалите экспериментальные, не привязанные к выручке.
- Генерируйте манифесты с работающих хостов; сравнивайте с git еженедельно.
- Запускайте новые бинарники MCP на классе хостов с deny-exec до сопряжения с продовыми allowlist exec.
- Включите структурированные логи подключения/отключения MCP с корреляционными ID.
- Добавьте синтетические пробы, которые вызывают каждый read-only эндпоинт MCP ежечасно.
- Канареечное развёртывание в одном регионе на 72 часа до глобального продвижения.
- Документируйте откат: отключение записи каталога без рестарта всего шлюза, когда возможно.
- Ежеквартальный стол-топ: компрометация сертификата MCP и репетиция ротации под нагрузкой.
Сигналы наблюдаемости, которые должны пейджить человека
| Сигнал | Действие |
|---|---|
| Сбои проверки TLS MCP > 0 за час | Заморозить продвижения; искать MITM или смещение часов |
| Новое DNS-имя не из каталога | Блок на egress; открыть инцидент ИБ |
| p95 задержки MCP > 2,5× базовой | Троттлинг трафика модели; проверка перегрузки upstream |
Как эта матрица связана с навыками и ранбуками exec
Навыки подгружают промпты, которые могут велеть модели открывать новые соединения MCP; поэтому закрепление версий навыков и allowlist MCP должны продвигаться вместе. Политики exec в одобрениях exec должны явно запрещать запуск альтернативных супервизоров MCP без break-glass тикета. Когда оба слоя совпадают, арендованный флот в Гонконге, Японии, Корее, Сингапуре и США ведёт себя как один класс «приборов», а не пять сугробов.
Вопросы и ответы: MCP и tools.exec на Mac mini
Ранбуки должны исходить из того, что операторам проще помнить флаги shell, чем RPC-каталоги — публикуйте одностраничную шпаргалку с обеими поверхностями рядом и ссылками на git-теги, на которые флот закреплён на этой неделе.
Может ли один JSON управлять обоими? Технически да, но ревьюеры теряют контекст — держите разные файлы со связанными номерами версий.
Нужен ли MCP-серверам VNC? Обычно нет; отладка может — используйте break-glass хост, не production launchd.
А локальные эндпоинты Ollama? Считайте их MCP/HTTP с проверками loopback и запретом слушателей 0.0.0.0.
Почему Mac mini M4 и VmMac подходят агентам с двумя поверхностями
Mac mini M4 даёт достаточно унифицированной памяти, чтобы коллоцировать шлюз и лёгкие MCP-серверы без постоянного давления свопа — и при этом арендовать второй мини для экспериментов. Регионы VmMac в Гонконге, Японии, Корее, Сингапуре и США позволяют размещать нагруженные MCP-рабочие нагрузки близко к требованиям резидентности данных без переписывания оркестрации. Аренда означает, что отравленный профиль MCP можно сбросить быстрее, чем согласовать новый шаблон ВМ с финансами, переустановив политику.
Изолируйте высокорисковые MCP-шлюзы
Добавьте выделенный VmMac Mac mini для удалённых транспортов MCP до того, как они коснутся путей данных клиентов.