Sandboxed Execution: Claude Code in Docker-Container ausführen #20

Open
opened 2026-03-30 19:46:05 +00:00 by David · 0 comments
Collaborator

Beschreibung

Claude Code Runner in einem isolierten Docker-Container ausführen, um Sicherheitsrisiken durch unkontrollierte Shell-Befehle, Dateizugriffe und Netzwerkaktivität zu eliminieren.

Hintergrund

Claude Code hat aktuell Edit,Write,Bash,Git Zugriff auf echte Repository-Klone. Ein Prompt-Injection-Angriff über eine manipulierte Odoo-Ticket-Beschreibung könnte beliebige Shell-Befehle auslösen, Secrets vom Dateisystem lesen oder Dateien außerhalb des Repos modifizieren. Laut OWASP AI Agent Security (2026) ist "Excessive Tool Permissions" eines der Top-Risiken für AI-Agenten.

Akzeptanzkriterien

  • Claude Code läuft in einem Docker-Container mit Resource-Limits (CPU, RAM, Disk)
  • Container hat keinen Netzwerkzugang außer zum GitLab-Server (für git push)
  • Container hat keinen Zugriff auf .env, Credentials oder andere Repo-Verzeichnisse
  • Nur das Arbeits-Repository wird read-write gemountet
  • Container wird nach jedem Run automatisch aufgeräumt
  • Timeout-Handling funktioniert auch im Container (Kill bei Überschreitung)
  • Pipeline-Log (stdout/stderr) wird korrekt aus dem Container extrahiert

Technische Hinweise

  • Erweitern: backend/services/claude_runner.py — subprocess durch Docker-Run ersetzen
  • Neues Dockerfile: docker/claude-runner/Dockerfile mit Claude Code CLI vorinstalliert
  • Erweitern: backend/config.pySANDBOX_ENABLED, SANDBOX_NETWORK_MODE, SANDBOX_CPU_LIMIT, SANDBOX_MEMORY_LIMIT
  • Docker SDK for Python (docker Package) oder subprocess mit docker run
  • Migration nötig: nein

Aufwand: M

## Beschreibung Claude Code Runner in einem isolierten Docker-Container ausführen, um Sicherheitsrisiken durch unkontrollierte Shell-Befehle, Dateizugriffe und Netzwerkaktivität zu eliminieren. ## Hintergrund Claude Code hat aktuell `Edit,Write,Bash,Git` Zugriff auf echte Repository-Klone. Ein Prompt-Injection-Angriff über eine manipulierte Odoo-Ticket-Beschreibung könnte beliebige Shell-Befehle auslösen, Secrets vom Dateisystem lesen oder Dateien außerhalb des Repos modifizieren. Laut OWASP AI Agent Security (2026) ist "Excessive Tool Permissions" eines der Top-Risiken für AI-Agenten. ## Akzeptanzkriterien - [ ] Claude Code läuft in einem Docker-Container mit Resource-Limits (CPU, RAM, Disk) - [ ] Container hat keinen Netzwerkzugang außer zum GitLab-Server (für git push) - [ ] Container hat keinen Zugriff auf `.env`, Credentials oder andere Repo-Verzeichnisse - [ ] Nur das Arbeits-Repository wird read-write gemountet - [ ] Container wird nach jedem Run automatisch aufgeräumt - [ ] Timeout-Handling funktioniert auch im Container (Kill bei Überschreitung) - [ ] Pipeline-Log (stdout/stderr) wird korrekt aus dem Container extrahiert ## Technische Hinweise - Erweitern: `backend/services/claude_runner.py` — subprocess durch Docker-Run ersetzen - Neues Dockerfile: `docker/claude-runner/Dockerfile` mit Claude Code CLI vorinstalliert - Erweitern: `backend/config.py` — `SANDBOX_ENABLED`, `SANDBOX_NETWORK_MODE`, `SANDBOX_CPU_LIMIT`, `SANDBOX_MEMORY_LIMIT` - Docker SDK for Python (`docker` Package) oder `subprocess` mit `docker run` - Migration nötig: nein ## Aufwand: M
Sign in to join this conversation.
No description provided.