2026: OpenClaw MCP-Dateisystem-Allowlists, POSIX-Sandbox-Roots und Blast-Radius-Kontrolle auf einer ProxyMac-Mac-mini
OpenClaw-Agenten, die Builds auf gemieteten Mac-mini-M4-Hosts in Hongkong, Japan, Korea, Singapur oder den USA orchestrieren, aktivieren häufig den upstream MCP-Dateisystem-Server, damit Modelle Repos diffen oder Logs lesen. Der Komfort wird katastrophal, wenn die argv-Roots Ihr gesamtes Home umfassen—MCP erbt die POSIX-Berechtigungen des Unix-Benutzers, der das Gateway ausführt, nicht die Ideale Ihrer Policy-Notiz. Dieses Playbook liefert (1) ein scharfes Threat Model, (2) einen dreistufigen Verzeichnisvertrag für Lesen, Schreiben und Scratch, (3) eine Berechtigungsmatrix für Automatisierungskonten, (4) ein 7-Schritte-Härtungs-Runbook und (5) Incident-Schritte, falls jemand um Mitternacht chmod -R 777 setzt. Überwachen Sie pro Minute open(2)-Fehler: anhaltende ENFILE-/EMFILE-Spikes bedeuten oft, dass ein Agent verbotene Bäume hämmert. Grundlagen mit MCP-Server-Setup, Secrets + Keychain und macOS-TCC kombinieren, damit die Verteidigung geschichtet bleibt.
Planen Sie vierteljährliche Tabletops: argv in Staging absichtlich erweitern, JSONL-Alarme beobachten, innerhalb von 30 Minuten wieder straffen—das schlägt Improvisation bei Prod-Eskalationen.
Regulierte Teams sollten lesbare Pfade mit Datenklassen koppeln; ein chmod-Fehler in PCI-HDFS kann Meldepflichten auslösen.
Warum Dateisystem-MCP das Risiko headless Chromium auf macOS-Gateways übertrifft
Anders als Browser-Limits kann Dateisystem-MCP jeden für den Daemon-UID lesbaren Pfad traversieren—inklusive privater SSH-Keys in ~/.ssh, wenn Homes falsch konfiguriert sind. Prompt Injection braucht kein RCE; ein höfliches cat ~/.aws/credentials genügt. Scope wie IAM-Rollen: default deny, jede Aufnahme mit Ticket-ID, wöchentliche Rogue-Prompt-Annahme.
JSONL nur mit gehashten Pfaden erlaubt SOC-Spikes ohne Klartext-Kundendateien.
- Zahlen: Teams mit MCP-JSONL sehen oft 120–400 Dateioperationen pro langer Agentensession—Metadaten lecken auch über Pfadnamen.
- Apple Silicon: APFS-Klone teilen versehentlich Snapshots—Finder-Kopien ≠ Isolation.
- Audit: Hashes an JSONL-Diagnostik senden.
Drei-Stufen-Allowlist: Read-, Write- und Scratch-Roots
| Stufe | Zweck | Typischer APFS-Pfad | Erlaubte MCP-Verben |
|---|---|---|---|
| Read-only-Korpus | Vendor-SDKs, freigegebene Docs | /srv/oc-mcp/read/sdk-cache | List + Bytes lesen |
| Write-Korpora | Artefakte, Build-Outputs | /srv/oc-mcp/write/build-out | Create/Append im Subtree |
| Scratch | Ephemere Diff-Stücke | /srv/oc-mcp/scratch/$JOB_ID | Alles außer Symlink-Escapes |
Keine Symlinks von Scratch in Write—bei ACL-Drift erlaubt macOS Traversal. Nach Upgrades chmod -h-Audits.
Externe SSD-Binds: nach Hardwarewechsel Gateway neu starten und Scratch < 24 Stunden automatisch invalidieren.
POSIX-Matrix: LaunchDaemon-Benutzer auf Dateisystem-Scopes mappen
| Unix-Konto | Primärgruppe | umask | Verzeichnisse |
|---|---|---|---|
automation | staff | 027 | nur /srv/oc-mcp/* |
builder (interaktiv) | developer | 022 | Homebrew, nicht MCP-Roots |
root | wheel | n/a | MCP nie als root—Privilegien vor exec droppen |
sudo chown -R automation:staff /srv/oc-mcp, dann kein sudo in LaunchAgents—Break-Glass-Skripte mit Checksums in Git.
Keine Login-Shell für Servicekonten; HOME unter /srv/oc-mcp fixieren reduziert Tilde-Expansion.
7-Schritte-Härtung vor Prod-Dateisystem-MCP
- Inventar einfrieren: jeden MCP-argv-Root im CM—keine Schattenkopien unter Downloads.
- APFS-Ordner mit Sticky wo sinnvoll; Scratch pro Job-ID mit Datumspräfix.
- Env trimmen: LaunchAgents setzen
HOME=/srv/oc-mcp svc, wenn möglich. - Secrets-Firewall: Tokens außerhalb lesbarer Roots oder Keychain laut Secrets-Guide.
- Prompt-Lint: Middleware blockiert absolute Pfade außerhalb der Allowlist.
- Kanarienvogel: in Staging
../../etc/passwdlesen—deterministische Denials erwarten. - Vierteljährlich:
find /srv/oc-mcp -perm +020gegen Baseline—Abweichung = Rollback.
Incident Response nach übermäßiger Exposition
Bei unerwarteten Pfadpräfixen oder FD-Spikes von Kompromittierung ausgehen: (1) launchctl bootout der MCP-Plist, (2) optional tmutil compare, (3) Cloud-PATs rotieren, die nah an lesbaren Verzeichnissen lagen, (4) Kunden informieren bei regulierten Daten, (5) Prompt-Guardrails per Regex bis Middleware live ist.
Zeitstempel mit ±5 Minuten—Finance korreliert mit Billing-Brücken.
Blameless Review: welche argv breiter waren, wer genehmigte, welcher Test fehlte, JSONL-Retention, ob Umgebungsisolierung geholfen hätte—mit PR-Links.
FAQ
Helfen macOS-Sandbox-Profile? Nur wenn MCP-Binaries gewrappt werden—meist Allowlists, weil Upstream unsigniert ist.
Remote-NFS? Für latenzempfindliche Agenten meiden; sonst read-only Root und TCP-Stalls monitoren.
Case-insensitive APFS? Pfade vor MCP-Normalisieren.
Symlink-Tests? ln -s ../../etc/hosts in Scratch, Fehler und JSONL-Eintrag erwarten—nach Node-Minor-Upgrades wiederholen.
Warum ProxyMac-Mac-mini zu striktem MCP passt
Single-Tenant M4-Hosts liefern deterministische Pfade ohne heimliche Nachbar-Mounts; Apple Silicon hält Durchsatz stabil beim Massenlesen über HK / JP / KR / SG / US. Fußabdruck über Preise, Betrieb über Hilfe, visuelle chmod-Drift-Checks über VNC.
MCP-Roots wie Prod-IAM scopen
OpenClaw · Apple Silicon M4 · HK / JP / KR / SG / US