Zum Hauptinhalt springen

Leitfaden

OWASP ASVS v5.0.0: was ein SAST-Scan wirklich abdeckt

ASVS hat 348 Anforderungen in 17 Kapiteln. Kein statischer Analyzer — dieser eingeschlossen — verifiziert sie alle, und jeder Anbieter, der das Gegenteil behauptet, ist ungenau. Hier ist genau, welchen der 44 StaticCodeAudit einer Regel zuordnet, Kapitel für Kapitel, und warum der Rest wirklich mehr braucht als reinen Quellcode-Musterabgleich.

ASVS in einem Absatz

Der OWASP Application Security Verification Standard (ASVS) ist ein Katalog von Sicherheitsanforderungen für Webanwendungen, gegliedert in 17 Kapitel (V1 bis V17) und 3 Verifikationsstufen (L1: Grundhygiene, L2: die meisten Anwendungen, L3: hochwertige Ziele). Version 5.0.0 definiert 348 einzelne Anforderungen. Es ist eine Checkliste ebenso für Menschen und Prozesse wie für Tools — die meisten Anforderungen beschreiben ein Ergebnis („verifizieren, dass X durchgesetzt wird"), kein Code-Muster — genau deshalb kann ein rein statischer Scan nicht jede Zeile davon mechanisch verifizieren.

Die ehrliche Zahl: 44 von 348

StaticCodeAudit ordnet 44 ASVS-v5.0.0-Anforderungen mindestens einer Erkennungsregel zu — etwa 13% des gesamten Standards. Das ist kein Marketing-Rundungsfehler; es ist die reale Zahl aus der mit dem Scanner ausgelieferten Mapping-Datei, und sie erscheint identisch im Compliance-Abschnitt jedes erzeugten Berichts.

Kapitel Abgedeckt
V1Encoding, Sanitization und Sandboxing 16 / 30
V3Web-Frontend-Sicherheit 11 / 31
V6Authentifizierung 4 / 48
V11Kryptografie 4 / 25
V4API- und Webservice-Sicherheit 3 / 16
V5Dateiverarbeitung 2 / 13
V9Selbstenthaltene Tokens 2 / 7
V12Sichere Kommunikation 1 / 12
V16Sicherheits-Logging und Fehlerbehandlung 1 / 17

Warum die anderen 8 Kapitel bei null stehen

V2 (Geschäftslogik), V7 (Session-Management), V8 (Autorisierung), V10 (OAuth und OIDC), V13 (Konfiguration), V14 (Datenschutz), V15 (Sicheres Coding und Architektur) und V17 (WebRTC) haben heute keine einer Regel zugeordnete Anforderung. Das ist kein Versehen — das meiste, was diese Kapitel verlangen, ist nicht als Quellcode-Muster sichtbar: ob eine Autorisierungsprüfung für eine gegebene Geschäftsregel korrekt ist, ob ein OAuth-Flow beim Identity-Provider mit den richtigen Scopes konfiguriert ist, ob ein Session-Timeout angemessen für die Sensibilität der Daten gesetzt ist — das erfordert das Verständnis von Absicht und Laufzeitkonfiguration, nicht nur das Parsen von Syntax. Statische Analyse ist ein Input für eine ASVS-Bewertung, kein Ersatz für die menschliche Prüfung, die diese Kapitel verlangen.

Wie eine Anforderung einer echten Regel zugeordnet wird

Neun Beispiele, direkt aus der Mapping-Datei — die tatsächlichen Regel-IDs, die bei Auslösung einen Fund erzeugen:

Anforderung Stufe Was verifiziert wird Regel(n)
1.2.4 L1 SQL-Abfragen verwenden parametrisierte Abfragen oder ein ORM sql_injection_fstring, sql_injection_concat…
1.5.1 L1 XML-Parser sind so konfiguriert, dass XXE verhindert wird xxe_injection, xxe_injection_csharp, xxe_injection_php
3.4.3 L1 Der CSP-Header ist konfiguriert missing_csp_header
3.5.1 L1 CSRF-Schutzmaßnahmen sind aktiviert django_csrf_exempt, spring_csrf_disabled
6.3.3 L2 MFA ist für sensible Vorgänge verfügbar missing_mfa_python, missing_mfa_javascript…
9.1.2 L1 JWT-Algorithmus "none" wird abgelehnt jwt_none_algorithm
11.3.1 L1 Starke kryptografische Algorithmen werden verwendet weak_crypto, weak_crypto_java…
11.5.1 L1 Kryptografisch sichere Zufallsgeneratoren werden verwendet weak_random_java, insecure_random…
12.2.1 L1 Alle Verbindungen nutzen TLS http_no_tls, unencrypted_transfer

Die Spalte Stufe ist ASVS' eigene Klassifikation (L1 = Grundlage, L2 = Standard, L3 = hohe Sicherheitsstufe) — StaticCodeAudit vergibt sie nicht selbst, sie wird direkt aus der OWASP-Spezifikation gelesen.

Wo das im Bericht erscheint

Jeder HTML-Bericht eines Scans enthält einen Abschnitt „OWASP ASVS v5.0.0 Compliance" mit einer Matrix pro Anforderung: jede der 44 zugeordneten Anforderungen erscheint als abgedeckt-und-sauber, abgedeckt-mit-Funden oder nicht-abgedeckt — nicht nur eine einzelne Prozentzahl. Eine Anforderung mit einem aktiven HIGH-Fund (etwa ein MD5-Hash, der 11.3.1 auslöst) wird visuell von einer unterschieden, die abgedeckt ist und sauber besteht, damit ein Prüfer nicht raten muss, welche der 13% für einen gegebenen Code wirklich zählt.

Selbst erzeugen

Kein separates Flag — die ASVS-Matrix ist Teil jedes Standard-HTML-Berichts:

./staticcodeaudit-linux-x86_64 /path/to/project --fail-on-high

Derselbe Lauf erzeugt auch die Matrizen ISO 27001 Annex A und NIST CSF 2.0 nebeneinander. Siehe die vollständige Standards-Abdeckungsseite für die interaktive Aufschlüsselung aller vier Frameworks.

Häufig gestellte Fragen

Bedeutet 44/348, dass StaticCodeAudit nur zu 13% ASVS-konform ist?

Nein — diese Formulierung vermischt zwei verschiedene Dinge. 44/348 misst, wie viel von der ASVS-Checkliste ein Quellcode-Scan mechanisch verifizieren kann, nicht wie viel davon Ihre Anwendung erfüllt. Eine Codebasis kann eine gegebene ASVS-Anforderung vollständig erfüllen, ohne dass ein Tool das erkennt (z. B. ein korrekt konfiguriertes Session-Timeout), und die verbleibenden 304 Anforderungen sind schlicht nicht die Art von Sache, die statische Analyse prüft.

Wird die Zahl 44 mit der Zeit steigen?

Sie hat sich schon einmal verändert und kann sich mit neuen Regeln erneut verändern — sie wird aus einer mit dem Scanner ausgelieferten Mapping-Datei gelesen, nicht in Marketingtext festgeschrieben. Siehe das Changelog für Updates am Compliance-Mapping.

Unterscheidet sich die ASVS-Abdeckung nach ASVS-Stufe (L1/L2/L3)?

Ja — die in der Matrix angezeigte Stufe ist die von OWASP für diese spezifische Anforderung definierte, keine Entscheidung des Scanners. Die meisten der 44 abgedeckten Anforderungen sind L1 (Grundhygiene); einige, wie die MFA-Verfügbarkeit (6.3.3), sind L2. Aktuell ist nichts auf L3 zugeordnet, was dazu passt, dass L3-Anforderungen eher Richtung Architektur- und Prozessprüfung tendieren.

Kann das eine manuelle ASVS-Bewertung ersetzen?

Nein, und es wird nicht als solche positioniert. Es ist ein schneller, wiederholbarer, offline durchführbarer erster Durchgang über die Anforderungen, die tatsächlich als Code-Muster sichtbar sind — nützlicher Nachweis, der einer manuellen Bewertung beigefügt werden kann, kein Ersatz für die menschliche Prüfung, die Kapitel wie Autorisierung oder Geschäftslogik erfordern.

Die vollständige Compliance-Matrix an echtem Code sehen

Öffnen Sie den Live-Demo-Bericht und scrollen Sie zum OWASP-ASVS-Abschnitt — keine Installation, keine Anmeldung.

Live-Bericht öffnen Demo-Binary herunterladen