Ultra Thermo Nuclear VibeCoding Security Review – Agenten-Fertigkeit
Grundprinzip
Vertraue niemals dem Client. Jeder Preis, jede Benutzer-ID, Rolle, Abonnementstatus, Feature-Flag und Rate-Limit-Zähler muss serverseitig validiert oder erzwungen werden. Wenn es nur im Browser, im mobilen Bundle oder im Anfragetext existiert, kontrolliert ein Angreifer es.
Zusätzliche Prinzipien – siehe core/principles.md:
- Verteidigung in der Tiefe: Verlasse dich niemals auf eine einzelne Sicherheitskontrolle
- Sicher scheitern: Wenn etwas kaputt geht, verweigere den Zugriff (Fail Closed)
- Minimale Rechte: Gewähre die minimal notwendigen Berechtigungen
- Eingabevalidierung: Vertraue niemals Benutzereingaben – validiere alles serverseitig
- Ausgabekodierung: Kodiere Daten für den Kontext, in dem sie gerendert werden
Betriebsmodi
Modus 1: AUDIT (nachträgliche Analyse)
Ausgelöst durch: „eine Sicherheitsüberprüfung durchführen“, „dies auf Schwachstellen prüfen“, „Vibe-Sicherheitsaudit“, „ist das sicher?“ oder jede explizite Aufforderung zur Überprüfung vorhandenen Codes.
Prozess:
- Technologie-Stack erkennen (siehe Schritt 1 unten)
- 50-Punkte-Checkliste durchführen – siehe
core/audit-process.md - Bewertung berechnen und Bericht erstellen – siehe
core/output-format.md - Relevante Schwachstellenverweise und Stack-Module nach Bedarf laden
Modus 2: PRÄVENTIV (während der Code-Generierung)
Ausgelöst durch: Schreiben oder Überprüfen von Code, der Authentifizierung, Zahlungen, Datenbankzugriff, API-Schlüssel, Geheimnisse, Benutzerdaten oder Datei-Uploads betrifft – auch wenn der Benutzer keine Sicherheit erwähnt.
Prozess:
- Identifiziere, welcher Sicherheitsbereich auf den zu schreibenden Code zutrifft
- Konsultiere die relevante Referenzdatei VOR der Code-Generierung
- Wende von Anfang an sichere Muster an
- Füge Inline-Kommentare hinzu, die Sicherheitsentscheidungen erklären, wenn sie nicht offensichtlich sind
- Weise den Benutzer auf etwaige Sicherheitsabwägungen hin
Schritt 1: Technologie-Stack erkennen
Identifiziere die Technologien des Projekts durch die Prüfung dieser Dateien:
| Erkennen | Suche nach |
|---|---|
| Framework | next.config.*, nuxt.config.*, astro.config.*, vite.config.*, angular.json, svelte.config.* |
| Paketmanager | package.json, requirements.txt, go.mod, Gemfile, Cargo.toml, pubspec.yaml |
| Datenbank | prisma/, drizzle.config.*, supabase/, firebase.json, convex/ |
| Authentifizierung | Importe: @clerk, next-auth, @supabase/auth, @auth0, lucia, passport, firebase/auth |
| Speicher | Importe: @aws-sdk/client-s3, @supabase/storage, @google-cloud/storage |
| KI-APIs | Importe: openai, @anthropic-ai/sdk, @google/generative-ai, langchain, @ai-sdk |
| Zahlungen | Importe: stripe, @paddle/paddle-node, @lemonsqueezy |
Importe: resend, @sendgrid/mail, nodemailer | |
| GraphQL | schema.graphql, Importe: @apollo/server, graphql-yoga, type-graphql |
| Mobil | app.json (Expo), react-native.config.js, capacitor.config.* |
| Deployment | vercel.json, netlify.toml, fly.toml, Dockerfile, docker-compose.*, .github/workflows/ |
| Edge Runtime | wrangler.toml, Edge-Runtime-Direktiven im Quellcode |
Überspringe Prüfungen, die nicht auf den erkannten Stack zutreffen.
Schritt 2: Audit durchführen
Lade die relevanten Checklisten-Dateien und führe aus:
Audit-Fortschritt:
- [ ] Schritt 1: Technologie-Stack erkennen
- [ ] Schritt 2a: Kritische Prüfungen durchführen (1-15) – siehe checklists/critical-15.md
- [ ] Schritt 2b: Standard-Prüfungen durchführen (16-40) – siehe checklists/standard-25.md
- [ ] Schritt 2c: Produktionsprüfungen durchführen (41-50) – siehe checklists/production-10.md
- [ ] Schritt 3: Bewertung berechnen und Bericht erstellen – siehe core/output-format.md
Führe zuerst die kritischen Prüfungen durch – lese checklists/critical-15.md und führe alle Prüfungen aus, bevor du fortfährst.
Für jede Prüfung konsultiere die relevanten Referenzdateien:
- Schwachstellendetails →
vulnerabilities/*.md - Stackspezifische Muster →
stack/*.md - Produktionsbereitschaft →
production/*.md
Schweregrad-Skala
| Punkte | Stufe | Erforderliche Maßnahme |
|---|---|---|
| 10/10 | Kritisch | Vor dem Deployment beheben |
| 8-9/10 | Hoch | Innerhalb von 24 Stunden beheben |
| 6-7/10 | Mittel | Innerhalb von 1 Woche beheben |
| 4-5/10 | Niedrig | Beheben, wenn es passt |
| 1-3/10 | Informativ | In Betracht ziehen |
Projektbewertung = 100 minus Summe der Schweregradpunkte aller gefundenen Probleme (mindestens 0).
| Punkte | Bewertung |
|---|---|
| 90-100 | ✅ Hervorragend |
| 70-89 | ⚠️ Gut – kleinere Probleme |
| 50-69 | 🟡 Ausreichend – erfordert Aufmerksamkeit |
| 30-49 | 🟠 Schlecht – erhebliches Risiko |
| 0-29 | 🔴 Kritisch – nicht ausrollen |
Schritt 3: Bericht ausgeben
Verwende das in core/output-format.md definierte Format. Wichtige Anforderungen:
- Verweise auf exakte Dateien und Zeilennummern
- Zeige, welches Muster für jeden Befund zutraf
- Füge Vorher/Nachher-Code-Diffs für jedes Problem bei
- Füge einen Bereich „Schnelle Erfolge“ ein (in < 10 Minuten behebbar)
- Beende mit einer priorisierten Zusammenfassung
Referenzindex
Kern
core/principles.md– Sicherheitsprinzipien und Verteidigungsstrategien in der Tiefecore/audit-process.md– Routing der 50-Punkte-Checkliste und Ausführungsreihenfolgecore/output-format.md– Berichtsvorlage mit Bewertung
Wissensbasis für Schwachstellen
vulnerabilities/injection.md– SQL-Injection, XSS, Command-Injection, LDAP-Injectionvulnerabilities/access-control.md– IDOR, Privilegieneskalation, Massenzuweisungvulnerabilities/authentication.md– JWT, OAuth 2.0, PKCE, Sitzungsverwaltung, Passwortsicherheitvulnerabilities/csrf-ssrf.md– CSRF, SSRF, offene Weiterleitung (mit Tabellen zu Umgehungstechniken)vulnerabilities/file-upload.md– Magic Bytes, Polyglot-Dateien, ZIP Slip, SVG XSSvulnerabilities/cryptography.md– Verschlüsselung, Hashing, Schlüsselverwaltung, Nonce-Wiederverwendungvulnerabilities/race-conditions.md– TOCTOU, Double-Spend, Mutex-Muster
Stackspezifische Module
stack/supabase.md– RLS-Richtlinien, Authentifizierung, Speicher, Edge Functionsstack/firebase.md– Sicherheitsregeln, Firestore, Authentifizierungstack/nextjs.md– Server Actions, Middleware, Route Handler, App Routerstack/stripe-payments.md– Webhooks, Preisvalidierung, Abonnementabläufestack/react-native.md– Sicherer Speicher, API-Proxy, Deep Linksstack/ai-llm.md– API-Schlüsselschutz, Prompt-Injection, Nutzungslimits, Ausgabereinigungstack/graphql.md– Introspection, Tiefenbegrenzung, Batching, persistierte Abfragenstack/docker-cicd.md– Containersicherheit, Pipeline-Härtung
Produktionsbereitschaft
production/security-headers.md– CSP, HSTS, X-Frame-Options, Permissions-Policyproduction/deployment.md– Source Maps, Umgebungstrennung, Debug-Endpunkteproduction/compliance.md– DSGVO, CCPA, Kontolöschung, Datenaufbewahrungproduction/observability.md– Protokollsicherheit, PII-Bereinigung, Überwachungproduction/dependency-audit.md– Ghost-Pakete, Typosquatting, Supply-Chain-Angriffe
Ausführbare Checklisten
checklists/critical-15.md– 15 kritische Prüfungen (vor dem Deployment beheben)checklists/standard-25.md– 25 Standard-Prüfungen (innerhalb von 1 Woche beheben)checklists/production-10.md– 10 Prüfungen zur Produktionsbereitschaft (vor Go-Live)
Beim Generieren von Code
Diese Regeln gelten proaktiv. Bevor du Code schreibst, der Authentifizierung, Zahlungen, Datenbankzugriff, API-Schlüssel oder Benutzerdaten betrifft, konsultiere die relevante Referenzdatei, um Schwachstellen von vornherein zu vermeiden. Vorbeugung ist immer besser als Erkennung.
Wenn du dir unsicher bist, wähle die restriktivere/sicherere Option und dokumentiere die Sicherheitsabwägung in Kommentaren.