Tuesday, March 10, 2009

PDF, los dias que vivimos en peligro



En el ultimo mes que el blog estubo inactivo, aparecio un exploit Zero day (19 febrero 09) (CVE-2009-0658)que afectaban a los populares Adobe Reader y Adobe Acrobat, tanto en la version 9, como en las anteriores versiones.

Adobe se volvio casi un documento standard para compartir archivos, ya que al ser un formato abierto, tenemos muchas herramientas open source para generar este tipo de documentos.

Adobe prometio sacar un patch para la version 9 el dia 11 de marzo y para las versiones anteriores, el dia 18 de marzo.

Aca vemos claramente, la diferencia entre un 0Day y un exploit que aparece luego de la publicacion por parte de Microsoft de sus Patch Tuesday.

El primero esta siendo activamente explotado y con herramientas en algunos casos publicas, la solucion muchas veces pasa por algun tipo de mitigacion ( en este caso Adobe propone deshabilitar Javascript, algo que como veremos no es suficiente )

En el segundo caso, quienes generan los exploits deben realizar ingenieria inversa y luego surge algun POC.

Volviendo al problema de Adobe, veamos como se desarrollaron los hechos y hasta donde llega el problema.


12 de febrero Symantec avisa a Adobe sobre el problema

19 de febrero, Adobe emite el alerta : http://www.adobe.com/support/security/advisories/apsa09-01.html

Sourcefire ( los creadores de Snort ) encontraron trazas del exploit desde el dia 9 de enero.

El exploit esta siendo utilizado en el sudeste asiatico, todavia no se encuentra muy extendido.

20 de febrero, Sourcefire da una explicacion de como trabaja el exploit y le pone nombre JBIG2Decode

http://vrt-sourcefire.blogspot.com/2009/02/have-nice-weekend-pdf-love.html

23 de febrero, Milworn ya tiene POC publicados

http://milw0rm.com/exploits/8099

4 de marzo, Una demo mostrando 3 formas de activar el exploit aun sin abrir el archivo PDF.

http://blog.didierstevens.com/2009/03/04/quickpost-jbig2decode-trigger-trio/


Lo interesante de este ultimo articulo es ver la explicacion de porque se puede activar el exploit sin abrir el archivo. Esta es una breve traduccion de parte del articulo.

Cuando se instalan programas como Winzip o Winrar, se agrega una extension al menu que aparece cuando hacemos click con el boton derecho del mouse. Esto nos permite por ejemplo comprimir un archivo directamente sin abrir el programa.


Esto es hecho con un programa llamado Shell extension, el cual es instalado por el instalador del producto.
Cuando se instala el Adobe Acrobat Reader se instala una extension llamada Column Handler Shell Extension. Este programa ( un objeto COM ) provee al Windows Explorer con la informacion necesaria para mostrar en el menu los tipos de archivo que puede manejar.

El Handler de PDF tiene entre otras de sus particularidades, la posibilidad de mostrar el titulo del archivo. Por lo tanto cuando un archivo PDF es listado en una ventana de Windows Explorer, el handler accedera al archivo para tomar esta informacion.

Esto explica porque la vulnerabilidad puede ser utilizada sin abrir el PDF. Bajo ciertas condiciones, el handler leera el archivo y ejecutara el codigo con el exploit.





En la primer demo, el autor selecciona el PDF con un click y esto dispara el exploit ya que esta ultima accion causa que se lea el PDF para tomar informacion de el.

La segunda demo, el autor cambia el modo de display a Thumbnail, para esto la primer pagiuna del PDF debe ser renderizada, esto implica la lectura del PDF y el disparo del exploit.

Por ultimo, la tercer demo muestra que basta pasar el mouse sobre el archivo y esto disparara el exploit. El PDF tiene metadatos que deben ser leidos, esta accion es la que ejecuta el codigo malicioso.

Esta herramienta http://www.nirsoft.net/utils/shexview.html permite manejar las extensiones y deshabilitar las que consideremos necesarias.


La mayoria de los antivirus tienen firmas que detectan este tipo de ataques. De todas maneras es recomendable, hasta tanto salga el patch, no bajar PDF de sitios que no consideremos fiables.

No comments: