Digital sozialisiert, Denker, Macher und Angel Investor.

Claude Code sicherer nutzen dank Bubblewrap

C

Das Werkzeug Claude Code geht berechtigterweise grad durch die Decke. Marcel Salathé hat dessen Mächtigkeit auf seinem Substack sehr treffend beschrieben hat: AI agents: We’re in for a wild ride.

Zwei Aspekte machen das Werkzeug so leistungsfähig:

  • Zugriff zum lokalen Dateisystem
  • Zugriff zu (ausgewählten) Programmen des Betriebssystems und damit auf das gesamte Internet im lokalen Berechtigungskontext

Da beide Aspekte ein deutliches Sicherheitsrisiko darstellen, fragt Claude Code auch immer wieder nach Erlaubnis. Doch genauso wie bei der total unsinnigen Rückfrage von Word, ob das Dokument speichern werden soll, bestätigt man als Users den Zugriff schon bald reflexartig ohne nachzudenken: Approval fatigue. Oder man versteht in letzter Konsequenz nicht, was der Befehl bewrikt: Wegen der Granularität der Meldung oder der Komplexität des Befehls.

Diese Freigabe ist ein Freipass für alles, was auf stuker.com ist: Unkontrollierbar und somit unsicher

Die ganz Mutigen/Leichtsinnigen können Claude Code zudem mit dem Parameter –dangerously-skip-permissions so starten, dass nicht mehr gefragt wird. Sozusagen klettern ohne Seil, ohne Helm und wahrscheinlich auch barfuss.

Sandboxing als Ansatz

Sandbox bedeutet Sandkasten und bezeichnet in der IT einen isolierten Bereich, innerhalb dessen jede Massnahme keine Auswirkung auf die äussere Umgebung hat. Oder eben gewollte Auswirkungen vergleichbar mit einer Firewall, die Zugriffe zulässt oder eben blockiert.

Anthropic bietet Sandboxing selbst an und baut ihren eigenen Mechanismus auf dem Programm Bubblewrap auf, welches auch aber auch unabhängig d.h. unter eigener Kontrolle nutzen lässt.

Quelle: www.anthropic.com/engineering/claude-code-sandboxing

Ziel ist die feingranulare Kontrolle aller Zugriffe von Claude Code auf Ebene Dateisystem, Netzwerk und Betriebssystem mit einem «Zero Trust»-Ansatz: Alles was nicht explizit erlaubt ist, ist verboten.

Das Programm Bubblewrap

Um ein besseres Verständnis des Sandbox-Mechanismus und auch dessen Grenzen zu entwickeln, lohnt es sich, Bubblewrap direkt auszuprobieren.
Das Grundprinzip ist simpel, ich starte Claude Code als Argument von Bubblewrap (bwrap) mit den zugelassenen Zugriffe als Parameter:

bwrap \
--ro-bind /usr /usr \
--bind "$PROJECT_DIR" "$PROJECT_DIR" \
--bind "$HOME/.claude" "$HOME/.claude" \
## hier kommt die restliche Konfiguration
claude --dangerously-skip-permissions

Das unvollständige Beispiel oben erlaubt Lesezurgiff (ro = read only) auf /usr als /usr und Schreibzugriff auf .claude und mein Projektverzeichnis. Wegen den engen Schranken kann man sich nun überlegen –dangerously-skip-permissions doch zu nutzen. Bis das ganze läuft ist es aber ziemliche aufwändig, da ich alle Arten von und alle konkreten Zugriffe explizit erlauben muss.

Geholfen bei der Konfiguration hat mir der Post «A better way to limit Claude Code (and other coding agents!) access to Secrets» von Patrick McCanna.

Abschluss

Für mich ist der Ansatz zu aufwändig in jedem Projekt, doch habe ich es einmal durchgespielt, um die von Claude Code getätigten Zugriffe besser zu verstehen.

Als Alternative kann man den eingebauten Ansatz /sandbox nutzen, der sich einfacher konfigurieren lässt (man sich aber auch Anthropic verlassen muss).

Von Jürg Stuker
Digital sozialisiert, Denker, Macher und Angel Investor.