Cada hallazgo de un informe de prueba de penetración lleva una línea como esta:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
y un número a su lado. En las reuniones se cita el número. Lo que conviene leer es la línea, porque explica por qué el número es el que es.
CVSS, el Common Vulnerability Scoring System, lo publica FIRST. La versión 4.0 se publicó el 1 de noviembre de 2023.
Qué mide la puntuación
CVSS mide la gravedad de una vulnerabilidad: lo fácil que es explotarla y cuánto daño causa su explotación. No mide el riesgo, que depende también de lo que el sistema afectado vale para usted y de si alguien lo está atacando. Lo dice la propia especificación, y la versión 4.0 hizo visible la distinción en los nombres de las puntuaciones:
| Nombre | Se compone de | Responde a |
|---|---|---|
| CVSS-B | Métricas base | ¿Qué gravedad tiene la vulnerabilidad en sí misma? |
| CVSS-BT | Base y amenaza | ¿Qué gravedad tiene, dado lo que hacen ahora los atacantes? |
| CVSS-BE | Base y entorno | ¿Qué gravedad tiene en nuestro entorno? |
| CVSS-BTE | Las tres | ¿Qué gravedad tiene aquí y ahora? |
Un informe de prueba de penetración suele dar CVSS-B, a veces CVSS-BE cuando el pentester conoce bien el entorno. Las bases de datos de vulnerabilidades publican CVSS-B. Si una puntuación no lleva letras detrás, suponga que es B.
Las métricas base
Las cinco primeras describen cómo se lleva a cabo el ataque.
| Métrica | Valores | Pregunta |
|---|---|---|
| Attack Vector (AV) | Network, Adjacent, Local, Physical | ¿Desde dónde puede alcanzarlo el atacante? |
| Attack Complexity (AC) | Low, High | ¿Tiene que superar el atacante una protección existente? |
| Attack Requirements (AT) | None, Present | ¿Depende el ataque de condiciones del despliegue, como una condición de carrera o una posición en la red? |
| Privileges Required (PR) | None, Low, High | ¿Qué acceso necesita el atacante de antemano? |
| User Interaction (UI) | None, Passive, Active | ¿Tiene que hacer algo otra persona? |
La métrica Attack Requirements es nueva en la versión 4.0: separa las condiciones del entorno de las protecciones que hay que superar. La métrica User Interaction tiene ahora tres valores: Passive significa una acción corriente, como abrir una página; Active significa que la víctima tiene que hacer algo inusual.
Las seis siguientes describen el daño al sistema vulnerable y a los sistemas subsiguientes a los que se puede llegar a través de él:
| Métrica | Valores |
|---|---|
| Confidencialidad: VC, SC | High, Low, None |
| Integridad: VI, SI | High, Low, None |
| Disponibilidad: VA, SA | High, Low, None |
La versión 3.1 tenía una métrica llamada Scope para el efecto sobre otros sistemas. Era una fuente de desacuerdo entre quienes puntuaban y se sustituyó por las tres métricas explícitas para los sistemas subsiguientes.
Lectura del ejemplo
AV:N/AC:L/AT:N/PR:N/UI:N: accesible por la red, ninguna protección que superar, ninguna condición especial, no hace falta cuenta, nadie tiene que hacer clic en nada. VC:H/VI:H/VA:H: pérdida total de la confidencialidad, la integridad y la disponibilidad del sistema vulnerable. SC:N/SI:N/SA:N: ningún efecto más allá de él.
La puntuación de este vector es 9.3, de gravedad crítica. Si la misma vulnerabilidad diera además el control total de los sistemas que hay detrás, las tres últimas métricas serían High y la puntuación sería 10.0.
Cambie una letra y el significado cambia. PR:L en lugar de PR:N indica que hace falta una cuenta: para un servicio público con registro libre eso cambia poco; para un sistema interno, mucho. La puntuación cambia mucho menos que el significado. Por eso vale la pena leer el vector.
La escala
| Valoración | Puntuación |
|---|---|
| Ninguna | 0.0 |
| Baja | 0.1 – 3.9 |
| Media | 4.0 – 6.9 |
| Alta | 7.0 – 8.9 |
| Crítica | 9.0 – 10.0 |
Amenaza y entorno
Exploit Maturity (E) es la única métrica de amenaza: Attacked, Proof-of-Concept o Unreported. Una vulnerabilidad que se está explotando en ataques reales conserva su puntuación; una para la que no se conoce ningún exploit obtiene una puntuación más baja.
Las métricas de entorno le permiten redefinir las métricas base para su despliegue e indicar cuánto importan la confidencialidad, la integridad y la disponibilidad para el sistema afectado. Una vulnerabilidad crítica en un sistema que no contiene nada de valor y que solo es accesible desde una red de pruebas no es crítica para usted, y la puntuación de entorno puede reflejarlo.
La versión 4.0 añade además métricas suplementarias, como Safety, Automatable y Recovery. Describen la vulnerabilidad con más detalle y no modifican la puntuación.
Lo que la puntuación no le dice
- Si la atacarán. Para las vulnerabilidades conocidas, EPSS estima la probabilidad de explotación. La gravedad y la probabilidad juntas dicen más que cada una por separado.
- Cuánto vale el sistema. Un hallazgo de gravedad media en el sistema de pagos puede importar más que uno de gravedad crítica en la copia de preproducción de una página de marketing.
- Qué consigue la cadena. Tres hallazgos de gravedad media que, combinados, permiten tomar el control de una cuenta se recogen en el informe como tres hallazgos de gravedad media y como una ruta de ataque. Lea ambas cosas.
Cómo usarla
Ordene primero por la puntuación y después corrija con lo que usted sabe: el valor del activo, la exposición a internet, la explotación conocida, las cadenas del informe. Cuando la prioridad a la que llegue difiera de la puntuación, anote por qué. Un buen informe hace lo mismo: da la puntuación, el vector y, cuando el pentester no está de acuerdo con el número, el motivo.
Cómo valoramos y gestionamos los hallazgos se describe en la metodología.