97 - Vulnerabilidades 0-Day y la propagación de malware - 18/07/2009


Autor: Lic. Cristian F. Borghello

http://www.segu-info.com.ar

Un exploit 0-Day significa que existe una vulnerabilidad en una aplicación, la cual generalmente la mayoría de la comunidad desconoce y para la cual no existe un parche o actualización disponible por parte del desarrollador (vendor) de dicha aplicación. Al no conocerse, este desarrollador no ha tenido la oportunidad de analizar dicha vulnerabilidad y, en todo caso, no existe una actualización pública y disponible para la misma.

Lo antes dicho es en líneas generales lo que aplica en la mayoría de los casos pero puede haber excepciones como que por ejemplo que el vendor conozca la vulnerabilidad y decida no actualizar su aplicación debido a que no la considera crítica o peligrosa en ese momento. Este es el caso de las "últimas" vulnerabilidades 0-Day descubiertas en componentes ActiveX de productos de Microsoft. En realidad dos de estas vulnerabilidades (CVE-2008-0015 y CVE-2008-0020) ya habían sido informadas en 2008 a la empresa por personal de IBM ISS X-Force.

El motivo por el cual Microsoft no atendió antes estos errores pueden ser muchos pero lo cierto es que los mismos se hicieron públicos y actualmente están siendo aprovechados para propagar malware a través de la inserción de script dañinos en sitios web vulnerables [1]. Por ahora sólo se puede mitigar el problema a través de la activación de los Kill Bits de los archivos vulnerables (esto implica la modificación de algunas claves de registro).

Otro 0-Day fue encontrado y publicado en la última semana en la nueva versión de Firefox 3.5. El resultado también fue la utilización de un exploit para propagar malware pero en esta ocasión la Fundación Mozilla respondió con una actualización crítica para el producto [2].

Lo interesante de los exploits 0-Day para propagar malware es que los mismos, al ser utilizados a través de JavaScript y VisualScript, son fácilmente insertados en miles de sitios [3] con el objetivo de que el usuario ingrese y, sin saberlo, se descargue un malware a su sistema (sí, simplemente ingresando al sitio y sin hacer nada más).

Pero, ¿cómo se hace esto?

En realidad es bastante sencillo. Tomemos por ejemplo el exploit activo que se hizo público en el caso de Firefox 3.5. El mismo ejecuta una calculadora en el sistema del usuario pero, puede ser descargado y modificado a voluntad por cualquier persona con malas intenciones y, puede hacerse que ejecute un troyano en el equipo.

Luego, se alojará dicho script (lenguaje JavaScript en este caso) en algún servidor del atacante o al cual el mismo tenga acceso en cualquier lugar del mundo.

Posteriormente, se procederá a invocar con una línea de código dicho script en miles de sitios y, cuanto más populares sean los mismos, mayor serán las posibilidades de éxito del atacante. Para llevar a cabo esta acción, el delincuente modifica las páginas web en dichos sitios, para lo cual estos deberán haber sido encontrados como vulnerables [3]. Por supuesto, esta acción de búsqueda puede ser automatizada y se encontrarán miles de sitios "disponibles" para la modificación.

Por último la víctima, sin saber que el sitio fue modificado, ingresa al mismo, se invoca el script dañino, en trasfondo y sin nada visible que alerte sobre dicha acción, descargando el malware, ejecutándolo e infectando al usuario.

En este circuito desde el descubrimiento de la vulnerabilidad, el parcheo, la utilización del exploit y la infección todos los eslabones somos un poco responsables:

  • El descubridor de la vulnerabilidad debería alertar a la empresa e intentar no publicar la misma en lo inmediato [4]. Esto se dió en el caso de Microsoft e IBM pero no en el caso de Firefox, en donde su descubridor se apresuró a publicar el 0-Day
  • La empresa debería parchear a la brevedad y en los márgenes posibles y manejables la actualización para el error encontrado. Esto se dió en el caso de Mozilla, pero no en el caso de Microsoft.
  • El atacante es un delincuente y vive de eso. Simplemente debemos no intentar facilitarle su tarea.
  • El usuario debe informarse y actualizar sus aplicaciones cuando las mismas existan y hacer un uso seguro de sus herramientas informáticas.

[1] Las tres vulnerabilidades 0-Day de Microsoft y sus Workaround
http://blog.segu-info.com.ar/2009/07/las-tres-vulnerabilidades-0-day-de.html

[2] Mozilla lanza Firefox 3.5.1 para corregir fallo crítico
http://blog.segu-info.com.ar/2009/07/mozilla-lanza-firefox-351-para-corregir.html

[3] Modificación de sitios web (Defacing) con objetivos económicos
http://www.segu-info.com.ar/articulos/96-defacing-objetivos-economicos.htm

[4] Informar vulnerabilidades como parte de la responsabilidad social
http://www.segu-info.com.ar/articulos/88-informar-vulnerabilidades-responsabilidad-social.htm

Buenos Aires, 18 de julio de 2009

Con más de 24 años de experiencia compartiendo la mejor información de Seguridad

Contacto