Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen
Schwachstellenmanagement in der Praxis: Von der CVE zur Behebung - Schwachstellenanalyse und Sicherheitsluecken
Security Operations

Schwachstellenmanagement in der Praxis: Von der CVE zur Behebung

Praxisguide für systematisches Schwachstellenmanagement: CVE-Monitoring, CVSS-Priorisierung, Nessus und OpenVAS einsetzen, SLAs definieren, CISA KEV-Liste nutzen und Patch-Compliance messen. Mit PowerShell-Skripten und KPI-Templates.

Vincent Heinen Vincent Heinen Abteilungsleiter Offensive Services
Aktualisiert: 8. März 2026 8 Min. Lesezeit
OSCP+ OSCP OSWP OSWA

TL;DR

Ein systematisches Schwachstellenmanagement

Diese Zusammenfassung wurde KI-gestützt erstellt (EU AI Act Art. 52).

Inhaltsverzeichnis (8 Abschnitte)

Schwachstellenmanagement ist mehr als regelmäßiges Patchen. Es ist ein systematischer Prozess: CVEs identifizieren, priorisieren, testen und beheben - und das dokumentiert und wiederholbar. Dieser Guide zeigt, wie mittelständische Unternehmen einen funktionierenden Schwachstellenmanagement-Prozess aufbauen.

Der Schwachstellenmanagement-Zyklus

1. IDENTIFIKATION
   Schwachstellenscanner + CVE-Feeds + Threat Intelligence

2. BEWERTUNG
   CVSS-Score + Asset-Kritikalität + Exploitability

3. PRIORISIERUNG
   SLA-Definition: wer behebt was bis wann?

4. BEHEBUNG
   Patch / Mitigationsmaßnahme / Akzeptanz

5. VERIFIKATION
   Re-Scan nach Behebung: ist Schwachstelle wirklich weg?

6. REPORTING
   Compliance-Nachweise, KPI-Tracking

Schritt 1: Schwachstellen identifizieren

CVE-Feeds überwachen

# NIST NVD API - neue CVEs der letzten 7 Tage abrufen
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?pubStartDate=2026-02-25T00:00:00&pubEndDate=2026-03-04T23:59:59&cvssV3Severity=CRITICAL" \
  | jq '.vulnerabilities[] | {id: .cve.id, score: .cve.metrics.cvssMetricV31[0].cvssData.baseScore, desc: .cve.descriptions[0].value}'

# CISA Known Exploited Vulnerabilities (KEV)
# Diese CVEs werden AKTIV ausgenutzt - höchste Priorität!
curl -s "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" \
  | jq '.vulnerabilities | sort_by(.dateAdded) | reverse | .[0:10] | .[] | {id: .cveID, vendor: .vendorProject, product: .product, added: .dateAdded}'

# BSI CERT-Bund Warnmeldungen
# https://www.bsi.bund.de/SharedDocs/Warnmeldungen/DE/CB/Warnmeldungen.html

# Vendor-Security-Advisories abonnieren:
# Microsoft: https://msrc.microsoft.com/update-guide/
# Apache: https://httpd.apache.org/security/vulnerabilities_24.html
# VMware: https://www.vmware.com/security/advisories.html
# Cisco: https://tools.cisco.com/security/center/publicationListing.x

Automatisierter Scan mit Nessus

# Nessus REST API - Scan starten
NESSUS_URL="https://localhost:8834"
TOKEN=$(curl -sk -X POST "$NESSUS_URL/session" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"secret"}' | jq -r .token)

# Neuen Scan erstellen
SCAN_ID=$(curl -sk -X POST "$NESSUS_URL/scans" \
  -H "X-Cookie: token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "731a8e52-3ea6-a291-ec0a-d2ff0619c19f4d788d09b24d",
    "settings": {
      "name": "Weekly Internal Scan",
      "text_targets": "192.168.0.0/24",
      "scanner_id": 1
    }
  }' | jq -r .scan.id)

# Scan starten
curl -sk -X POST "$NESSUS_URL/scans/$SCAN_ID/launch" \
  -H "X-Cookie: token=$TOKEN"

# Status prüfen
curl -sk "$NESSUS_URL/scans/$SCAN_ID" \
  -H "X-Cookie: token=$TOKEN" | jq .info.status

# Kritische Findings exportieren
curl -sk "$NESSUS_URL/scans/$SCAN_ID?filter.0.filter=severity&filter.0.quality=neq&filter.0.value=0&filter.search_type=and" \
  -H "X-Cookie: token=$TOKEN" \
  | jq '.vulnerabilities[] | select(.severity == 4) | {host: .hostname, plugin: .plugin_name, cvss: .cvss3_base_score}'

Schritt 2: Priorisierung mit CVSS und Kontext

Warum CVSS allein nicht reicht

CVSS (Common Vulnerability Scoring System):
  Bewertet Schwachstelle UNABHÄNGIG vom Kontext.

Beispiel:
  CVE-2024-XXXX: CVSS 9.8 (Critical) - Apache Struts RCE
  Ihr Umfeld: Apache Struts läuft nur im internen Dev-System
              kein Internet-Zugang, nur Entwickler haben Zugriff

  Effektives Risiko: NIEDRIG (hohe CVSS, aber kein Angriffsweg!)

  CVE-2024-YYYY: CVSS 5.3 (Medium) - Auth-Bypass in VPN-Konzentrator
  Ihr Umfeld: VPN-Gateway direkt im Internet, 200 Remote-User täglich

  Effektives Risiko: KRITISCH (niedrige CVSS, aber zentraler Angriffsvektor!)

Priorisierungsformel:
  Effektives Risiko = CVSS × Exploitability × Asset-Kritikalität

CVSS-Kontextualisierung in der Praxis

Asset-Kritikalitäts-Matrix:

Asset-Typ          | Kritikalität | Multiplier
───────────────────────────────────────────────
Internet-Gateway   | Kritisch     | ×1.5
Produktiv-Server   | Hoch         | ×1.2
Büro-Workstation   | Mittel       | ×1.0
Test-System (intern)| Niedrig     | ×0.5
Isoliertes System  | Minimal      | ×0.2

Exploitability-Multiplier:
  In CISA KEV: ×2.0 (aktiv ausgenutzt!)
  PoC öffentlich: ×1.5
  Exploit im Metasploit: ×1.3
  Theoretisch: ×1.0

Beispiel-Rechnung:
  CVSS 9.8 × Kritikalität 0.5 (Test-System) × PoC 1.5 = 7.35 → HOCH
  CVSS 5.3 × Kritikalität 1.5 (Internet-GW) × KEV 2.0 = 15.9 → KRITISCH

Schritt 3: SLAs definieren und einhalten

SLA-Definitionen (Empfehlung BSI/ISO 27001):

KRITISCH (Effektives Risiko > 14):
  SLA: 24 Stunden
  Eskalation: sofort an IT-Leitung
  Notfall-Change: ohne normales CAB

HOCH (Effektives Risiko 10-14):
  SLA: 7 Tage
  Eskalation: IT-Leiter informiert
  Beschleunigtes Change-Management

MITTEL (Effektives Risiko 5-9):
  SLA: 30 Tage
  Regulärer Patch-Zyklus

NIEDRIG (Effektives Risiko 1-4):
  SLA: 90 Tage
  Nächster Wartungszyklus

Ausnahmen (Accepted Risk):
  Wenn SLA nicht eingehalten werden kann:
  → Kompensationsmaßnahme + Dokumentation
  → Management-Genehmigung
  → Nachverfolgung bis Behebung

Schritt 4: Patch-Compliance messen

# Windows: fehlende Patches pro System (PowerShell)
function Get-PatchCompliance {
    param([string[]]$ComputerNames)

    $results = foreach ($computer in $ComputerNames) {
        try {
            $session = New-Object -ComObject Microsoft.Update.Session
            $searcher = $session.CreateUpdateSearcher()
            $missing = $searcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")

            $criticalMissing = $missing.Updates | Where-Object {
                $_.MsrcSeverity -eq "Critical"
            }

            [PSCustomObject]@{
                Computer = $computer
                MissingTotal = $missing.Updates.Count
                MissingCritical = $criticalMissing.Count
                OldestPatch = ($missing.Updates | Sort-Object LastDeploymentChangeTime | Select-Object -First 1).Title
            }
        } catch {
            [PSCustomObject]@{Computer = $computer; Error = $_.Exception.Message}
        }
    }
    $results | Sort-Object MissingCritical -Descending
}

# Compliance-Score berechnen
$allSystems = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
$compliance = Get-PatchCompliance -ComputerNames $allSystems

$totalSystems = $compliance.Count
$compliantSystems = ($compliance | Where-Object MissingCritical -eq 0).Count
$complianceRate = [math]::Round(($compliantSystems / $totalSystems) * 100, 1)
Write-Host "Patch Compliance (Kritisch): $complianceRate% ($compliantSystems/$totalSystems)"

Schritt 5: CISA KEV-Integration

# Python: KEV-Liste vs. Nessus-Findings abgleichen
import requests
import json

# KEV-Liste laden
kev_response = requests.get(
    "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
)
kev_cves = {v['cveID'] for v in kev_response.json()['vulnerabilities']}

# Nessus-Findings (als JSON exportiert)
with open('nessus-findings.json') as f:
    findings = json.load(f)

# KEV-Überschneidungen finden
critical_findings = []
for finding in findings['vulnerabilities']:
    cve_id = finding.get('cve_id', '')
    if cve_id in kev_cves:
        critical_findings.append({
            'host': finding['host'],
            'cve': cve_id,
            'plugin': finding['plugin_name'],
            'priority': 'IMMEDIATE - Actively Exploited (CISA KEV)'
        })

# Sofort eskalieren
print(f"\n🚨 AKTIV AUSGENUTZTE SCHWACHSTELLEN: {len(critical_findings)}")
for f in critical_findings:
    print(f"  {f['host']}: {f['cve']} - {f['plugin']}")

Schritt 6: Reporting und KPIs

Schwachstellenmanagement-KPIs (monatlicher Report):

KPI                              Ziel      Aktuell
───────────────────────────────────────────────────────
MTTD (Mean Time to Detect)      < 24h     [Wert]
MTTR Kritisch                   < 48h     [Wert]
MTTR Hoch                       < 7 Tage  [Wert]
MTTR Mittel                     < 30 Tage [Wert]
Patch Compliance Kritisch (48h) > 99%     [Wert]
Patch Compliance Hoch (7 Tage)  > 95%     [Wert]
Offene KEV-Findings             = 0       [Wert]
False-Positive-Rate             < 10%     [Wert]
Scan-Coverage (bekannte Assets) > 95%     [Wert]

Eskalationspfad:
  Offene kritische Findings > 48h → IT-Leitung
  Offene KEV-Findings       → Sofort Geschäftsführung
  Compliance < 90%          → IT-Leitungsrunde

Häufige Schwachstellenmanagement-Fehler

Fehler 1: CVSS-Score = Priorität (kein Kontext)
  → Verpasste reale Risiken, verschwendete Ressourcen

Fehler 2: Scan ohne Credentials
  → Findet 20-30% der Schwachstellen (unauthenticated = oberflächlich)

Fehler 3: Kein Asset-Inventar
  → Systeme werden nicht gescannt ("Shadow IT")

Fehler 4: Keine Verifikation nach Patch
  → "Wir haben gepatcht" → Re-Scan zeigt: Schwachstelle noch da

Fehler 5: Compliance-Reporting ohne Kontextualisierung
  → "95% gepatcht" aber die 5% sind kritische Internet-Server

Fehler 6: False Positives nicht gemanaged
  → Analysten ignorieren alle Alerts (Alert Fatigue)

Fehler 7: Keine Accepted-Risk-Dokumentation
  → Audit-Frage: "Warum ist CVE-XXXX seit 6 Monaten offen?"
  → Keine Antwort = Befund im ISO-27001-Audit

Schwachstellenmanagement überfordert Ihr Team? AWARE7 unterstützt beim Aufbau eines strukturierten Prozesses: von der Tool-Auswahl über SLA-Definition bis zu wiederkehrenden Penetrationstests zur Verifikation.

Schwachstellenmanagement-Beratung anfragen | Penetrationstest beauftragen | Sicherheitsberatung entdecken

Nächster Schritt

Unsere zertifizierten Sicherheitsexperten beraten Sie zu den Themen aus diesem Artikel — unverbindlich und kostenlos.

Kostenlos · 30 Minuten · Unverbindlich

Artikel teilen

Über den Autor

Vincent Heinen
Vincent Heinen

Abteilungsleiter Offensive Services

M.Sc. IT-Sicherheit mit über 5 Jahren Erfahrung in offensiver Sicherheitsanalyse. Leitet die Durchführung von Penetrationstests mit Spezialisierung auf Web-Applikationen, Netzwerk-Infrastruktur, Reverse Engineering und Hardware-Sicherheit. Verantwortlich für mehrere Responsible Disclosures.

OSCP+ OSCP OSWP OSWA
Zertifiziert ISO 27001ISO 9001AZAVBSI

Cookielose Analyse via Matomo (selbst gehostet, kein Tracking-Cookie). Datenschutzerklärung