07 abril 2011

¿Son seguros los PDF's?

Por: MC Hugo Gonzalez

En esta ocasión trataré un tema en el que tengo un proyecto para el Verano de la Ciencia y que me ha resultado bastante atractivo. Se trata de un vector de ataque para comprometer equipos de cómputo y son los archivos PDF.

Algunas veces se cree que solo los archivos ejecutables pueden ser peligrosos, luego vinieron los virus de macro, como el "I love you" o el "Melissa", en estos últimos casos los programas incluyen código malicioso directamente, que ejecuta acciones específicas sobre el sistema aprovechandose del mismo motor del programa para verlos.

En otros casos, archivos que se consideran no peligrosos, pueden contener piezas de contenido malicioso que se aprovechen no del motor de la aplicación, sino de errores de programación de la misma aplicación para ejecutar código arbitrario en el sistema. Algunos de estos casos incluyen videos, páginas web, documentos de oficina ( Hojas de Cálculo, Presentaciones), imágenes, animaciones y un largo etc. De manera general una vez que "explotan" la vulnerabilidad en el sistema que los reproduce o interpreta, descargan un archivo de internet, desarman el antivirus, crean nuevos usuarios, se conectan a casa o realizan alguna otra actividad que permite al atacante controlar el sistema "explotado", en caso extremo eliminan y destruyen todo el sistema, aunque eso pasa lo menos por los mayores beneficios económicos que se obtienen a controlar miles de equipos conectados a Internet.

El caso de los PDF maliciosos se encuentra entre los dos anteriores, hay ocasiones que aprovechan fallas de programación para "explotar" algún lector en particular, como adobe o foxit, pero también se dá el caso de que se aprovechan de las capacidades de reproducir javascript de la especificación de PDF y confunden e instan a los reproductores a realizar diversas acciones maliciosas para comprometer el equipo, como ejemplo a descargar y ejecutar algún archivo de la web, a crear nuevos objetos en el sistema, o a generar un archivo que afecte a otro programa en el sistema.

Actualmente es difícil detectar los archivos PDF's maliciosos, ya que no todos son reconocidos por los antivirus, ya que generan codigo "mutante" que cambia de archivo en archivo y que aunque realiza la misma función, no se parece.

Para el análisis de los PDF's así como de malware, una metodología sugiere proceder realizando primero un análisis estático y luego en análisis dinámico del archivo, esto tiene que ver con los costos computacionales más altos del análisis dinámico.

Análisis dinámico:
1a. fase. Se ejecuta (se abre) el archivo PDF en un sistema "limpio" o recién instalado, se espera cierto tiempo y se analizan los cambios que se generaron, por ejemplo si se crearon nuevos archivos, servicios o si se descargaron archivos de Internet.
2a. fase. Se se generaron algunos de estos cambios, en una maquina "limpia" y con la ayuda de un depurador o "debugger" se ejecuta otra vez el PDF, siguiendo paso a paso para analizar con detalle las acciones que ejecuta y detectar el comportamiento malicioso.

Análisis estático:
1a. fase. Lo pasas por un antivirus para saber si lo detecta como malicioso.
2a. fase. Se analiza el contenido del archivo, la especificación de PDF nos habla de objetos que forman el archivo, que están contenidos en un documento de texto plano (puedes usar tu editor de textos favorito para ver el contenido del PDF). Estos objetos pueden estar codificados con diferentes métodos, si son textos, imágenes, código Javascript, etc. Entonces lo primero que habría que hacer es decodificarlos para poder seguir con el análisis, y buscar el flujo de información para interpretar el PDF.

Aparentemente es más complejo el análisis dinámico, pero este es más fácil de automatizar y es más rápido para realizarlo en un equpo de cómputo que el análisis dinámico. Además que se puede realizar con menos recursos de RAM y Disco Duro.

Actualmente estoy trabajando en un pre-analizador, que de manera automática asigne una calificación de que tan sospechoso es un archivo PDF para ser malicioso. Este se basa en lo siguiente:

1. Si incluye urls activas dentro del archivo.
2. Si tiene javascript ofuscado.
3. Si tiene javascript plano y funciones sospechosas.
4. Si tiene imagenes TIFF, y estas inclueyn urls dentro.
5. Si contiene un shellcode .

Algunas de estas tareas pueden resultar triviales, y otras no tanto, pero al lograr automatizarlas podremos identificar cuales de los PDF's merecen ser investigados con más detalle con análisis estático, y luego cuales deben ser pasados al análisis dinámico.

Hasta la proxima, y espero tener alumnos para completen este trabajo durante el verano.

2 comentarios:

  1. Muy interesante la metodología y desde luego que es muy útil la propuesta... Mucho éxito con el proyecto!

    ResponderBorrar
  2. Betvictor Casino NZ review and bonus offers
    The Betvictor Casino is 바카라 owned by the Mohegan Tribe of deccasino Connecticut and 카지노사이트 is open daily 24 hours. The casino has a gaming floor with a variety of table games

    ResponderBorrar