domingo, 21 de febrero de 2021

Estructura archivos PDF con malware - Análisis y prevención

Es muy usual encontrar documentos del paquete Office siendo utilizados en actividades maliciosas a través de sus macros, sobre todo archivos de Word y Excel. Sin embargo, ¿son estos los únicos documentos que pueden llegar a ser riesgosos para la seguridad de nuestros equipos? A continuación, explicamos cómo son utilizados los archivos con formato PDF para distribuir malware.


¿Cómo son los archivos PDF?

Uno de los formatos más utilizados a nivel mundial para el almacenamiento de documentos es PDF. Este formato es sumamente versátil, ya que tiene la capacidad de incluir en sus documentos muchos tipos de contenido, como imágenes, video, audio, modelos 3d, otros documentos, scripts, etc.



Si bien esta gran versatilidad es extremadamente útil, también es aprovechada de forma maliciosa por los cibercriminales, quienes utilizan este tipo de archivos para como un medio más para infectar a sus objetivos. Con el fin de comprender mejor los PDF maliciosos, comenzaremos estudiando brevemente la estructura básica de este formato.

En su versión más simple, están compuestos por cuatro secciones principales:

  • Header: Está al comienzo del archivo y contiene únicamente la versión de la especificación de PDF que utiliza.
  • Body: Contiene todos los objetos (textos, imágenes, etc) que conforman el documento.
  • Cross-Reference table (xref): Contiene la posición donde se encuentra cada uno de los objetos en la estructura interna del archivo (la dirección en el binario). Esto es útil para que no sea necesario recorrer todo el documento para encontrar un objeto puntual.
  • Trailer: Contiene la posición donde comienza la tabla xref y posteriormente el indicador de fin de archivo: %EOF.

Un dato interesante de este formato es que, debido a su estructura y a cuestiones de performance, los archivos se deben leer desde el final hacia el principio. De esta manera uno comienza leyendo el trailer, de allí obtiene la posición de la XRef table y, al conocer esta posición, se puede obtener la posición de cualquier objeto dentro del archivo.



Por lo tanto, a la hora de analizarlos en busca de elementos maliciosos es imprescindible analizar la sección body, ya que es la que contiene los objetos y, en caso de que los documentos sean muy grandes, podemos aprovechar la XRef table para encontrar esos objetos más rápidamente.

¿Cómo suelen comportarse los PDF maliciosos?

Si bien las dinámicas empleadas por los cibercriminales al momento de diseñar sus PDF maliciosos son muy variadas, existen dos “corrientes” principales:

Mediante exploits

El PDF malicioso contiene un exploit capaz de aprovechar una vulnerabilidad en el programa con el cual se abre el archivo, comúnmente conocido como lector de PDF. Cabe destacar que no todos los programas presentan las mismas vulnerabilidades e incluso una versión de un programa podría ser vulnerable y otra no. Un ejemplo de esta dinámica es el archivo PDF malicioso analizado en 2018 donde se descubrió que utilizaba una vulnerabilidad zero-day que afectaba ciertas versiones del popular lector Adobe Reader y que al ser explotada permitía al atacante ejecutar código arbitrario en el equipo de la victima de manera remota. En este sentido, estos ataques suelen estar dirigidos únicamente a los usuarios de versiones específicas de un programa específico. Por esta razón es conveniente evitar revelar públicamente detalles del programa que se utiliza, ya que este tipo de información podría ser utilizada en el contexto de un ataque dirigido (este tema se profundizará más adelante).

PDF con scripts

En este caso los PDF maliciosos contienen un script embebido cuya funcionalidad simplemente se limita a obtener y ejecutar otro malware más completo, es decir, no suelen ser la amenaza principal. Estos scripts suelen utilizar dos estrategias:

  • Descargar el malware desde un sitio externo y ejecutarlo.
  • Ejecutar un malware que está embebido como un objeto más dentro del PDF malicioso.

Para que el ataque sea efectivo, es necesario que el script sea ejecutado en forma automática e inmediata cuando el usuario abre el PDF. Esto se logra mediante el uso de comandos propios del formato como “OpenAction” configurados para abrir el script.

A través de scripts embebidos. ¿Qué significa esto? Básicamente que un código puede obtener y ejecutar otro malware más completo, es decir, no suelen ser la amenaza principal. Por ejemplo, descargándolo desde una Web externa y ejecutarlo, o hacer correr un malware que está embebido como un objeto más dentro del PDF malicioso.


Análisis Documentos PDF

¿Qué debemos buscar al analizar un documento PDF?

En primer lugar, los especialistas en forense digital recomiendan buscar los siguientes parámetros:

  • /OpenAction y /AA, ya que pueden ejecutar scripts automáticamente
  • /JavaScript y /JS respectivamente ejecutan js
  • /GoTo, ya que esta acción cambia la página visible del archivo, puede abrir y redirigir automáticamente a otros archivos PDF
  • /Launch es capaz de iniciar un programa o abrir un documento
  • /SubmitForm y /GoToR pueden enviar datos por URL
  • /RichMedia se puede utilizar para incrustar flash
  • /ObjStm puede ocultar objetos

Es raro encontrar código limpio y sin fusionar en archivos PDF maliciosos. Los tipos más simples de ofuscación son la codificación HEX como /J # 61vaScript en lugar de /Javascript y los saltos de línea

Diagrama para inspeccionar documento PDF


Para analizar documentos PDF de manera estática, no necesariamente maliciosos, se puede usar el script en Python pdfid.py, el cual obtiene un conteo de los elementos dentro de la estructura del archivo con base en palabras clave, como la existencia de los elementos /OpenAction y /AA que llevan a cabo alguna acción una vez que se abre el documento. Sin embargo, debemos tener en cuenta la existencia de falsos positivos, puesto que etiquetas como obj/AA o /JS (por ser cadenas cortas) pueden coincidir con un patrón dentro de un stream.

Otra herramienta muy útil para analizar documentos PDF es pdf-parser.py, que identifica los elementos fundamentales de los objetos, como cadenas y referencias. Además permite hacer búsquedas por alguna coincidencia en particular en el documento. La búsqueda de la cadena "http" muestra dos coincidencias, una en el objeto 11 y otra en el objeto 13. A continuación se muestra el resultado de la inspección.


PDFiD escanea un documento PDF para obtener una lista determinada de cadenas y contará las apariciones (totales y ofuscadas) de cada palabra:

  • obj
  • endobj
  • stream
  • endstream
  • xref
  • trailer
  • startxref
  • /Page
  • /Encrypt
  • /ObjStm
  • /JS
  • /JavaScript
  • /AA
  • /OpenAction
  • /JBIG2Decode
  • /RichMedia
  • /Launch
  • /XFA
Las tres herramientas disponibles en:

Para obtener más información sobre las vulnerabilidades asociadas con los archivos pdf y las formas de detectarlos antes de que causen daños, lea esta documentación de kali de peepdf . Es una completa herramienta desarrollada por José Miguel Esparza (@eternaltodo) cuya versión 0.2 presentó en BlackHat USA 2013,



Advertencias Adobe Reader PDF

Algunas características del producto asignan confianza a través de su propio panel de Preferencias. Por ejemplo, Trust Manager incluye para administrar el acceso URL y Multimedia Trust (Legacy) tiene opciones para reproducir multimedia incrustada. Para las funciones afectadas cuando la seguridad mejorada está habilitada, puede permitir acciones restringidas de forma selectiva mediante el uso de un método descrito en Omitir restricciones de seguridad mejorada.



  • Si conoce y confía en el remitente -> Si confía en el PDF o en la empresa o persona que lo envió, haga clic en el botón Opciones, Permitir o Reproducir. (Los botones varían según la advertencia). Ahora puede ver el PDF.
  • Si no conoce o no confía en el remitente -> Si no confía en el PDF o no sabe quién lo creó o de dónde vino, no haga clic en el botón Opciones, Permitir o Reproducir. Acrobat y Adobe Acrobat Reader continúan bloqueando el contenido o las acciones sospechosas. Para ocultar la advertencia, haga clic en el botón Cerrar o Cancelar. Si hace clic en cualquiera de los contenidos bloqueados, la advertencia vuelve a aparecer.

¿Cuándo se muestran las advertencias de seguridad?

Las advertencias de seguridad se pueden mostrar en las siguientes situaciones:

  • JavaScript incluido en la lista negra. JavaScript es un lenguaje informático de uso generalizado. El código JavaScript puede ser vulnerable a ataques y JavaScript se puede utilizar para abrir sitios web. Adobe actualiza periódicamente la lista negra con vulnerabilidades de JavaScript conocidas. Si un PDF intenta acceder a JavaScript en la lista negra, verá un mensaje en la barra de documentos amarilla, en la parte superior.

Acceder a los objetos de flujo (XObjects)

  • Acrobat y Reader muestran una advertencia cuando un PDF intenta acceder a contenido externo identificado como un objeto de flujo. Por ejemplo, una URL puede apuntar a una imagen externa. La transmisión silenciosa de datos puede representar un riesgo para la seguridad ya que Acrobat y Reader se comunican con una fuente externa.

Impresión silenciosa

  • La impresión silenciosa es imprimir en un archivo o impresora sin su confirmación. Es un riesgo potencial de seguridad porque un archivo malicioso puede imprimirse silenciosamente varias veces en su impresora, desperdiciando recursos de la impresora. También puede evitar que se impriman otros documentos manteniendo ocupada la impresora.

Conclusiones

En conclusión, este formato de archivo tiene mucho potencial para ser utilizado con fines maliciosos, ya sea mediante un archivo adjunto o mediante un exploit. Por lo tanto, a la hora de utilizarlos, es importante manejarlos con prudencia y emplear buenas prácticas de seguridad:

En el caso de producir archivos con este formato:

  • Limpiar cualquier tipo de metadato que pueda dar un indicio de la versión del software con el cual se generó el documento, del sistema operativo, del usuario, etc. De esta manera se reduce el riesgo de que un atacante obtenga información que le sea de utilidad para planificar un ataque dirigido.

En caso de abrir archivos PDF:

  • Es recomendable contar con algún producto de seguridad capaz de analizar y detener este tipo de amenazas, especialmente en aquellos dispositivos en los cuales se intercambia información con clientes y personas desconocidas, ya que no es posible verificar la confiabilidad del emisor de los documentos.
  • Si el software con el cual se abrió el PDF muestra algún formulario preguntando si queremos abrir, ejecutar o activar alguna funcionalidad del documento en cuestión, es probable que este sea malicioso y conviene verificar su legitimidad.
  • Asegurarse de que el software utilizado para visualizar estos documentos esté actualizado a la última versión. De esta manera se reduce el riesgo de ser víctimas de un PDF que contenga un exploit.

¿Cómo protegernos de los malwares incrustados en PDF?

  1. Desactivar JavaScript en el lector de archivos PDF. Si se está utilizando Adobe Reader, editar las preferencias, seleccionar JavaScript y desmarcar «Habilitar JavaScript de Acrobat».


  1. No permitir que el lector de archivos PDF ejecute archivos que no sean PDF utilizando una aplicación externa.
  2. Desactivar el lector de archivos PDF de los programas de inicio de Windows.
  3. Mantener las macros deshabilitadas.
  4. No descargar ni abrir archivos adjuntos enviados por un remitente de correo electrónico desconocido.
  5. Asegurarse que el sistema operativo Windows, el programa lector de PDF y el antivirus estén actualizados.
  6. Hacer una copia de seguridad regularmente y mantenerla cifrada.

 Hay decenas de programas que copian las herramientas de Adobe (incluso las mejoran) y que te pueden servir como alternativas al 'software' que casi todos usamos por defecto. Aquí te dejamos algunos de los que más destacan por su seguridad, su eficacia y por tener una versión gratis.

  • Foxit. Quizá la opción más conocida. Es un programa más liviano y rápido que el Adobe Reader y prácticamente copia la interfaz y las funcionalidades que da. Además, tienes una versión Pro que añade aún más herramientas al estuche.
  • Sumatra PDF. Un lector genial que corrige justamente los mayores problemas de Reader: el peso y la vulnerabilidad. Simple y efectivo para los que no se quieran complicar demasiado.
  • Nitro PDF Reader. Algo más avanzado que los anteriores, cuenta con más funcionalidades y es más rápido que Reader. Tiene una versión de pago bastante interesante, que, eso sí, te la intentarán vender de forma reiterada.
  • Vista Previa. Si eres usuario de Mac, seguramente esta aplicación te suene pues es la que te viene por defecto para abrir los '.pdf'. Simple pero efectiva, y una buena alternativa a la familia Adobe.

Extra bonus:

Puedes analizar los metadatos de un documento PDF con FOCA o DIARIO.

No reemplaza a ningún antivirus.  La premisa de DIARIO es que funciona como un escáner de documentos. El usuario podrá subir un documento PDF o un archivo de ofimática (entorno Office365, un .doc o un Excel, por ejemplo).

Función de modo protegido para archivos PDF (solo Windows)

El modo protegido proporciona un nivel de seguridad adicional. Cuando el modo protegido está activado, los archivos PDF se muestran en un entorno restringido llamado entorno limitado. Este aislamiento de los archivos PDF reduce el riesgo de infracciones de seguridad en áreas fuera del entorno limitado. Adobe recomienda encarecidamente que utilice Acrobat en modo protegido si le preocupa la seguridad o si interactúa frecuentemente con archivos PDF en Internet.

Adobe Reader incluye un entorno restringido similar llamado Modo protegido. Para obtener más información acerca del Modo protegido de Reader, consulte la Ayuda de Reader.

Cuando el modo protegido está activado, solo se permite la navegación básica. Por ejemplo, puede abrir archivos PDF, desplazarse por las páginas y hacer clic en los vínculos. Puede activar el modo protegido en un archivo PDF que vea en el producto independiente Acrobat o en un explorador Web.

PDF en el producto independiente Acrobat

En el modo protegido, Acrobat muestra una advertencia para los archivos PDF que no procedan de una ubicación de confianza. La advertencia permite decidir si se confía en el documento.

Fuentes:
https://www.welivesecurity.com/la-es/2020/03/06/archivos-pdf-utilizados-distribuir-malware/

5 comentarios:

  1. Se recomienda usar los lectores PDF de los navegadores web?

    ResponderEliminar
  2. Muy buena pregunta. En teoría si, ya que es más seguro porque Google (para Chrome) y Mozilla (para Firefox) hacen que sus visores de PDF sean seguros, por que los colocan dentro de una sandbox "caja de arena".

    ResponderEliminar
  3. Sandbox no es "caja de arena", es "arenero", ese lugar en cual juegen los niños de forma seguro. Seguro de seguridad.

    ResponderEliminar
  4. Cierto, pero la traducción de "sandbox" es algo complicada. Y en España no se utiliza mucho la palabra "arenero". Microsoft ha traducido bastante acertadamente "Windows Sandbox" por "Espacio aislado" o "Entorno aislado" y no me parece una mala traducción.

    ResponderEliminar