Una matrioska peligrosa: todo lo que hay que saber sobre los archivos políglotas de malware

Los atacantes están creando archivos que los dispositivos pueden interpretar como dos tipos de documentos diferentes a la vez, y utilizan estas “muñecas rusas” para introducir malware de forma encubierta. ¿Cómo detectar y neutralizar estos archivos de doble cara?

En los últimos años, los archivos diseñados mediante técnicas de creación de archivos políglotas se utilizan cada vez con más frecuencia en ciberataques. Les permiten a los atacantes eludir los filtros de correo electrónico y los escáneres de archivos para introducir malware, engañar a las víctimas mediante ataques de phishing y dificultar la investigación de incidentes. Para lograrlo, los atacantes crean deliberadamente un archivo que el sistema puede interpretar en distintos formatos según la aplicación con la que se abra.  Un ejemplo clásico es un archivo que puede interpretarse como una imagen PNG o como un archivo ZIP. Basta con cambiar la extensión del archivo o, simplemente, abrirlo con una aplicación u otra.

Veamos por qué es posible crear este tipo de archivos, qué combinaciones de formatos se utilizan en ataques reales y cómo pueden protegerse las organizaciones frente a esta amenaza.

¿Por qué es posible crear archivos políglotas?

Los archivos políglotas rara vez se basan en formatos de datos poco comunes. Todo se reduce a una ingeniosa combinación de formatos comunes cuyas estructuras resultan compatibles entre sí. Los archivos políglotas aprovechan al menos una de las siguientes particularidades de determinados formatos de archivo:

  • La mayoría de los formatos de archivo deben decodificarse desde el primer byte, pero algunos deben leerse desde el final. El ejemplo más claro es un archivo ZIP: aunque el inicio esté dañado o no esté presente, las aplicaciones pueden seguir leyendo el archivo, ya que todos los encabezados necesarios se encuentran al final. Esto les permite a los atacantes simplemente unir dos archivos, en el ejemplo anterior, un PNG y un ZIP, en uno solo. El principio se interpreta como una imagen PNG válida, mientras que el final se interpreta como un archivo ZIP válido.
  • Muchos formatos funcionan como matrioskas rusas: aunque por fuera tienen una extensión específica acorde con el uso previsto, por dentro son básicamente archivos ZIP en los que se almacena la información necesaria. Este grupo incluye documentos de Office modernos (DOCX/XLSX/PPTX), paquetes de instalación de Android (APK), archivos de bibliotecas de Java (JAR) y muchos otros.
  • Algunos formatos no tienen requisitos de estructura estrictos, o bien son lo suficientemente flexibles como para que la aplicación que procesa el archivo pueda localizar el fragmento que necesita aunque no se encuentre al principio.

En el repositorio de Polydet en GitHub, se describen numerosos ejemplos de posibles combinaciones de archivos para crear un archivo políglota. Según la clasificación de MITRE, esta técnica pertenece a la categoría Enmascaramiento (T1036.008, Tipo de archivo enmascarado).

Ejemplos de archivos políglotas utilizados en ciberataques conocidos

Los análisis de campañas de malware disponibles públicamente revelan el uso de todo tipo de archivos políglotas. Los atacantes adaptan todo el esquema del ataque a una combinación específica de tipos de archivo.

El grupo Head Mare distribuyó el malware PhantomPyramid como archivo ZIP adjunto. El archivo contenía código ejecutable de Windows (EXE) y un pequeño archivo ZIP agregado al final. Cuando la víctima lo abría, encontraba un archivo con la extensión PDF.LNK que, al ejecutarse, iniciaba el mismo adjunto políglota, pero esta vez como ejecutable.

En el ataque documentado por JPCERT, los atacantes crearon un archivo que comenzaba como PDF y que la mayoría de los escáneres detectaban como tal, pero tenía la extensión DOC, y las aplicaciones de Office lo abrían como un documento DOC válido que incluía macros maliciosas.

Los ataques que propagaban los troyanos StrRAT y Ratty utilizaban un archivo políglota creado a partir de un paquete de instalación de Windows firmado (MSI), al que se le había agregado código Java malicioso (JAR) al final.

Los ataques de StrelaStealer utilizaban un archivo políglota con extensión HTML: una biblioteca de Windows (DLL) a la que se le había agregado al final un documento HTML señuelo. Un acceso directo incluido en el archivo comprimido ejecutaba el archivo dos veces: una mediante el comando start (el equivalente a hacer doble clic, que abría un navegador y mostraba el documento HTML) y otra mediante rundll32 (que ejecutaba la DLL maliciosa).

En un ataque simulado pero ingenioso, los investigadores unieron dos archivos ZIP comunes y descubrieron que distintas herramientas populares de compresión mostraban el archivo resultante de manera diferente: algunas mostraban solo el primer ZIP, otras solo el segundo y algunas mostraban ambos a la vez, como si se tratara de un único archivo comprimido con contenido compartido. Si el atacante conoce la infraestructura de la víctima y sabe qué software tiene instalado, puede utilizar esta combinación para mostrarle un archivo a las herramientas de seguridad y otro distinto a la víctima.

Los atacantes utilizaron una compleja matrioska de malware en una campaña de distribución del infostealer IcedID. Adjuntaban un archivo ZIP a correos electrónicos de phishing que, al descomprimirse, generaba un archivo ISO. Ese archivo ISO, a su vez, contenía un archivo CHM (Ayuda de Windows) creado mediante la técnica de archivos políglotas. Cuando la víctima lo abría con la herramienta estándar de Ayuda de Windows, se ejecutaba un script de JavaScript integrado en el contenido de ayuda, que iniciaba la aplicación estándar mshta (host de aplicaciones HTML de Microsoft) y la dirigía al mismo archivo CHM. Los autores de la campaña incluyeron una aplicación HTA dentro del archivo CHM de tal forma que su presencia no interfería con la lectura del archivo como un documento de ayuda inofensivo. Por su parte, el controlador de HTA omite todo el contenido irrelevante que aparece al principio del archivo hasta encontrar el script HTA.

¿Cómo gestionan los archivos políglotas las herramientas de seguridad?

Los ejemplos anteriores muestran claramente cómo este truco de doble interpretación les permite a los atacantes instalar malware en el equipo de la víctima. Pero ¿cómo interpretan realmente este tipo de archivos los filtros de correo electrónico y los sistemas EDR? La respuesta depende por completo de la solución específica, por lo que es necesario verificarlo, ya sea consultando la documentación técnica del proveedor o realizando una prueba controlada en la infraestructura corporativa con todas las precauciones necesarias.  En términos generales, solo hay dos aspectos que se cumplen en todos los casos:

  • La mayoría de las soluciones de seguridad no se basan en la extensión declarada del archivo, sino que analizan su inicio para determinar su estructura real. Por eso, en el ataque descrito anteriormente, el archivo PDF con extensión DOC se analizó como un PDF inofensivo, mientras que la macro maliciosa permanecía oculta en la parte DOC agregada al archivo.
  • Si un archivo comienza con contenido inofensivo (por ejemplo, como una imagen) y su extensión coincide con ese formato, es probable que no se someta a un análisis más exhaustivo. Los atacantes pueden aprovechar esta circunstancia: las instrucciones que acompañan al archivo pueden indicarle a la víctima que cambie su nombre para que el sistema termine procesando la segunda carga útil en lugar de la imagen.

¿Cómo proteger a una organización frente a ataques con archivos políglotas?

La protección frente a los archivos políglotas no requiere soluciones técnicas ni organizativas complejas, sino la aplicación de prácticas de seguridad sólidas y coherentes en toda la organización:

  • Utilizar listas cerradas de aplicaciones autorizadas para ejecutarse en las estaciones de trabajo de los empleados. Excluir las aplicaciones de Windows obsoletas, las herramientas administrativas de Microsoft que no se utilicen, el software de acceso remoto y de transferencia de archivos, y cualquier otro programa que se considere potencialmente peligroso u obsoleto.
  • Utilizar oluciones avanzadas de seguridad de correo electrónico que incorporen tecnologías de CDR (Desarme y reconstrucción de contenido, que neutraliza los archivos adjuntos sospechosos y los reconstruye en versiones más seguras) y de detonación (que ejecuta los archivos adjuntos sospechosos en un entorno aislado para su análisis). Configurar un análisis exhaustivo de los archivos adjuntos que presenten indicios de ser archivos políglotas: archivos comprimidos y de Office, archivos con extensiones no estándar, entre otros.
  • Asimismo, configurar la solución EDR para que realice un análisis exhaustivo de los archivos que puedan ser políglotas.
  • Crear reglas de supervisión que generen alertas ante combinaciones inusuales entre un proceso y los archivos que se procesan con él, como un archivo CHM ejecutado mediante mshta o un archivo HTML ejecutado mediante rundll32, como en los ejemplos anteriores.
  • Agregar información básica sobre los archivos políglotas en el programa de concientización sobre seguridad de la organización, para que los usuarios estén alerta cuando se les indique cambiar la extensión de un archivo o manipularlo de una forma poco habitual, por ejemplo, abriéndolo con una aplicación específica.
Consejos