Skip to content

De un archivo PE a IOC: MISP, STIX 2.1 y una regla YARA

Extraer indicadores de compromiso de ejecutables de Windows, neutralizarlos, filtrar el ruido y exportarlos como CSV, evento MISP, bundle STIX 2.1 o regla YARA.

Publicado el 4 min de lectura

En resumen. Las cadenas, las configuraciones decodificadas y el código emulado aportan indicadores — URL, dominios, IP, claves de registro, mutex, tuberías con nombre, hashes. El PE Parser los reúne en una pestaña IOC, oculta el ruido habitual y los exporta como CSV, lista neutralizada, evento MISP o bundle STIX 2.1, para un archivo o un lote entero. También puede crear un borrador de regla YARA con las cadenas más distintivas del archivo.

De dónde salen los indicadores

  • Las cadenas estáticas, ASCII y UTF-16, más el texto decodificado de Base64.
  • Las configuraciones maliciosas decodificadas: servidores C2, user-agents, tuberías con nombre y mutex de beacons de Cobalt Strike y de algunas familias de RAT (leer una configuración de beacon).
  • Las cadenas recuperadas del código por emulación — stack strings y cadenas decodificadas que una extracción simple no ve (stack strings).
  • El propio archivo: MD5, SHA-1, SHA-256, el imphash y la ruta PDB.

Qué se extrae y qué se filtra

La pestaña agrupa los indicadores por tipo: C2 (host:puerto), URL, dominio, IPv4, dirección onion, correo, user-agent, clave de registro, ruta, tubería con nombre, mutex, PDB, monederos de criptomonedas (Bitcoin, Ethereum, Monero) y hashes.

Los binarios están llenos de texto que parece un indicador y no lo es. Algunas reglas mantienen la lista útil:

  • Los dominios necesitan un dominio de primer nivel real y se descartan si parecen un espacio de nombres .NET (System.IO, Newtonsoft.Json) o un nombre de archivo (readme.md, setup.py).
  • Las direcciones IP que parecen números de versión (6.0.0.0, 1.2.3.4) se descartan.
  • La infraestructura conocida — autoridades de certificación (URL de CRL y OCSP en archivos firmados), esquemas XML, Microsoft — y las direcciones privadas o de loopback se conservan pero quedan ocultas tras una casilla Mostrar conocidos.

Cada indicador muestra dónde se encontró; haga clic en el offset para ver los bytes en la vista hexadecimal.

Neutralización

Los indicadores se muestran neutralizados por defecto — hxxps[://]evil[.]example/gate, 10[.]0[.]0[.]1, user[@]example[.]com — para que un informe o un mensaje no acabe en un clic o una consulta DNS accidentales. Desmarque Neutralizar para ver los valores en bruto. La lista de texto neutralizada es para personas; las exportaciones CSV, MISP y STIX llevan los valores originales (el CSV incluye ambos).

Exportar

FormatoPara qué
CSVHojas de cálculo, filtrado rápido; tipo, valor, valor neutralizado, origen, offset, archivo y hash del archivo por fila
Lista de texto neutralizadaInformes y tickets
Evento MISP (JSON)Importar en MISP: un atributo por indicador con su tipo y categoría MISP; to_ids activado para indicadores de red y hashes, no para rutas
Bundle STIX 2.1TIP y SIEM que admiten STIX: un objeto indicator por IOC con un patrón STIX ([domain-name:value = '…'], [file:hashes.'SHA-256' = '…'], [network-traffic:…])

Desde la pestaña IOC de un archivo exporta ese archivo; desde el menú Exportar de la barra de herramientas, todo el lote (o el rango de tiempo actual), con los análisis de código ya ejecutados incluidos.

En MISP, revise antes de publicar: el evento se crea sin publicar, y lo marcado como conocido se deja fuera salvo que haya elegido mostrarlo.

Un borrador YARA con las mismas pruebas

Borrador de regla YARA construye una regla a partir del archivo:

  • primero las cadenas más distintivas — valores C2, URL, ruta PDB, mutex, tuberías — y luego texto largo y específico, descartando nombres de API, mensajes del runtime del compilador y cadenas procedentes de datos comprimidos;
  • una condición que exige una cabecera MZ, un límite de tamaño y, o bien dos cadenas fuertes, o bien una parte de las débiles, o bien el imphash del archivo;
  • un bloque meta con el SHA-256 y la fecha.

La regla se abre en el panel YARA, donde puede ejecutarla sobre todos los archivos cargados a la vez: ¿detecta las demás muestras de la familia, y solo esas? Ajuste, vuelva a ejecutar y copie el resultado en su conjunto de reglas. Es un borrador — se trata de partir de las cadenas correctas, no de saltarse las pruebas.

Límites

  • Coincidencia de texto. Un indicador es algo que contiene el archivo, no algo que usó. Una URL en un mensaje de ayuda sigue siendo una URL.
  • Hashes de archivos reconstruidos. Los archivos que la herramienta desempaqueta se reconstruyen; sus hashes no corresponden a ningún archivo que existiera en disco y no deben compartirse como IOC de archivo.
  • Las cadenas ocultas siguen ocultas salvo que el análisis de código las recupere o que el archivo se desempaquete antes.

Junto con la vista por lotes, esto convierte una carpeta de ejecutables sospechosos en un conjunto de IOC revisado en minutos — sin subir un solo archivo.