Random IRC quote :      <h> bueno, me voy a dar una vuelta por la ofi con la motosierra <h> nos vemos en los telediarios

Vulnerability Engineering I

En este nuevo curso recién comenzado en la academia 48bits encontrarán nuevas asignaturas como la introducida recientemente «Ingeniería Social II» y la que se presenta en este post, Ingeniería de las Vulnerabilidades I; que no viene a ser otra cosa que la aplicación de técnicas de Ingeniería del Software a la temática de la seguridad informática. Existe una versión disponible para alumnos de lengua extranjera.

Tema 1:

En el día de hoy utilizaremos las métricas MTTR Y MTBF para calcular la probabilidad de que una aplicación concreta esté libre de fallos. O dicho de otra manera, las fórmulas presentadas nos darán un porcentaje que nos indicará cuánto tiempo en la vida de un producto estamos expuestos a una vulnerabilidad.

Como bibliografía utilizaremos el documento publicado por Hispasec, en el que se listan vulnerabilidades con la fecha de informe de la misma y la fecha en la que se publica el parche. Los chicos de Hispasec han realizado un trabajo bastante extensivo, que nos facilitará el trabajo a la hora de recoger los datos para calcular nuestras métricas.

Para comenzar vamos a definir los siguientes parámetros:

  • MTBF (Mean Time Between Failures): Este parámetro, como su descripción indica, muestra el tiempo medio entre dos fallos producidos en un sistema. En nuestro caso concreto lo utilizaremos como el tiempo medio transcurrido entre dos vulnerabilidades reportadas sobre un producto concreto.
  • MTTR (Mean Time To Repair): Indica el tiempo medio que se tarda en reparar un fallo en un sistema dado. Para nosotros, MTTR identificará el tiempo medio que un fabricante tarda en publicar una solución.

Con las dos medidas mostradas nos vamos a crear nuestras propias siglas para medir lo que nos interesa!

  • VFP (Vulnerability Free Probability): Indica la probabilidad de que un producto se encuentre libre de fallos durante su tiempo de vida.

  • VEP (Vulnerability Exposed probability): Muestra la probabilidad de que un producto contenga almenos un fallo durante su tiempo de vida.

En este artículo vamos a calcular VFP y VEP para cinco aplicaciones sofware, concretamente Microsoft Explorer, SUN Java JRE, HP NodeManager, Apple Quicktime y Adobe Reader.

Primero hace falta calcular MTTR y MTBF, como se muestra en la hoja de cálculo.
En la siguiente imagen se muestran los resultados del VFP de las aplicaciones citadas. Esta medida nos da una idea del «Software Reliability» del producto, es decir, la confianza que puede transmitir dicha aplicación:

Como se desprende de la gráfica anterior, la confianza de estas aplicaciones es bastante mala, por no decir paupérrima. La probalidad de que nos encontremos utilizando la aplicación con un vulnerabilidad no resuelta es excesivamente alta en todas ellas.
Únicamente Adobe Reader está por encima del 50%. Microsoft Explorer, no queda mal en comparación con los 3 últimos y, como era de esperar,  los usuarios de Apple Quicktime están el 99% del tiempo expuestos a vulnerabilidades.

Conclusión, los productos analizados están lejos de ofrecer al usuario garantías en lo relativo a la seguridad. Estas métricas deberían ser utilizadas por las instituciones para pedir un mínimo de calidad a los productos software que usan y que, al final, afecta a la seguridad de todos.

Tema 2:


Analizando los mismos datos podemos ver que hay patrones que pueden ser de interés. A continuación, analizaremos las tendencias en el tiempos que las compañías tardan en resolver las vulnerabilidades.

Para este análisis utilizaremos los datos que muestran el tiempo que cada vulnerabilidad ha tardado en ser resuelta, el MTTR para cada vulnerabilidad. Esto nos dará una nube de puntos dispersa que intentaremos ajustar linealmente para observar la tendencia en los tiempo de reparación.

Como se puede ver en las gráfica, Java JRE y Explorer han logrado reducir el tiempo que sus departamentos emplean en resolver los fallos reportados. Siendo el equipo de Microsoft Explorer el que más ha mejorado sus tiempos.

QuickTime se mantiene prácticamente invariante en el tiempo. Adobe Reader, parece haber empeorado, pero la aproximación lineal está muy afectada por el valor de 2005, en el que sólo tardaron 53 días en resolver la vulnerabilidad; si eliminamos ese outlier la tendencia es similar a la de QuickTime.

Espero que esta asignatura incluida en el nuevo plan de estudios de 48bits haya sido de su agrado.

5 Comentarios para “Vulnerability Engineering I”

  1. Comment por ruben | 11/12/09 at 8:21 am

    Muy chulo señor gabri! Además es que es cierto, hay que tenerlos cuadrados para usar el Quicktime. También estaría bien intentar integrar en esas métricas, de alguna manera, la peligrosidad de las vulnerabilidades. Ya sea mediante el CVSS o, por ejemplo, el exploitability index de los boletines de Microsoft.

  2. Comment por matalaz | 11/12/09 at 12:54 pm

    Antes de nada, muy buen post Gabri! Y para seguir, estoy con Rubén: Las métricas no indican nada si no se tiene en cuenta la peligrosidad de una vulnerabilidad. No es lo mismo una vulnerabilidad local que solo afecta los días de luna llena a medio día si el precio de las kiskillas es inferior a X (por decir una soberana gilipollez) que una vulnerabilidad remota que está siempre disponible indiferentemente de opciones configuración, instalación, etc…

  3. Comment por Gabriel Gonzalez | 11/12/09 at 1:18 pm

    Gracias amigas, estaba haciendo la discriminación por criticidad pero ya me quemaba el post en las manos así que le di a publicar kar kar kar.

    Lo dejo para otro post más adelante.

  4. Comment por errepunto | 11/13/09 at 8:53 am

    Hola. Normalmente soy lector «lurker» (también llamado «silencioso de mierda») pero ¡cáscaras! hay que felicitar por este artículo y ya de paso por los anteriores que también molaban. El día que no hay post de este insigne «vloj», le doy a la tecla F5 hasta desgastarla.

    Saludos, suerte ¡y a ver si poneis más noticias en el insigne «hoygan news»! 🙂

  5. Comment por sha0 | 12/11/09 at 5:48 pm

    Muy xulo el post, estatistics r00lz

    Hay una trampita estadistica, en el ie comienzas desde 2004 donde por narices ha de haber una evolución 🙂 faltaria comparar con software libre a ver si los tiempos en 2009 son realmente buenos.

    salu2

Se han cerrado los comentarios