¿Qué oculta un archivo binario? Sekoia demuestra cómo extraer la configuración de un botnet IoT en pocos minutos

¿Qué oculta un archivo binario? Sekoia demuestra cómo extraer la configuración de un botnet IoT en pocos minutos

Especialistas muestran cómo automatizar desde cero la extracción de configuraciones de malware, tomando como ejemplo el botnet IoT Kaiji.

image

En nuevo artículo Sekoia inicia la serie Advent of Configuration Extraction y muestra cómo el equipo automatiza la extracción de configuraciones de programas maliciosos — desde los primeros pasos del análisis hasta la obtención de inteligencia utilizable. Con el sencillo ejemplo del botnet IoT Kaiji, los especialistas demuestran cómo funciona la tubería interna Assemblyline y cómo su servicio configextractor convierte un archivo binario en bruto en IOC estructurados.

Assemblyline, desarrollado por el Centro Canadiense de Ciberseguridad, funciona como una tubería multinivel: cada archivo cargado pasa por un conjunto de servicios dispuestos en etapas. Las etapas iniciales desempaquetan y preparan los datos; las posteriores extraen artefactos, como elementos de configuración. TDR envía allí las muestras de forma automática — desde trampas honeypot, la supervisión de directorios públicos y plataformas de intercambio de archivos maliciosos. Los resultados de configextractor llegan directamente a la base de TI, lo que permite reflejar rápidamente nuevas amenazas en los detectores.

Dentro de Assemblyline, el servicio configextractor utiliza la biblioteca ConfigExtractor y admite varios marcos de extracción: MWCP, MACO y CAPE. El equipo de TDR desarrolla sus analizadores sobre MACO, que define un formato unificado para las configuraciones de diferentes familias. El servicio actualiza automáticamente el conjunto de módulos desde un repositorio privado, carga dependencias y selecciona el analizador adecuado mediante reglas YARA. Cada módulo consta de importaciones, una clase extractora, una firma YARA, la lógica de análisis y la conversión final del resultado al modelo MACO.

Para demostrar el enfoque, los autores toman Kaiji — un botnet orientado a Linux escrito en Go, que durante largo tiempo se propagó mediante fuerza bruta por SSH y más tarde aprendió a explotar vulnerabilidades como CVE-2024-7954 y CVE-2023-1389. En el análisis estático del binario sin protección destaca la función main_connect, responsable de la conexión con el C2. Esta extrae una cadena Base64, la decodifica, convierte el arreglo de bytes en una cadena y la divide por el separador único "|(odk)/*-". La parte anterior al separador contiene el par C2:puerto. Las cadenas embebidas muestran el marcador repetido "use ParseCertificate", un punto de referencia conveniente para la automatización.

El extractor en Python usa la biblioteca FLOSS para extraer cadenas ASCII, busca la cadena necesaria mediante una expresión regular, decodifica Base64 y analiza los parámetros C2. Tras comprobar si la dirección es un dominio o una IP, el resultado se empaqueta en estructuras MACO. En el módulo también se definen reglas YARA que permiten distinguir las variantes Ares y Chaos. Al final, Assemblyline muestra un informe bien presentado con los IOC extraídos.

La primera parte de la serie introduce al lector en la comprensión de cómo es el flujo de trabajo estándar de análisis de configuraciones en TDR: desde la elección del analizador y la detección de la familia hasta la obtención de un resultado estructurado. En la segunda parte, la serie avanza hacia casos más complejos — por ejemplo, configuraciones de malware .NET en el caso de QuasarRAT.

¿Estás cansado de que Internet sepa todo sobre ti?

¡Únete a nosotros y hazte invisible!