Cos'è CVSS?
Il CVSS (Sistema comune di punteggio delle vulnerabilità) valuta il gravità di una vulnerabilità su una scala di da 0 a 10. Mantenuto da FIRST, produce un punteggio, un indice di gravità e un “vettore” riproducibile. Misura il danno potenziale, non la probabilità che si verifichi.
Un avviso dice "CVSS 9.8". La direzione chiede se questo sia peggiore del 8.1 della settimana scorsa. La risposta onesta sta in una pagina e inizia con la lettura del vettore anziché del numero.
Due immagini per renderlo concreto
CVSS è il magnitudo di un terremoto. Un terremoto di magnitudo 8 rilascia un’enorme energia, sia che colpisca una megalopoli o un deserto disabitato. La grandezza descrive l'evento, mai le sue conseguenze per te. Questa è esattamente la relazione tra un punteggio CVSS e il tuo sistema informativo.
CVSS è anche il scheda tecnica di un'auto. La velocità massima è di 250 km/h. Non dice nulla sulla velocità con cui stai guidando, se la strada è bagnata o se qualcun altro ha le chiavi. Qui due immagini sono meglio di una: la prima mostra che il punteggio è intrinseco, la seconda che descrive a potenziale quel contesto potrebbe non realizzarsi mai.
I cinque livelli di gravità
Il punteggio viene associato a un'etichetta qualitativa, quella che appare negli avvisi:
| Punteggio CVSS | Gravità |
|---|---|
| 0.0 | Nessuno |
| Da 0,1 a 3,9 | Basso |
| 4.0-6.9 | Medio |
| da 7,0 a 8,9 | Alto |
| 9.0-10.0 | Critico |
Queste soglie si applicano a CVSS 3.xe 4.0. Il vecchio CVSS 2.0 aveva solo tre livelli e nessuna etichetta “critica”: lo stesso difetto può quindi portare due etichette diverse a seconda della versione utilizzata per valutarlo.
Lettura di un vettore campo per campo
Il punteggio non nasce dal nulla: viene calcolato da a vettore, una stringa che codifica otto decisioni. Prendi quello per Log4Shell (CVE-2021-44228):
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Si legge da sinistra a destra, come una frase:
| Campo | Valore | Cosa significa |
|---|---|---|
AV - vettore di attacco | N (rete) | Fruibile da internet, senza alcun accesso preventivo alla rete locale. |
AC – attaccare la complessità | L (basso) | Nessuna condizione particolare: l'attacco funziona sempre. |
PR — privilegi richiesti | N (nessuno) | Nessun account necessario. |
interfaccia utente — interazione dell'utente | N (nessuno) | Nessuno deve fare clic su nulla. |
S - ambito | C (cambiato) | Il danno si estende oltre il componente vulnerabile e raggiunge ciò che si trova dietro di esso. |
C / I / A | H / H / H | Impatto totale su riservatezza, integrità e disponibilità. |
Punteggio risultante: 10.0. Ora la parte che quasi nessuno mostra: cosa sta cambiando un singolo campo fa:
| Cambiare | Nuovo punteggio | Cosa significa |
|---|---|---|
S:C → S:U (il danno rimane contenuto) | 9.8 | Questo è il famoso “9.8” che vedi ovunque: esecuzione di codice remoto non autenticato, senza alcuna modifica dell’ambito. |
PR:N → PR: H (è richiesto un account amministratore) | 9.1 | Richiedere un account privilegiato riduce la superficie di attacco, ma costa solo circa un punto: CVSS rimane duro quando gli impatti sono totali. |
AV:N → AV:L (accesso locale richiesto) | 9.3 | Il fatto di dover essere sulla macchina cambia già tutto nella pratica... e quasi nulla nella partitura. |
Verificalo tu stesso: ciascuno di questi vettori può essere ricalcolato nel Calcolatrice CVSS 3.1. È l'esercizio di dieci minuti che ti porta dal “leggo un numero” al “capisco una valutazione”.
Base, minaccia, ambientale: tre strati
CVSS ha tre gruppi di parametri e la stragrande maggioranza dei database pubblici ne pubblica solo uno.
- Fondo: gravità intrinseca, stabile nel tempo. È il punteggio che vedi il 99% delle volte.
- Temporale/minaccia: si adatta alla maturità dell'exploit e all'eventuale esistenza di una correzione. Può solo inferiore il punteggio base.
- Ambientale: adatta il punteggio a tuo contesto: criticità delle risorse, controlli compensativi, requisiti specifici di riservatezza o disponibilità.
La conseguenza diretta: il punteggio che leggi in un advisory non ti è mai stato calcolato. Lo strato ambientale, quello che ti riguarda, spetta a te da riempire – e quasi nessuno lo fa.
Versioni: 2.0, 3.0, 3.1 e 4.0
| Versione | Cosa cambia | Dove lo vedi |
|---|---|---|
| 2.0 (2007) | Metriche più grossolane, nessun livello “critico”, impatti classificati come parziali/completi. | Archivi e vecchi rapporti dello scanner. |
| 3.0 (2015) | Introduce la metrica di ambito (Ambito) e i privilegi richiesti. | CVEs pubblicato tra il 2016 e il 2019. |
| 3.1 (2019) | Chiarisce arrotondamenti e documentazione; formule identiche a 3.0. | La stragrande maggioranza di NVD CVEs oggi. |
| 4.0 (2023) | Rimuove Ambito e lo sostituisce con due blocchi di impatto: VC/VI/VA per il sistema vulnerabile, SC/SI/SA per i sistemi dietro di esso. Aggiunge requisiti di attacco (AT). | Un numero crescente di avvisi ai fornitori. |
Cosa significa in pratica il cambiamento 4.0: un difetto dell'hypervisor che compromette le macchine virtuali guest viene finalmente valutato per quello che è, invece di essere compresso in un unico flag di "ambito modificato". Tutte e quattro le versioni possono essere confrontate nella calcolatrice.
Heartbleed 7.5, Log4Shell 10.0: cosa ti dice il divario
CVE-2014-0160 (Heartbleed) è valutato 7.5 in CVSS 3.1 — “alto”, non “critico”. Il suo vettore attribuisce impatto solo alla riservatezza: la falla consente a un utente malintenzionato leggere la memoria del server, senza modificare o interrompere nulla. Sulla carta, è meno grave dell'esecuzione del codice.
In realtà, ha esposto le chiavi private TLS su un’enorme porzione del web e ha innescato una campagna mondiale di sostituzione dei certificati. CVE-2021-44228 (Log4Shell), valutato 10.0, ha fatto ancora più rumore, ma il divario di 2,5 punti tra i due non misura il divario nell’impatto nel mondo reale. CVSS valuta un meccanismo, non una conseguenza.
L'errore che richiede più tempo
Cosa significa per te, in pratica
Una regola operativa che sta in quattro righe, pronta per essere applicata lunedì:
- Non ordinare mai per CVSS solo. Usalo per rompere i legami, non per stabilire l'ordine.
- Per i difetti che ti colpiscono leggi il vettore prima del punteggio:
AV:LoPR: Hsu una macchina senza accesso esterno spesso significa un'emergenza in meno. - Compila il livello ambientale per le tue dieci risorse più critiche, non per le altre migliaia. È lì che lo sforzo viene ripagato.
- Registra la versione accanto a ogni partitura. Un 7.0 in 2.0 e un 7.0 in 4.0 non descrivono la stessa cosa.