CVSS vs. EPSS: Welchen Score sollst du wirklich priorisieren?
Einleitung
Du hast einen Vulnerability-Scan abgeschlossen und schaust auf 200 offene CVEs. Sortierst du nach CVSS und fängst oben an? Dann machst du es wie die meisten – aber nicht unbedingt richtig. EPSS beantwortet eine andere, wichtigere Frage: Welche dieser Schwachstellen wird in den nächsten Wochen tatsächlich aktiv ausgenutzt? Dieser Artikel erklärt beide Systeme und zeigt, wie du sie sinnvoll kombinierst.
Warum das Thema wichtig ist
Priorisierung ist das Herzstück des Schwachstellenmanagements. Du kannst nicht alle CVEs gleichzeitig patchen – also musst du entscheiden, was zuerst kommt. Eine falsche Priorisierung bedeutet: Du patchst CVSS-9.8-Lücken, die niemand aktiv ausnutzt, während eine CVSS-6.5-Schwachstelle gerade in Exploit-Kits gegen dein Netz gefeuert wird. Diese Entscheidung kostet im schlimmsten Fall einen Incident.
CVSS: Was er misst und was nicht
Der Common Vulnerability Scoring System (v3.1) bewertet die theoretischen Eigenschaften einer Schwachstelle:
- Attack Vector (Network/Local/Physical)
- Attack Complexity (Low/High)
- Privileges Required (None/Low/High)
- User Interaction (None/Required)
- Impact auf Confidentiality, Integrity, Availability
Der Score beschreibt die schlechtmöglichste Ausnutzung unter idealen Bedingungen für den Angreifer. Er ist deterministisch und ändert sich nach Veröffentlichung kaum.
Was CVSS nicht beantwortet:
- Wird diese Schwachstelle aktiv ausgenutzt?
- Gibt es öffentlichen Exploit-Code?
- Ist sie in Ransomware-Kits eingebaut?
- Trifft sie meine Infrastruktur überhaupt?
Ein CVSS 9.8 auf einem Produkt, das du nicht betreibst, ist irrelevant. Ein CVSS 6.5 mit weaponized Exploit in einem Produkt, das du öffentlich exponierst, ist ein Notfall.
EPSS: Die Frage, die CVSS nicht stellt
EPSS (Exploit Prediction Scoring System), entwickelt von FIRST, berechnet täglich neu: Wie hoch ist die Wahrscheinlichkeit, dass diese CVE in den nächsten 30 Tagen aktiv ausgenutzt wird?
Score zwischen 0 und 1 (= 0 % bis 100 %). Basis:
- Verfügbarkeit von Proof-of-Concept-Code (ExploitDB, GitHub)
- Aktivität in Threat-Intelligence-Feeds
- Referenzen in Malware-Samples
- Ähnlichkeit zu historisch ausgenutzten Schwachstellen
EPSS ist keine Garantie – es ist eine Wahrscheinlichkeit. Aber datengetrieben, täglich aktualisiert und damit deutlich besser als ein statischer theoretischer Score.
Die Zahlen sprechen für sich
| Strategie | Aufwand | Abdeckung der ausgenutzten CVEs |
|---|---|---|
| Alle CVEs patchen | 100 % | 100 % |
| CVSS ≥ 7.0 patchen | ~50 % | ~75 % |
| EPSS > 0.1 patchen | ~7 % | ~87 % |
Mit EPSS-Priorisierung deckst du mit 7 % des Aufwands 87 % der tatsächlich ausgenutzten Schwachstellen ab.
EPSS praktisch nutzen
API-Abfrage
Die EPSS-API von FIRST ist kostenlos und ohne Registrierung nutzbar:
# Einzelne CVE
curl "https://api.first.org/data/v1/epss?cve=CVE-2023-23397"
# Mehrere CVEs in einer Anfrage
curl "https://api.first.org/data/v1/epss?cve=CVE-2021-44228,CVE-2022-30190,CVE-2023-23397"
Antwort:
{
"data": [{
"cve": "CVE-2023-23397",
"epss": "0.94573",
"percentile": "0.99851",
"date": "2024-01-15"
}]
}
EPSS 0.94 = 94 % Wahrscheinlichkeit aktiver Ausnutzung in den nächsten 30 Tagen.
Aus Scan-Reports anreichern
# CVE-IDs aus CSV extrahieren und EPSS abrufen
cut -d',' -f5 scan_report.csv | sort -u | tr '\n' ',' | sed 's/,$//' \
| xargs -I{} curl -s "https://api.first.org/data/v1/epss?cve={}" \
| jq -r '.data[] | "\(.cve)\t\(.epss)\t\(.percentile)"'
Das dritte Element: CISA KEV
Neben CVSS und EPSS: die CISA Known Exploited Vulnerabilities (KEV) Liste. Sie enthält CVEs mit bestätigter aktiver Ausnutzung in freier Wildbahn – keine Wahrscheinlichkeit, sondern Tatsache.
curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json \
| jq '.vulnerabilities[] | select(.cveID == "CVE-2023-23397") | .shortDescription'
Regel: Alles in der CISA KEV hat Priorität 1 – unabhängig von CVSS und EPSS.
Die kombinierte Priorisierungs-Matrix
Vulnerability aus dem Scan
│
├── Ist die CVE in CISA KEV? → JA: Priorität 1 (24 h)
│
├── EPSS > 0.5?
│ ├── + CVSS ≥ 7.0 → Priorität 1 (48 h)
│ └── + CVSS < 7.0 → Priorität 2 (7 Tage)
│
├── EPSS 0.1 – 0.5?
│ ├── + CVSS ≥ 9.0 → Priorität 2 (7 Tage)
│ └── + CVSS < 9.0 → Priorität 3 (30 Tage)
│
└── EPSS < 0.1, CVSS < 7 → Priorität 4 (nächstes Fenster)
Zusatzfaktor: Umgebungskontext
- Internet-Exposition: System aus dem Internet erreichbar? +1 Stufe
- Datenkritikalität: sensible Daten dahinter? +1 Stufe
- Produkt nicht im Einsatz: ignorieren
Tools
- Vulners.com: CVSS, EPSS, KEV und Exploit-Status in einer Ansicht
- Tenable / Qualys / Rapid7: kommerzielle Plattformen mit nativer EPSS-Integration
- Eigenes Script: Mit der FIRST-API und etwas Bash/Python reicht es für die meisten KMUs
Praxis-Checkliste
- CVSS als Ausgangspunkt nutzen, nie als alleinige Entscheidungsgrundlage
- EPSS-API in den Scan-Workflow integriert (manuell oder per Script)
- CISA KEV-Feed wöchentlich (am besten automatisch) abgeglichen
- Priorisierungs-Matrix dokumentiert und im Team kommuniziert
- Patch-SLAs je Prioritätsstufe definiert
- Umgebungskontext in Bewertung einbezogen
- CVEs auf tatsächlich betriebene Produkte gefiltert
- Findings im Ticket-System mit Fälligkeitsdatum
- Monatlicher Review: EPSS-Sprünge bei offenen CVEs überwachen
Fazit
CVSS und EPSS ergänzen sich. CVSS beschreibt die Schwere unter idealen Bedingungen. EPSS sagt dir, ob Angreifer sie gerade ausnutzen. Kombiniert mit CISA KEV und Umgebungskontext bekommst du eine Priorisierung, die nicht auf dem Papier gut aussieht, sondern in der Praxis funktioniert.
Wenn du tiefer einsteigen willst: Im Newsletter schauen wir uns jeden Monat Schwachstellen-Trends, neue CVEs und konkrete Workflows an. Trag dich ein und bleib auf dem Laufenden.