claude-safe: Ein Security Wrapper für Claude Code

    Sebastian Kurfürst01.06.2026

    Auch wir haben in den letzten Monaten intensiv mit AI assisted coding Werkzeugen auf Basis von Large Language Models (LLM) wie Anthropic Claude Code oder Mistral Vibe Erfahrungen gesammelt und angefangen, diese in den Arbeitsalltag zu integrieren.

    In diesem Post stellen wir die sandstorm-interne Sicherheitslösung claude-safe für Mac OS vor, welche das Risiko von sicherheitskritischen Datenabflüssen bei Prompt Injections drastisch reduziert. Die Lösung ist natürlich Open Source.

    # Installation brew update && brew install sandstorm/tap/claude-safe claude-code eugene1g/safehouse/agent-safehouse echo 'source "/opt/homebrew/opt/claude-safe/share/aliases.zsh"' >> ~/.zshrc source "/opt/homebrew/opt/claude-safe/share/aliases.zsh" # now use claude-safe instead of claude # allow access only in current directory claude-safe # usage overview claude-safe -h # support for Mistral Vibe vibe-safe

    Sicherheitsproblem Prompt Injection

    Die "normale" Nutzung von KI-Coding-Assistenten hat aus unserer Sicht ein recht wichtiges Sicherheitsproblem - die Möglichkeit der Prompt Injection. Wenn wir dem Assistenten eine Aufgabe geben, analysiert dieser dann möglichst relevanten Quellcode und versucht die Aufgabe zu lösen. Der Angriff besteht nun darin, in Texten, die der Assistent liest, gewissermaßen "unsichtbare" Anweisungen einzubetten, die der Agent dann ggf. ausführt. Auf diese Weise kann ein Angreifer bspw. den Agenten dazu "anstiften", Dateien außerhalb des Projektes auszulesen und über bestimmte CLI-Befehle an andere Server zu schicken.

    Auf Entwickelnden-Computern gibt es eine Vielzahl von extrem lohnenden Angriffs-Zielen:

    • SSH Private Keys
    • API Keys für Cloud-Zugriffe
    • Browser Cookie-Daten
    • (die Liste ließe sich noch endlos fortsetzen)

    Eingebaute Sicherheitsmechanismen in Claude Code

    Das Problem der Prompt Injection ist den Herstellern dieser Werkzeuge sehr wohl bekannt, und sie versuchen das Problem mit einer Vielzahl von Sicherheitsmechanismen zu lösen. Dabei versuchen die Anbieter, zwischen Nutzbarkeit und Sicherheit zu balancieren. Es gibt beispielsweise in Claude Code den Sandbox Mode, welcher mit /sandbox aktiviert werden kann.

    Leider hat der Sandbox Mode aus unserer Sicht einige Nachteile:

    • das Lesen von Dateien außerhalb des aktuellen Verzeichnisses ist i.d.R. erlaubt und wird nicht standardmäßig verboten
    • wenn der Sandbox Mode fehlschlägt, bekommt der User die Aufforderung der Bestätigung für den Befehl außerhalb der Sandbox - insbesondere bei weniger Unix-affinen Usern und sehr langen Bash/Python-Befehlen gibt es die große Gefahr, sicherheitskritische Fehler zu übersehen.

    Agent-Safehouse: Sicherheits-Policies für AI

    Auf der Suche nach einer extra Sicherheitsschicht für die obrigen Probleme sind wir auf das Open Source Tool Agent Safehouse gestoßen. Dieses basiert auf dem in Mac OS eingebauten (und wenig bekannten) Tool sandbox-exec, mit dem man Prozess-Hierarchien "einsperren" kann bzgl. der aufrufbaren System Calls. Agent Safehouse liefert nun einen ganzen Schwung an Policies mit, die im Wesentlichen "secure by default" sind.

    Agent Safehouse löst 90% unseres Problems!

    claude-safe=Opinionated Agent-Safehouse

    Wir waren mit den meisten Voreinstellungen von Agent Safehouse einverstanden, wollten aber zusätzlich verbieten, .git Ordner und .env-Dateien auszulesen. Dies ist standardmäßig in Agent Safehouse erlaubt, wir wollten aber daraus "Deny by Default" machen.

    Zusätzlich wollten wir die UX vereinfachen und sicherstellen, dass wir im Team nicht ausversehen auf die ungeschützte Claude Code Version zugreifen.

    Daher haben wir unsere Konventionen in das Homebrew-Paket sandstorm/tap/claude-safe gesteckt. Dies könnt ihr wie folgt installieren:

    # Installation brew update && brew install sandstorm/tap/claude-safe claude-code eugene1g/safehouse/agent-safehouse echo 'source "/opt/homebrew/opt/claude-safe/share/aliases.zsh"' >> ~/.zshrc

    Nun könnt ihr kein claude mehr aufrufen, sondern claude-unsafe (als "original"-Claude-Variante), und claude-safe als abgesicherte Variante - analog für die anderen KI-Agenten.

    Standardmäßig kann nun Claude-Safe nur noch im aktuellen Verzeichnis lesen; und ihr könnt einzeln steuern, 

     

    --add-dirs -- Read/write paths --add-dirs-ro -- Read-only paths --allow-localhost -- Whitelist localhost ports --append-profile -- Additional sandbox profile --enable -- Enable features --enable -- Enable features (space form) --env -- Pass environment --env-pass -- Pass env vars --explain -- Print effective grants summary --help -- Show help --mistral -- Use Vibe/Mistral instead of Claude --stdout -- Print policy text to stdout --trust-workdir-config -- Load .safehouse from workdir --workdir -- Working directory # "Enable" options 1password -- 1Password integration agent-browser -- Agent browser (implies chromium) all-agents -- All agent profiles all-apps -- All app profiles browser-native-messaging -- Browser native messaging chromium-full -- Full Chromium access (implies headless) chromium-headless -- Headless Chromium cleanshot -- CleanShot access clipboard -- Clipboard access cloud-credentials -- Cloud credential files cloud-storage -- Cloud storage access codex -- Codex config (~/.codex) docker -- Docker commands and socket electron -- Electron apps (implies macos-gui) env -- Re-allow .env file access flutter -- Flutter/Dart toolchain + .git access git -- Re-allow .git folder access keychain -- Keychain access kubectl -- Kubernetes CLI lldb -- LLDB debugger (implies process-control) macos-gui -- macOS GUI frameworks microphone -- Microphone access mistral -- Vibe config (~/.vibe) playwright-chrome -- Playwright Chrome (implies chromium) process-control -- Process enumeration/signalling shell-init -- Shell startup file reads spotlight -- Spotlight search ssh -- SSH agent and keys vault -- Re-allow vault file access vscode -- VS Code integration wide-read -- Read-only visibility across / xcode -- Xcode developer tools