25 junio 2010

Buenas prácticas: Prevención de ataques a través de PDFs

Está claro que la moda últimamente es la distribución de malware/explotación de vulnerabilidades mediante ficheros PDF. De los productos de Adobe salen unas 200 vulnerabilidades al día (ojo, dramatización, este dato no está basado en ninguna estadística...), y si hace unos años el peligro venía en forma de ficheros .vbs, .ppt, .scr que llegaban a nuestros correos, ahora hay que tener cuidado con este formato de documentos y concienciarnos sobre ellos.

Y ya no sólo porque se nos instale en nuestro sistema un maravilloso servicio que pueda pertenecer a una superbotnet; es que podría convertirnos en la perfecta pasarela desde Internet a nuestra red corporativa, y da igual que seas Google

Por ello, después de comprobar que no es suficiente con tener nuestro Adobe Acrobat actualizado a la últimísima versión, que se nos actualice silenciosamente, y tras estar cansados de leer siempre que se ha descubierto que se está explotando una vulnerabilidad "in-the-wild" (activamente, sin que nadie se entere salvo dos o tres personajes...), en SearchSecurity nos recopilan una serie de buenas prácticas, enfocadas sobretodo al mundo corporativo (aplicables también a nuestros equipos personales), para prevenir estos ataques mediante PDFs, o por lo menos, que en caso de que se exploten mediante vulnerabilidades del producto no reportadas, que el riesgo o impacto sea mínimo y no se vea comprometida toda una infraestructura. Punto por punto de dicha recopilación, intentaremos ampliarlo con un poco más de información al respecto:
  • Únicamente confiar en archivos PDF que provengan de fuentes conocidas
Es algo que siempre se intenta transmitir, cayendo en comentarios del tipo "eso es muy fácil decirlo, pero, ¿y si comprometen la dirección de correo electrónico de mi compañero? ¿o del proveedor? ¿o de mi cliente?". Nunca está de más comprobar que realmente se espera un documento del remitente, y en caso de resultar sospechoso, comprobarlo telefónicamente o con otro correo electrónico como respuesta (aunque igual de esa cuenta de correo no podemos esperar nada bueno...).

Si lo habitual es la distribución de los informes por su parte en .doc o .docx por ejemplo, sería un poco extraño que de repente se adjunte un .pdf. Si viene por parte de un compañero, que incluso podría sentarse a 3 metros de tu sitio, y se supone que el fichero incluye las fotos de su último viaje a Cancún (que no ha hecho), un poema gracioso sobre política (que te lo podría recitar en la hora del café), o fotos del mundial y de vuvuzelas (que te las enseñe en su equipo), evitar abrirlo, se puede seguir viviendo sin problemas, no es indispensable.
  • No visitar enlaces web a ficheros .pdf y y protección frente a direcciones peligrosas
El comportamiento habitual es que el navegador invoque a Adobe Acrobat para la lectura del fichero desde el propio navegador, pudiendo comprometerlo. No hay excusa frente a correos del tipo "como informe es heavy, mejor le dejado uploaded en nuestro almasen online de documentos...de Rusia...si no possible to acceder, go a este de China...por cierto ganó 1 millón de libras". Si aún así, alguna persona hiciese clic en este enlace del correo, se debería contar con un software antivirus capaz de analizar URLs que pudiesen resultar maliciosas antes incluso de llegar a acceder a ellas. 
  • Manejo de ficheros PDF por parte del navegador
Al hilo del punto anterior, trataremos a continuación como poder evitar que, automáticamente, el navegador abra el fichero PDF directamente, y proceda a su descarga, dónde podría ser analizado.

En las propias preferencias de Adobe AcrobatEdición -> Preferencias, en la categoría Internet, podremos desactivar la casilla Mostrar PDF en explorador.


También es posible llevar a cabo una serie de acciones en los propios navegadores. Ahora distinguiremos estas acciones a seguir para cada uno de ellos, aunque al final sabemos cual es el navegador corporativo en la mayoría de entornos...
  1. Internet Explorer
    1. Mediante el registro de Windows, en caso de poder acceder a él, modificarlo, etc, únicamente tendríamos que modificar la clave HKEY_CLASSES_ROOT\AcroPDF.PDF.1\EditFlags y dejarla con el valor 00 00 00 00



    2. Accediendo a Herramientas -> Administrar complementos, podremos desactivar todos los plug-ins referentes a Adobe PDF.
  2. Mozilla Firefox
    1. En el menú de Herramientas -> Opciones -> Pestaña Aplicaciones, estableceremos "Preguntar siempre" en los ficheros PDF, evitando así su apertura directa.



    2. Es posible utilizar en su lugar, por comodidad, complementos que actúan como visor de documentos de tipo PDF u otros utilizando por ejemplo el visor de documentos mediante Google sin abandonar obviamente el navegador para su lectura.
  3. Google Chrome
    1. Este navegador directamente descargará los ficheros PDF sin abrirlos directamente o pidiéndonos su ubicación de descarga, y hace poco Google confirmaba que muy próximamente incluiría un visor integrado de ficheros PDF en el propio navegador.
    2. Al igual que con Mozilla Firefox, contamos con addons que permiten ver documentos PDF y de otros tipos directamente desde el navegador aprovechándose del visor del propio Google Docs.
  4. Opera
    1. Para modificar el comportamiento frente a ficheros PDF, acceder a Configuración -> Opciones (o Control+F12) -> Pestaña Avanzado -> sección Descargas, buscamos "pdf" y seguidamente Editar para seleccionar la acción. Lo más adecuado sería Guardar en disco o Mostrar diálogo de descarga.


    Emulando la acción que facilitan las extensiones para los navegadores que hemos comentado en Firefox y Chrome en referencia al visor de Google Docs para ver PDFs en base a una URL, podréis hacerlo mediante el servicio que encontraréis en la página http://docs.google.com/viewer?pli=1
  • Desactivar soporte de JavaScript en Acrobat
En el entorno que estamos tratando, resultaría cuanto menos extraño que necesitemos tener activado el soporte de JavaScript en Acrobat. Por ello, es conveniente desactivarlo para ahorrarnos algún que otro programa con muchas de las vulnerabilidades que aparecen. Sobretodo se recomienda mientras se espera a una solución o parche oficial por parte de Adobe a dicha vulnerabilidad. Workaround por excelencia.

Para desactivar el soporte de JavaScript en Adobe Acrobat / Reader, accederemos a Edición -> Preferencias y en la categoría JavaScript y des-marcamos la casilla de "Activar JavaScript para Acrobat".



  • Privilegios del usuario actual en el sistema operativo
Digamos que esta práctica debería ser llevada a cabo, no sólo para evitar los ataques a los que nos referimos, si no para minimizar el impacto de muchos problemas de seguridad.

En entornos corporativos se suele contar ya de por si con usuarios restringidos, no Administradores totales del sistema. En caso de ser el empleado del mes al que dejan total libertad con su equipo de trabajo, es conveniente utilizar una cuenta de usuario con privilegios mínimos sobretodo si realizamos un uso normal y corriente del sistema, como navegación, calculadora, Word, Buscaminas, etc.
  • Buen estado de la plataforma
Repetimos lo comentado anteriormente. Si ya de por si no se realiza por política de la empresa, mantener el equipo de trabajo actualizado a su última versión, con los últimos parches de seguridad aplicados (si es el Windows del trabajo, seguro que no tienes problemas con Windows Update y el wga ¿cierto?), actualización del software antivirus, etc.
  • Alternativas al software de Adobe
Es viernes, ¿tienes otras cosas que hacer, entregar esos informes de últimísima hora, y no tienes tiempo de cambiar registros, bucear en preferencias e instalar complementos? Ya contamos con alternativas perfectamente válidas para poder abrir ficheros PDF sin echar de menos ninguna funcionalidad de Acrobat, como por ejemplo Foxit Reader, de los más famosos visores de documentos PDF gratis.

Comentadnos vuestras experiencias, más buenas prácticas a tener en cuenta, alternativas, si en las paredes de vuestras oficinas contáis con posters de concienciación con dianas sobre Adobe, ¡lo que queráis!

15 comments :

caic dijo...

Yo desde hace unos meses vengo usando el Sumatra PDF. Si sólo necesitas ver los PDF (en mi caso es prácticamente siempre) es el más ligero que conozco... ¡y el más espartano! :P

Saludos!!

Sergio Hernando dijo...

Buen trabajo. Un excelente articulo.

Anónimo dijo...

Genial el post!

A mi me gusta esta tool para analizar PDFs pdf-parser.py

Un abrazo!

lain

Juancar dijo...

¿Y el Foxit Reader no tiene vulnerabilidades?

José A. Guasch dijo...

Por supuesto @Juancar, pero yo creo que no al mismo nivel que el producto de Adobe.

Esto es lo de siempre, quizás la moda dentro de unos años sea ir a por Foxit Software, pero de momento, proponemos buenas prácticas también para el buen uso frente a documentos PDF, si no, el post únicamente hubiese sido el punto "Desinstalar Adobe".

Anónimo dijo...

una pequeña consulta.
Yo hace unos años que uso Foxit, y de tu articulo entiendo que no se ve afectado por las vulnerabilidades de Adobe??
Pensaba que eran vulnerabilidades, en su mayoría que partían del formato y no de la aplicación... puedes confirmarmelo? gracias

José A. Guasch dijo...

@Anónimo los documentos PDF se modifican, añadiendo funciones que se aprovechan de vulnerabilidades del producto utilizado para su lectura. El PDF como tal no es vulnerable, lo que es vulnerable es el programa que se usa. De ahí que comente que son, por decirlo así, un método de propagación.

De ahí que en estas buenas prácticas toquemos todos los temas, tanto a nivel de aplicación (en este caso Adobe Acrobat, desactivar JavaScript y poder verlos online), los navegadores, etc.

Hay PDFs que se aprovechan de vulnerabilidades en Acrobat Reader, otras en complementos específicos para X navegador, etc.

Por lo tanto el formato no es el problema, nunca verás que se ha actualizado la versión de PDF (aunque haya mucha gente que confunde "PDF" con el producto Adobe Acrobat)

Anónimo dijo...

Sumatra PDF es una buena alternativa.

Mario dijo...

¿Y si se usan servicios online?

-http://issuu.com/
-http://www.scribd.com/

Es decir www que hacen de lectores PDF.

Me refiero por ejemplo a:


-http://viewer.zoho.com/home.do
-http://view.samurajdata.se/


Un ejemplo de lo que pregunto sería por ejemplo si un atacante sube un PDF "modificado" a http://www.youkioske.com/ seríamos vulnerables?

PD: Google docs tmabién sería vulnerable?

http://docs.google.com/viewer.

eduardo abril dijo...

Reemplazar el AcrobatReader no es tan fácil. Yo me he encontrado ejemplos en los que al imprimir un documento no salía igual ... Y claro, anda a convencer a dirección de que "por seguridad", no pueden imprimir bien documentos. Te comes un buen marrón.

Respecto de las contra-medidas, otra a añadir: que nadie salga por NAT. Aunque esté en lista blanca en el proxy, para que pueda descargar/acceder a lo que sea, que nadie pueda establecer una conexión directa con internet. Muchos exploits presuponen salida directa y no funcionan.

Saludos,
Eduardo.

José A. Guasch dijo...

@Mario, los PDF vulnerables a Acrobat no serían peligrosos para servicios online. Repito, que lo vulnerable no es el propio PDF si no el programa que los lea.

Si se usan servicios online, como el que hemos comentado en el post (por ejemplo el viewer de Google Docs) estaremos más seguros, a no ser que se consiga un PDF que haga vulnerable al servicio online.

@EduardoAbril, exacto, por eso es más "rentable" aprovecharse de vulnerabilidades de Acrobat, porque es el que mejor resulta y el más utilizado y extendido :)

Nacho Osendi dijo...

Yo añadiría a vuestro artículo la opción de "NO permitir la apertura de archivos adjuntos no PDF con aplicaciones externas".

Se encuentra en Edición > Preferencias > Administrador de confianza. Hay que desmarcar la opción "permitir la apertura de archivos adjuntos no PDF con aplicaciones externas".

Nacho Osendi dijo...

Yo añadiría a vuestro artículo la opción de "NO permitir la apertura de archivos adjuntos no PDF con aplicaciones externas".

Se encuentra en Edición > Preferencias > Administrador de confianza. Hay que desmarcar la opción "permitir la apertura de archivos adjuntos no PDF con aplicaciones externas".

José A. Guasch dijo...

@Mario, los PDF vulnerables a Acrobat no serían peligrosos para servicios online. Repito, que lo vulnerable no es el propio PDF si no el programa que los lea.

Si se usan servicios online, como el que hemos comentado en el post (por ejemplo el viewer de Google Docs) estaremos más seguros, a no ser que se consiga un PDF que haga vulnerable al servicio online.

@EduardoAbril, exacto, por eso es más "rentable" aprovecharse de vulnerabilidades de Acrobat, porque es el que mejor resulta y el más utilizado y extendido :)

Anonymous dijo...

Sumatra PDF es una buena alternativa.