Buscar este blog

miércoles, 25 de agosto de 2010

Microsoft confirma un grave problema de seguridad "compartido" con cientos de aplicaciones de terceros

HD Moore, líder del proyecto Metasploit, destapaba un problema de seguridad en decenas de aplicaciones de terceros cuando eran ejecutadas sobre Windows. Aunque la raíz del problema es una programación insegura de las aplicaciones, dada la magnitud del problema Microsoft publicó un aviso de seguridad con instrucciones para mitigar la falla.

La falla fue identificada mientras estaba investigando el grave problema en archivos LNK que fue conocido en Windows hace algunos días. A su vez Acros, una compañía de seguridad eslovena, hablaba de una vulnerabilidad en iTunes por la que, si se abre un archivo asociado a iTunes desde una ubicación remota, el programa podría llegar a cargar más DLLs desde esa ubicación.
El problema está en múltiples aplicaciones de terceros para Windows a la hora de cargar librerías dinámicas (archivos DLL). Si las aplicaciones no especifican las rutas completas de estas librerías que necesitan, Windows puede llegar, en su búsqueda, a "encontrar" primero las librerías de los atacantes y ejecutarlas. Al principio se identificaron alrededor de cuarenta aplicaciones, pero en estos momentos se conocen cientos.

Todas estas herramientas no han seguido las recomendaciones de seguridad a la hora de ser programadas. Por tanto, un atacante podría llegar a ejecutar código si incita al usuario a abrir con una aplicación vulnerable un archivo desde una ubicación remota. La novedad es que el archivo abierto no tiene por qué contener ningún exploit. La única condición es que el atacante pueda escribir una librería en la misma ruta donde se encuentra el archivo y el programa vulnerable se encargará de cargarla.

Este tipo de ataques son conocidos como "binary planting", "DLL preloading" o "DLL Hijacking" y pueden verse como una nueva variante de los ataques de ruta; a no ser que se especifique exactamente la ruta de los binarios, no se sabe qué se está ejecutando porque exista un archivo con un mismo nombre en un directorio, o bien porque se encuentre en el PATH de sistema, pero en este caso la aplicación llama a DLLs que no son legítimas.

Windows arrastró este histórico error durante mucho tiempo. Pero una de las mejoras de seguridad introducidas desde Windows XP SP1, es que por default se mejora el orden de la búsqueda de librerías con el parámetro SafeDllSearchMode activado, pero el problema se da cuando las librerías no existen en el sistema y no se especifica ruta completa, el programa va a buscarlas en remoto y el atacante podría cargar así las que quiera.

Microsoft ha creado una guía de buenas prácticas para programadores y sobre cómo cargar de forma segura librerías dinámicas, disponible desde: http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspx

Si quieren más información pueden visitar http://www.hispasec.com/unaaldia/4322

No hay comentarios:

Publicar un comentario