Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03491.jsonl.gz/321

Cyber Threat Intelligence
Marc Ruef
Das Common Vulnerability Scoring System wird von vielen Firmen, Produkten und Projekten als Metrik zur Bewertung von Schwachstellen eingesetzt. Viele davon stellen mittlerweile auf die jüngste Version 3 um. Dieser Artikel diskutiert eine solche Transformation, ihre Herausforderungen und die neuen Möglichkeiten.
Bei CVSS handelt es sich um einen Standard zur Bewertung des Schweregrads von Schwachstellen in Computersystemen. Er konkurriert mit verschiedenen anderen Standards, wobei sein Erfolg auf seine Offenheit und die freie Verfügbarkeit zurückzuführen ist. Jeder kann die Dokumentation lesen, eine Implementierung vornehmen und danach Schwachstellen damit bewerten.
Das erste und oftmals einzige Ziel von CVSS ist das Erstellen eines Base Score. Hierbei handelt es sich um eine Zahl von 1 bis 10, die den generischen Schweregrad – unabhängig von zeitlichen und individuellen Faktoren – einer Schwachstelle ausgibt.
Um diesen Wert erreichen zu können, werden verschiedene Aspekte berücksichtigt. Zum Beispiel definiert der Access Vector, ob der Angriff über das Internet, im lokalen Netz, lokal auf dem System oder nur mit physischem Zugriff durchsetzen lässt. Diese Attribute bilden die Grundlage, um schlussendlich den Score berechnen zu können.
Vielerorts werden noch CVSSv2 Vektoren und Scores eingesetzt. Dabei existiert das Bedürfnis, diese in CVSSv3 zu überführen. Eine mathematische Transformation der Scores ist nicht sinnvoll, da die Metriken unterschiedliche Berechnungsgrundlagen mitbringen.
Auf den ersten Blick erscheint es also erforderlich, sämtliche Vektoren und Scores neu zu vergeben. Dies ist aber glücklicherweise nur bedingt vorausgesetzt. Stattdessen können einige der Vektorinformationen umgeformt oder abgeleitet werden. Dadurch wird eine Neuberechnung der Scores möglich, wodurch eine sehr hohe Genauigkeit erreicht werden kann, ohne sämtliche Vektoren neu attributisieren zu müssen.
Das beste Beispiel ist der Access Vector (AV). Dieser kann bei CVSSv2 die Positionen Local (L), Adjacent (A) und Network (N) einnehmen. Bei CVSSv3 sind ebenfalls diese drei Positionen möglich. Zusätzlich wurde aber noch Physical (P) eingeführt. Es kann nun also der Einfachheit halber der Wert übernommen werden. Nur noch eine kleine Menge an Scores muss manuell auf P gesetzt werden. Dabei wird es sich voraussichtlich in erster Linie um die Werte L handeln, da diese sowohl logisch als auch mathematisch am ehesten an das neue P heranreichen. Die folgende Tabelle zeigt die Umformung bei einer solchen Transformation:
|CVSSv2||CVSSv3||Typisch|
|Base: AV – Access Vector|
|N||N||–|
|A||A||–|
|L||L/P||L|
|Base: Au – Authentication|
|N||N||–|
|S||L/H||L|
|M||H/L||H|
|Base: CI / II / AI – Impacts|
|C||H||–|
|P||L||–|
|N||N||–|
|Temp: E – Exploitability|
|H||H||–|
|F||F||–|
|POC||P||–|
|U||U||–|
|ND||X||–|
|Temp: RL – Remediation Level|
|OF||O||–|
|TF||F||–|
|W||W||–|
|U||U||–|
|ND||X||–|
|Temp: RC – Report Confidence|
|C||C||–|
|UR||R||–|
|UC||U||–|
|ND||X||–|
Ein anderes und komplexeres Teilen muss beim CVSSv2 Attribut Access Complexity (AC) beobachtet werden. Dieses wird bei CVSSv3 in Attack Complexity (AC) und User Interaction (UI) aufgeteilt. Diese Erweiterung ist sinnvoll, da dadurch Angriffe, die eine Benutzerinteraktion erfordern, anders taxiert werden können. Dazu gehören bestimmte Formen von Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF) und Spoofing-Techniken (z.B. Clickjacking).
Eine andere Erweiterung wird durch Scope (S) realisiert. Dabei wird festgehalten, ob ein erfolgreicher Angriff aus dem vorgesehenen Kontext auszubrechen in der Lage ist.
In CVSSv2 wird festgehalten, dass zu einem Score immer auch dessen Vektor abgedruckt werden muss. Der Vektor
CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C ergibt den für einen kritischen Remote-Angriff typischen Score von 9.3. Will der Temp Score ausgegeben werden, müssen die Attribute des erweiterten Vektors abgebildet werden. Aus einem
CVSS2#E:ND/RL:OF/RC:C wird dann der Temp Score 8.1.
Bezüglich dieses Vektor-Verhaltens haben sich einige Änderungen in CVSSv3 ergeben. Neu muss auch für reine Base Scores die Vektorisierung der Temp-Attribute mitgegeben werden. Die gleiche Berechnung ergibt einen Base Score von 10.0, einen Temp Score von 9.5 und
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H/E:X/RL:O/RC:C als Gesamtvektor.
Der Syntax des Vektors ist, mindestens auf Bezug auf die Versionierung, leicht anders. Hinzu kommt, dass CVSSv3 die geänderten und hinzugefügten Vektoren mitbringt. Der Vektor verlängert sich aber erst merklich, wegen der Nennung der Temp-Werte. Aus ursprünglich 6 Attributen für einen Base Score sind nun immer 11 geworden. Dies ist vor allem auch deshalb der Fall, da nicht definierte Werte im Temp Score jeweils immer als X angegeben werden müssen (früher wurde ND verwendet).
Bei CVSSv2 kann man auf einen Blick den Vektor verstehen und die einzelnen Attribute identifizieren. Der Vektor von CVSSv3 ist dafür zu lang. Man muss sich Zeit nehmen und fokussiert nach den einzelnen Attributen suchen.
Betrachtet man die zugrundeliegende Formel für die Berechnung der Scores, fallen subtile Änderungen auf. Zum einen ist es so, dass ein C/I/A von P gegenüber C nun marginal weniger gewichtet wird als zuvor. Bei den Temp Scores gewinnt der Status eines Exploits ein bisschen mehr an Gewicht, wodurch dem wachsenden Exploitmarkt Rechnung getragen wird. Eine ähnliche Verschiebung ergibt sich bei der Verlässlichkeit einer Veröffentlichung.
Betrachtet man die CVSSv2 und CVSSv3 Scores, so fällt unmittelbar auf, dass diese tendenziell ansteigen. Bei Base Scores sind dies in den letzten Jahren durchschnittlich von 5.8 auf 6.3 (+0.5) und bei Temp Scores von 5.2 auf 6.0 (+0.8).
Die gezeigte Grafik illustriert die Distribution der Base Scores für alle bisher im Jahr 2016 veröffentlichten Schwachstellen. Hierbei ist klar zu sehen, dass einerseits eine Verschiebung zu höheren Werten stattfindet. Dies ist anhand der beiden Ausschläge 7→8 und 5→6 zu erkennen. Generell findet aber auch ein Mitteln statt, so dass die bisher kritisierten Löcher in der Realität weniger auffällig ausfallen.
CVSSv3 ist im Begriff CVSSv2 abzulösen. Die meisten Firmen, Produkte und Projekte fangen damit an und werden zukünftig nur noch CVSSv3 anbieten. Die neue Version des beliebten Systems bringt auf nahezu allen Ebenen Verbesserungen mit. Die Scores lassen sich granularer definieren, da sie die komplexen Gegebenheiten moderner Angriffsszenarien mitberücksichtigen in der Lage sind. Einzig die erhöhte Komplexität der Vektoren, die von nun an immer auch mit den gesamten Temp Attributen angegeben werden sollen, ist umstritten.
Es ist eine Transformation empfohlen, bei der die bestehenden CVSSv2 Attribute übernommen, umgeformt und ergänzt werden. So lässt sich mit überschaubarem Aufwand eine sehr hohe Qualität mit den neuen Scores erreichen, ohne dass diese komplett neu generiert werden müssen.
Unsere Spezialisten kontaktieren Sie gern!
Marc Ruef
Marc Ruef
Marc Ruef
Unsere Spezialisten kontaktieren Sie gern!
Weitere Artikel im Archiv