Microsoft: Error humano causó vulnerabilidad crítica en SMB2
Fuente: ZDNet
Microsoft tilda como error humano las recientes vulnerabilidades críticas de SMB v2 que expone a los usuarios de Windows ante ataques de ejecución remota de código, y sostiene que es prácticamente imposible identificar estos tipos de errores con las herramientas de revisión código y técnicas existentes a la fecha.
De acuerdo a un post-mortem realizado por el gurú de seguridad de Redmond, Michael Howard, la empresa detectó el código vulnerable “muy tarde” en el proceso de desarrollo de Windows 7, pero argumentó que no existen herramientas de análisis ni requisitos en el SDL (Ciclo de Vida de Desarrollo de Seguridad) que pudieran detectar este tipo de error humano.
En este momento no hay ninguna herramienta de análisis estático que conozca que pueda señalar que el desarrollador utilizó una variable de manera incorrecta, y nuestras herramientas de análisis no detectaron el potencial problema en los límites de una matriz, en parte porque es difícil hacerlo porque actualmente generan una cantidad muy grande de falsos positivos.
Sólo hay un requisito o recomendación de SDL que podría detectar esto, y son las pruebas de fuzzing. De hecho, lo encontramos muy tarde en el proceso de desarrollo de Windows 7 utilizando fuzzing a través de la red, y es por eso que después del RC (Release Candidate) las versiones de Windows 7 no tienen este error.
Howard no explicó por qué la solución no fue portada a Windows Vista, ni otras versiones de Windows vulnerables, de manera independiente, hasta que fue descubierto y publicado por investigadores de seguridad externos.
Dijo que la única otra técnica que se puede utilizar para encontrar este tipo de vulnerabilidad – la de una variable incorrecta en la referencia de un arreglo – es el proceso “muy lento y minucioso de revisión de código.”
Este código fue revisado antes del check-in de Windows Vista, pero el error no fue encontrado en ese momento. Los seres humanos son falibles, después de todo.
Howard dijo que las vulnerabilidades que surgen en el código del sistema operativo Windows de hoy muestra que el SDL obligatorio “ha depurado los principales huecos de seguridad”.
Por supuesto, yo podría estar equivocado, pero mirando todos los errores durante el año pasado en Windows, el patrón único que puede detectar es que no hay patrón! La mayoría de los errores que veo en Windows son errores únicos, los que no se pueden encontrar fácilmente a través de análisis estático o de la educación, lo que deja sólo la revisión de código manual, y para algunas clases de errores, pruebas de fuzzing. Pero las pruebas de fuzzing no son perfectas, porque los datos con formato incorrecto que se generan puede que no provoquen el fallo al momento de ejecutar el código vulnerable.
Pidió a los desarrolladores de software que dediquen más tiempo a las defensas contra vulnerabilidades conocidas, así como tratar de prevenir o eliminar las vulnerabilidades.
Tags: amenazas, fuzzing, Luis José Conde, Microsoft, Sentinel, SMB, vulnerabilidad, Windows