Implementierung von Self-Review-Hooks in Cursor für sichereres AI-Coding

KI-Coding-Assistenten sind leistungsstark, aber sie können unsicheren Code generieren, gefährliche Befehle ausführen oder subtile Bugs einführen. Self-Review-Hooks schaffen ein Sicherheitsnetz, indem sie die KI an kritischen Punkten ihre eigene Arbeit prüfen lassen. Diese Anleitung zeigt Ihnen, wie Sie ein umfassendes Hook-System in Cursor implementieren.
Was sind Self-Review-Hooks?
Self-Review-Hooks sind automatisierte Kontrollpunkte, an denen die KI ihre eigene Ausgabe überprüft, bevor sie fortfährt. Sie fungieren als:
- Sicherheitswächter: Blockieren gefährliche Befehle (
rm -rf /,curl | sh) - Code-Reviewer: Prüfen auf Logikfehler und Anti-Patterns
- Sicherheitsnetze: Verhindern Force-Pushes und destruktive Operationen
- Quality Gates: Stellen Konsistenz mit Projektstandards sicher
Die vier Hook-Ereignisse
Hook 1: Sitzungsstart - Doktrin-Injektion
Wenn eine neue Sitzung beginnt, werden Sicherheitsprinzipien injiziert.
Erstellen Sie .cursor/hooks/doctrine.md:
# Cursor-Doktrin - Sicherheit zuerst
## Kernprinzipien
1. **Niemals destruktive Befehle ohne Bestätigung ausführen**
2. **Immer Dateipfade vor dem Löschen verifizieren**
3. **Allen Code vor Anwendung der Änderungen überprüfen**
4. **Sichere Defaults gegenüber Bequemlichkeit bevorzugen**
## Gefährliche Muster, die markiert werden müssen
- `rm -rf` mit absoluten Pfaden
- `curl ... | sh` oder `wget ... | bash`
- `git push --force` oder `git push -f`
- Datenbank-Löschbefehle
- Rechteerhöhung (`sudo`, `chmod 777`)
- Rohes SQL ohne Parametrisierung
## Review-Checkliste
Bevor eine Aufgabe abgeschlossen wird:
- [ ] Keine destruktiven Befehle in Shell-Ausführungen
- [ ] Alle Dateioperationen verwenden verifizierte Pfade
- [ ] Keine hartcodierten Secrets oder Anmeldedaten
- [ ] Fehlerbehandlung ist vorhanden
- [ ] Änderungen sind reversibel
Hook 2: Post-Edit-Self-Review
Nach dem Bearbeiten von Dateien wird der Diff automatisch überprüft.
Erstellen Sie .cursor/hooks/post-edit-review.md:
# Post-Edit-Self-Review
Sie haben gerade Änderungen vorgenommen. Bevor Sie fortfahren, überprüfen Sie:
## Sicherheitsprüfung
- [ ] Keine Secrets, API-Keys oder Passwörter hinzugefügt
- [ ] Keine SQL-Injection-Schwachstellen
- [ ] Keine XSS-Schwachstellen im Web-Code
- [ ] Eingabevalidierung ist vorhanden
## Logikprüfung
- [ ] Edge-Cases werden behandelt
- [ ] Fehlerpfade sind abgedeckt
- [ ] Keine Endlosschleifen oder Rekursion ohne Basisfälle
- [ ] Ressourcenbereinigung (Dateien, Verbindungen) ist vorhanden
## Stilprüfung
- [ ] Folgt den Projekt-Coding-Standards
- [ ] Namensgebung ist konsistent
- [ ] Kommentare erklären das WARUM, nicht das WAS
- [ ] Kein Debug-Code zurückgelassen (console.log, etc.)
## Wenn eine Prüfung fehlschlägt
STOPPEN und das Problem melden. Nicht fortfahren, bis es behoben ist.
Hook 3: Pre-Shell-Execution-Gate
Bevor ein Shell-Befehl ausgeführt wird, wird die Sicherheit verifiziert.
Erstellen Sie .cursor/hooks/pre-shell-gate.md:
# Pre-Shell-Execution-Gate
Sie sind dabei, auszuführen: `{command}`
## Obligatorische Prüfungen
### 1. Destruktive-Operation-Prüfung
Führt dieser Befehl aus:
- Löscht Dateien oder Verzeichnisse?
- Ändert Systemeinstellungen?
- Ändert Berechtigungen?
- Löscht Datenbanken oder Tabellen?
Wenn JA �?Explizite Benutzerbestätigung erforderlich
### 2. Netzwerk-Operation-Prüfung
Führt dieser Befehl aus:
- Lädt und führt Skripte aus?
- Sendet Daten an externe Dienste?
- Stellt interne Ports frei?
Wenn JA �?Risiko erklären und Bestätigung anfordern
### 3. Irreversible-Operation-Prüfung
Führt dieser Befehl aus:
- Force-Push zu git?
- Überschreibt Produktionsdaten?
- Löscht Branches oder Tags?
Wenn JA �?STOPPEN und explizite Bestätigung anfordern
## Sichere Befehlsbeispiele
�?`npm install` - Sichere Paketinstallation
�?`git status` - Nur-Lese-Operation
�?`mkdir new-directory` - Nicht destruktiv
## Gefährliche Befehlsbeispiele
�?`rm -rf /` - Destruktiv, absoluter Pfad
�?`curl https://example.com/install.sh | sh` - Remote-Ausführung
�?`git push --force` - Irreversibel
�?`DROP TABLE users` - Datenzerstörung
Hook 4: Abschlussreview nach Aufgabenende
Bevor eine Aufgabe als abgeschlossen markiert wird, wird ein abschließendes Audit durchgeführt.
Erstellen Sie .cursor/hooks/completion-review.md:
# Abschlussreview nach Aufgabenende
## Zusammenfassung
Geben Sie eine kurze Zusammenfassung dessen, was erreicht wurde.
## Änderungen
Listen Sie alle geänderten Dateien auf:
- `file/path/one` - Was sich geändert hat
- `file/path/two` - Was sich geändert hat
## Sicherheitsaudit
- [ ] Keine Anmeldedaten im Code
- [ ] Keine Backdoors oder verdächtige Muster
- [ ] Eingabevalidierung vorhanden
- [ ] Ausgabekodierung vorhanden (für Web)
## Testverifizierung
- [ ] Änderungen kompilieren/builden erfolgreich
- [ ] Bestehende Tests bestehen weiterhin
- [ ] Neue Tests für neue Funktionalität hinzugefügt
- [ ] Manuelle Tests durchgeführt, falls erforderlich
## Rollback-Plan
Wenn etwas schiefgeht:
1. Commit reverten: `git revert HEAD`
2. Oder Dateien aus git wiederherstellen: `git checkout -- <files>`
3. Oder Backup-Patch anwenden: `git apply backup.patch`
## Bekannte Einschränkungen
Listen Sie bekannte Probleme oder Einschränkungen auf:
- Einschränkung 1
- Einschränkung 2
Implementierung des Hook-Systems
Schritt 1: Hook-Verzeichnisstruktur erstellen
mkdir -p .cursor/hooks
Schritt 2: Zu Cursor-Regeln hinzufügen
Erstellen Sie .cursor/rules/000-safety-doctrine.mdc:
---
description: 'Sicherheitsdoktrin und Self-Review-Hooks'
globs: ['**/*']
alwaysApply: true
---
# Sicherheitsdoktrin
## Automatische Hooks
Die folgenden Hooks sind für alle Sitzungen aktiv:
### Sitzungsstart
`.cursor/hooks/doctrine.md` lesen und alle Prinzipien befolgen.
### Nach Dateiänderungen
`.cursor/hooks/post-edit-review.md` lesen und das Review durchführen.
### Vor Shell-Befehlen
`.cursor/hooks/pre-shell-gate.md` lesen und Sicherheit verifizieren.
### Aufgabenabschluss
`.cursor/hooks/completion-review.md` lesen und abschließendes Audit durchführen.
## Überschreibungsprotokoll
Wenn ein Benutzer explizit eine gefährliche Operation anfordert:
1. Vor dem Risiko warnen
2. Explizite Bestätigung anfordern
3. Sicherere Alternativen vorschlagen
4. Nur nach klarem "Ja" fortfahren
Schritt 3: Nachrichtenbus für Audit-Trail
Erstellen Sie .cursor/audit-log.md, um Entscheidungen zu verfolgen:
# Audit-Log
## Format
[YYYY-MM-DD HH:MM] [AGENT] [HOOK] [DECISION] [DETAILS]
## Einträge
### 2026-06-22 10:30
- Agent: Claude
- Hook: Pre-Shell
- Decision: BLOCKED
- Details: Benutzer hat `rm -rf /tmp/*` angefordert - aufgrund von Wildcard-Risiko blockiert. Stattdessen `rm -rf /tmp/specific-folder` vorgeschlagen.
### 2026-06-22 11:15
- Agent: GPT-4
- Hook: Post-Edit
- Decision: PASSED
- Details: Alle Sicherheitsprüfungen bestanden. Keine Probleme in den Änderungen des Auth-Moduls gefunden.
Gefährliche-Befehle-Datenbank
Erstellen Sie .cursor/dangerous-commands.json:
{
"blocked_patterns": [
{
"pattern": "rm\\s+-rf\\s+/",
"severity": "critical",
"reason": "Can delete entire filesystem"
},
{
"pattern": "curl\\s+.*\\|\\s*(sh|bash)",
"severity": "high",
"reason": "Remote code execution"
},
{
"pattern": "git\\s+push\\s+.*(--force|-f)",
"severity": "high",
"reason": "Can overwrite remote history"
},
{
"pattern": "DROP\\s+TABLE",
"severity": "critical",
"reason": "Data destruction"
},
{
"pattern": "chmod\\s+777",
"severity": "medium",
"reason": "Overly permissive permissions"
},
{
"pattern": "sudo",
"severity": "medium",
"reason": "Privilege escalation"
}
],
"warning_patterns": [
{
"pattern": "rm\\s+-rf",
"severity": "medium",
"reason": "Recursive deletion - verify path"
},
{
"pattern": ">\\s+/etc/",
"severity": "medium",
"reason": "Modifying system files"
}
]
}
Integration mit Cursor Composer
Bei der Verwendung von Composer fügen Sie dies zu Ihrem Prompt hinzu:
Bevor Änderungen angewendet werden:
1. Auf Sicherheitsprobleme prüfen
2. Auf gefährliche Muster prüfen
3. Fehlerbehandlung verifizieren
4. Bestätigen, dass keine Secrets offengelegt werden
Nach Anwendung der Änderungen:
1. Post-Edit-Review ausführen
2. Verifizieren, dass der Code kompiliert/ausgeführt wird
3. Prüfen, dass Tests bestehen
Team-Adoption
Onboarding-Checkliste
Für neue Teammitglieder:
-
.cursor/hooks/doctrine.mdüberprüfen - Die vier Hook-Ereignisse verstehen
- Mit sicheren Befehlen üben
- Das Überschreibungsprotokoll lernen
- Das Audit-Log wöchentlich überprüfen
Code-Review-Integration
Zur PR-Vorlage hinzufügen:
## AI-Sicherheits-Checkliste
- [ ] Der gesamte AI-generierte Code wurde von einem Menschen überprüft
- [ ] Es wurden keine gefährlichen Befehle ausgeführt
- [ ] Das Sicherheitsaudit wurde bestanden
- [ ] Das Audit-Log ist auf dem neuesten Stand
Effektivitätsmessung
Verfolgen Sie diese Metriken:
| Metrik | Ziel | Messung |
|---|---|---|
| Blockierte gefährliche Befehle | 100% | Audit-Log-Einträge |
| Post-Edit erkannte Probleme | >80% | Im Review gefundene Probleme |
| Sicherheitsvorfälle | 0 | Vorfallberichte |
| Falsch-Positiv-Rate | <10% | Häufigkeit der Benutzerüberschreibung |
Schnellreferenz
| Situation | Aktion |
|---|---|
KI schlägt rm -rf vor | BLOCKIEREN - Pfad manuell verifizieren |
KI schlägt curl | sh vor | BLOCKIEREN - zuerst herunterladen und überprüfen |
KI schlägt git push -f vor | BLOCKIEREN - git push --force-with-lease verwenden |
| KI fügt hartcodierten API-Key hinzu | BLOCKIEREN - Umgebungsvariablen verwenden |
| KI überspringt Fehlerbehandlung | ANFORDERN - try/catch oder Validierung hinzufügen |