lunes, 26 de enero de 2009

MD5 ¡¡Vulnerable¡¡

Con la penúltima prueba de concepto contra MD5 vuelve el debate sobre su uso, aunque me temo que no va a revolver muchas conciencias pese a lo mediático de utilizar la PlayStation3 para los cálculos.


Hace unos meses, con la excusa del libro, Sergio me invitó a hacer de reportero dicharachero, e hice las preguntas para varias de las entrevistas que aparecen. Entre ellas una a Bruce Schneier que viene al pelo para estos días:


Hispasec: Aunque el algoritmo MD5 se considera "muerto" en términos criptográficos, vemos que aun sigue vigente en muchos sistemas y soluciones de seguridad. ¿Por qué parece que cuesta tanto migrar a algoritmos más seguros? ¿Falta de conciencia?


Bruce Schneier: MD5 hace tiempo que fue reemplazado por SHA. SHA ha sido oficialmente reemplazado por SHA-1. Y SHA-1 ha sido oficialmente reemplazado por la familia de algoritmos SHA-2. Éstos serán reemplazados sobre 2012 por SHA-3, un algoritmo todavía por determinar. La National Institute of Standards and Technology mantiene un concurso para elegirlo. Estoy orgulloso de mi propia propuesta para este proceso, llamada Skein (madeja).


Así que todo el que todavía esté usando MD5, o bien no está prestando atención o no le preocupa actualizarse. Y ese es el problema con sistemas heredados: están estancados con seguridad que estaba bien cuando se crearon pero que ya no son adecuadas.


Es normal que a pie de calle ocurra lo que dice Schneier, que la gente no preste atención a este tipo de cosas. Lo preocupante es que en la propia industria aun lo sigamos utilizando, y ésto es así porque no se han visto explotaciones en el mundo real más allá de las pruebas de concepto. Un caso típico de uso de MD5 lo podemos encontrar a la hora de identificar ficheros de malware. Por ejemplo, cualquier empresa de seguridad que nos pide una muestra de VirusTotal nos suele dar como referencia el MD5, tampoco son pocos los antispyware y otras herramientas de seguridad de renombre que lo utilizan. Pese a que conocemos sus debilidades, lo seguimos arrastrando como estándar de facto.


En VirusTotal, hará cosa de un año, migramos internamente todo a SHA-256, aunque en el interfaz público sigue apareciendo MD5 como primer hash seguido de SHA-1, SHA-256 y, el para mí overkill, SHA-512. Recuerdo que me entraron prisas con la migración tras ver otra prueba de concepto de colisiones MD5, en esa ocasión aplicada a binarios.


Esa prueba de concepto fue motivo de discusión entre gente del mundillo antivirus, ya que el MD5 seguía siendo el estándar aunque sólo fuera para la gestión interna de las muestras de malware. Por las conversaciones que puede mantener, parece que no causó tanta preocupación como a mí. En parte tenía cierta lógica porque la prueba de concepto requiere que el "atacante" genere y/o modifique los dos ficheros que quiera hacer coincidir su MD5. Así que no era posible, por ejemplo, que alguien generara un malware cuyo MD5 coincidiera con un kernel32.dll original de Microsoft.


Mi preocupación no venía tanto por el uso de MD5 para identificar malware (sigue siendo efectivo a día de hoy), sino el ataque a un esquema donde se utilice la generación de listas de goodware y malware, que es un poco por donde van ahora los tiros en la industria AV. Ahí si es mortal que alguien genere 2 ficheros con el mismo MD5, uno goodware y otro malware, y que distribuya primero el goodware a los laboratorios antivirus. El análisis saldría limpio y el fichero entraría a formar parte de su lista de goodware. A partir de ahí el atacante podría usar el malware asociado que sería identificado como confiable por los laboratorios y/o herramientas que utilizaran identificación de goodware por MD5.


Aun no se han identificado o publicitado ataques reales de malware utilizando esta técnica, pero estoy convencido de que el día que se haga será la puntilla que destierre definitivamente al MD5 (y sin necesidad de utilizar la PlayStation).

Fuente: http://blog.hispasec.com/laboratorio/

No hay comentarios: