Indicadores de compromiso (IOC) explicados.
Qué es un indicador de compromiso, los tipos de IOC con ejemplos, atómico vs conductual, IOC vs IOA, la Pirámide del Dolor, la caducidad y cómo se comparte.
Toda intrusión deja huellas. Una pieza de malware escribe un fichero, y ese fichero tiene un hash. Un beacon llama a casa, y el destino es una dirección IP y un dominio. Un loader crea un mutex para no infectar dos veces la misma máquina. Un indicador de compromiso (IOC) es cualquiera de esos artefactos observables: una miga de pan forense que, cuando la ves en tu propia red, sugiere con fuerza que algo malo ya ha ocurrido o está ocurriendo ahora mismo.
Los IOC son la moneda de curso de la detección del día a día: lo que bloquea un cortafuegos, lo que un agente EDR coteja contra la telemetría de procesos, lo que hace saltar una regla de correlación de un SIEM y lo que usa como punto de pivote un cazador de amenazas. También son la señal más frágil de la pila defensiva, porque para un atacante casi todos ellos son trivialmente baratos de cambiar. Entender cuáles IOC son baratos de sustituir y cuáles son caros es el modelo mental más útil de la detección de amenazas, y tiene nombre: la Pirámide del Dolor. Este artículo cubre qué son los IOC, los tipos con los que realmente te vas a topar, en qué se diferencian de los indicadores de ataque, por qué caducan y cómo los comparte el sector.
Qué es un IOC, con precisión
El encuadre formal viene de los estándares de inteligencia de amenazas. El Instituto Nacional de Estándares y Tecnología de EE. UU., en su SP 800-150, la Guía para el Intercambio de Información sobre Ciberamenazas, describe los indicadores como los artefactos técnicos u observables que sugieren que un ataque es inminente, está en curso o ya ha ocurrido. En la práctica, un IOC es un valor concreto y cotejable: este hash exacto, este dominio exacto, esta clave de registro exacta. Esa especificidad es a la vez su fuerza y su debilidad. Es inequívoco (o ves el valor en tus logs o no lo ves), pero solo describe una instanciación concreta de un ataque, no el ataque en sí.
Un IOC no es lo mismo que una vulnerabilidad (una debilidad que podría explotarse) ni que una alerta (la salida de una regla de detección). Es la evidencia intermedia: la vulnerabilidad es la ventana sin cerrar, el IOC es la huella de barro sobre la alfombra y la alerta es el sensor que reparó en la huella.
Los tipos que realmente vas a ver
Los IOC abarcan toda la pila, desde un simple hash de un fichero hasta la forma de un handshake TLS. Los ejemplos de abajo usan rangos de IP de documentación (192.0.2.0/24, 198.51.100.0/24, del RFC 5737), dominios desactivados (defanged) y el inofensivo fichero de prueba antimalware EICAR, así que nada de esto es real.
- Hashes de fichero (MD5, SHA-1, SHA-256). Un resumen criptográfico de un fichero, usado para identificar exactamente una muestra concreta de malware. El fichero de prueba EICAR, por ejemplo, tiene MD5
44d88612fea8a8f36de82e1278abb02fy SHA-256275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f. MD5 y SHA-1 siguen apareciendo por todas partes en los feeds pese a estar criptográficamente rotos, porque para las búsquedas de indicadores solo necesitas unicidad, no resistencia a colisiones. SHA-256 es el valor por defecto moderno. - Direcciones IP. Servidores de mando y control, orígenes de escaneo, puntos de exfiltración; p. ej. un beacon que llama a
198.51.100.23:443. Viven en los logs de cortafuegos, proxy y NetFlow. - Nombres de dominio. Dominios de phishing y C2 como
secure-login-update[.]com, a menudo generados en masa o por un algoritmo de generación de dominios (DGA). Afloran en los logs de consultas DNS y en el correo. - URL. Una ruta completa fija un payload o un panel con más precisión que un dominio a secas:
hxxp://198.51.100.23/panel/gate.php. Los proxies, WAF y escáneres de enlaces de correo se apoyan en ellas. - Rutas y nombres de fichero. Dónde se deja caer el malware, p. ej.
C:\Users\Public\svch0st.exeo%APPDATA%\Roaming\update\wsus.exe: un nombre que imita a otro legítimo en un directorio inusual. - Claves del registro de Windows. La persistencia suele tocar el registro. Un valor bajo
HKCU\Software\Microsoft\Windows\CurrentVersion\Runque apunte a ese binario dejado caer es un IOC de arranque automático clásico. - Mutex (mutantes). Muchas familias crean un mutex con nombre para no reinfectar un host. Un mutex fijo como
Global\\a7f3c1d9-hydrapaneles un indicador de alta fidelidad porque suele ser único de una compilación de malware. - Cadenas User-Agent. Los clientes HTTP del malware a menudo llevan un User-Agent fijo o malformado, p. ej.
Mozilla/5.0 (Windows NT 6.1) Gecko/20100101 wininet-1.2, que destaca frente al tráfico de navegadores reales. - Huellas TLS JA3 / JA4. En lugar de tomar la huella del destino, estas resumen (hash) la forma del ClientHello TLS del cliente: sus suites de cifrado, extensiones y curvas elípticas. JA3 (de Salesforce) produce un MD5 de 32 caracteres como
e7d705a3286e19ea42f587b344ee6865; su sucesor JA4+ (de FoxIO) es más robusto y más difícil de falsificar. Como la huella está ligada al utillaje del atacante y no a su infraestructura, sobrevive a un cambio de IP, que es justo por lo que se sitúa más arriba en la pirámide. - Cabeceras de correo. En el phishing, el sobre cuenta la historia: un
Return-Pathque no cuadra con elFrom, una cadenaReceivedsospechosa, unX-Mailerdelator, unReply-Toque apunta a otro sitio y unos resultadosSPF/DKIM/DMARCfallidos son todos indicadores.
Atómicos, computados y conductuales
La taxonomía clásica, que proviene del trabajo OpenIOC de Mandiant, ordena los indicadores en tres cubos según cómo se construyen:
- Los indicadores atómicos no pueden descomponerse más y seguir significando algo: una dirección IP, un dominio, una dirección de correo, una cadena fija. Son los valores hoja.
- Los indicadores computados se derivan de los datos del incidente: un hash de fichero, una expresión regular, una condición YARA. Requieren cierto procesamiento para producirse.
- Los indicadores conductuales combinan indicadores atómicos y computados con lógica para describir lo que un actor hace: «un proceso de Word lanza PowerShell, que descarga desde este dominio y escribe en esta clave Run». Estos son los más cercanos al comportamiento del atacante y empiezan a difuminarse hacia el territorio de las TTP y los indicadores de ataque.
Esa progresión, de un solo valor frágil hacia una descripción de comportamiento, es la misma progresión que formaliza la Pirámide del Dolor.
IOC vs IOA: evidencia del pasado vs el acto en sí
Un IOC es reactivo por naturaleza. Dice: «este artefacto se vio en un evento malicioso conocido, así que, si tú también lo ves, probablemente estás comprometido». Un indicador de ataque (IOA), un encuadre popularizado por CrowdStrike (véase su explicación sobre IOA), describe la intención y la técnica de un ataque mientras se despliega, con independencia de las herramientas o la infraestructura concretas que se usen. El volcado de credenciales desde la memoria de LSASS, la creación de un servicio para el movimiento lateral o un código de macro que lanza una shell son IOA: son ciertos sin importar qué IP use el atacante o qué hash tenga esta semana su binario.
Por eso los IOA y las TTP (tácticas, técnicas y procedimientos, catalogadas en MITRE ATT&CK) perduran mientras que los IOC en bruto caducan. Un atacante puede regenerar un dominio en segundos y recompilar un payload para obtener un hash nuevo en minutos, pero cambiar cómo roba credenciales o se mueve lateralmente significa rediseñar toda su operación. La detección construida sobre comportamiento se degrada despacio; la construida sobre IOC atómicos se degrada en cuanto el adversario rota su infraestructura. Ambas son complementarias (los IOC te dan coincidencias baratas, precisas y con pocos falsos positivos para amenazas conocidas; los IOA te dan resistencia frente a variantes), y un programa maduro usa las dos.
La Pirámide del Dolor, nivel a nivel
En 2013, David Bianco publicó The Pyramid of Pain, que sigue siendo el mejor marco para razonar sobre el valor de un indicador. Su premisa: no todos los IOC son iguales. La pirámide clasifica los tipos de indicador según cuánto dolor le infliges a un adversario cuando le niegas el uso de ese indicador. Cuanto más arriba detectas, más caro le resulta adaptarse. De abajo arriba:
- Valores hash (trivial). Bloquear un hash detiene exactamente un fichero. Voltear un solo byte (rellenar, recompilar, reempaquetar) produce un hash completamente nuevo y derrota el bloqueo al instante. Casi ningún dolor.
- Direcciones IP (fácil). Bloquear una IP es algo mejor, pero los atacantes rotan por proveedores de VPS, proxies y hosting fast-flux de forma barata. Una dirección se abandona y se reemplaza con un encogimiento de hombros.
- Nombres de dominio (sencillo). Registrar un dominio nuevo cuesta unos pocos dólares y unos minutos, aunque es marginalmente más esfuerzo que rotar una IP por el registro y la propagación DNS. Aun así, poco dolor.
- Artefactos de red y de host (molesto). Aquí se pone interesante. Cadenas User-Agent, patrones de URI, mutex, claves de registro, named pipes, huellas JA3/JA4: estos están horneados en el utillaje del atacante. Detectarlos obliga al adversario a reconfigurar o modificar sus herramientas, lo cual es genuinamente irritante.
- Herramientas (desafiante). Si puedes detectar de forma fiable la propia herramienta (Mimikatz, un perfil por defecto concreto de Cobalt Strike, un loader a medida), el atacante debe encontrar, construir o comprar un reemplazo y volver a formarse en él. Eso es coste y demora reales.
- TTP (duro). En la cúspide detectas comportamiento: las técnicas en sí. Para evadir esto, el adversario debe replantearse de raíz cómo opera. Este es el lugar más doloroso y más duradero para detectar, y es donde la ingeniería de detección conductual (reglas Sigma, analíticas de EDR) se gana el sueldo.
La conclusión no es «ignora la base de la pirámide». Los bloqueos baratos de hash e IP siguen mereciendo la pena: son gratis y detienen el ruido de commodity. La idea es invertir tu esfuerzo de ingeniería de detección tan arriba de la pirámide como puedas, porque ahí están las victorias duraderas.
El mapa: tipo de IOC a nivel de la pirámide
Esta tabla ata las piezas: cada tipo de IOC, un ejemplo concreto, dónde lo encontrarías en tu telemetría y con qué facilidad lo evade un atacante, mapeado a la pirámide de Bianco.
| Tipo de IOC | Ejemplo | Dónde aparece | Facilidad de evasión (nivel de la pirámide) |
|---|---|---|---|
| Hash de fichero (SHA-256) | 275a021b…651fd0f |
Telemetría de EDR, informes de sandbox, VirusTotal | Trivial: recompilar cambia el hash (hashes) |
| Dirección IP | 198.51.100.23 |
Logs de cortafuegos, proxy, NetFlow | Fácil: rotar hosting/VPS (direcciones IP) |
| Nombre de dominio | secure-login-update[.]com |
Logs de consultas DNS, proxy, correo | Sencillo: registrar otro (nombres de dominio) |
| URL / ruta URI | hxxp://198.51.100.23/gate.php |
Proxy, WAF, escáneres de enlaces de correo | Sencillo: nueva ruta/dominio (nombres de dominio) |
| Clave de registro | …\CurrentVersion\Run\wsus |
EDR, registro, autoruns | Molesto: cambiar la herramienta (artefactos de host) |
| Mutex | Global\\a7f3c1d9-hydrapanel |
EDR, memoria, sandbox | Molesto: recodificar la herramienta (artefactos de host) |
| User-Agent | …Gecko/20100101 wininet-1.2 |
Proxy, servidor web, logs de IDS | Molesto: editar el cliente (artefactos de red) |
| Huella JA3 / JA4 | e7d705a3286e19ea42f587b344ee6865 |
Logs TLS de Zeek/Suricata | De molesto a duro: ligada al utillaje (artefactos/herramientas) |
| Firma de herramienta | Mimikatz, perfil por defecto de Cobalt Strike | EDR, YARA, escaneos de memoria | Desafiante: reconstruir/reemplazar (herramientas) |
| TTP / comportamiento | Volcado de credenciales de LSASS (T1003.001) | Telemetría de EDR correlacionada, Sigma | Duro: rediseñar la operación (TTP) |
Ciclo de vida y caducidad: por qué los IOC expiran
Un IOC tiene un ciclo de vida. Se crea a partir de un incidente, una detonación en sandbox o un informe de inteligencia; se enriquece y puntúa por confianza y contexto; se distribuye a sensores y feeds; se usa para bloquear, cotejar y cazar; y luego envejece hasta que se retira. Ese último paso no es un mantenimiento opcional: es esencial, porque los indicadores se quedan rancios y los indicadores rancios son activamente dañinos.
Caducan por razones concretas. La infraestructura del atacante rota: una IP de C2 se abandona en días y, peor aún, esa misma dirección la reasigna después el proveedor de hosting a un cliente legítimo, así que un bloqueo que pusiste hace meses ahora genera falsos positivos contra un servicio benigno. Los dominios maliciosos acaban en sinkhole o expiran y los vuelve a registrar alguien inocente. Los hashes son únicos de una compilación y se vuelven irrelevantes en el instante en que el actor recompila. Esto es la «vida media» del indicador, y las plataformas serias la modelan de forma explícita. La funcionalidad de modelos de decaimiento de MISP asigna a cada indicador una puntuación que cae automáticamente con el tiempo según su tipo y su fuente, de modo que los indicadores de baja confianza y envejecidos dejan de saltar antes de ahogar a los analistas en ruido. La regla práctica: un bloqueo de IP o de dominio debería tener caducidad; una regla conductual, por lo general, no.
Cómo se comparten los IOC
Un IOC que descubre una organización es mucho más valioso si todas las demás pueden actuar sobre él también, y por eso el intercambio de inteligencia de amenazas es todo un ecosistema. Funciona sobre estándares, plataformas y feeds.
Estándares: STIX y TAXII. STIX (Structured Threat Information eXpression) es el lenguaje basado en JSON para describir inteligencia de amenazas (indicadores, actores de amenaza, malware, relaciones) de forma legible por máquina e inequívoca. TAXII (Trusted Automated eXchange of Intelligence Information) es el protocolo de transporte para mover STIX entre servidores y clientes sobre HTTPS. El lema es que STIX es el qué y TAXII es el cómo; ambos los mantiene OASIS.
Plataformas. MISP (Malware Information Sharing Platform) es el caballo de batalla de código abierto para almacenar, correlacionar y compartir IOC entre comunidades de confianza. OpenCTI es una plataforma de código abierto más reciente que estructura la inteligencia en torno al modelo de datos STIX y vincula indicadores con actores, campañas y técnicas. Ambas ingieren y exportan vía STIX/TAXII.
Feeds. Existen muchos feeds de indicadores gratuitos y de gran calidad. El proyecto abuse.ch por sí solo gestiona tres de los mejores: URLhaus para URL de distribución de malware, ThreatFox para IOC generales y MalwareBazaar para muestras de malware y sus hashes. AlienVault OTX es un gran feed comunitario de «pulsos» y VirusTotal es el recurso de referencia para enriquecer un único hash, dominio o IP contra decenas de motores a la vez.
Cómo se usan los IOC, y dónde se quedan cortos
Una vez que se tienen los indicadores en la mano, los defensores los ponen a trabajar de tres maneras. El bloqueo los empuja a puntos de aplicación (listas de denegación de cortafuegos, sinkholes DNS, reglas de bloqueo de EDR, pasarelas de correo) para que lo malo nunca ocurra. El cotejo los alimenta a la detección: un SIEM correlaciona logs en vivo e históricos contra el conjunto de indicadores, y motores IDS como Suricata o Snort alertan sobre coincidencias de red. El retro-hunting es un caso especial de cotejo: rastrear meses de logs almacenados contra un IOC recién publicado para responder «¿ya nos habían golpeado?». La caza usa un IOC como punto de pivote inicial: un dominio sospechoso te lleva a las IP a las que resolvió, las muestras que lo contactaron y los hosts que lo consultaron. Nuestro recorrido sobre cómo investigar un dominio sospechoso muestra ese pivote de principio a fin, y todo esto corre sobre la maquinaria SIEM/SOAR/EDR que cubre el stack del SOC.
Las limitaciones son la otra cara de la pirámide. Los IOC atómicos son frágiles: baratos de cambiar para un atacante, así que una defensa puramente basada en IOC va siempre una recompilación por detrás. Son inherentemente retrospectivos: solo puedes cotejar un valor una vez que alguien ya se ha quemado con él, así que sigues ciego ante infraestructura genuinamente novedosa. Y generan falsos positivos y ruido a medida que envejecen, que es justo por lo que importa la puntuación de decaimiento. El arreglo no es abandonar los IOC, sino apilarlos: combina las coincidencias baratas, precisas y de la base de la pirámide con detección conductual duradera más arriba. Ese es el papel de las reglas Sigma y YARA, que expresan comportamiento de host y de fichero en vez de valores sueltos, y la labor de convertir indicadores en bruto en inteligencia contrastada, contextual y decaída corresponde a las personas que comparamos en analista de amenazas vs analista CTI. Los IOC son el suelo de un programa de detección, nunca el techo.
