fbpx

Malware de macro, cómo funciona y cómo analizarlo

Malware de macro, cómo funciona y cómo analizarlo
03 Jun

Malware de macro, cómo funciona y cómo analizarlo

Se conoce como malware de macro al código que aprovecha la funcionalidades de macro de documentos ofimáticos (especialmente Excel y Word del paquete Office de Microsoft) para realizar acciones maliciosas sobre los sistemas de las víctimas que abren el fichero. Durante finales de los 90 y principios de 2000, este tipo de malware fue muy popular.

Malware de macro, cómo funciona y cómo analizarlo por ...

 Sergio de los Santos

Tras el repunte sufrido en su creación como método de propagación de otro tipo de malware desde 2014, los virus de macro siguen situándose como una amenaza para el usuario que está lejos de ser controlada. Sorprendente pero cierto surprised. Originalmente las macros añaden funcionalidades extra a los documentos, dotándolos de propiedades dinámicas que permiten, por ejemplo, realizar acciones sobre un conjunto de celdas en un documento Excel o bien incrustar objetos multimedia en ficheros Word. Pero hacia finales de los 90, comenzó a convertirse en un vector de ataque aprovechado por los creadores de malware para conseguir ejecutar código en los sistemas. Los atacantes programaban macros que extendían sus funcionalidades para la ejecución de acciones maliciosas sobre el sistema, como la descarga y ejecución de ejecutables o envío de correo basura a los contactos almacenados en el cliente de correo.

¿Cuáles son las razones que permiten que este tipo de malware haya sido y siga siendo efectivo?

Desde los primeros 2000 hasta 2014, tras las mejoras introducidas por Microsoft en el paquete Office para impedir la ejecución automática de macros, este tipo de malware perdió relevancia. La existencia de otros métodos más directos que no dependían de la configuración del sistema Office (por ejemplo el aprovechamiento de vulnerabilidades) hizo que durante un tiempo, esta fórmula no resultara muy popular. Sin embargo, desde 2014, la propia Microsoft alerta sobre un importante repunte en el uso del malware de macro, esta vez como método de difusión o medio para la descarga de otro malware.

Revival de malware de macro Microsoft encontró un revival de malware de macro en 2014… y hasta hoy. Fuente: https://www.microsoft.com/security/blog/2014/12/30/before-you-enable-those-macros/

Las razones que permiten que este tipo de malware haya sido y siga siendo efectivo son varias:

  • Los usuarios no suelen sospechar de documentos en formato Word y Excel (u Office en general) adjuntos en emails, ni los administradores suelen bloquearlos a nivel de pasarela de correo. Si bien las pasarelas de correo detienen los ficheros directamente ejecutables, los documentos Office no suelen ser neutralizados a nivel de pasarela, puesto que son intercambiados de forma legítima y habitual por correo electrónico. Los usuarios los reciben de manera natural, y están habituados a lanzarlos sin la sensación de peligro que sobre algunos puede suponer un ejecutable u otros formatos.
  • Los antivirus, como línea de defensa, sufren los mismos problemas de detección con este tipo de malware que con cualquier otro. Son eficaces, pero no infalibles. El problema se agrava en sistemas estáticos, donde no pueden lanzar dinámicamente el documento.
  • El lenguaje VBA (Visual Basic for Applications) con el que se programan las macros, ofrece una gran potencia con relativa simplicidad y permite desde el acceso al disco duro hasta llamadas a APIs de sistema (descarga, ejecución...). Aunque se ha mejorado la seguridad en la configuración por defecto en el paquete Office y actualmente es necesario habilitar las macros específicamente si se desea que se ejecuten junto al documento, los atacantes acuden a la ingeniería social para conseguir que sea el propio usuario el que las habilite en el documento fraudulento (si no lo ha hecho ya porque lo necesita para ejecutar las macros legitimas).

Desde 2104 y durante 2015, se han utilizado los virus de macro (en combinación con Powershell, para eludir la escritura en disco y por tanto pasar desapercibido para los antivirus) para difundir malware de tipo ransomware o troyanos bancarios, con bastante éxito para los atacantes a pesar de las contramedidas y mejoras en seguridad que se han materializado desde entonces. Por tanto, puesto que más de 15 años después de su aparición el malware de macro sigue constituyendo un problema, todavía se hacen necesarios mecanismos que permitan detectar estos ataques.

Visual Basic for Applications

Es el lenguaje sobre el que se crean las macros en Office. Apareció en 1993, y su última versión data de 2013. Está relacionado con Visual Basic, en el sentido de que necesita de su motor para ejecutarse, pero no es independiente: debe correr dentro de otra aplicación que contenga el código, e interactuar con otras a través de objetos OLE Automation (un IPC interno de Microsoft). VBA se compila en P-Code (también usado en Visual Basic). Se trata de un sistema propietario de Microsoft que permite su decompilación al formato original en el que fue escrito el código. Una vez compilado, se almacena en el documento de Office correspondiente como un flujo separado en un objeto OLE o COM.

Puesto que más de 15 años después de su aparición el malware de macro sigue constituyendo un problema, todavía se hacen necesarios mecanismos que permitan detectar estos ataques.

Desde 2007 existen dos formatos muy diferentes de documentos Office y dependiendo de la versión del formato Office usado, este objeto puede encontrarse incrustado en el documento o como fichero separado. Los diferentes formatos son:

  • Basados en formatos propios de Microsoft anteriores a 2007 con extensiones del tipo .doc o .xls (formato “clásico”). Los formatos anteriores a 2007 son en realidad un objeto OLE en sí mismos y en cierta manera su estructura se asemeja a un sistema de ficheros simplificado. En estos formatos, las macros se almacenan en un directorio “Macro” que contienen a su vez el objeto COM.
  • Basadas en formatos Open XML posteriores a 2007 cuyas extensiones son .docx o .xlsx, por ejemplo. Estos formatos son en realidad archivos en formato ZIP, que contienen el mimo objeto COM a modo de macro, además de una configuración estructurada fundamentalmente en XML. En este sentido, cabe destacar un cambio relevante realizado en Office a partir de la introducción de este tipo de documentos. Hasta el momento, los ficheros con extensión .doc creados con Office previos a 2007 (y por tanto habitualmente objetos OLE en sí mismos), podían contener o no macros, sin que el usuario pudiese percibir diferencia alguna en su nombre u extensión. Desde Office 2007, existe en concreto el concepto de fichero con extensión .DOCM que implica que un documento contiene macros, y cuyo icono incluye un signo de advertencia. Solo si se renombra este tipo de ficheros a .doc, Office ejecutará las macros. Se entiende este sistema como un método de seguridad adicional que incluye Office para proporcionar al usuario la información necesaria antes de abrir un fichero. Sin embargo, las suites Office actuales son perfectamente compatibles con el formato .doc, por lo que sigue siendo utilizado por atacantes. Estos también utilizan (en menor medida) los formatos .docm, confiando en que el usuario no perciba el peligro que acarrea la extensión.

Se puede abrir un docx o docm con cualquier fichero que permite descomprimir zip y comprobarlo. Los objetos COM u OLE utilizados por Microsoft para almacenar las macros, son en concreto objetos OLE con la estructura “Office VBA File Format”, un formato que se aplica a las macros de igual forma en ambas fórmulas (“clásico” y actual, los formatos antiguos y Open XML posteriores a 2007).

Herramientas para estudiar el malware de macro

A la hora del análisis estático del malware de macro, es necesario destacar varias herramientas que, si bien no suponen algoritmos o técnicas de detección o clasificación en sí mismas, sí que se han convertido en el estándar de facto a la hora de analizar malware de macro por su capacidad para estudiar el formato y extraer la información valiosa de cada muestra. Algunas de las herramientas y sus características más interesantes son:

  • VBATools: VBATools es una colección de scripts creados en Python que se ha convertido en el estándar de facto a la hora de analizar macros en general y malware de macro en particular. Se trata de una colección de herramientas específicas para el tratamiento de objetos OLE, entre las que destaca OleVBA. Esta es la herramienta específica dentro del paquete que permite extraer las macros dentro de los documentos Office, además de decompilarlas y realizar una serie de detecciones heurísticas específicas contra ciertos patrones de malware. OleVBA Alerta sobre el uso de palabras reservadas que pueden suponer un potencial problema de seguridad utilizadas en el contexto de una macro codificada en VBA, como llamadas a APIs peligrosas de sistema que conlleven ejecución (Exec, Shell, etc), además de acceso a URLs, direcciones IP, o nombres de ficheros con típicas extensiones ejecutables (exe, pif, etc). Por si fuera poco, alerta sobre el uso de funcionalidades sospechosas de las macros, o que podrían suponer un comportamiento peligroso, como por ejemplo la autoejecución.
  • Oledump: Herramienta creada en Python que permite extraer información de objetos OLE. Esto significa que no permite la manipulación de documentos Office en formato 2007 en adelante, puesto que estos no son objetos OLE en sí mismos, sino que contienen las macros en este formato. Oledump permite también caracterizar cierto malware de macro, pero no está específicamente pensado para el tratamiento de documentos Office, por tanto, carece de la potencia de la herramienta OleVBA de las OleTools.
  • https://diario.elevenpaths.com. Esta web permite arrastrar ficheros ofimáticos y mostrar online las macros sin riesgo. Incluso compartirlas y un diagnóstico sobre si pueden ser malware o no.

Estas herramientas Python mencionadas requieren de la instalación de una librería Python llamada OleFile, que es en realidad la que, a bajo nivel, permite interpretar, leer e incluso crear ficheros en formato OLE2.

Con estas referencias, se tendrá un buen arsenal para analizar los docs en los sistemas y ver si esconden algo. Para los administradores, solo recordar que Microsoft habilitó la posibilidad de bloquear por completo todas las macros desde el Directorio Activo . En las plantillas administrativas, Microsoft Word 2016, Opciones de Word, Seguridad, Centro de Confianza, “Bloquear macros en ficheros Office que vengan de Internet.

*Sergio de los Santo es Head of Innovación y Laboratorio en Telefónica CyberSecurity & Cloud Tech. Director Académico del Máster en Ciberseguridad y el Máster en Reversing, Análisis de Malware y Bug Hunting del Campus Internacional de Ciberseguridad, ambos postgrados certificados por la Universidad Católica de Murcia (UCAM)

 

 

Visto 1504 veces Modificado por última vez en Martes, 07 Junio 2022 14:13
Inicia sesión para enviar comentarios

Suscripción al Boletín:

Introduce tu e-mail y pulsa Enter para suscribirte
  • Campus Internacional de Ciberseguridad
    Calle Campo de Gomara, 4.
    47008, Valladolid. España.
  • Tel.: +34 983 390 716 
  • E-mail: info@campusciberseguridad.com

PLAN DE CONTINGENCIA COVID-19