Zum Hauptinhalt springen

Wormbox 0.2.0: Claude Code in der Sandbox

Inhaltsverzeichnis

Im ersten Release deckte wormbox die Node-Toolchain ab. Version 0.2.0 geht über Node hinaus: zu Claude Code (claude), das laufend fremden Code ausführt und Inhalte aus fremden Quellen verarbeitet.

brew tap head1328/wormbox \
  https://codeberg.org/head1328/homebrew-wormbox.git
brew trust --formula head1328/wormbox/wormbox
brew install wormbox

Claude Code in der Sandbox
#

Claude Code läuft mit weitreichendem Zugriff und bietet eine große Angriffsfläche. Es ruft MCP-Server auf, verarbeitet Datei- und Web-Inhalte, führt über sein Bash-Tool beliebige Kommandos aus und installiert Dependencies. Jeder Weg ist ein möglicher Einstieg: ein kompromittierter MCP-Server, eine Prompt-Injection in einer Datei, eine bösartige Dependency.

Das neue claude-Profil hat ein Ziel: Host-Credentials isolieren. Über keinen dieser Wege soll Code an Zugangsdaten außerhalb eines vertrauenswürdigen Sets herankommen.

  • Dateisystem strikt. Lesen und Schreiben nur im Arbeitsverzeichnis, in dem claude startet, dazu ~/.claude und der Temp-Bereich. Alles andere gesperrt.
  • Netzwerk bewusst offen. Claude Code holt beliebige URLs; ein Deny-Default auf Netzwerkebene würde das Tool unbrauchbar machen. Der Schutz greift über Dateisystem und Credentials, nicht über das Netzwerk.

Layer C: Secret-Dateien im Projekt bleiben gesperrt
#

Im lesbaren Projektbaum liegen oft Secrets. Layer C sperrt projektlokale Secret-Dateien, auch wenn der Rest lesbar bleibt:

  • .env und .env.*
  • *.pem, *.key, *.p12, *.pfx
  • SSH-Private-Keys, inklusive der FIDO-Variante (_sk); die zugehörigen .pub-Dateien bleiben lesbar
  • .git-credentials, .netrc
  • KeePass-Datenbanken (*.kdb, *.kdbx)

So arbeitet der Agent im Projekt, ohne dass ein injizierter Tool-Call die .env oder den Deploy-Key mitliest.

KeePass-Abdeckung
#

Die Credential-Pfade decken jetzt die gängigen KeePass-Clients auf macOS ab: KeePassXC, MacPass und KeePassX.

Konfigurierbar: fs und network
#

Zwei neue Blöcke in der config.json:

  • fs. Das Dateisystem gezielt weiten, wenn ein Tool legitim mehr Zugriff braucht.
  • network. Die Netzpolitik pro Tool und pro Projekt setzen: deny, loopback oder all.

Dev-Server laufen wieder
#

Die Run-Profile blockierten lokale Dev-Server. npm run dev und die node/pnpm/yarn/bun-Äquivalente dürfen jetzt einen Loopback-Port binden und Verbindungen annehmen; externer Egress bleibt gesperrt.

Tests und Toolchain
#

  • Neue End-to-End-Suite auf Basis von bats-core. Sie läuft gegen eine echte Installation in einer Wegwerf-macOS-VM und erzeugt einen JUnit-Report.
  • Gebaut mit go1.26.5, um den crypto/tls-Fix für GO-2026-5856 mitzunehmen (Privacy-Leak über Encrypted Client Hello).

Breaking Change: setup erneut ausführen
#

Wer von 0.1.0 kommt, muss wormbox setup erneut ausführen. Das Basisprofil referenziert neue Credential-Parameter, und der Shim bezieht seine Parameter aus wormbox shim-params.

brew update
brew upgrade wormbox
wormbox setup

Lizenz
#

MIT. Beiträge, Issues und Forks willkommen: codeberg.org/head1328/wormbox .


Hat dir das hier geholfen?
Unterstütze gerne via: