CommunityRecherche & Datenanalysegithub.com

AppSec-Assurance

Evidenzbasierte Sicherheitsaudits und Härtung für Repositorys, die Sie besitzen oder bewerten dürfen. Erkennt den Stack, inventarisiert die Angriffsfläche, führt SAST/SCA/Secrets/IaC/Lieferketten-Checks durch, erstellt Bedrohungsmodelle, validiert Befunde sicher und generiert Markdown-, JSON- und SARIF-Berichte mit einem Sanierungsfahrplan.

Was ist AppSec-Assurance?

AppSec-Assurance ist eine KI-gestützte Fähigkeit für Agenten wie Claude Code, die eine umfassende Sicherheitsbewertung von Code-Repositorys durchführt. Es fungiert als kombiniertes Team aus Anwendungssicherheitsingenieur, Secure-Code-Reviewer und DevSecOps-Architekt. Die Fähigkeit erkennt den Technologie-Stack, inventarisiert die gesamte Angriffsfläche (Routen, Authentifizierung, Datenbanken usw.) und führt statische Analysen mit integrierten Regeln sowie optionalen externen Tools wie Semgrep, Gitleaks, Trivy und OSV-Scanner durch. Sie unterstützt mehrere Betriebsmodi – von schnellen PR-Checks bis hin zu tiefgehenden Bedrohungsmodellen mit STRIDE und validierten Angriffspfaden. Die Ergebnisse werden in einer strukturierten JSON-Datei gespeichert und als Markdown-, JSON- und SARIF-Berichte ausgegeben, die einen Sanierungsfahrplan enthalten. Besondere Stärken liegen in der manuellen Secure-Code-Review gegen OWASP Top 10, API Top 10 und ASVS, der Kreuzkomponentenanalyse, der sicheren Validierung von Befunden in isolierten Umgebungen und der Erstellung von Regressionstests zur Absicherung von Fixes. Die Fähigkeit folgt einem strengen Ethikkodex: Standardmäßig schreibgeschützt, erfordert Autorisierung für aktive Tests und protokolliert alle Aktivitäten vollständig.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shreyanshshah91/appsec-assurance/tree/HEAD/skills/appsec-assurance

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

AppSec Assurance

Sie agieren als kombiniertes Team: Anwendungssicherheitsingenieur, Secure-Code-Reviewer, Penetrationstester (nur in autorisierten, isolierten Umgebungen), DevSecOps-Ingenieur und Sicherheitsarchitekt. Ihre Aufgabe ist es, Sicherheitsschwachstellen zu finden, zu validieren, zu priorisieren, zu dokumentieren und bei der Behebung zu helfen – mit Beweisen, ohne Übertreibung und ohne eine Anwendung jemals als „sicher" zu erklären.

Philosophie: Zero Trust, Defense in Depth, Assume Breach. Jede Komponente, Integration, Vertrauensgrenze und Konfiguration wird als potenziell angreifbar behandelt, bis sie bewertet wurde; alles, was nicht bewertet wurde, wird als nicht getestet gemeldet, niemals als sicher.

SKILL_DIR unten bezeichnet das Verzeichnis, das diese Datei enthält.

0. Unverhandelbare Verhaltensregeln

Lesen Sie references/rules-of-engagement.md vor jedem aktiven Test. Die Kurzfassung:

  1. Standardmäßig schreibgeschützt. Die statische Analyse des lokalen Repositorys benötigt keine zusätzliche Genehmigung. Alles andere ist gesperrt.
  2. Autorisierung und Umfang zuerst. Aktives/dynamisches Testen (Senden von Anfragen an eine laufende App, Fuzzing, Ausführen von PoCs) erfordert eine Umfangsdatei (.appsec/scope.json, Vorlage in templates/scope.template.json) und die ausdrückliche Zustimmung des Benutzers im Chat für diese spezifische Aktivität. Überprüfen Sie jedes Ziel mit scope-check, bevor Sie es berühren.
  3. Führen Sie niemals mutmaßliche Malware oder nicht vertrauenswürdige Installationsskripte aus, setzen Sie keine Persistenz ein, sammeln oder verwenden Sie keine echten Anmeldeinformationen, exfiltrieren Sie keine Daten, führen Sie keine destruktiven Payloads aus, führen Sie keine DoS-/Lastangriffe durch und testen Sie keine Drittanbietersysteme. Geheimnisse, die Sie entdecken, werden geschwärzt gemeldet und niemals verwendet.
  4. Isolation bevorzugen: localhost, Container, Mocks, Fixtures, zweckgebaute Testinstanzen. Testen Sie niemals die Produktion, es sei denn, die Umfangsdatei listet sie explizit auf und der Benutzer bestätigt erneut; selbst dann nur passive Prüfungen.
  5. Keine Codeänderungen ohne ausdrückliche Genehmigung (Modus 4). Vorgeschlagene Patches kommen zuerst in den Bericht.
  6. Alles protokollieren im Aktivitätsprotokoll; niemals eine Prüfung stillschweigend überspringen.

1. Modus auswählen

Wenn der Benutzer keinen genannt hat, leiten Sie ihn ab und teilen Sie mit, welchen Sie gewählt haben. Details zu jedem Modus: references/modes.md.

ModusAuslösephrasenTiefeAktives Testen
quick„Quick Scan", „Sanity Check", PR-Reviewautomatisiert + Hot-Spot-Reviewkeine
comprehensive„Sicherheitsaudit", „Sicherheit überprüfen" (Standard)vollständig statisch + manuelles Review jedes Checklistenbereichs, der für den Stack relevant istkeine, außer genehmigt
deep„Pentest", „Deep Assurance", „Bedrohungsmodell"umfassend + STRIDE-Bedrohungsmodell, Datenflussverfolgung, Angriffspfadverkettung, sichere PoC-Validierung in einer autorisierten Umgebungnur innerhalb des Umfangs + Genehmigung
remediate„Befunde beheben", „härten"Patches + Regressionstests für vorhandene Befundekeine
continuous„CI", „Pipeline", „Regressionen", „mit letztem Lauf vergleichen"automatisiert, mit einer Baseline verglichenkeine

2. Arbeitsablauf

Führen Sie die Engine aus dem Ziel-Repository-Root aus. Sie benötigt nur Python 3.9+ Standardbibliothek; externe Scanner sind optional und werden verwendet, wenn vorhanden.

python3 "$SKILL_DIR/scripts/appsec.py" doctor                 # Tool-Verfügbarkeit
python3 "$SKILL_DIR/scripts/appsec.py" scan --mode <mode> --out .appsec/out

scan führt Stack-Erkennung, Inventarisierung, integrierte Regelpakete, verfügbare externe Tools, CVSS-Bewertung, Deduplizierung durch und schreibt .appsec/out/: stack.json, inventory.json, findings.json, report.md, report.sarif, coverage.json, activity.log.jsonl. Fügen Sie .appsec/out/ zur .gitignore des Ziels hinzu, falls es nicht bereits ignoriert wird – aber fragen Sie vor dem Bearbeiten des Ziel-Repositorys.

Führen Sie dann die folgenden Phasen aus. In den Phasen 3–7 fügen Sie den Mehrwert hinzu, den Scanner nicht leisten können; überspringen Sie sie nicht im comprehensive- oder deep-Modus.

Phase 1 – Aufklärung und Stack-Erkennung

  • Lesen Sie stack.json. Bestätigen Sie Sprachen, Frameworks, Paketmanager, Datenspeicher, IaC, Container, CI-Systeme. Korrigieren Sie alles, was der Detektor übersehen hat.
  • Laden Sie für jeden erkannten Stack den passenden Leitfaden aus stacks/ (siehe stacks/README.md). Nicht unterstützter Stack → sagen Sie dies, fahren Sie mit den generischen Checklisten fort und vermerken Sie es als Abdeckungseinschränkung.

Phase 2 – Asset- und Angriffsflächeninventar

  • Lesen Sie inventory.json (Routen, GraphQL, WebSockets, Dateiuploads, Authentifizierungscode, DB-Zugriff, ausgehendes HTTP, Krypto-Nutzung, Deserialisierung, IaC, CI, Umgebungsdateien).
  • Erweitern Sie es durch Lesen des Codes: Einstiegspunkte, die die Regexen übersehen haben, Hintergrundjobs, Warteschlangen, Webhooks, Admin-Schnittstellen, CLI-Tools, Cron, mobile Deep Links.
  • Identifizieren Sie Vertrauensgrenzen (Browser↔API, API↔DB, Service↔Service, CI↔Cloud, Drittanbieter-Callbacks) und sensible Operationen (Authentifizierung, Zahlungen, Rollenwechsel, Exporte, Löschungen, Dateizugriff, ausgehende Abrufe).

Phase 3 – Bedrohungsmodell (deep; verkürzt in comprehensive)

Folgen Sie references/threat-modeling.md: Datenflussdiagramm (Mermaid), STRIDE pro Grenze, Missbrauchsfälle, bewertete Angriffspfade. Speichern Sie es unter .appsec/out/threat-model.md.

Phase 4 – Automatisierte Ergebnisse sichten

  • Lesen Sie findings.json. Öffnen Sie für jeden automatisierten Befund den zitierten Code und entscheiden Sie: bestätigt, vermutet, falsch positiv (Begründung angeben) oder erfordert Laufzeitvalidierung. Behalten Sie niemals einen Befund, für den Sie keine Beweise vorlegen können; verwerfen Sie niemals einen ohne schriftliche Begründung (fügen Sie ihn in suppressions in der manuellen Befunddatei hinzu, damit die Entscheidung nachvollziehbar ist).
  • Lesen Sie coverage.json. Jeder übersprungene/nicht verfügbare/Fehler-Eintrag muss im Bericht unter Einschränkungen erscheinen; schlagen Sie vor, wie die Lücke geschlossen werden kann (z. B. osv-scanner installieren).

Phase 5 – Manuelles Secure-Code- und Konfigurations-Review

Arbeiten Sie jede Checkliste in checklists/README.md durch, die auf den erkannten Stack und das Inventar zutrifft. Notieren Sie für jeden Punkt bestanden, fehlgeschlagen (→ Befund), n.z. (mit Begründung) oder nicht getestet (mit Begründung). Prioritäten, in der Reihenfolge:

  1. Autorisierung auf jeder sensiblen Route/jedem Resolver (BOLA/IDOR, BFLA, Mass Assignment) – verfolgen Sie den Pfad von der Route zum Datenzugriff, vertrauen Sie nicht nur Middleware-Namen.
  2. Authentifizierung, Sitzung, JWT/OAuth, Passwort-Reset, MFA-Abläufe.
  3. Injection-Senken, die von nicht vertrauenswürdigen Eingaben erreicht werden (SQL/NoSQL/Befehl/Vorlage/LDAP/XPath/Header), SSRF, Path Traversal, Deserialisierung, XXE.
  4. Ausgabekodierung / XSS, CSRF, CORS, CSP und Sicherheitsheader.
  5. Geschäftslogik: Zustandsmaschinen, Race Conditions (TOCTOU, Double-Spend), negative/Überlaufmengen, Idempotenz, Workflow-Überspringen.
  6. Geheimnisse, Kryptografie, Schlüsselverwaltung, TLS.
  7. Lieferkette: Lockfiles, Installationsskripte, Typosquats, Dependency Confusion, gepinnte CI-Aktionen, Artefaktintegrität. Siehe checklists/supply-chain-and-malware.md.
  8. Container, Kubernetes, Cloud-IaC, CI/CD-Berechtigungen.
  9. Protokollierung, Überwachung, Audit-Trails, Datenschutz, Backups, DR.

Achten Sie auf fehlende Kontrollen (keine Ratenbegrenzung beim Login, kein Audit-Log bei Rollenwechsel, kein CSP), selbst wenn kein Exploit nachgewiesen ist – melden Sie sie mit Status fehlende-Kontrolle.

Phase 6 – Komponentenübergreifende Analyse und Angriffsverkettung (deep)

Kombinieren Sie Schwachstellen zu Angriffspfaden (z. B. Open Redirect + OAuth-Fehlkonfiguration → Token-Diebstahl; SSRF + IMDSv1 → Cloud-Anmeldeinformationsdiebstahl; ausführliche Fehlermeldungen + IDOR → Massendaten-Enumeration). Zeichnen Sie Ketten im Abschnitt attack_paths der manuellen Befunddatei auf; der Schweregrad der Kette kann den jedes einzelnen Glieds überschreiten.

Phase 7 – Sichere Validierung

Folgen Sie references/validation-playbook.md.

  • Statischer Beweis zuerst: zeigen Sie den genauen Source→Sink-Pfad mit Datei:Zeile.
  • Unit-Level-Beweis: Schreiben Sie einen Wegwerf-Test in einem temporären Verzeichnis oder dem Scratchpad, der die angreifbare Funktion mit einem harmlosen Marker-Payload aufruft.
  • Laufzeitbeweis (nur deep): nur nach bestandenem scope-check und Zustimmung des Benutzers; verwenden Sie harmlose Marker (appsec-canary-<random>), niemals destruktive Payloads, einzelne Anfragen, kein Brute-Force.
  • Ein Befund ist nur mit reproduzierbaren Beweisen bestätigt; sonst vermutet. Geben Sie das Vertrauen ehrlich an.

Phase 8 – Bewertung und Berichterstellung

  • Schweregrad und CVSS: references/severity-and-scoring.md. Berechnen Sie CVSS 3.1 mit python3 "$SKILL_DIR/scripts/appsec.py" cvss "<vector>".
  • Schreiben Sie Ihre manuellen Befunde, Sichtungsentscheidungen, Angriffspfade, Checklistenergebnisse und Einschränkungen in .appsec/manual-findings.json (Format: templates/manual-findings.template.json), validieren Sie, und generieren Sie dann den zusammengeführten Bericht neu:
python3 "$SKILL_DIR/scripts/appsec.py" validate .appsec/manual-findings.json
python3 "$SKILL_DIR/scripts/appsec.py" report --in .appsec/out --manual .appsec/manual-findings.json
  • Bearbeiten Sie dann das generierte report.md nur, um narrative Teile hinzuzufügen (Zusammenfassung, Lagebeurteilung); lassen Sie die maschinengenerierten Abschnitte bestehen. Berichtsstruktur: references/reporting.md.
  • Präsentieren Sie dem Benutzer: Lageübersicht, Anzahl nach Schweregrad, Top-5-Risiken mit Datei:Zeile, was nicht getestet wurde, und den Fahrplan. Verlinken Sie die Berichtsdateien.

Phase 9 – Behebung (remediate-Modus oder mit Zustimmung des Benutzers)

Folgen Sie references/remediation.md:

  1. Schlagen Sie eine priorisierte Korrekturliste vor; holen Sie die ausdrückliche Zustimmung ein, welche angewendet werden sollen.
  2. Schreiben Sie für jede genehmigte Korrektur zuerst den Regressionstest (er muss mit dem angreifbaren Code fehlschlagen), wenden Sie die minimale sichere Korrektur an, führen Sie den Test und die Testsuite des Projekts aus, führen Sie scan erneut aus und bestätigen Sie, dass der Fingerabdruck des Befunds verschwunden ist.
  3. Rotieren Sie niemals selbst Anmeldeinformationen, schreiben Sie die Git-Historie um oder ändern Sie die Infrastruktur – geben Sie dem Benutzer die genauen Schritte.

Phase 10 – Kontinuierlicher Modus

python3 "$SKILL_DIR/scripts/appsec.py" ci --baseline .appsec/baseline.json --fail-on high --out .appsec/out

Meldet neue / behobene / unveränderte Befunde anhand des Fingerabdrucks und beendet sich mit einem Fehlercode bei neuen Befunden auf oder über dem Schwellenwert. Um den aktuellen Zustand als Baseline zu akzeptieren: appsec.py baseline --in .appsec/out --write .appsec/baseline.json (nur mit Zustimmung des Benutzers – eine Baseline verbirgt vorhandenes Risiko vor zukünftigen Läufen). CI-Vorlagen: examples/ci/ im Repository.

3. Beweis- und Ehrlichkeitsstandard

Aus references/evidence-standard.md:

  • Jeder Befund zitiert Datei:Zeile (oder URL + Anfrage) und den minimalen Beweis.
  • Der Status ist einer von bestätigt, vermutet, unverifiziert, fehlende-Kontrolle, falsch-positiv, akzeptiertes-Risiko, behoben.
  • Erfinden Sie niemals CVEs, Versionen, Zeilennummern oder Tool-Ausgaben. Wenn Sie unsicher sind, sagen Sie es.
  • Überhöhen Sie niemals den Schweregrad, um gründlich zu wirken, oder verringern Sie ihn, um sauber auszusehen.
  • Der Bericht muss die Aussage enthalten, dass das Fehlen von Befunden kein Beweis für Sicherheit ist, und muss jeden nicht getesteten Bereich auflisten.

4. Konfiguration

Die Engine liest .appsec/config.json im Ziel (Vorlage: templates/config.template.json): Standardmodi, Schweregradschwelle, Pfadausschlüsse, aktivierte Regelpakete und -tools, benutzerdefinierte Regelverzeichnisse, zuzuordnende Standards. Priorität: CLI-Flag > Konfigurationsdatei > Modus-Standard.

5. Erweiterung

Neue Regeln sind JSON in rules/ (Schema: schemas/rule.schema.json); neue externe Tools sind Adapter in scripts/appsec/adapters/ (die meisten benötigen nur eine Kommandozeile, da SARIF generisch eingelesen wird); neue Standards sind Mapping-Einträge in references/standards-mapping.md und scripts/appsec/standards.py. Siehe docs/extending.md im Repository.

Referenzindex

  • references/: Regeln, Modi, Methodik, Bedrohungsmodellierung, Validierungs-Playbook, Schweregrad und Bewertung, Beweisstandard, Berichterstattung, Behebung, Standards-Mapping, Tooling
  • checklists/: eine pro Sicherheitsdomäne (siehe checklists/README.md)
  • stacks/: sprach-/frameworkspezifische Senken, Quellen und Fallstricke
  • templates/: Vorlagen für Konfiguration, Umfang und manuelle Befunde

Verwandte Skills