Compartir:
Nota 123
3
minutos

Análisis de Malware: Cerrando Brechas en la Respuesta a Incidentes

En el contexto de la respuesta a un incidente, el análisis de “software malicioso” desempeña un papel fundamental, ya que se trata de una capacidad que puede ser clave para la resolución y comprensión total de su impacto. Después de la detección de un artefacto malicioso, entender cómo funciona y cuál es su impacto en el entorno puede ser decisivo para contener el incidente y evitar daños mayores. Además, puede ayudar a comprender el comportamiento y los objetivos de los adversarios y, por supuesto, ayudar a la organización a prevenir futuros ataques similares. Sin embargo, dado que se trata de una habilidad compleja en muchos aspectos, a menudo los analistas pueden no poseer habilidades avanzadas en programación o en el uso de depuradores/desensambladores y, debido a ello, pueden sentirse incapaces de realizar un análisis útil, limitando casi siempre el conocimiento sobre un artefacto malicioso específico a los análisis automatizados realizados en sandboxes en línea como VirusTotal o AnyRun. El objetivo de este artículo es aclarar que el conocimiento limitado, al principio, no debe considerarse una barrera para realizar un buen análisis.

El primer paso es entender que existen diversas formas de analizar un archivo sospechoso. Aunque no sea una lista exhaustiva, a continuación, se enumeran los tipos de análisis más comunes:

  • Análisis completamente automatizado en sandboxes (en línea y/o fuera de línea).
  • Análisis de las propiedades estáticas del binario (por ejemplo, Strings e Importaciones / Llamadas a API).
  • Análisis interactivo del comportamiento del binario.
  • Análisis manual del código / Ingeniería inversa del código.

Combinando técnicas de análisis de comportamiento y propiedades estáticas, es posible identificar nuevos indicadores de compromiso (IoCs) que no se descubren en análisis completamente automatizados, trazar el impacto del malware y planificar respuestas rápidas y estratégicas. Sin embargo, esto no cambia el hecho de que, en algunas situaciones, estas técnicas deben complementarse con pasos más avanzados, como el análisis de código y la ingeniería inversa del binario.

Cabe destacar que existe una relación inversamente proporcional entre la cantidad/calidad de los resultados obtenidos, el tiempo requerido para el análisis y la dificultad del proceso. Lenny Zeltser, en una publicación para el SANS en 2021, organiza los tipos de análisis en una pirámide, posicionándolos en orden creciente de complejidad, desde la base hasta la cima, donde se encuentra el análisis manual del código y la ingeniería inversa del mismo.

Para finalizar esta introducción, es importante tener en cuenta lo siguiente: en una parte de los casos reales de incidentes que involucran malware, el análisis completamente automatizado, con el apoyo de una buena OSINT, será suficiente para descubrir las capacidades del artefacto, ya que, muy probablemente, su organización no sea la primera en enfrentarse a esa muestra. Por otro lado, en situaciones un poco más complejas, el análisis de comportamiento combinado con el análisis de propiedades estáticas puede ofrecer resultados muy concluyentes.

En otras palabras, el análisis más avanzado, que Zeltser coloca en el tope de la pirámide, generalmente se aplica en situaciones de alta complejidad, con artefactos diseñados específicamente para su organización y que suelen requerir cierto grado de confidencialidad en la investigación, o en casos donde los análisis más simples no producen los resultados esperados. La idea es avanzar siempre de lo más simple a lo más complejo para evitar trabajos duplicados y aprovechar el tiempo valioso necesario para contener, erradicar y finalmente responder de manera ágil y adecuada al incidente.

Entendiendo los tipos de Análisis

Después de esta breve introducción, a continuación se presenta una visión general de los 4 tipos principales de análisis de malware mencionados anteriormente, abordados con un poco más de detalle sobre cada uno.

Análisis Automatizado con Sandboxes Online

Servicios en línea como Any.Run, Hybrid Analysis, Virustotal, Joe Sandbox, entre otros, ofrecen sandboxes que permiten observar rápidamente el comportamiento de malware. Estas herramientas son útiles para:

  • Identificar patrones rápidamente: Observar conexiones de red, creación de procesos y modificaciones en el sistema.
  • Validar hipótesis: Confirmar si un archivo malicioso intenta comunicarse con un dominio o dirección IP sospechosa, por ejemplo.

Este tipo de análisis, combinado con una buena OSINT, buscando informes de análisis e información sobre el artefacto o muestras similares, puede resolver el incidente de manera rápida. Recuerde: el escenario ideal es comenzar con el análisis más simple y avanzar hacia los más complejos. Sin embargo, no siempre es viable usar sandboxes en línea, especialmente en casos que involucran investigaciones confidenciales o amenazas dirigidas contra su organización. A continuación, se enumeran algunas razones para considerar esta limitación:

  • En primer lugar, existe el riesgo de exposición de datos: al enviar una muestra para análisis en un servicio online, usted puede compartir información confidencial con terceros, lo que compromete la privacidad de la investigación.
  • Existe malware preparado para esto: sandboxes públicas poseen una serie de fingerprints que pueden facilitar su identificación por algunos tipos de malware, que ciertamente ajustarán su comportamiento para evitar la detección.
  • Restricciones de red y ambiente: sandboxes online no replican perfectamente el ambiente real de la víctima, lo que puede llevar a resultados incompletos o imprecisos.

 

🔗 Tip: Siempre que sea posible, priorice sandboxes locales o ambientes controlados en su organización, especialmente para casos críticos.

Análisis de propiedades estáticas del binario

Saliendo de un escenario de análisis totalmente automatizado donde casi siempre se utilizan herramientas en línea de terceros, el análisis de propiedades estáticas puede ser el primer examen realizado en el entorno del analista. Se puede considerar un examen inicial seguro, ya que permite al analista explorar el archivo sin ejecutarlo, garantizando descubrimientos iniciales con bajo riesgo para el entorno. Algunos objetivos de esta etapa incluyen obtener pistas en cadenas de texto (URLs, direcciones IP, comandos y funciones sospechosas en el binario) y explorar su estructura interna: importaciones de bibliotecas, secciones no convencionales y recursos integrados y/o comprimidos. Este enfoque permite identificar rápidamente información útil sobre el artefacto y realizar algunas deducciones iniciales, como:

  • Identificar el propósito del archivo:
    • Las cadenas internas pueden revelar funciones maliciosas, URLs de servidores de comando y control (C2), o incluso palabras clave que indiquen actividades específicas.
  • Descubrir si el archivo realmente es un artefacto malicioso:
    • Verificar el hash del archivo en servicios como VirusTotal puede indicar si es un malware o una variante ya conocida y ampliamente difundida.
  • Identificar dependencias del binario:
    • Inspeccionar bibliotecas, APIs y funciones importadas ayuda a identificar el comportamiento esperado del archivo y las funciones que puede ejecutar.

En resumen, el análisis de propiedades estáticas puede ayudar a acelerar el proceso de respuesta a incidentes de la siguiente manera:

  • Identificación de Indicadores de Compromiso (IoCs):
    • Obtener hashes del archivo (MD5, SHA256) y compararlos con bases de datos de malware
  • Identificación de cadenas con direcciones de red, dominios maliciosos o comandos usados por el malware, así como importaciones de DLLs y llamadas a APIs:
    • Las funciones importadas pueden sugerir comportamientos como movimiento lateral o exfiltración de datos.
  • Orientación para los próximos pasos:
    • Es posible identificar si el malware tiene características como compresión u ofuscación, para decidir si se requiere un análisis más profundo.
  • Seguridad del entorno:
    • Evitando la ejecución del malware, se minimiza el riesgo de comprometer el entorno de investigación. Esto es esencial, especialmente en casos donde el malware puede ser altamente destructivo o aprovechar vulnerabilidades.
  • Documentación rápida y colaboración:
    • Los resultados del análisis estático, como cadenas o dependencias identificadas, pueden compartirse de forma ágil con otros sectores de investigación para acelerar el proceso de respuesta, e incluso con otras organizaciones del sector, en casos que no exijan confidencialidad.

Herramientas que Facilitan el Análisis de Propiedades Estáticas

Existen diversas herramientas disponibles que hacen este proceso más eficiente. A continuación, se presenta una lista que está lejos de ser definitiva:

  • Para extracción de cadenas de texto:
    • Strings (Sysinternals y Distribuciones Linux), Bintext.
  • Análisis estructural:
    • PEStudio, CFF Explorer, peframe (Linux), pestr (Linux), Binwalk.
  • Firmas y hashes:
    • Herramientas para el cálculo de hashes (md5sum, sha1sum, etc.) asociadas a OSINT (VirusTotal, Hybrid Analysis, etc.).
  • Análisis de metadatos:
    • ExifTool, FOCA.

Análisis de Comportamiento: Descubriendo qué hace el malware

A diferencia del análisis de propiedades estáticas, que examina el archivo sin ejecutarlo, el análisis de comportamiento observa cómo se comporta el malware al ejecutarse, proporcionando información detallada sobre sus acciones y objetivos. Este proceso, evidentemente, debe realizarse en un entorno controlado, siendo los laboratorios de análisis comúnmente virtualizados y con sus conexiones de red aisladas de internet y de la red local de la organización.

A continuación, un ejemplo de cómo puede configurarse el entorno de análisis, utilizando máquinas virtuales Windows y Linux (REMnux):

De forma resumida, el análisis de comportamiento es el proceso de detonar la muestra de malware en un entorno controlado y monitoreado para observar sus acciones, interacciones con el sistema e intentos de comunicación con otros dispositivos. Este enfoque es útil para:

  • Identificar técnicas de persistencia: Como creación de claves en el registro, servicios programados o scripts de inicio.
  • Detectar comunicaciones de red: Direcciones IP o dominios de comando y control (C2) que el malware intenta contactar.
  • Monitorear impactos en el sistema: Modificaciones en archivos, creación de procesos o cambios en las configuraciones del sistema.
  • Comprobar hipótesis: En este tipo de análisis, es posible confirmar o descartar hipótesis planteadas en análisis estáticos u otros tipos.

Al simular un entorno realista, el analista puede observar el comportamiento malicioso sin poner en riesgo la red corporativa.

En cuanto a su aplicación en un contexto de respuesta a incidentes, el análisis de comportamiento es crucial, especialmente en situaciones en las que los métodos de análisis estático no son suficientes para comprender la amenaza, como:

Revelar comportamientos ocultos: Muchas piezas de malware utilizan técnicas de ofuscación o compresión que dificultan su comprensión mediante análisis estático.

  • Identificar IoCs dinámicos: Estos pueden descifrarse durante la ejecución, como direcciones IP, dominios e incluso nombres de archivos creados o descargados.
  • Dimensionar el impacto potencial: Evaluar el alcance de una infección con el archivo malicioso.
  • Defender de forma proactiva: Crear casos de uso y reglas de detección basados en el comportamiento del artefacto malicioso en herramientas de protección (IDS/IPS/EDR/XDR).

Consejos para la Detonación del Malware

El análisis de comportamiento generalmente se realiza en sandboxes o entornos virtualizados (o no virtualizados), pero siempre aislados, que replican un sistema real sin poner en riesgo la red organizacional. El proceso incluye los siguientes pasos:

  • Configuración del Entorno: Creación de máquinas virtuales o configuración de sandboxes para aislar el malware. En esta fase también se configuran herramientas de monitoreo como Wireshark y Process Monitor.
  • Ejecución del Malware: El archivo se ejecuta en el entorno controlado para que sus acciones puedan ser monitoreadas.
  • Monitoreo y Registro: Se utilizan herramientas para rastrear la creación de procesos, llamadas al sistema, cambios en el registro, tráfico de red y otros comportamientos.
  • Análisis de los Datos Recopilados: Se analizan datos como direcciones IP contactadas, archivos modificados y procesos creados para identificar comportamientos maliciosos.

Técnicas de Análisis de Comportamiento

1.    Monitoreo de Procesos

El monitoreo de procesos permite rastrear las acciones ejecutadas por el malware en relación con la creación y manipulación de procesos en el sistema. Esto incluye el monitoreo de la creación de nuevos procesos, donde buscamos verificar si el malware ejecuta otros binarios o scripts; el monitoreo del encadenamiento de procesos, ya que algunas piezas de malware usan procesos legítimos como anfitriones para ocultar su ejecución (process hollowing); y el monitoreo del comportamiento de los procesos: aquí analizamos los argumentos de línea de comandos utilizados en la creación de procesos o el uso de CPU y memoria.

Herramientas que ayudan a implementar esta técnica:

  • Procmon (Process Monitor): Monitorea procesos en tiempo real, incluyendo la creación, eliminación y manipulación de archivos y claves de registro.
  • Process Explorer: Proporciona información detallada sobre los procesos activos, incluidas conexiones de red y manejo de hilos.
  • Sysmon: Captura eventos detallados sobre la creación de procesos, incluyendo los hashes del binario.
  • Process Hacker: Ofrece una visión detallada de las actividades del sistema, permitiendo la organización jerárquica de los procesos y el análisis de procesos, hilos, memoria, servicios y conexiones de red.
2.    Monitoreo del Registro

Algunas muestras de malware manipulan con frecuencia el registro del sistema para garantizar persistencia o modificar configuraciones del entorno. El monitoreo de estos cambios puede revelar persistencia, modificaciones del entorno e incluso técnicas de ocultación, a través de alteraciones en claves relacionadas con el comportamiento del sistema o herramientas de monitoreo.

Herramientas recomendadas:

  • Procmon, mencionado anteriormente;
  • Regshot: Captura «instantáneas» del registro antes y después de la ejecución del malware para compararlas.
  • Autoruns: Monitorea todas las claves relacionadas con el inicio de aplicaciones en el sistema.
3.    Monitoreo de Red

Esencial para detectar intentos de comunicación externas realizadas por el malware. En este paso estamos buscando conexiones DNS para intentar detectar la resolución de dominios que apunten a servidores de comando y control (C2); conexiones web (HTTP/HTTPS) en forma de solicitudes a servidores externos, como exfiltración de datos; y otros protocolos como FTP, SMB o ICMP que pueden ser utilizados por el malware para comunicación o movimiento lateral.

Herramientas recomendadas:

  • Wireshark: para captura y análisis de paquetes de red, permitiendo identificar dominios maliciosos, exfiltración de datos y otros patrones;
  • Fiddler: Especializado en el análisis de tráfico HTTP/HTTPS.
  • tcpdump: Una alternativa ligera para capturar tráfico de red en tiempo real, ideal para entornos de línea de comandos.
  • Zeek (anteriormente Bro): Un IDS que proporciona análisis detallados sobre tráfico de red.
  • Netcat: permite establecer conexiones TCP o UDP, enviar y recibir datos, y realizar diversas tareas relacionadas con la comunicación entre dispositivos en una red.
  • InetSim: simula varios servicios, pudiendo ayudar a proporcionar al artefacto malicioso respuestas para diversos tipos de solicitudes, tales como DNS, HTTP, FTP y otros.
  • FakeDNS: similar a INetSim, simula un DNS falso para responder a las solicitudes del malware.
  1. Monitoreo de Creación y Manipulación de Archivos

Los malwares pueden crear, modificar o eliminar archivos durante su ejecución. El monitoreo de esta actividad ayuda a identificar archivos de persistencia, como scripts o ejecutables adicionales; exfiltración de datos en forma de archivos comprimidos que contienen información robada; destrucción de datos: intentos de sobrescribir o borrar archivos críticos.

Herramientas recomendadas:

  • Procmon;
  • Sysmon;
  • OSQuery: Permite crear consultas personalizadas para monitorear archivos y actividades relacionadas en el sistema.

Análisis de código

Como ya se mencionó, es posible realizar excelentes análisis, obtener grandes resultados e incluso resolver incidentes con todos los tipos de análisis presentados hasta ahora. Sin embargo, como también se mencionó, casos más específicos de malware más avanzado requieren técnicas de análisis más avanzadas, y este es el momento en que entramos en el análisis de código. Aunque exige más habilidad, es una etapa crítica para tratar con malware sofisticado y garantizar una investigación completa.

Este proceso, realizado con herramientas como depuradores y desensambladores, es esencial para descubrir indicadores ocultos, ya que malware más sofisticado pueden contener funcionalidades cifradas o activadas solo en condiciones específicas, que sólo son identificables con ingeniería inversa; malware más avanzado también emplea técnicas de anti-análisis y es capaz de detectar cuando está siendo monitoreado y alterar su comportamiento en entornos sandbox; además, el análisis de código puede ayudar a obtener IoCs avanzados, como algoritmos de generación de dominios (DGA) o técnicas de ofuscación.

Conclusión

Para cerrar este post, el mensaje final es: el análisis de malware es una parte crucial del proceso de respuesta a incidentes, permitiendo que los equipos de seguridad comprendan y mitiguen rápidamente las amenazas. Como hemos discutido, combinar técnicas de análisis de propiedades estáticas y análisis de comportamiento ya puede ser suficiente, en la mayoría de los casos, para llenar brechas críticas en la investigación.

Aunque análisis más avanzados, como la ingeniería inversa, son necesarios en escenarios complejos, el uso integrado de análisis estático y de comportamiento ya permite una respuesta efectiva en la mayoría de los incidentes. Estos enfoques ayudan a priorizar acciones, crear defensas proactivas y comprender el alcance de la amenaza, incluso para analistas que no tienen experiencia en programación o depuración de código.

Con el apoyo de las herramientas adecuadas mencionadas anteriormente, los analistas pueden contribuir con los equipos de seguridad para identificar, contener y mitigar amenazas de manera eficiente. Al invertir en estos métodos y herramientas, fortaleces tu postura de seguridad y maximizas tu capacidad para proteger la organización.

Referencias

ZELTSER, Lenny. How You Can Start Learning Malware Analysis. SANS Institute, 2021. Disponible en: https://www.sans.org/blog/how-you-can-start-learning-malware-analysis/;

SANS Institute. Malware Analysis and Reverse-Engineering Cheat Sheet. 2021. Disponible en: https://www.sans.org/posters/malware-analysis-and-reverse-engineering-cheat-sheet/

 

Notas
recientes
Strategy & Business
3
minutos

¿El plan de respuesta a incidentes funciona en el papel o...

El valor estratégico de un TTX Por:  Lucía Ghergo - Cybersecurity Communications Strategist  En resumen: Los ejercicios de simulación de respuesta a incidentes (Tabletop Exercises o TTX) permiten a los CISOs y equipos ejecutivos evaluar la...
ver más ...