Sicherheits-Kapitel · Fortgeschritten

08 — Permission-System
& Sicherheit

Verstehe das mehrschichtige Sicherheitsmodell des Claw Code Harness. Trust-Gating, Tool-Berechtigungen und die 7 Bootstrap-Phasen im Detail.

✓ Trusted Mode ⚠ Untrusted ✗ Blocked
3Trust-Level
7Bootstrap-Phasen
Deny-Kombis
100%Kontrolle
01

Trust-Gating erklärt

Die verzögerte Initialisierung wird über einen trusted-Parameter gesteuert. Verstehe den Unterschied zwischen vertrauenswürdigem und eingeschränktem Modus.

Kritisch Kernkonzept

Das Trust-Prinzip

Das Claw Code Sicherheitsmodell basiert auf einem einfachen aber mächtigen Prinzip: nichts passiert ohne explizite Erlaubnis. Alle potenziell gefährlichen Operationen werden durch das trusted-Flag gesteuert.

Aktueller Trust-Status
trusted = True
🔌
Plugins
🎯
Skills
🔗
MCP
💾
Sessions

trusted = True

Im vertrauenswürdigen Modus werden alle Features aktiviert:

  • Plugins — Externe Erweiterungen werden geladen und ausgeführt
  • Skills — Spezialisierte Fähigkeiten werden initialisiert
  • MCP-Prefetch — Model Context Protocol Integration ist aktiv
  • Session-Hooks — Persistenz-Callbacks werden registriert
  • Auto-Save — Sessions werden automatisch gespeichert

trusted = False

Im eingeschränkten Modus werden alle verzögerten Initialisierungen deaktiviert:

  • Keine Plugins — Externer Code wird nicht geladen
  • Keine Skills — Nur Basis-Fähigkeiten verfügbar
  • Kein MCP — Keine externen Tool-Verbindungen
  • Keine Hooks — Keine automatischen Persistenz-Operationen
  • Manueller Modus — Der Benutzer behält volle Kontrolle
python
# Trust-Gating im Code
>>> from src.runtime import PortRuntime

# Trusted Mode - volle Funktionalität
>>> runtime = PortRuntime(trusted=True)
[INFO] Plugins geladen: 5
[INFO] Skills initialisiert: 12
[INFO] MCP-Verbindungen aktiv: 3

# Untrusted Mode - eingeschränkt
>>> runtime = PortRuntime(trusted=False)
[WARN] Trust-Gate aktiv - verzögerte Init deaktiviert
[INFO] Nur Basis-Funktionalität verfügbar
🛡️
Sicherheitsbest Practice
Starte neue Sessions immer mit trusted=False, bis du die Umgebung verifiziert hast. Wechsle erst zu trusted=True, wenn du Plugins oder MCP-Integration benötigst.
02

Tool-Berechtigungen

Jedes Tool hat ein definiertes Berechtigungslevel. Lerne, wie das System Lese-, Schreib- und Ausführungsoperationen klassifiziert.

Kern Sicherheit

Berechtigungslevel

Tools werden nach ihrem potenziellen Schadenspotential in drei Kategorien eingeteilt:

👁️ Read-Only
  • Dateien lesen
  • Verzeichnisse auflisten
  • Code analysieren
  • Dateien schreiben
  • Befehle ausführen
✏️ Read-Write
  • Dateien lesen
  • Dateien schreiben
  • Code modifizieren
  • Konfiguration ändern
  • Systembefehle
Execute
  • Alle Leseoperationen
  • Alle Schreiboperationen
  • Shell-Befehle
  • Prozess-Ausführung
  • Netzwerk-Operationen

Tool-Metadaten

Jedes Tool definiert sein Berechtigungslevel in den Metadaten:

json — tools_snapshot.json
{
  "name": "Read",
  "description": "Liest Dateiinhalte",
  "permission_level": "read-only",
  "source": "filesystem"
}


{
  "name": "Bash",
  "description": "Führt Shell-Befehle aus",
  "permission_level": "execute",
  "source": "system",
  "requires_confirmation": true
}
💡
Automatische Prüfung
Das System prüft bei jedem Tool-Aufruf automatisch, ob das aktuelle Trust-Level die Operation erlaubt. Bei trusted=False werden Execute-Tools immer blockiert.
03

Deny-List verwenden

Spezifische Tools blockieren, Präfix-basierte Filter anwenden und benutzerdefinierte Sperrlisten erstellen.

Sicherheit Fortgeschritten

Einzelne Tools blockieren

Verhindere, dass spezifische Tools vom Router ausgewählt werden:

bash
# Einzelnes Tool blockieren
$ python3 -m src.main tools --deny-tool Bash
Tools geladen: 99/100 (1 blockiert)

# Mehrere Tools blockieren
$ python3 -m src.main tools --deny-tool Bash --deny-tool Write --deny-tool WebFetch
Tools geladen: 97/100 (3 blockiert)

# Routing mit deny-list
$ python3 -m src.main route "Führe ls aus" --deny-tool Bash
[WARN] Bash ist blockiert - überspringe
Alternative: ReadDir (Score: 0.78)

Präfix-basierte Blockierung

Blockiere ganze Tool-Kategorien über Namenspräfixe:

🚫 mcp__* Alle MCP-Tools
🚫 web__* Web-basierte Tools
🚫 exec__* Ausführungstools
bash
# Alle MCP-Tools blockieren
$ python3 -m src.main tools --deny-prefix mcp__
Blockiert via Präfix: 15 Tools

# Mehrere Präfixe kombinieren
$ python3 -m src.main tools --deny-prefix mcp__ --deny-prefix exec__
Blockiert via Präfix: 23 Tools

Permanente Deny-List

Erstelle eine permanente Konfigurationsdatei für wiederkehrende Blockierungen:

yaml — .port_security.yml
security:
  denied_tools:
    - Bash
    - WebFetch
    - NetworkRequest
  denied_prefixes:
    - mcp__
    - external__
  require_confirmation:
    - Write
    - Delete
⚠️
Wichtig
Die Deny-List wird vor dem Routing angewendet. Bereits blockierte Tools erscheinen nicht in den Ergebnissen und können nicht ausgewählt werden.
04

Die 7 Bootstrap-Phasen

Der Boot-Prozess des Claw Code Harness durchläuft 7 definierte Phasen. Jede Phase hat spezifische Sicherheitsprüfungen.

Kern Tiefgehend

Phasen-Übersicht

Die Bootstrap-Sequenz stellt sicher, dass das System in kontrollierter Weise initialisiert wird:

01
Prefetch
Vorab-Laden von Ressourcen und Caches. Keine Code-Ausführung.
Immer aktiv
02
Trust Gate
Vertrauensprüfung und Entscheidung über verzögerte Initialisierung.
Kritisch
03
CLI Parser
Argumente parsen und validieren. Deny-Lists werden hier verarbeitet.
Immer aktiv
04
Setup
Umgebung initialisieren, Pfade setzen, Workspace erkennen.
Immer aktiv
05
Deferred Init
Verzögerte Initialisierung von Plugins und Skills. Trust-abhängig.
Trust = True
06
Mode Routing
Betriebsmodus wählen: Einzelprompt, Session oder Turn-Loop.
Immer aktiv
07
Query Submit
Prompt verarbeiten, Routing durchführen, Ergebnisse zurückgeben.
Immer aktiv

Phase 2: Trust Gate im Detail

Das Trust Gate ist der zentrale Sicherheitsmechanismus:

1
Trust-Flag prüfen
Das System liest trusted aus den Startup-Parametern oder der Konfiguration.
2
Umgebungsvalidierung
Bei trusted=True: Prüfe Workspace-Integrität, keine gemounteten sensiblen Pfade.
3
Entscheidung
Setze den internen _trust_state und logge die Entscheidung.
bash
$ python3 -m src.main bootstrap-graph

╔════════════════════════════════════════╗
║ Claw Code Bootstrap-Phasen ║
╠════════════════════════════════════════╣
║ 01. Prefetch [●●●●●] 100% ║
║ 02. Trust Gate [●●●●●] 100% ║
║ └── Status: TRUSTED ✓ ║
║ 03. CLI Parser [●●●●●] 100% ║
║ 04. Setup [●●●●●] 100% ║
║ 05. Deferred Init [●●●●●] 100% ║
║ 06. Mode Routing [●●●●●] 100% ║
║ 07. Query Submit [●●●●●] 100% ║
╚════════════════════════════════════════╝

[INFO] Alle Phasen erfolgreich abgeschlossen
Visuelle Kontrolle
Verwende bootstrap-graph um jederzeit den Zustand der Initialisierung zu prüfen. Der Trust-Status wird farblich hervorgehoben angezeigt.
05

Sicherheits-Best-Practices

Praktische Richtlinien für den sicheren Betrieb des Claw Code Harness in verschiedenen Umgebungen.

Sicherheit Empfohlen

Checkliste: Sichere Konfiguration

Lokal arbeiten, Netzwerk blockieren
SzenarioTrustDeny-ListBest Practice
Code-AnalyseFalseNur Read-Tools nutzen
RefactoringFalseBash, ExecWrite erlauben, Execute blockieren
Build & DeployTrueVolle Funktionalität im CI/CD
FremdprojektFalsemcp__, exec__Keine externen Tools im fremden Code
EntwicklungTrueNetzwerk-Tools

Rote Linien

Diese Kombinationen sollten vermieden werden:

  • trusted=True + unbekannter Workspace — Initialisiere nie vertrauensvoll in unbekannten Verzeichnissen
  • Bash-Tool + Web-Daten — Verhindere, dass heruntergeladener Code ausgeführt wird
  • Auto-Save + sensible Daten — Deaktiviere Persistenz bei Arbeit mit Credentials
  • MCP + Produktivsystem — Teste MCP-Integrationen immer isoliert

Defense in Depth

Mehrere Sicherheitsschichten kombinieren:

1
Schicht 1: Trust-Gating
Verwende trusted=False als Standard. Aktiviere nur bei Bedarf.
2
Schicht 2: Deny-Lists
Definiere projektspezifische Blockierungen in .port_security.yml.
3
Schicht 3: Permission-Levels
Verlasse dich auf die automatische Klassifizierung der Tools.
4
Schicht 4: Bestätigungen
Aktiviere requires_confirmation für destruktive Operationen.
🎓
Zusammenfassung
Das Claw Code Permission-System gibt dir 100% Kontrolle über die Ausführung. Nutze Trust-Gating für grobe Steuerung, Deny-Lists für feine Granularität, und verstehe die Bootstrap-Phasen für tiefgehendes Debugging.