sábado, 5 de marzo de 2011

AutoRun en Windows: Se acerca el fin de esta funcionalidad (y II)

Microsoft acaba de publicar como actualización automática el parche que deshabilita el Autoplay en dispositivos USB en todos sus Windows (solo la versión 7 lo hacía correctamente por defecto hasta ahora). Con este movimiento, da (por fin) el paso final para aniquilar una funcionalidad que ha traído muchos problemas. Repasemos un poco la historia del Autorun.

En mayo de 2008, en un boletín de una-al-día llamado "Virus y promiscuidad. Del disquete al USB", ya se recomendaba configurar específicamente Windows para ignorar los archivos autorun.inf y atajar el problema de raíz, puesto que ya se conocían formas de eludir la protección "oficial", que consistía en la modificación de la directiva de registro NoDriveTypeAutorun.

Dos vulnerabilidades, un mismo problema

En julio de 2008, Microsoft publicó el boletín MS08-038 que, entre otros asuntos, corregía este comportamiento fallido de Autorun (CVE-2008-0951). Pero solo se ofrecía a través de Windows Update (obligatoriamente) para Windows Vista y 2008. Los usuarios de XP disponían del parche para solucionar el fallo (KB953252), pero había que ir a descargarlo e instalarlo expresamente. No se instalaba automáticamente como el resto de parches de seguridad porque Microsoft tenía miedo de "romper" demasiadas funcionalidades para su (todavía) amplio parque de usuarios de Windows XP. Además, de paso, daba un empujoncito para incentivar la actualización a su sistema operativo más moderno hasta la fecha.

Pero a finales de 2008 apareció Conficker, un malware bastante sofisticado con algunas funcionalidades sorprendentes. Aprovechaba de manera inédita hasta la fecha la funcionalidad Autorun. Creaba un archivo autorun.ini funcional pero disimulado con basura, que conseguía pasar desapercibido para los antivirus. Es decir: los métodos oficiales (a través de la política NoDriveTypeAutorun del registro) recomendados hasta la fecha para evitar la ejecución, seguían sin funcionar realmente. Debido al éxito de Conficker en XP, en febrero de 2009 tuvieron que corregir un nuevo fallo (CVE-2009-0243) a través de una actualización que cubría en parte la anterior vulnerabilidad y que esta vez, era obligatoria para todos. Aunque el parche KB967715 para XP se distribuyó automáticamente a través de Windows Update en esa fecha, sorprendentemente no fue considerado como "parche de seguridad" (no tiene un boletín de Microsoft asociado).

Además, el parche modificaba el comportamiento de Autorun: Después de aplicarlo, se añadía una nueva etiqueta en el registro que debía ser correctamente configurada. En la práctica, para usuarios poco avanzados, Autorun seguía siendo un problema.

Mejoras, pero solo para Windows 7

Después de tanta vulnerabilidad, en mayo de 2009 Microsoft decide mejorar la seguridad de la funcionalidad de "autoejecución" de los medios extraíbles en los que se pueda escribir, evitando el diálogo de ejecución automática (Autoplay) en memorias USB. Lo hacía por defecto en Windows 7 y, para las versiones anteriores de Windows publica en agosto de 2009 el parche KB971029. Una vez más, no era obligatorio, había que descargarlo manualmente. Otro supuesto empujón para motivar el cambio de sistema operativo. Ha sido necesario esperar año y medio para que ahora, a finales de febrero de 2011, se instale de forma obligatoria para todos los sistemas operativos anteriores a Windows 7 desde Windows Update.

Otros problemas con Autorun

Pero aún quedaban dolores de cabeza con la autoejecución. En julio de 2010 VirusBlokAda descubre Stuxnet. El troyano puede propagarse a través de memorias USB prescindiendo del tradicional archivo autorun.inf. Utiliza una vulnerabilidad en archivos .LNK que permitía la ejecución de código aunque el AutoPlay y AutoRun se encontrasen desactivados. A efectos prácticos, implica que se había descubierto una nueva forma totalmente nueva de ejecutar código en Windows cuando se insertaba un dispositivo extraíble, independientemente de que se hubiesen tomado todas las medidas oportunas conocidas hasta el momento para impedirlo. Fuera del ciclo habitual, Microsoft publicó MS10-046 en agosto para solucionar la vulnerabilidad.

En resumen, un largo recorrido hasta hoy: vulnerabilidades que no son corregidas en todos los sistemas, parches de seguridad que no se califican como tal según qué versiones, mejoras que no se ofrecen de forma obligatoria, parches que se superponen a otros parches y parches que modifican la funcionalidad... todo un quebradero de cabeza que parece toca a su fin, con los parches que bloquean y mejoran Autorun y Autoplay difundidos de forma masiva.

Aun así, aún existe una funcionalidad por defecto que impide dar por aniquilado por completo el Autorun: Para los dispositivos que en los que se supone no se puede escribir (medios ópticos), Windows todavía lanza AutoPlay y sigue preguntando al usuario qué hacer. Entre esas opciones permite la ejecución automática.

Sergio de los Santos
ssantos@hispasec.com



No hay comentarios:

Publicar un comentario en la entrada