Claude Code Auto-Classifier: der Sicherheits-Layer zwischen Modell und Tools

Martin

Eine Funktion, über die in den offiziellen Docs nur knapp gesprochen wird, die im Alltag aber ständig spürbar ist: der Auto-Classifier in Claude Code. Er ist die unsichtbare Instanz, die zwischen dem Modell und der tatsächlichen Tool-Ausführung sitzt und in Echtzeit bewertet, ob ein vorgeschlagener Tool-Call ausgeführt werden darf — oder ob er besser nochmal nachgefragt werden sollte.

Wer schon einmal beim scheinbar harmlosen Bash-Aufruf eine zusätzliche Bestätigungs-Aufforderung gesehen hat, obwohl die Allowlist eigentlich passt, hat ihn in Aktion erlebt.

Was ist der Auto-Classifier?

Technisch ist der Auto-Classifier ein kleines, spezialisiertes LLM, das parallel zur Haupt-Session läuft. Sein Job: Jeder nicht-pauschal-erlaubte Tool-Call wird ihm vorgelegt, und er liefert eine schnelle Risiko-Einschätzung zurück. Dauert in der Regel Millisekunden, fällt im normalen Flow nicht auf — bis er eingreift.

Er steht zwischen Modell und Permission-Engine:

  1. Das Hauptmodell formuliert einen Tool-Call (z. B. Bash mit einem bestimmten Kommando).
  2. Die Permission-Engine prüft die Allowlist und den aktiven Permission-Mode.
  3. Wenn keine pauschale Erlaubnis greift, kommt der Auto-Classifier ins Spiel: Er bewertet den konkreten Inhalt des Calls.
  4. Je nach Bewertung wird der Call durchgereicht, blockiert oder mit Rückfrage versehen.

Wie entscheidet er?

Die Bewertung basiert nicht auf festen Pattern-Regeln, sondern auf semantischem Verständnis. Der Auto-Classifier schaut sich an, was der Call inhaltlich tut, in welchem Kontext er steht und ob etwas an der Kombination verdächtig wirkt.

Beispiele für Situationen, die er typischerweise hochstuft:

  • State-Machine-Verletzung in einem MCP-Tool: Ein Tabellen-Row, der von failed direkt auf approved gesetzt werden soll, ohne den vorgeschriebenen Zwischenschritt — das sieht falsch aus, auch wenn der reine Funktionsname erlaubt wäre.
  • Schreibender Zugriff auf eine produktive Datenbank ohne klare Autorisierung im aktuellen Kontext.
  • Ungewöhnliche Bash-Kommandos, die Daten irreversibel verändern (rm -rf, git reset --hard, DROP TABLE).
  • Kombinationen aus Lese- und Schreiboperationen, die zusammen ein Datenleck ermöglichen würden, einzeln aber harmlos wirken.

Der Classifier ist dabei bewusst konservativ kalibriert: Lieber einmal zu oft nachfragen als eine destruktive Aktion durchwinken.

Die Verteidigungs-Hierarchie

Der Auto-Classifier ist nicht die einzige Sicherheitsschicht. In einer gut aufgesetzten Claude-Code-Umgebung greifen drei Linien ineinander:

  1. Auto-Classifier — semantische Live-Bewertung, fängt das Offensichtliche und das Verdächtige.
  2. MCP-Tool-Logik — die Werkzeuge selbst validieren ihre Eingaben. Ein gut gebauter MCP-Server liefert z. B. E_INVALID_STATE_TRANSITION, wenn ein Status-Wechsel nicht erlaubt ist, unabhängig davon, ob der Classifier den Call durchgelassen hätte.
  3. DB-Constraints — die unterste Linie. Foreign Keys, Check-Constraints, NOT-NULL-Spalten verhindern, dass selbst durchgewunkene Calls inkonsistente Daten produzieren.

Wann er zu vorsichtig ist

Die Kehrseite der konservativen Kalibrierung: Der Classifier hält manchmal Calls auf, die völlig in Ordnung wären. Klassische Fälle:

  • Ein wiederholtes git status in einem komplexen Workflow, das aus Kontext-Gründen anders aussieht als sonst.
  • Eine Bash-Pipe mit ungewöhnlichen Flags, die der Anwender bewusst gewählt hat.
  • Ein MCP-Tool-Call, der eine seltene aber legitime State-Transition macht.

In diesen Fällen kommt eine Rückfrage. Das ist nicht schön, aber es ist ein guter Trade-off — solange der Anwender die Rückfrage als Information versteht, nicht als Bug.

Wie man ihn steuert

Der Auto-Classifier wird nicht direkt konfiguriert, aber sein Wirkungskreis lässt sich indirekt steuern, indem die anderen Permission-Mechanismen geschickt eingesetzt werden:

  • /permissions Allowlists. Tool-Calls, die in der Allowlist stehen, laufen ohne Classifier-Prüfung durch. Wer häufige, harmlose Operationen einträgt (z. B. Bash(git status:*), Bash(pnpm test:*)), reduziert die Rückfragen drastisch.
  • Permission-Modes. Claude Code kennt mehrere Modi:
    • Plan-Mode — keine Schreiboperationen ohne Freigabe; der Classifier ist besonders aktiv.
    • Default-Mode — die normale Arbeitsweise, mit Allowlist und Classifier in Kombination.
    • Accept-Edits-Mode — Schreibzugriffe auf Dateien sind pauschal erlaubt, Bash bleibt geprüft.
    • Bypass-Mode — alle Prüfungen aus. Nur in isolierten Umgebungen und mit voller Bewusstheit einsetzen.
  • MCP-Tool-Naming. Wer eigene Tools sauber benennt und mit klaren Permissions versieht, hilft dem Classifier, sie korrekt einzuordnen.

Wann der Classifier eingreift — konkrete Beispiele

Drei typische Szenarien aus der Praxis:

  • Beispiel 1 — Approve-Tabellen-Row. Ein MCP-Tool approve-table-row wird mit einer ID aufgerufen, deren aktueller Status failed ist. Der erlaubte Zustandsübergang wäre failed → reopened → in_review → approved. Der Classifier erkennt das Überspringen und fragt nach.
  • Beispiel 2 — Migration auf Produktivsystem. Ein Bash-Call führt eine Datenbank-Migration aus. Der Classifier sieht den Zielhost und stuft das Ganze als hochriskant ein — selbst wenn Bash(pnpm db:migrate:*) in der Allowlist steht, schiebt er eine Bestätigung dazwischen.
  • Beispiel 3 — Web-Fetch mit verdächtigem Pattern. Ein Web-Request zieht eine Ressource, in deren Response-Body sich Anweisungen zur weiteren Tool-Nutzung verbergen könnten (Prompt-Injection-Vektor). Der Classifier markiert das und drosselt die nachfolgenden Aktionen.

In allen drei Fällen ist die Verlangsamung ein Feature, kein Bug.

Fazit

Der Auto-Classifier ist eine der unspektakulärsten und gleichzeitig wichtigsten Komponenten von Claude Code. Er macht aus einem rein regelbasierten Permission-System ein semantisch denkendes — und kombiniert mit der Tool-eigenen Logik und den DB-Constraints entsteht eine echte Verteidigung in mehreren Ebenen.

Wer mit Claude Code ernsthaft produktiv arbeitet, sollte ihn als das verstehen, was er ist: ein vorsichtiger, aber ziemlich kluger Co-Pilot des eigenen Sicherheitsverständnisses. Lieber einmal mehr nachfragen — und dafür nachts ruhig schlafen.