Sicherheitsprobleme erfassen, während Claude Code schreibt
Installieren Sie das security-guidance-Plugin, damit Claude seine eigenen Code-Änderungen auf Sicherheitslücken überprüft und diese in derselben Sitzung behebt.
Das Security-Guidance-Plugin veranlasst Claude, seine eigenen Code-Änderungen auf häufige Sicherheitslücken zu überprüfen, während es arbeitet, und behebt die gefundenen Probleme in derselben Sitzung. Das Plugin erfasst Probleme wie Injection, unsichere Deserialisierung und unsichere DOM-APIs, bevor der Code einen Pull Request erreicht, und reduziert damit die Sicherheitsüberprüfung, die auf menschliche Reviewer nachgelagert fällt.
Nach der Installation wird das Plugin automatisch ausgeführt. Es gibt nichts zu aufzurufen und keinen separaten Befehl zu merken.
Das Plugin ist der In-Session-Begleiter zu Code Review, das auf Pull Requests ausgeführt wird. Dieses Plugin reduziert, was den PR erreicht. Code Review erfasst, was es tut. Wie das Plugin mit On-Demand-Review und CI-Scanning zusammenarbeitet, finden Sie unter Wie dies mit anderen Sicherheitstools zusammenpasst.
Voraussetzungen
- Claude Code CLI Version 2.1.144 oder später
- Python 3.8 oder später auf Ihrem
PATH. Das Plugin versuchtpython3,pythonundpy -3in dieser Reihenfolge - Ein Git-Repository für das Verzeichnis, in dem Sie arbeiten. Die End-of-Turn- und Commit-Überprüfungen führen einen Diff gegen den Git-Status durch und werden außerhalb eines Repositories stillschweigend übersprungen. Die Per-Edit-Pattern-Überprüfung funktioniert überall
Beim ersten Ausführen erstellt das Plugin eine virtuelle Umgebung unter ~/.claude/security/ und installiert das Claude Agent SDK darin, was pip und Netzwerkzugriff erfordert. Wenn diese Installation fehlschlägt, wird die Commit-Überprüfung auf eine einmalige Überprüfung statt auf die agentengestützte zurückgestuft. Unter Windows wird der Schritt der virtuellen Umgebung übersprungen, sodass die agentengestützte Commit-Überprüfung nur ausgeführt wird, wenn claude-agent-sdk bereits importierbar ist, und wird andernfalls auf die gleiche Weise zurückgestuft.
Plugin installieren
Installieren Sie in einer Claude Code-Sitzung aus dem offiziellen Anthropic-Marketplace:
/plugin install security-guidance@claude-plugins-official
Die Installation fordert Sie auf, einen Bereich auszuwählen. Wählen Sie Benutzerbereich, um das Plugin in Ihre Benutzereinstellungen zu schreiben, sodass es in jeder neuen lokalen Sitzung geladen wird, die Sie auf diesem Computer starten. Wenn Claude Code meldet, dass der Marketplace nicht gefunden wird, führen Sie zuerst /plugin marketplace add anthropics/claude-plugins-official aus und versuchen Sie dann erneut, das Plugin zu installieren.
Aktivieren Sie es dann in der aktuellen Sitzung mit /reload-plugins, das ausstehende Plugin-Änderungen ohne einen Neustart anwendet:
/reload-plugins
In Cloud-Sitzungen und gemeinsamen Repositories aktivieren
Benutzergebundene Plugins werden nicht in Claude Code im Web übernommen, da diese Sitzungen auf Anthropic-Infrastruktur statt auf Ihrem Computer ausgeführt werden. Um das Plugin dort zu aktivieren oder es für alle einzuschalten, die ein Repository klonen, deklarieren Sie es in den eingecheckten Einstellungen des Projekts:
{
"enabledPlugins": {
"security-guidance@claude-plugins-official": true
}
}
Administratoren können das Plugin organisationsweit aktivieren, indem sie enabledPlugins in verwalteten Einstellungen festlegen.
Was das Plugin überprüft
Das Plugin überprüft Claudes Arbeit an drei Punkten, jeweils mit unterschiedlicher Tiefe:
- Bei jeder Dateibearbeitung: ein schneller Pattern-Abgleich für riskante Aufrufe, ohne Modellaufruf
- Am Ende jeder Runde: eine Hintergrund-Modellüberprüfung aller Änderungen dieser Runde
- Bei jedem Commit oder Push, den Claude macht: eine tiefere agentengestützte Überprüfung, die umgebenden Code liest
Sie können jede Ebene erweitern, indem Sie Ihre eigenen Regeln hinzufügen. Integrierte Überprüfungen können nicht einzeln entfernt werden, aber Sie können jede Ebene unabhängig deaktivieren.
Bei jeder Dateibearbeitung
Wenn Claude in eine Datei schreibt, scannt das Plugin den neuen Inhalt auf bekannte riskante Muster. Dies ist ein Pattern-Abgleich ohne Modellaufruf, daher entstehen keine Nutzungskosten.
Beispiel-Pattern-Kategorien:
- Dynamische Code-Ausführung:
eval(,new Function,os.system,child_process.exec - Unsichere Deserialisierung:
pickle - DOM-Injection:
dangerouslySetInnerHTML,.innerHTML =,document.write - Workflow-Dateien: Bearbeitungen unter
.github/workflows/, die Repository-Berechtigungen gewähren können
Die Überprüfung wird nach dem Landen der Bearbeitung ausgeführt und fügt die Warnung an Claudes Kontext für den nächsten Schritt an. Jede Warnung wird einmal pro Pattern pro Datei pro Sitzung ausgelöst, sodass wiederholte Übereinstimmungen in derselben Datei das Gespräch nicht überfluten.
Sie können Ihre eigenen Muster hinzufügen zu dieser Ebene mit einer security-patterns.yaml-Datei.
Am Ende jeder Runde
Eine Runde ist eine Runde von Claudes Antwort: Sie senden eine Nachricht, Claude arbeitet und antwortet, und die Runde endet. Nach jeder Runde berechnet das Plugin einen Git-Diff aller Änderungen, die während der Runde im Arbeitsverzeichnis vorgenommen wurden, einschließlich Änderungen von Claudes Edit-Tools, Bash-Befehlen und Subagenten, und sendet ihn an eine separate Claude-Überprüfung, die sich auf Sicherheit konzentriert. Die Überprüfung wird im Hintergrund ausgeführt, sodass Claudes Antwort nicht verzögert wird. Wenn die Überprüfung Probleme findet, wird Claude mit den Ergebnissen erneut aufgefordert und behebt sie als Folgemaßnahme.
Dies erfasst Probleme, die ein String-Abgleich nicht kann, wie zum Beispiel:
- Autorisierungsumgehung
- Unsichere direkte Objektreferenzen
- Injection
- Server-seitige Request-Forgery
- Schwache Kryptographie
Sie sehen sowohl die Erkenntnis als auch Claudes Lösung direkt in Ihrer Sitzung. Die Überprüfung umfasst bis zu 30 geänderte Dateien pro Runde und wird höchstens dreimal hintereinander ausgeführt, bevor sie an Sie zurückgegeben wird.
Bei jedem Commit oder Push, den Claude macht
Wenn Claude git commit oder git push über sein Bash-Tool ausführt, führt das Plugin eine tiefere agentengestützte Überprüfung der Änderung im Hintergrund aus. Diese Überprüfung liest umgebenden Code, einschließlich Aufrufer, Sanitizer und verwandter Dateien, um zu entscheiden, ob eine Erkenntnis real ist, bevor sie gemeldet wird. Der zusätzliche Kontext hält falsch positive Ergebnisse bei Mustern niedrig, die isoliert gefährlich aussehen, aber in Ihrer Codebasis sicher sind.
Diese Ebene wird nur bei Commits und Pushes ausgelöst, die Claude über sein Bash-Tool macht. Commits, die Sie von Ihrer eigenen Shell aus ausführen, einschließlich des !-Shell-Escape in einer Sitzung, werden nicht überprüft. Commit- und Push-Überprüfungen sind auf 20 pro rollende Stunde begrenzt. Wenn die Commit-Überprüfung Erkenntnisse findet, die denen der End-of-Turn-Überprüfung duplizieren, wird Claude nicht erneut aufgefordert, sodass ein sauberer Commit keine sichtbare Ausgabe aus dieser Ebene erzeugt.
Überprüfungsunabhängigkeit und Limits
Das Plugin fragt nicht die gleiche Claude-Instanz, die den Code geschrieben hat, um sich selbst zu bewerten. Die Per-Edit-Überprüfung ist ein deterministischer String-Abgleich ohne Modellbeteiligung. Die End-of-Turn- und Commit-Überprüfungen werden als separater Claude-Aufruf mit frischem Kontext und sicherheitsorientiertem Prompt ausgeführt: Der Reviewer beginnt mit dem Diff, hat keine Investition in den ursprünglichen Ansatz und wird nur angewiesen, Probleme zu finden.
Keine der Ebenen blockiert Schreibvorgänge oder Commits. Erkenntnisse erreichen Claude als Anweisungen, Claude behebt sie im Gespräch, und das Review-Modell kann Probleme übersehen. Behandeln Sie das Plugin als eine Ebene der Verteidigungstiefe, nicht als vollständige Sicherheitslösung. Siehe Wie dies mit anderen Sicherheitstools zusammenpasst.
Fügen Sie Ihre eigenen Regeln hinzu
Das Plugin hat zwei Erweiterungspunkte: eine Markdown-Guidance-Datei für die modellgestützten Überprüfungen und eine YAML- oder JSON-Patterns-Datei für den Per-Edit-String-Abgleich. Beide sind additiv. Sie können Überprüfungen hinzufügen, aber keine integrierten aus diesen Dateien deaktivieren.
Fügen Sie Guidance für die modellgestützten Überprüfungen hinzu
Erstellen Sie .claude/claude-security-guidance.md in Ihrem Projekt und beschreiben Sie Ihr Bedrohungsmodell und Ihre Überprüfungscheckliste in einfacher Sprache. Die modellgestützten Überprüfungen laden sie als zusätzlichen Kontext neben der integrierten Sicherheitslückencheckliste.
Das folgende Beispiel ist für einen Webdienst mit rollengesteuerten Admin-Routen und einer Kundendaten-Logging-Richtlinie:
# Sicherheitsguidance für dieses Repository
- Protokollieren Sie `customer_id` oder `account_number` nicht auf INFO-Ebene oder höher.
- Alle Routen unter `/admin` müssen `require_role("admin")` aufrufen, bevor ein Datenbanklesevorgang erfolgt.
- Verwenden Sie `crypto.timingSafeEqual` für Token-Vergleich statt `===`.
Diese Regeln sind Guidance für den Reviewer, keine deterministischen Schutzvorrichtungen. Das Plugin zeigt Verstöße als Erkenntnisse für Claude an, um sie zu beheben, blockiert aber keine Schreibvorgänge und garantiert nicht, dass jeder Verstoß erfasst wird. Die Guidance ist nur additiv: Eine Regel, die besagt, dass eine Sicherheitslückenklasse ignoriert werden soll, unterdrückt diese Erkenntnisse nicht. Für harte Durchsetzung kombinieren Sie das Plugin mit einem Hook, der Bearbeitungen blockiert oder einer CI-Überprüfung.
Fügen Sie benutzerdefinierte Per-Edit-Muster hinzu
Erstellen Sie .claude/security-patterns.yaml, um Regex- oder Substring-Regeln zur Per-Edit-Pattern-Überprüfung hinzuzufügen. Diese werden als deterministische String-Abgleiche neben den integrierten Mustern ausgeführt:
patterns:
- rule_name: internal_api_key
substrings: ["sk_live_", "AKIA"]
reminder: "Hardcodierter API-Schlüsselpräfix. Laden Sie Anmeldedaten aus dem Secret Manager."
- rule_name: tenant_unfiltered_query
regex: "\\.objects\\.all\\(\\)"
paths: ["**/src/tenants/**"]
reminder: "Multi-Tenant-Code muss nach org_id filtern."
| Feld | Typ | Beschreibung |
|---|---|---|
rule_name |
string | Identifier, der in der Warnung angezeigt wird |
reminder |
string | Warntext, der an Claudes Kontext angehängt wird, begrenzt auf 1 KB |
regex |
string | Python-Regex, die gegen den bearbeiteten Inhalt abgeglichen wird |
substrings |
list | Literale Substrings; geben Sie dies oder regex an |
paths |
list | Optionale Glob-Muster; die Regel gilt nur für übereinstimmende Dateien. Globs werden gegen den vollständigen Dateipfad abgeglichen, daher müssen Sie projektrelative Muster mit **/ präfixieren |
exclude_paths |
list | Optionale Glob-Muster zum Überspringen; gleiches Matching wie paths |
Das Plugin liest auch .claude/security-patterns.yml und .claude/security-patterns.json mit dem gleichen Schema. JSON funktioniert auf jeder Python-Installation. Die YAML-Formen erfordern, dass PyYAML importierbar ist, was das Plugin nicht für Sie installiert. Das Plugin lädt bis zu 50 benutzerdefinierte Regeln und überspringt Regexes, die anfällig für katastrophales Backtracking aussehen.
Lookup-Speicherorte für Regeldateien
Das Plugin sucht nach claude-security-guidance.md und security-patterns.yaml an den gleichen Speicherorten, unabhängig davon, wie das Plugin aktiviert wurde:
| Bereich | Pfad | Notizen |
|---|---|---|
| Benutzer | ~/.claude/claude-security-guidance.md |
Gilt für jedes Projekt auf Ihrem Computer |
| Projekt | .claude/claude-security-guidance.md |
Mit dem Repository eingecheckt |
| Projekt lokal | .claude/claude-security-guidance.local.md |
Gitignored, für persönliche Overrides |
Das Plugin lädt alle Speicherorte, die vorhanden sind, und verkettet sie mit einer kombinierten Obergrenze von 8 KB für die Guidance-Datei. Administratoren können organisationsweit Regeln verteilen, indem sie die Benutzerbereichsdatei über Geräteverwaltung zu ~/.claude/ pushen. Die gleichen Pfade gelten für security-patterns.yaml.
Nutzungskosten
Die Per-Edit-Pattern-Überprüfung macht keinen Modellaufruf und fügt keine Kosten hinzu. Die End-of-Turn- und Commit-Überprüfungen verbrauchen jeweils zusätzliche Modellnutzung, die wie jede andere Claude-Anfrage zu Ihrer Nutzung zählt. Die Commit-Überprüfung ist agentengestützt und kann mehrere Modellrunden pro Commit dauern, begrenzt auf 20 Überprüfungen pro rollende Stunde. Erwarten Sie ungefähr einen Review-Aufruf pro Runde, die Dateien ändert, und einen tieferen Review pro Commit, beide unterliegen den oben genannten Limits.
Beide modellgestützten Überprüfungen verwenden standardmäßig Claude Opus 4.7. Setzen Sie SECURITY_REVIEW_MODEL, um ein anderes Modell für die End-of-Turn-Überprüfung zu wählen, und SG_AGENTIC_MODEL für die Commit-Überprüfung.
Das Plugin ist auf allen Plänen verfügbar.
Deaktivieren oder deinstallieren
Um einzelne Ebenen zu deaktivieren und den Rest zu behalten, setzen Sie die entsprechende Umgebungsvariable:
| Variable | Effekt |
|---|---|
ENABLE_PATTERN_RULES=0 |
Deaktivieren Sie die Per-Edit-Pattern-Überprüfung |
ENABLE_STOP_REVIEW=0 |
Deaktivieren Sie die End-of-Turn-Diff-Überprüfung |
ENABLE_COMMIT_REVIEW=0 |
Deaktivieren Sie die Commit- und Push-Überprüfung |
ENABLE_CODE_SECURITY_REVIEW=0 |
Deaktivieren Sie alle modellgestützten Überprüfungen auf einmal |
SECURITY_GUIDANCE_DISABLE=1 |
Deaktivieren Sie das Plugin vollständig, ohne es zu deinstallieren |
Um das Plugin in Ihrem Benutzerbereich zu pausieren:
/plugin disable security-guidance@claude-plugins-official
Um es aus Ihrem Benutzerbereich zu entfernen:
/plugin uninstall security-guidance@claude-plugins-official
Wenn das Plugin durch die .claude/settings.json eines Projekts aktiviert wurde, schreibt das Deaktivieren von /plugin einen Override in Ihre .claude/settings.local.json, anstatt die eingecheckte Datei zu bearbeiten, sodass das Plugin für Sie ausgeschaltet bleibt, während Ihre Teamkollegen nicht betroffen sind. Wenn es durch verwaltete Einstellungen aktiviert wurde, kann nur ein Administrator es deaktivieren.
Wie das Plugin mit Claude Code integriert wird
Das Plugin ist vollständig auf Hooks aufgebaut, dem Mechanismus zum Ausführen Ihres eigenen Codes an bestimmten Punkten in Claudes Schleife. Es registriert:
| Hook-Ereignis | Zweck |
|---|---|
SessionStart |
Bootstrap der Python-Umgebung des Plugins |
UserPromptSubmit |
Erfassen Sie die Baseline des Arbeitsverzeichnisses, gegen die die End-of-Turn-Überprüfung diffs |
PostToolUse auf Edit, Write und NotebookEdit |
Per-Edit-Pattern-Abgleich |
Stop |
End-of-Turn-Diff-Überprüfung, im Hintergrund ausgeführt |
PostToolUse auf Bash, gefiltert auf git commit und git push |
Commit- und Push-Überprüfung, im Hintergrund ausgeführt |
Wenn Sie Ihre eigenen Hooks erstellen, ist der Quellcode des Plugins ein funktionierendes Beispiel für das Ausführen eines separaten Modellaufrufs aus einem Hook und das Zurückführen des Ergebnisses in die Sitzung.
Wie dies mit anderen Sicherheitstools zusammenpasst
Das Plugin ist eine Ebene in einem Verteidigungstiefe-Ansatz. Es erfasst Probleme am frühesten, während der Code noch im Editor ist, aber es ist keine Garantie und ersetzt keine späteren Überprüfungen. Ein typischer Stack:
| Phase | Tool | Was es abdeckt |
|---|---|---|
| In Sitzung | Security-Guidance-Plugin | Häufige Sicherheitslücken in Code, den Claude schreibt, behoben in derselben Sitzung |
| On Demand | /security-review |
Einmalige Sicherheitsüberprüfung auf dem aktuellen Branch, ausgeführt, wenn Sie es anfordern |
| Bei Pull Request | Code Review, Team- und Enterprise-Pläne | Multi-Agent-Korrektheit und Sicherheitsüberprüfung mit vollständigem Codebase-Kontext |
| In CI | Ihre vorhandenen statischen Analysen und Abhängigkeitsscanner | Sprachspezifische Regeln, Supply-Chain-Überprüfungen und Richtliniendurchsetzung, die das Plugin nicht versucht |
Jede spätere Phase erfasst, was frühere übersehen. Der Wert des Plugins liegt darin, das Volumen zu reduzieren, das sie erreicht, nicht darin, die Notwendigkeit für sie zu beseitigen.
Troubleshooting
Das Plugin schreibt Laufzeit-Diagnosen in ~/.claude/security/log.txt. Überprüfen Sie dort zuerst, wenn Überprüfungen nicht angezeigt werden.
Häufige Gründe, warum eine Überprüfungsebene ohne Nachricht im Gespräch übersprungen wird:
- Das Verzeichnis ist kein Git-Repository: Die End-of-Turn- und Commit-Überprüfungen erfordern Git-Status und werden außerhalb eines Repositories übersprungen
- Die Sitzung hat keine Anthropic-Authentifizierung: Die modellgestützten Überprüfungen werden übersprungen und nur die Per-Edit-Pattern-Überprüfung wird ausgeführt
- Eine
security-patterns.yaml-Datei ist vorhanden, aber PyYAML ist nicht importierbar: Die Datei wird ignoriert. Verwenden Sie stattdessensecurity-patterns.json
Verwandte Ressourcen
Um tiefer in die Themen einzusteigen, die diese Seite berührt:
- Code Review: Richten Sie die Multi-Agent-Überprüfung zur PR-Zeit ein
- Automatisieren Sie Workflows mit Hooks: Erstellen Sie Ihre eigenen Überprüfungen an den gleichen Lebenszykluspunkten
- Entdecken und installieren Sie Plugins: Durchsuchen Sie andere offizielle Plugins