Webseiten Logo
admnwrk

Cl.Sandbox

Veröffentlicht: Lesedauer: 3 Min.

Claude KI KI Sandbox Docker Claude Code Sandbox

Die Sicherheitserwägungen für einen lokalen Agenten sind immanent. Was heißt das? Im Falle von claude code kann dieser einfach mal eben den Schlüsselbund auslesen, wenn man ihn lässt.

Sandbox

Ein Lösungsansatz ist Sandboxing. Das Prinzip ist es den Agenten einzusperren in einer Umgebung aus der er nur mit Zustimmung ausbrechen kann und somit auch nur dann auf Ressourcen zugreift, wenn das ausdrücklich gewünscht ist. In Setup hatte ich auf einen /reddit verlinkt, der das Problem aufzeigt. Das es sich dabei um eine macOS Schlüsselbund handelt ist als Analogie zu anderen Tools auf anderen Betriebssystemen zu sehen. Oder auch Zugriff auf die Mailbox, oder …

Docker Sandbox

docker bringt eine Sandbox mit. Wie in Docker Sandboxes: Run Claude Code and Other Coding Agents Unsupervised (but Safely) beschrieben werden alle gängigen KI-Agenten vom Prinzip her eingesperrt.

Mit der passenden Version von docker (mind. 4.58) werden die Agenten in microVMs isoliert und laufen mit jeweils einem eigenen docker daemon. Das versetzt den Agenten in die Lage weitere Container zu laden, zu testen, deren Umgebung zu manipulieren ohne dass der Host “kontaminiertoder kompromittiert wird.

claude “dockern”

 cd ~/project-dir
 docker sandbox run claude

Weitere Informationen zur Inbetriebnahme, z.B. die Übergabe von API-KEYs an die Sandbox liefern die Dokumentationen unter:

nono.sh

Was ist nono?

Für macOS gibt es mit nono eine Alternative die systemeigene Mechanismen zum sandboxen verwendet. Unter macOS ist das Seatbelt. Für gängige Linux-Distributionen ist dies Landlock LSM. Interessierte Linux-Benutzer sollten die Webseite https://nono.sh im Auge behalten.

nono.sh

Nach eigenem Motto der Entwickler von decodebytes, nimmt nono dem KI-Agenten bewusst den Wind aus den Segeln. Zu deutsch: nono gibt dem User das Kommando

AI agent security that makes the dangerous bits structurally impossible.

Vorbereitung: brew

Der Fingerabdruck ist dabei aufgrund der Systemnähe kleiner als bei docker. Und docker muss auch nicht installiert sein. Stattdessen braucht man in Schritt 1 brew.

brew gibt es unter brew.sh und auch alle passenden Informationen. Die Einarbeitung (das Lesen) lohnt sich, denn die Befehle aus irgendwelchen Ressourcen sind immer gerne einfach exekutiert. Oft ohne Sinn und Verstand. Was man sich damit ins Haus holt ergibt aber u.U. ein böses Erwachen. Im Falle von brew ist das aber überschaubar. Es handelt sich um den “fehlenden Paket-Manager für macOS”.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installation: nono

Wie man claude code einsperrt haben die Entwickler in unten verlinktem YT zusammengefasst. Wer das YT nicht anschauen möchte, der führt folgenden Befehl im Terminal aus:

brew tap always-further/nono
brew install nono

(siehe nono-brew Seite)

Live-Demo: nono

Die Introduction gibt einen ausgezeichneten Überblick:

Decodebytes gibt zudem unmittelbaren und wirklich erstklassigen Support auf ihrem Discord-Server .

Vorbereitung zur Nachbereitung

Meine ersten Schritte begannen mit der Version 0.13 und wir sind wenige Tage später bei 0.17. Der schnelle Wechsel sicher auch eine Reaktion auf das Feedback in Discord. Und entsprechend schnell sind auch die Änderungen in den Docs, z.B. Quickstart .

Mit der Installation von nono ist es natürlich noch nicht getan. Und wer den Start von claude mit nono gemacht hat, der wird wahrscheinlich gleich auch wieder am Anfang stehen. Der erste abgesicherte Start erfolgt mittels:

nono run --profile claude-code -- claude

What’s next?

Wenn man ohne API-Account unterwegs ist, z.B. Claude PRO, dann gibt es einen Schalter, wie man claude durch nono authentifiziert. Angesichts der schnellen Anpassungen verwaise ich hier auf den OAuth2 -Passus in der Dokumentation.

Los geht’s

Alle weiteren Möglichkeiten zu listen übersteigt diese kurze Anleitung. Daher viel Spaß jetzt.

Hinweis: laut github handelt es sich um eine Alpha!
Handle with care - hot stuff!