22 mayo 2012

Centro de Servicio de Vulnerabilidades - VulnerabilityChaser

Somos Ibrahim Peraza y María Ángeles Caballero,  dos alumnos del Máster Universitario de las Tecnologías de la Información y la Comunicación de la UEM trabajando en el Proyecto de Fin de Máster “Centro de Servicio de Vulnerabilidades - VulnerabilityChaser”. Los profesores del Máster ofertan proyectos relacionados con el mundo de la seguridad y éstos, se desarrollan por varios alumnos. Los proyectos requieren un trabajo previo de investigación, abordando un análisis en profundidad de la problemática concreta y un desarrollo posterior, siempre tutelado por el director del proyecto, en nuestro caso Alejandro Ramos.

En concreto, nuestro proyecto va enfocado a la gestión de vulnerabilidades de los activos de una compañía. Al realizar un estudio previo pudimos observar varias deficiencias en la información que proporcionan los escáneres de vulnerabilidades como pueden ser Nessus o GFI LANguard. Son herramientas muy potentes en cuanto al análisis de vulnerabilidades, pero la información que se muestra acerca de la severidad de las vulnerabilidades no es del todo realista, ya que la puntuación se basa en valores estándar como el CVSS Base sin tener en cuenta factores concretos del sistema afectado como puede ser si es un equipo en producción o simplemente se utiliza para pruebas de desarrollo. Otra deficiencia observada, es que no es posible ver la evolución del estado de las vulnerabilidades a lo largo del tiempo (abierta, cerrada, asumida o planificada), ya que los escáneres de vulnerabilidades nos entregan un informe sobre el estado de nuestros activos en un instante de tiempo concreto, no guardan los datos para ser comparados frente a futuros escaneos.

Nessus usa el CVSS base score para clasificar la severidad de una vulnerabilidad pudiendo ser info, medium, high o critical. El CVSS base score no es suficiente para determinar la severidad de una vulnerabilidad ya que entran en juego otros factores, como por ejemplo, la existencia o no de un exploit para dicha vulnerabilidad, el tipo de información que almacena el sistema, tipo de entorno (integración, preproducción o producción) , etc.
Lo ideal sería calcular para cada vulnerabilidad el CVSS final. El CVSS se calcula en función de 3 vectores: base, temporal y environmental:

-    Base: representa las características intrínsecas y fundamentales de una vulnerabilidad que son constantes en el tiempo y en los entornos de usuario.
Las métricas de éste vector comprenden:

  • Access Vector (AV): refleja como la vulnerabilidad es explotada.
    • Local (L); Adjacent Network (A); Network Access (N).
  • Access Complexity (AC): mide la complejidad del ataque para explotar la vulnerabilidad.
    • High (H); Medium (M); Low (L).
  • Authentication (Au): mide el número de veces que un atacante debe de autenticarse para explotar la vulnerabilidad.
    • Multiple (M); Single (S); None (N).
  • Confidentiality Impact (C): este indicador mide el impacto sobre la confidencialidad de una vulnerabilidad al explotarla.
    • None (N); Partial (P); Complete (C).
  • Integrity Impact (I): este indicador mide el impacto a la integridad de una vulnerabilidad.
    • None (N); Partial (P); Complete (C).
  • Availability Impact (A): este indicador mide el impacto a la disponibilidad de una vulnerabilidad.
    • None (N); Partial (P); Complete (C).
-    Temporal: representa las características de una vulnerabilidad que cambian con el tiempo pero no entre los entornos de usuario.
Las métricas de éste vector comprenden:
  • Exploitability (E): esta métrica mide el estado actual de las técnicas de exploit o disponibilidad de código.
    • Unproven (U); Proof-of-Concept (POC); Functional (F); High (H); Not Defined (ND).
  • Remediation Level (RL): mide el nivel de corrección de la vulnerabilidad, si existe parche, soluciones provisionales, etc.
    • Official Fix (OF); Temporary Fix (TF); Workaround (W); Unavailable (U); Not Defined (ND).
  • Report Confidence (RC): esta métrica mide el grado de existencia de confianza en la vulnerabilidad.
    • Unconfirmed (UC); Uncorroborated (UR); Confirmed (C); Not Defined (ND)
-    Environmental: representa las características de una vulnerabilidad que son relevantes y únicas para el entorno de cada usuario concreto.
Las métricas de éste vector comprenden:
  • Collateral Damage Potential (CDP): éste indicador mida la potencia de pérdida de vidas o bienes físicos a través del daño de equipos o robo de éstos.
    • None (N); Low (L); Low-Medium (LM); Medium-High (MH); High (H); Not Defined (ND)
  • Target Distribution (TD): éste indicador mide la proporción de los sistemas vulnerables, número de sistemas que podrían verse afectados por la vulnerabilidad.
    • None (N); Low (L); Medium (LM); High (H); Not Defined (ND)
  • Security Requirements (CR, IR, AR): éstas medidas permiten personalizar la puntuación del CVSS dependiendo de la importancia de los activos afectados medido en términos de Confidencilidad, Integradidad y Disponibilidad.   
    • None (N); Low (L); Medium (LM); High (H); Not Defined (ND)
Finalmente, cada métrica tendrá un valor asociado, lo que formará los 3 vectores:
   
Base    AV:[L,A,N]/AC:[H,M,L]/Au:[M,S,N]/C:[N,P,C]/I:[N,P,C]/A:[N,P,C]
Temporal    E:[U,POC,F,H,ND]/RL:[OF,TF,W,U,ND]/RC:[UC,UR,C,ND]
Environmental
    CDP:[N,L,LM,MH,H,ND]/TD:[N,L,M,H,ND]/CR:[L,M,H,ND]/ IR:[L,M,H,ND]/AR:[L,M,H,ND]


Podemos consultar en FIRST el cálculo del score de cada uno de los vectores y el CVSS final.

VulnerabilityChaser, la herramienta que hemos desarrollado, gestiona el ciclo completo de vida de la vulnerabilidad. La aplicación permite la introducción del resultado de un microanálisis de riesgos por cada activo del sistema utilizándolo (el resultado) para calcular el valor del CVSS. Los valores base y temporal vienen dados en el escaneo de Nessus y el environmental es el resultado del microanálisis de modo que con estos tres parámetros se realiza el nuevo cálculo de la criticidad de la vulnerabilidad quedando ésta adaptada de forma real al entorno en que se encuentra.



VulnerabilityChaser, hace las funciones de centro de servicio de vulnerabilidades para una empresa, facilitando la vida al administrador de seguridad. Esta herramienta es gratuita y opensource pudiendo ser descargada de GitHub. A día de hoy la aplicación aún se encuentra en un estado alfa de desarrollo.

La aplicación recoge la información de las vulnerabilidades de los escaneos de Nessus y la muestra de manera ordenada; permite cambiar el estatus de una vulnerabilidad, por ejemplo, de abierta a planificarla en una fecha para solucionarla más adelante si se quisiera, gestionar toda la parte de activos previamente comentada, mostrar estadísticas de manera gráfica y otras muchas funcionalidades.

Artículo escrito por Ibrahim Peraza y María Ángeles Caballero.
Twitter: @vul_chaser