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.
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.