Secrets vor dem Zugriff von Claude Code schützen

Laptop mit Code

Claude Code hat Zugriff auf deine Projektdateien – das ist eines seiner mächtigsten Features, birgt aber auch Risiken. Das bedeutet nämlich auch, dass die KI standardmäßig Zugriff auf deine .env-Dateien hat. Dort stehen oft wichtige Secrets, API-Keys oder Datenbank-Credentials, die nicht ohne Weiteres verarbeitet oder nach außen gereicht werden sollten. In diesem Beitrag zeige ich dir, wie du mithilfe von Hooks einen digitalen Riegel vorschiebst.

Claude Hooks

Claude Code Hooks sind im Wesentlichen Interzeptoren oder Skripte, die an bestimmten Punkten im Workflow von Claude Code ausgeführt werden. Sie erlauben es dir, die Interaktion zwischen der KI und deinem lokalen System zu überwachen, zu modifizieren oder – im Falle von Sicherheitsbedenken – komplett zu unterbinden.

Es gibt primär zwei Arten von Hooks, die für Entwickler relevant sind:

  • Pre-Tool-Use Hooks: Diese werden gefeuert, bevor Claude ein bestimmtes Werkzeug (wie Read, Write oder Edit) ausführt. Sie eignen sich perfekt für Sicherheitsprüfungen.

  • Post-Tool-Use Hooks: Diese laufen ab, nachdem ein Tool ausgeführt wurde, um beispielsweise Ergebnisse zu validieren oder Folgeprozesse (wie ein automatisches git add) anzustoßen.

Hook um .env zu schützen

Um deine Secrets zu schützen, nutzen wir einen PreToolUse-Hook. Das Prinzip ist einfach: Jedes Mal, wenn Claude versucht, eine Datei zu lesen oder zu bearbeiten, prüft unser Skript, ob es sich dabei um eine sensible Datei handelt.

Das Skript

Hier ist das Python-Beispiel, das als Schutzschild fungiert:

#!/usr/bin/env python3
"""
Claude Code Hook: Protect .env Files

This hook prevents Claude Code from accessing .env files that contain
sensitive credentials and configuration.
"""

import sys
import json
import os

def is_env_file(file_path: str) -> bool:
    if not file_path:
        return False
    filename = os.path.basename(file_path)
    # Prüfe auf .env und .env.* Dateien
    return filename == '.env' or filename.startswith('.env.')

def main():
    try:
        # Lese JSON-Daten von stdin (Claude Code übergibt hier den Kontext)
        input_data = json.load(sys.stdin)

        # Wir greifen nur ein, wenn ein Tool benutzt werden soll
        if input_data.get('hook_event_name') != 'PreToolUse':
            sys.exit(0)

        tool_name = input_data.get('tool_name', '')
        tool_input = input_data.get('tool_input', {})
        file_path = tool_input.get('file_path', '')

        # Prüfe auf Datei-Operationen
        if tool_name in ['Read', 'Write', 'Edit']:
            if is_env_file(file_path):
                error_msg = (
                    f"🚫 Zugriff auf .env Dateien ist blockiert!\n"
                    f"Datei: {file_path}\n"
                    f"Grund: Sicherheitsrichtlinie verhindert Zugriff auf Secrets.\n"
                )
                sys.stderr.write(error_msg)
                sys.exit(2)  # Exit Code 2 blockiert die Operation aktiv

        sys.exit(0)
    except Exception as e:
        sys.stderr.write(f"Hook Fehler: {str(e)}\n")
        sys.exit(0) # Im Zweifel lassen wir Claude weiterarbeiten

if __name__ == '__main__':
    main()

Einrichtung

  1. Speichere das Skript in deinem Projekt (z.B. unter .claude/hooks/prevent_env_access.py).

  2. Mache es ausführbar: chmod +x .claude/hooks/prevent_env_access.py.

  3. Registriere den Hook in deiner Claude Code Konfiguration (meist in .claude/settings.local.json), damit er bei jedem Tool-Aufruf getriggert wird.

  4. Starte Claude neu

Sobald der Hook aktiv ist, wird jede Anfrage von Claude, die .env im Dateipfad enthält, mit einem Exit Code 2 abgebrochen, was die Ausführung des Tools hart stoppt.

Weitere Anwendungen von Hooks

Die Möglichkeiten von Hooks gehen weit über das Blockieren von Dateien hinaus. Hier sind einige Szenarien, die deinen Workflow sicherer und effizienter machen:

  • Datenbank-Schutz: Du kannst Hooks schreiben, die prüfen, ob Claude versucht, SQL-Dateien auszuführen oder auf Datenbank-Tools zuzugreifen, die Schreibrechte auf Produktionsdatenbanken haben.

  • Automatisches Security Review: Ein Post-Tool-Use Hook könnte nach jeder Code-Änderung (Edit) automatisch einen Linter oder ein Security-Scanning-Tool (wie Bandit oder Snyk) über die Datei laufen lassen.

  • Token-Budget-Überwachung: Überwache die Kosten deiner Session, indem ein Hook die Anzahl der verbrauchten Tokens nach jedem Befehl mitloggt und dich warnt, wenn ein bestimmtes Budget überschritten wird.

  • Compliance-Checks: Stelle sicher, dass Claude niemals Code ohne die erforderlichen Copyright-Header erstellt, indem du dies bei jedem Write-Befehl validierst.

Hooks machen aus Claude Code nicht nur einen fähigen Assistenten, sondern einen, der sich strikt an deine lokalen Sicherheitsregeln hält.

Weiter
Weiter

Google Antigravity