Come calcoliamo il rischio delle vulnerabilità
Quando si analizza una vulnerabilità, il punteggio CVSS è un punto di partenza fondamentale, ma non sempre è sufficiente per stabilire quanto rapidamente intervenire. Una vulnerabilità con CVSS elevato non è necessariamente quella con la maggiore probabilità di essere sfruttata. Al contrario, una vulnerabilità con un punteggio CVSS più contenuto può rappresentare una priorità concreta se presenta una probabilità di sfruttamento significativamente maggiore.
Il nostro modello di prioritizzazione
Per questo abbiamo introdotto un priority score che combina due dimensioni differenti:
- CVSS, che misura la gravità teorica della vulnerabilità (www.first.org/cvss/) ;
- EPSS, che stima la probabilità che una vulnerabilità venga sfruttata (www.first.org/epss/)
L'obiettivo non è sostituire CVSS o EPSS, ma trasformare queste informazioni in una misura unica utilizzabile per ordinare le attività di remediation.
La formula
Il nostro priority score è calcolato secondo la formula:
PS = CVSS × log10(EPSS_percentile × 100 + 1)
Il modello utilizza quindi il percentile EPSS, anziché il semplice valore di probabilità EPSS. Il percentile indica la posizione della vulnerabilità rispetto alle altre CVE in termini di probabilità di sfruttamento stimata. Questo è particolarmente utile perché la distribuzione dell'EPSS è fortemente asimmetrica: una grande parte delle vulnerabilità si concentra nei percentili più bassi, mentre una frazione molto più piccola raggiunge valori elevati.
Perché utilizziamo il logaritmo?
L'EPSS percentile può variare enormemente. Utilizzarlo direttamente produrrebbe
una scala molto sensibile ai valori estremi.
Il termine log10(EPSS_percentile × 100 + 1) comprime questa variazione.
Il fattore ×100 trasforma il percentile, espresso nell'intervallo
0–1, in una scala 0–100.
Il +1 evita invece il problema matematico di log(0) quando il percentile è pari a zero.
Il risultato è un modello nel quale l'EPSS influenza significativamente la priorità,
ma senza permettere che una variazione estrema del percentile domini completamente
la componente CVSS.
Un esempio concreto
Supponiamo due vulnerabilità entrambe con CVSS 7.5.
La prima si trova al 10° percentile EPSS:
7.5 × log10(10 + 1) ≈ 7.81
La seconda si trova al 90° percentile:
7.5 × log10(90 + 1) ≈ 14.70
A parità di gravità teorica, la seconda vulnerabilità riceve quindi
una priorità operativa molto maggiore perché il suo profilo di sfruttamento
stimato è significativamente più elevato.
Il modello permette così di evidenziare una differenza che il solo CVSS
non sarebbe in grado di rappresentare.
Le quattro classi di priorità
Il punteggio ottenuto viene trasformato in una classe operativa secondo queste soglie di classificazione:
High: score ≥ 6
Medium: score ≥ 3
Low: score < 3
È importante sottolineare che queste categorie rappresentano la nostra priorità operativa, non la severità CVSS.
Per esempio, una vulnerabilità con CVSS 7.5 (High) può essere classificata Critical dal nostro modello. Non c'è quindi alcuna contraddizione: il primo valore descrive la severità secondo lo standard CVSS, mentre il secondo indica quanto rapidamente riteniamo opportuno intervenire.
Cosa succede quando EPSS non è disponibile?
Una CVE appena pubblicata potrebbe non avere ancora un dato EPSS utilizzabile. In questo caso il modello non può stimare la componente relativa alla probabilità di sfruttamento. La priorità viene quindi calcolata sul solo CVSS, evitando di introdurre valori arbitrari o stime non supportate dai dati disponibili.
Questo consente di mantenere il processo deterministico anche nelle prime ore o nei primi giorni di vita di una vulnerabilità.
Perché abbiamo scelto questo approccio
Il nostro obiettivo non è produrre un ulteriore numero da aggiungere al già ampio insieme di metriche di vulnerability management.
Il priority score serve a rispondere a una domanda più concreta: tra le vulnerabilità che dobbiamo gestire, quali meritano la nostra attenzione per prime?
CVSS risponde principalmente alla domanda “quanto è grave?”. EPSS contribuisce a rispondere alla domanda “quanto è probabile che venga sfruttata?”. Il nostro modello combina le due dimensioni per ottenere una terza informazione: quanto è prioritaria dal punto di vista operativo?
È questa distinzione che ci permette, ad esempio, di classificare come Critical una vulnerabilità con CVSS 7.5 quando la sua probabilità relativa di sfruttamento è sufficientemente elevata, senza modificare o reinterpretare il punteggio CVSS originale.
Il risultato è una prioritizzazione pensata non per descrivere astrattamente le vulnerabilità, ma per supportare concretamente le decisioni di remediation.