Blog

Como valorar las vulnerabilidades en nuestra auditoría – Parte I – Calcular CVSS Base Score

Una de las partes más complicadas y tediosas de una auditoría de seguridad o pentest, según sea el caso, es la redacción del informe. Por lo general, suelen solicitar solo un informe técnico en el que se deben especificar todos los detalles de la auditoría. Lo verdaderamente importante en este tipo de informes son las pruebas realizadas durante el estudio, los resultados obtenidos y las vulnerabilidades encontradas. El contenido de estos informes suele variar según los requerimientos de cada empresa pero estos tres factores siempre van a existir.

De igual manera, estas empresas podrían solicitar además un informe ejecutivo. Este tipo de informe suele contener un resumen de toda la auditoría, sin entrar en ningún momento en detalles técnicos. Por lo general suele contener información de todos los activos que fueron auditados y así como de las vulnerabilidades encontradas, asignándole a cada una de ellas una criticidad. A manera de resumen, en esta clase de informes se debe plasmar toda la información de forma que un usuario sin conocimientos técnicos en la materia pueda comprender la criticidad de las vulnerabilidades encontradas y los problemas que debe solucionar.

La asignación de la criticidad de estas vulnerabilidades debe hacerse de una manera objetiva. Para poder medir esta criticidad existe el Common Vulnerability Scoring System (CVSS), el cual es un sistema que permite obtener un valor objetivo a partir de distintos factores.

En la actualidad se utiliza la segunda versión de esta métrica para la valoración de las vulnerabilidades (CVSS V2), sin embargo en mayo de 2012, fue aprobado el desarrollo de una nueva versión de la misma. Este sistema de valoración está compuesto por tres métricas distintas, que son métrica base, métrica temporal y métrica de entorno. En este artículo se va a explicar el cálculo de la métrica base:

  1. Métrica Base: Engloba las características de una vulnerabilidad que permanece constante. Entre estas características se encuentran:
  • Impacto: Esta característica viene definida por cómo afecta la vulnerabilidad al activo en cuanto a Confidencialidad, Integridad y Disponibilidad se refiere.

– Confidencialidad: Hace referencia a la limitación de acceso a la información y a la comunicación para usuarios autorizados.

– Integridad: Hace referencia a la fiabilidad y a la veracidad de la información.

– Disponibilidad: Hace referencia a la accesibilidad de los recursos de la información.

Los posibles valores para calificar estos factores son:

a) Ninguno: No afecta al activo.

b) Parcial: El atacante no tiene el control sobre los resultados obtenidos al aprovechar esta vulnerabilidad. Algunos ejemplos de ello podrían ser:

    • Respecto a la confidencialidad: una vulnerabilidad que permita extraer solo algunas tablas de la base de datos.
    • Respecto a la  integridad: una vulnerabilidad que permita modificar o sobreescribir algunos datos, pero el atacante no tiene control sobre cuál de ellos podrá ser modificado.
    • Respecto a la disponibilidad: una vulnerabilidad que permita un número limitado de conexiones exitosas a un servicio como por ejemplo un ataque de SYN Flood que reduce la disponibilidad del servidor.

c) Completo: El atacante tiene el control total de las acciones que realiza y de los resultados que obtiene. Algunos ejemplos de ello podrían ser:

    • Respecto a la confidencialidad: es posible leer o acceder a todos los datos del sistema.
    • Respecto a la integridad: una pérdida completa de la protección del sistema o que un atacante sea capaz de modificar cualquier archivo en el sistema de destino.
    • Respecto a la disponibilidad: que un atacante sea capaz de hacer que el recurso o servicio quede totalmente inaccesible.

Para el cálculo total del impacto se utiliza la siguiente formula:

Impacto = 10.41 * ( 1 – ( 1 – Confidencialidad ) * ( 1 – Integridad ) * ( 1 – Disponibilidad ) )

Habría que sustituir en la formula las variables Confidencialidad, Integridad y Disponibilidad por los valores correspondientes a Ninguno, Parcial y Completo que se muestran a continuación:

a) Ninguno =  0

b) Parcial = 0.275

c) Completo = 0.66

  • Explotabilidad: Esta característica viene definida por los siguientes tres factores:

– Vector de acceso: Este factor refleja cómo se explota la vulnerabilidad. Los posible valores son:

a) Local: Requiere que el atacante tenga acceso físico al activo vulnerable.

b) Adyacente: Requiere que el atacante tenga acceso a la red local donde reside el activo.

c) Remoto: Es posible realizar el ataque a través de internet.

– Complejidad de acceso: Este factor se refiere a la complejidad del ataque que se lleva a cabo para aprovechar esta vulnerabilidad y sus valores son alto, medio o bajo.

– Autenticación: Este factor hace referencia al número de veces que un atacante debe autenticarse en un objetivo antes de poder explotar una vulnerabilidad. Los valores para cada uno de ellos son:

a) Múltiple: Se requiere dos o más autenticaciones para poder explotar la vulnerabilidad.

b) Simple: Se requiere de una autenticación para poder explotar la vulnerabilidad.

c) Ninguno: No se requiere ninguna autenticación.

El cálculo total de la “explotabilidad” se realiza con la siguiente formula:

Explotabilidad = 20 * Vector_de_acceso * Complejidad_de_acceso * Autenticación

De igual manera que con la fórmula “impacto”, en esta habría que sustituir las variables Vector_de_acceso, Complejidad_de_aceso y Autenticación según las siguientes especificaciones:

– Los valores para la variable Vector_de_acceso son:

a) Local = 0.395

b) Adyacente = 0.646

c) Remoto = 1

– Los valores para la variable Complejidad_de_acceso son:

a) Alto: 0.35

b) Medio: 0.61

c) Bajo: 0.71

– Los valores para la variable Autenticación son:

a) Múltiple: 0.45

b) Simple: 0.56

c) Ninguno: 0.704

Una vez calculadas estas dos características se utilizará la siguiente fórmula, siendo el resultado de esta el valor final de la métrica base:

Metrica Base = round_to_1_decimal ( ( ( 0.6 * Impacto ) + ( 0.4 * Explotabilidad ) – 1.5 ) * f ( Impacto ) )

En esta última formula, hay que tener en cuenta que f(Impacto) es una contante, y su valor será ‘1.176’ siempre que el resultado de la fórmula ”Impacto” no sea 0. La única manera de que el resultado de la fórmula “Impacto” sea ‘0’ es porque la supuesta vulnerabilidad no tiene un impacto en cuanto a Confidencialidad, Integridad o Disponibilidad se refiere sobre el activo, por lo tanto no debe ser considerada como vulnerabilidad.

Con esto concluye el primer artículo de como calcular la métrica base del CVSS. En el siguiente artículo veremos cómo calcular las dos métricas restantes (Temporal y de Entorno) .

Umberto – umberto@highsec.es – @lTikkOl

Leave a Reply

*

    No Twitter Messages