Herramientas para el análisis de documentos PDF maliciosos

El formato PDF siempre ha sido un vector interesante para la propagación de malware, ya sea por ser un tipo de archivo abierto y multiplataforma, como por las posibilidades de explotar el software que lo interpreta.

Como ejemplo nos referiremos al popular Adobe Reader, ampliamente extendido entre la comunidad… algo que lo hace estar en el punto de mira de muchos atacantes. La elevada posibilidad de ejecución de este tipo de ficheros – por ejemplo mediante una simple campaña de phising – y la escasa percepción entre los usuarios de que puedan contener algún tipo de código nocivo lo hace más que atractivo.

El caso es que el formato PDF ofrece posibilidades de contenidos extensos, entre los que se encuentra la capacidad de ejecución de código JavaScript, una importante funcionalidad que abre un abanico de posibilidades para embeber código e incluso pasar desapercibido mediante técnicas de ofuscación.

Así pues, en el día de hoy vamos a crear un fichero PDF “dañino” como los que podríamos encontrar en cualquier web comprometida o un adjunto de correo… para posteriormente ver cómo podríamos analizar su contenido.

Partimos generando el documento malicioso mediante la utilización del módulo “adobe_pdf_embedded_exe” con las opciones oportunas:

Una vez lo tengamos, vamos a tratar con diferentes herramientas para ver su estructura interna sin ejecutar el contenido dinámico, incluso podríamos comenzar utilizando el comando strings para mostrar la secuencia de cadenas de caracteres imprimibles, etc.

Como podemos observar, existen partes que evidencian que existe código más que sospechoso encargado de lanzar procesos secundarios para su ejecución.

Por nombrar algunas herramientas específicas comenzaremos por pdfid, una aplicación sencilla para explorar “de un vistazo” la estructura del documento (cabecera, objetos, streams…) antes de analizarlo en profundidad. En este caso, confirmaremos que existen el par de objetos (/JS, /JavaScript) sospechosos detectados anteriormente.

Del mismo desarrollador (Didier Stevens) contamos con pdf-parser para analizar el documento e identificar sus elementos fundamentales (opciones como búsqueda de cadenas en objetos indirectos, filtros, salida raw…). Mencionar que existe la alternativa gráfica (wxPthon) conocida como PDFScope que combina las funcionalidades de las dos anteriores.

Otra utilidad común es Origami, un framework escrito en Ruby para el parseo, análisis, modificación y creación de documentos PDF maliciosos. Soporta características avanzadas para cifrado, firmas digitales, formularios, Flash, archivos adjuntos… También dispone de una versión gráfica (pdfwalker).

No podíamos terminar de repasar la lista sin nombrar una las principales herramientas para la exploración y creación/modificación de archivos PDF, peepdf. Esta herramienta nos permitirá realizar todas las funciones necesarias sin tener que recurrir a otras utilidades: visualización de todos los objetos del documento, metadatos, elementos sospechosos, análisis de shellcode y JavaScript (requiere de PyV8 y Pylibemu), modificaciones entre versiones, filtros y codificaciones, vinculación con VirusTotal…

Finalmente, también pueden sernos de ayuda ciertos recursos en línea que nos facilitarán la tarea de extracción de información de un documento dado e incluso la correlación con las vulnerabilidades encontradas [Malware Tracker | Wepawet].

Como hemos visto, la generación de un documento PDF malicioso no tiene mayor complejidad y su simple ejecución podría suponer un grave riesgo para nuestro “sistema”.

Es importante tener conciencia sobre las posibilidades de este tipo de ficheros y no caer en la ciega confianza prestada a nuestra aplicación antimalware, llevando a cabo buenas prácticas como es el análisis específico como los detallados en este artículo.

Para terminar, recalcar la importancia de mantener actualizado nuestro software a sus últimas versiones, o incluso huir de las herramientas comúnmente utilizadas y que contarán con el mayor número de vulnerabilidades.

Anuncios