Security Audit

Diese Fähigkeit führt ein umfassendes Sicherheitsaudit durch, erkennt Geheimnisse, statische Analyseprobleme und Fehlkonfigurationen der Supabase Row-Level Security. Sie wendet Korrekturen autonom an und wiederholt Scans, bis alle Befunde behoben sind.

Was es macht

Die Fähigkeit nutzt Gitleaks zur Geheimniserkennung und Semgrep für die statische Anwendungssicherheitsprüfung. Sie inspiziert Supabase-Migrationen auf korrekte Row-Level-Security-Konfigurationen, wobei RLS-Aktivierung und Richtlinien für Tabellen geprüft werden. Sie überprüft auch nachverfolgte Umgebungsdateien und sucht nach hartkodierten API-Schlüsseln. Bei Funden behebt die Fähigkeit diese automatisch, indem sie Geheimnisse ersetzt, Konfigurationsdateien entfernt und RLS-Richtlinien generiert. Danach scannt sie das Projekt erneut und iteriert Korrekturen, bis ein sauberer Zustand erreicht ist.

Wann es sich eignet

  • Bei der Integration von neuem Code oder Abhängigkeiten, wenn automatisierte Prüfungen auf gängige Sicherheitslücken nötig sind.

  • Bei der Vorbereitung eines Projekts für die Bereitstellung, wenn eine abschließende Überprüfung auf das Fehlen von Geheimnissen oder Sicherheitsfehlkonfigurationen erforderlich ist.

  • Bei der Wartung eines Supabase-Projekts, um sicherzustellen, dass Row-Level-Security korrekt implementiert ist.

Einrichtung

  1. Die Fähigkeitsdefinitionsdatei nach .claude/skills/security-audit/SKILL.md im Projekt-Repository kopieren.

  2. Die Fähigkeit in Claude Code durch Eingabe von /security-audit in der Chat-Oberfläche aufrufen.

Der Inhalt

Security Audit

Run a comprehensive security audit on this project. Fix all findings autonomously.

Current git status: !git status --short Supabase project: !ls supabase/migrations/ 2>/dev/null | tail -5 || echo "No supabase directory"

Step 1: Run Scanners

Run all applicable scanners:

# Secret scanning
gitleaks detect --source . --no-git --report-format json --report-path /tmp/gitleaks-report.json 2>&1 || true

# SAST
semgrep --config=auto --json --output /tmp/semgrep-report.json . 2>&1 || true

Read both report files and understand all findings.

Step 2: Check Supabase RLS

If supabase/migrations/ exists:

  • Read all migration files
  • For every CREATE TABLE in public schema, verify RLS is enabled and at least one policy exists
  • Flag missing RLS

Step 3: Check Environment Files

  • Verify .env and .env.* (except .env.example) are in .gitignore
  • Run git ls-files | grep '\.env' to find tracked env files (exclude .env.example and vite-env.d.ts)
  • Scan src/ for hardcoded API keys or tokens

Step 4: Fix All Findings

For each finding:

  • Secrets in code: Replace with env var reference, add to .env.example
  • Tracked .env files: git rm --cached
  • SAST issues: Apply semgrep's recommended fix
  • Missing RLS: Generate migration file with RLS + basic policy

Step 5: Re-run Until Clean

Re-run all scanners from Step 1. If findings remain, fix and repeat. Stop after 3 cycles or when clean.

Step 6: Summary

Output what was found, what was fixed, and final scan status.

Kommt direkt aus dem Framework, mit dem diese Seite gebaut wird. Diese Seite zeigt immer die aktuelle Version.

Dieselben Werkzeuge, eine eigene Nische.

Dieselben Werkzeuge stecken in PadelLeague, MovieMind und Hookr. Wie Richi damit Produkte für eine Nische aufbaut, steht unter Partnerschaften.

Partnerschaften ansehen