· 6 Minuten Lesezeit.
CWE vs. CVE: der Unterschied in einem Beispiel
Nimm CVE-2021-44228, Log4Shell. Sein CWE ist CWE-917: Ausdrucksspracheinjektion. Die beiden Ebenen erfordern zwei unterschiedliche Korrekturen.
Reparieren des CVE bedeutet ein Upgrade von Log4j auf Version 2.17. Es ist dringend, es ist an einem Abend erledigt und es schützt Sie nur vor diesem einen Fehler.
Reparieren des CWE bedeutet, dass verhindert wird, dass eingehende Daten jemals einen Ausdrucksauswerter erreichen. Es braucht Zeit und erfordert eine Designüberprüfung – und es schützt Sie auch vor den nächsten drei Fehlern derselben Familie, einschließlich derjenigen, die noch keine Nummer haben.
Ein einziger CWE deckt Tausende von CVEs ab. Deshalb beschreibt ein Sicherheitsbericht, der nur über CVEs spricht, eine Momentaufnahme, niemals einen Trend.
Die Schwächen, auf die Sie am häufigsten stoßen werden
Eine Handvoll CWEs machen einen großen Anteil der veröffentlichten CVEs aus. Zu jedem einzelnen gibt es ein bekanntes Beispiel, das die Idee konkretisiert:
| CWE | Schwäche | Was der Angreifer bekommt | Bekannter Fall |
|---|---|---|---|
CWE-79 | Cross-Site-Scripting (XSS) | Führen Sie Code im Browser eines anderen Benutzers aus | Unzählige CMS- und Plugin-Fehler |
CWE-89 | SQL-Injection | Lesen oder ändern Sie die Datenbank | CVE-2023-34362 (MOVEit) |
CWE-787 | Schreiben außerhalb der Grenzen | Beschädigter Speicher, oft bis zur Codeausführung | Fehler im Browser und im Netzwerk-Stack |
CWE-22 | Pfaddurchquerung | Lesen Sie Dateien außerhalb des vorgesehenen Verzeichnisses | Edge-Gerät und VPN-Fehler |
CWE-352 | Cross-Site-Request-Forgery (CSRF) | Lassen Sie einen angemeldeten Benutzer agieren, ohne es zu wissen | Schlecht geschützte Admin-Schnittstellen |
CWE-862 | Fehlende Autorisierung | Eine Funktion erreichen, ohne dazu berechtigt zu sein | Sehr häufige API-Fehler |
CWE-416 | Nutzung nach kostenloser Nutzung | Ausführung des Hijack-Programms | Rendering-Engine-Fehler |
CWE-78 | Betriebssystem-Befehlsinjektion | Führen Sie Befehle auf dem Server aus | Mängel an Appliance und Router |
CWE-917 | Injektion von Ausdruckssprache | Führen Sie Code über eine interpretierte Zeichenfolge aus | CVE-2021-44228 (Log4Shell) |
Die vollständige Liste umfasst mehr als 900 Einträge, die hierarchisch organisiert sind: von sehr allgemeinen Säulen bis hin zu sehr spezifischen Varianten. Es ist verfügbar unter cwe.mitre.org; Wir duplizieren die 900 Zeilen hier nicht, da sie Ihnen nichts beibringen würden, was der offizielle Katalog nicht bietet.
Das CWE Top 25: Wofür es wirklich ist
Jedes Jahr veröffentlicht MITRE die CWE Top 25 gefährlichsten Schwachstellen, geordnet nach der Häufigkeit der damit verbundenen CVEs und ihrem Schweregrad. In der Ausgabe 2024 CWE-79 (XSS) ist wieder an der Spitze, vorne CWE-787 (Schreiben außerhalb der Grenzen) und CWE-89 (SQL-Injection).
Bei dieser Rangliste geht es nicht darum, zu entscheiden, was diese Woche repariert werden soll, sondern darum, zu entscheiden, worüber ein Team geschult und worauf statische Analysetools optimiert werden sollen. Es handelt sich um ein Präventionstool, nicht um ein Alarm-Triage-Tool – die beiden werden oft verwechselt, und das ist auf beiden Seiten Zeitverschwendung.
Die CAPEC-, CWE-, CVE-Kette
Drei Kataloge, drei Fragen: an Angriffsmuster (CAPEC) beschreibt wie es gemacht wird, a Schwäche (CWE) beschreibt Der Fehler wird ausgenutzt, a Sicherheitslücke (CVE) beschreibt wo dieser Fehler tatsächlich lebt.
Auf Log4Shell angewendet: Code-Injektion (CAPEC-242) → Ausdruckssprachen-Injektion (CWE-917) → Log4j 2.0 bis 2.14.1 (CVE-2021-44228). Wenn Sie in diese Richtung lesen, können Sie voraussehen; Wenn Sie andersherum lesen, können Sie reagieren.
Was es für Sie in der Praxis bedeutet
Drei Einsatzmöglichkeiten, die in eine Teambesprechung passen:
- Zählen Sie Ihre CVEs mal CWE in den letzten zwölf Monaten. Wenn
CWE-862Wenn das Problem acht Mal auftritt, liegen keine acht Fehler vor: Sie haben ein Problem mit der Gestaltung der Zugriffskontrolle. - Optimieren Sie Ihre Analysetools auf die drei häufigsten CWEs in Ihrem Code und nicht auf die 900 Standardregeln. Die Falsch-Positiv-Rate sinkt und das Team ignoriert die Berichte nicht mehr.
- Fügen Sie den CWE in das Ticket ein, nicht nur das CVE. Der Entwickler, der das Problem behebt, versteht dann, was er nicht noch einmal an anderer Stelle schreiben sollte.
FAQ
Wie viele CWEs gibt es?
Mehr als 900, hierarchisch organisiert (Säulen, Klassen, Basen, Varianten). Nur etwa hundert tauchen regelmäßig in veröffentlichten CVEs auf: Auf diese sollte man sich konzentrieren.
CWE oder CVE zur Verbesserung der Anwendungssicherheit?
CWE dient der Vorbeugung, da es eine Klasse von Fehlern beschreibt, die Sie zur Entwurfszeit beseitigen können. CVE für die Antwort, da es einen bestimmten Fehler identifiziert, der in einem bestimmten Produkt behoben werden muss. Beides, niemals das eine statt des anderen.
Kann ein CVE mehrere CWEs haben?
Ja, und es ist üblich. Eine Exploit-Kette kombiniert häufig eine Autorisierungsschwäche mit einer Injektion. In den Aufzeichnungen werden dann mehrere CWEs aufgeführt; Die zuerst aufgeführte Ursache ist normalerweise die direkteste Ursache.