Wat is CVSS?
De CVSS (Gemeenschappelijk kwetsbaarheidsscoresysteem) beoordeelt de ernst van een kwetsbaarheid op een schaal van 0 tot 10. Onderhouden door FIRST, het levert een score, een ernstbeoordeling en een reproduceerbare “vector” op. Het meet potentiële schade, niet de waarschijnlijkheid dat dit gebeurt.
Een advies zegt “CVSS 9.8”. Het management vraagt zich af of dat slechter is dan de 8.1 van vorige week. Het eerlijke antwoord past op één pagina en begint met het lezen van de vector in plaats van het getal.
Twee beelden om het concreet te maken
CVSS is de omvang van een aardbeving. Bij een aardbeving met een kracht van 8 komt enorme energie vrij, of deze nu een megastad treft of een onbewoonde woestijn. Magnitude beschrijft de gebeurtenis, nooit de gevolgen ervan voor jou. Dat is precies de relatie tussen een CVSS-score en uw informatiesysteem.
CVSS is ook de specificatieblad van een auto. Er staat een topsnelheid van 250 km/u op vermeld. Het zegt niets over hoe snel je rijdt, of de weg nat is en of iemand anders de sleutels heeft. Twee afbeeldingen zijn hier beter dan één: het eerste laat zien dat de partituur intrinsiek is, het tweede dat het een beschrijft potentieel die context zal het misschien nooit beseffen.
De vijf ernstniveaus
De score verwijst naar een kwalitatief label, het label dat in adviezen verschijnt:
| CVSS-score | Ernst |
|---|---|
| 0.0 | Geen |
| 0,1 tot 3,9 | Laag |
| 4,0 tot 6,9 | Gemiddeld |
| 7,0 tot 8,9 | Hoog |
| 9,0 tot 10,0 | Kritisch |
Deze drempelwaarden zijn van toepassing op CVSS 3.x en 4.0. De oudere CVSS 2.0 had slechts drie niveaus en helemaal geen ‘kritiek’ label: dezelfde fout kan daarom twee verschillende labels dragen, afhankelijk van de versie die werd gebruikt om de score te scoren.
Een vector veld voor veld lezen
De score komt niet uit het niets: deze wordt berekend op basis van a vector, een string die acht beslissingen codeert. Neem die voor Log4Shell (CVE-2021-44228):
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Het leest van links naar rechts, als een zin:
| Veld | Waarde | Wat het betekent |
|---|---|---|
AV - aanvalsvector | N (netwerk) | Kan worden geëxploiteerd vanaf internet, zonder voorafgaande toegang tot het lokale netwerk. |
AC – complexiteit aanpakken | L (laag) | Geen speciale voorwaarden: de aanval werkt elke keer. |
PR — privileges vereist | N (geen) | Geen account nodig. |
gebruikersinterface — gebruikersinteractie | N (geen) | Niemand hoeft ergens op te klikken. |
S — reikwijdte | C (veranderd) | De schade reikt verder dan het kwetsbare onderdeel en bereikt wat daarachter zit. |
C / I / A | H / H / H | Totale impact op vertrouwelijkheid, integriteit en beschikbaarheid. |
Resulterende score: 10.0. Nu laat bijna niemand het deel zien – wat verandert er een enkele veld doet:
| Verandering | Nieuwe score | Wat het betekent |
|---|---|---|
S:C → S:U (schade blijft beperkt) | 9.8 | Dit is de beroemde “9.8” die je overal ziet: niet-geverifieerde uitvoering van externe code, zonder wijziging van de scope. |
PR: N → PR: H (een beheerdersaccount is vereist) | 9.1 | Het vereisen van een geprivilegieerd account verkleint het aanvalsoppervlak, maar kost slechts ongeveer één punt: CVSS blijft hard als de impact totaal is. |
AV:N → AV:L (lokale toegang vereist) | 9.3 | Het feit dat je op de machine moet zitten, verandert in de praktijk al alles… en bijna niets in de partituur. |
Controleer het zelf: elk van deze vectoren kan opnieuw worden berekend in de CVSS 3.1 rekenmachine. Het is de tien minuten durende oefening die je van “Ik lees een getal” naar “Ik begrijp een beoordeling” brengt.
Basis, dreiging, omgeving: drie lagen
CVSS heeft drie metrische groepen, en de overgrote meerderheid van openbare databases publiceert er slechts één.
- Basis: intrinsieke ernst, stabiel in de tijd. Het is de score die je 99% van de tijd ziet.
- Tijdelijk / dreiging: wordt aangepast aan de volwassenheid van exploits en of er een oplossing bestaat. Het kan alleen lager de basisscore.
- Milieu: stemt de score af op jouw context – kriticiteit van bedrijfsmiddelen, compenserende controles, uw specifieke vertrouwelijkheids- of beschikbaarheidsvereisten.
Het directe gevolg: de score die u in een advies leest, is nooit voor u berekend. De milieulaag, degene die u aangaat, kunt u zelf invullen – en bijna niemand doet dat.
Versies: 2.0, 3.0, 3.1 en 4.0
| Versie | Wat het verandert | Waar je het ziet |
|---|---|---|
| 2.0 (2007) | Grovere statistieken, geen ‘kritiek’ niveau, impact beoordeeld als gedeeltelijk/volledig. | Archieven en oude scannerrapporten. |
| 3.0 (2015) | Introduceert de bereikstatistiek (Reikwijdte) en rechten vereist. | CVEs gepubliceerd tussen 2016 en 2019. |
| 3.1 (2019) | Verduidelijkt afronding en documentatie; formules identiek aan 3.0. | De overgrote meerderheid van de NVD CVEs vandaag. |
| 4.0 (2023) | Verwijdert Reikwijdte en vervangt het door twee impactblokken: VC/VI/VA voor het kwetsbare systeem, SC/SI/SA voor de systemen erachter. Voegt aanvalsvereisten toe (AT). | Een groeiend aantal leveranciersadviezen. |
Wat de 4.0-verandering in de praktijk betekent: een hypervisorfout die virtuele gastmachines compromitteert, wordt eindelijk beoordeeld voor wat het is, in plaats van te worden samengedrukt in een enkele vlag “scope changing”. Alle vier de versies kunnen worden vergeleken in de rekenmachine.
Heartbleed 7.5, Log4Shell 10.0: wat de kloof je vertelt
CVE-2014-0160 (Heartbleed) is beoordeeld 7.5 in CVSS 3.1 — “hoog”, niet “kritiek”. De vector kent alleen impact toe aan vertrouwelijkheid: de fout laat een aanvaller toe lees het geheugen van de server, zonder iets te wijzigen of te verstoren. Op papier is dat minder ernstig dan het uitvoeren van code.
In werkelijkheid heeft het TLS-privésleutels op een groot deel van het internet openbaar gemaakt en een wereldwijde certificaatvervangingscampagne op gang gebracht. CVE-2021-44228 (Log4Shell), met een beoordeling van 10,0, maakte zelfs nog meer lawaai – maar de kloof van 2,5 punten tussen de twee meet niet de kloof in de impact in de echte wereld. CVSS beoordeelt een mechanisme, geen gevolg.
De meest tijdrovende fout
Wat het voor u betekent, in de praktijk
Een werkregel die in vier regels past, klaar om maandag te worden toegepast:
- Sorteer nooit op CVSS alleen. Gebruik het om banden te verbreken, niet om de volgorde te bepalen.
- Voor de gebreken die u aangaan, leest u de vector vóór de partituur:
AV:LofPR: Hop een machine zonder externe toegang betekent vaak een noodgeval minder. - Vul de milieulaag in voor uw tien meest kritische activa – niet voor de duizend andere. Dat is waar de moeite loont.
- Noteer de versie naast elke partituur. Een 7,0 in 2,0 en een 7,0 in 4,0 beschrijven niet hetzelfde.