# Common Vulnerability Scoring System

Il Common Vulnerability Scoring System (CVSS) è una norma tecnica aperta per valutare la gravità delle vulnerabilità di sicurezza di un sistema informatico. CVSS assegna un punteggio di gravità alle vulnerabilità, consentendo a chi si occupa di rispondere all'emergenza di stabilire la priorità di risposte e risorse in base al livello di minaccia. I punteggi vengono calcolati con una formula che dipende da diverse metriche che approssimano la facilità e l'impatto di un exploit. Il punteggio è espresso in una scala da 0 a 10, dove 10 indica il livello di vulnerabilità più grave. Sebbene molti utilizzino solo il punteggio di base CVSS per determinare la gravità, esistono anche punteggi temporali e ambientali, per tenere conto rispettivamente della disponibilità di mitigazioni e della diffusione dei sistemi vulnerabili all'interno di un'organizzazione.
L'attuale versione di CVSS (CVSSv4.0) è stata rilasciata a novembre 2023.

## Storia

La ricerca del National Infrastructure Advisory Council (NIAC) nel 2003/2004 ha portato al lancio della versione 1 (CVSSv1) nel febbraio 2005, con l'obiettivo di essere "progettato per fornire livelli di gravità aperti e standard universali delle vulnerabilità del software". Questa bozza iniziale non era stata soggetta a peer review o revisione da parte di altre organizzazioni. Nell'aprile 2005, NIAC ha selezionato il Forum of Incident Response and Security Teams (FIRST) per occuparsi dello sviluppo futuro del CVSS.
Il feedback dei fornitori che utilizzano CVSSv1 in produzione ha indicato che c'erano "problemi significativi nella bozza iniziale", così nell'aprile 2005 è cominciato il lavoro sulla versione 2 di CVSS (CVSSv2), lanciata nella sua revisione finale nel giugno 2007.
Ulteriori feedback hanno portato all'inizio del lavoro sulla versione 3 di CVSS nel 2012, che si è concluso con il rilascio di CVSSv3.0 a giugno 2015.

## Terminologia

La valutazione CVSS misura tre aree di interesse:
* Metriche di base per le qualità intrinseche a una vulnerabilità
* Metriche temporali per le caratteristiche che evolvono nel corso della vita della vulnerabilità
* Metriche ambientali per le vulnerabilità che dipendono da una particolare implementazione o ambiente
Viene generato un punteggio numerico per ciascuno di questi gruppi di metriche. Una stringa vettoriale (o semplicemente "vettore" in CVSSv2), rappresenta i valori di tutte le metriche come un blocco di testo.

## Criticità della versione 2

Diversi fornitori e organizzazioni hanno espresso insoddisfazione per CVSSv2.
La società Risk Based Security, che gestisce il database delle vulnerabilità open source, e la Open Security Foundation hanno pubblicato congiuntamente una lettera pubblica a FIRST in merito alle carenze e ai fallimenti di CVSSv2. Gli autori hanno citato una mancanza di granularità in diverse metriche che si traduce in vettori e punteggi CVSS che non distinguono correttamente le vulnerabilità di diverso tipo e profili di rischio. È stato anche notato che il sistema di punteggio CVSS richiede una conoscenza eccessiva dell'esatto impatto della vulnerabilità.
Oracle ha introdotto il nuovo valore della metrica "Partial+" per Riservatezza, Integrità e Disponibilità, per colmare le lacune percepite nella descrizione tra Parziale e Completo nelle specifiche ufficiali CVSS.

## Versione 3

Per affrontare alcune di queste criticità, nel 2012 si è avviato lo sviluppo della versione 3 di CVSS. La versione finale è stata denominata CVSS v3.0 e rilasciata nel giugno 2015. Oltre a un documento di specifica, sono stati rilasciati anche una guida per l'utente e un documento di esempi.
Diverse metriche sono state modificate, aggiunte e rimosse. Le formule numeriche sono state aggiornate per incorporare le nuove metriche pur mantenendo l'intervallo di punteggio esistente di 0-10. Sono stati definiti i livelli di gravità testuale Nessuno (0), Basso (0,1-3,9), Medio (4,0-6,9), Alto (7,0-8,9) e Critico (9,0-10,0), simili alle categorie NVD definite per CVSS v2 che non facevano parte di quello standard.

### Modifiche dalla versione 2
#### Metriche di base

Nel vettore di base sono state aggiunte le nuove metriche Interazione utente (UI) e Privilegi richiesti (PR) per aiutare a distinguere le vulnerabilità che richiedono l'interazione dell'utente o i privilegi di utente o amministratore per essere sfruttate. In precedenza, questi concetti facevano parte della metrica del vettore di accesso di CVSSv2. Il vettore di base ha visto anche l'introduzione della nuova metrica Scope (S), progettata per chiarire quali vulnerabilità possono essere sfruttate e quindi utilizzate per attaccare altre parti di un sistema o di una rete. Queste nuove metriche consentono al vettore di base di esprimere più chiaramente il tipo di vulnerabilità da valutare.
Le metriche Riservatezza, Integrità e Disponibilità (C, I, A) sono state aggiornate per avere punteggi costituiti da Nessuno, Basso o Alto, anziché Nessuno, Parziale, Completo di CVSSv2. Ciò consente una maggiore flessibilità nel determinare l'impatto di una vulnerabilità sulle metriche della CIA.
Access Complexity è stato rinominato Attack Complexity (AC) per chiarire che i privilegi di accesso sono stati spostati in una metrica separata. Questa metrica ora descrive quanto può essere ripetibile l'exploit di questa vulnerabilità; AC è alto se l'attaccante richiede tempismo perfetto o altre circostanze (diverse dall'interazione dell'utente, che è anche una metrica separata) che potrebbe non essere facilmente duplicato nei tentativi futuri.
Attack Vector (AV) ha visto l'inclusione di un nuovo valore metrico di Physical (P), per descrivere le vulnerabilità che richiedono l'accesso fisico al dispositivo o al sistema per funzionare.

#### Metriche temporali

Le metriche temporali sono rimaste sostanzialmente invariate rispetto a CVSSv2.

#### Metriche ambientali

Le metriche ambientali di CVSSv2 sono state completamente rimosse e sostituite essenzialmente con un secondo punteggio di base, noto come vettore modificato. La Base Modificata ha lo scopo di riflettere le differenze all'interno di un'organizzazione o azienda rispetto al mondo nel suo insieme. Sono state aggiunte nuove metriche per catturare l'importanza di Riservatezza, Integrità e Disponibilità in un ambiente specifico.

### Criticità della versione 3

In un post sul blog nel settembre 2015, il Centro di coordinamento del CERT ha discusso dei limiti di CVSSv2 e CVSSv3.0 per l'uso nel valutare le vulnerabilità nei sistemi tecnologici emergenti come l'Internet delle cose.

## Versione 3.1

Il 17 giugno 2019 è stato rilasciato un aggiornamento minore di CVSSv3.0. L'obiettivo della versione 3.1 di CVSS era chiarire e migliorare lo standard CVSS versione 3.0 esistente senza introdurre nuove metriche o valori di metrica, consentendo l'adozione senza attriti del nuovo standard sia da parte dei fornitori di punteggio che dei consumatori. L'usabilità era una considerazione primaria quando si apportavano miglioramenti allo standard CVSS. Diverse modifiche apportate in CVSS v3.1 servono a migliorare la chiarezza dei concetti introdotti in CVSS v3.0, e quindi a migliorare la facilità d'uso complessiva dello standard.
FIRST ha utilizzato il contributo di esperti del settore per continuare a migliorare e perfezionare CVSS per essere sempre più applicabile alle vulnerabilità, ai prodotti e alle piattaforme sviluppate negli ultimi 15 anni e oltre. L'obiettivo principale di CVSS è fornire un modo deterministico e ripetibile per valutare la gravità di una vulnerabilità in molti gruppi diversi, consentendo ai consumatori di CVSS di utilizzare questo punteggio come input per una matrice decisionale più ampia di rischio, mitigazione specifica per il loro ambiente particolare e propensione al rischio.
Gli aggiornamenti alla specifica CVSS versione 3.1 includono il chiarimento delle definizioni e la spiegazione delle metriche di base esistenti come il vettore di attacco, i privilegi richiesti, l'ambito e i requisiti di sicurezza. È stato inoltre definito un nuovo metodo standard di estensione del CVSS, chiamato CVSS Extensions Framework, che consente a un fornitore di punteggio di includere metriche e gruppi di metriche aggiuntivi mantenendo le metriche di base, temporali e ambientali ufficiali. Le metriche aggiuntive consentono a settori industriali come la privacy, la sicurezza, l'automotive, l'assistenza sanitaria, ecc., di valutare i fattori che sono al di fuori dello standard CVSS di base. Infine, il Glossario dei termini CVSS è stato ampliato e perfezionato per coprire tutti i termini utilizzati nella documentazione CVSS versione 3.1.