
iocx v0.7.6.1
Un motor de análisis estático, extensible y determinista, que extrae IOCs de alta señal de binarios PE y texto, construido para la automatización de SOC y pipelines modernos de análisis de amenazas.
IOCX
Extracción de IOC determinista y sin riesgos para pipelines de seguridad modernos
Extracción estática de IOC de un archivo PE usando la CLI de IOCX
Proyecto Oficial IOCX
Este es el motor original de IOCX para la extracción estática determinista de IOC y el análisis de PE. Cualquier otro repositorio que use el nombre "iocx" no está afiliado con este proyecto.
Enlaces oficiales:
- PyPI: https://pypi.org/project/iocx/
- Github: https://github.com/iocx-dev/iocx
- Sitio web: https://iocx.dev/
Por Qué IOCX Importa
El malware moderno es adversarial por defecto — malformado, evasivo y diseñado para romper extractores ingenuos.
- Las herramientas que no entienden binarios colapsan ante PE malformados
- Los sandboxes son inseguros e inutilizables en CI/CD
- La reproducibilidad es esencial para pipelines automatizados
IOCX está construido para entornos donde la corrección y el determinismo realmente importan.
El Motor IOCX
IOCX es el motor oficial de extracción estática de IOC — un sistema determinista y consciente de binarios construido para DFIR, automatización de SOC, seguridad en CI/CD y pipelines de inteligencia de amenazas a gran escala.
A diferencia de los extractores basados solo en regex o las herramientas dependientes de sandbox, IOCX realiza:
- análisis estático puro
- riesgo cero de ejecución
- salida estable y determinista
- heurísticas probadas contra adversarios
Es un componente central del ecosistema MalX Labs para el análisis moderno y escalable de amenazas.
Prueba IOCX en 10 Segundos
echo "http://malicious.example" | iocx -
O escanea un archivo PE de forma segura:
iocx suspicious.exe -a deep
Por Qué Existe IOCX
Los equipos de seguridad enfrentan tres problemas persistentes:
- Los extractores basados en regex fallan ante entradas adversariales
- El sandboxing es inseguro, lento e inadecuado para la automatización
- La mayoría de las herramientas de IOC son inconsistentes, lentas o producen resultados sutilmente diferentes entre ejecuciones
IOCX resuelve esto con un motor determinista y solo estático diseñado para automatización, seguridad y escala.
Lo Que IOCX No Es
IOCX intencionalmente no es:
- un sandbox
- una herramienta de análisis de comportamiento
- un emulador
- un motor de enriquecimiento
Nunca ejecuta código no confiable. Nunca realiza análisis dinámico. Es solo estático por diseño — para seguridad, determinismo y compatibilidad con CI/CD.
Filosofía de Diseño
IOCX está diseñado para las realidades del malware moderno, no para las suposiciones de las herramientas heredadas.
1. Determinismo sobre ambigüedad
Salida estable y reproducible — sin aleatoriedad, sin volatilidad.
2. Estático sobre dinámico
La ejecución es insegura. El análisis estático es predecible, escalable y compatible con CI.
3. Ingeniería adversarial primero
PE malformados, RVA corruptos, cadenas hostiles — IOCX los trata como entrada normal.
4. Estabilidad del esquema como contrato
Los sistemas posteriores nunca deberían romperse al actualizar.
5. Rendimiento sin compromisos
150–300 MB/s en texto sin procesar. 6–15 MB/s en PE típicos. Predecible incluso bajo carga adversarial en el peor de los casos.
Estos compromisos derivan de una metodología de investigación publicada para el análisis estructural de PE — construcción determinista de fixtures, disciplina de anomalía única y el comportamiento del cargador de Windows como oráculo de corrección. Consulta docs/methodology.md para la metodología completa, y paax.dev para la taxonomía más amplia de PE adversariales y el conjunto comercial de fixtures.
Qué Hace Diferente a IOCX
| Capacidad | IOCX | Extractores de IOC Típicos | Herramientas de Sandbox / Dinámicas |
|---|---|---|---|
| Seguridad | Solo estático, cero ejecución | Solo regex, sin seguridad binaria | Ejecuta código no confiable (alto riesgo) |
| Determinismo | Salida totalmente determinista | No determinista bajo ruido | No determinista por diseño |
| Conciencia Binaria | Análisis completo de PE, heurísticas | Sin soporte binario | Sí, pero inseguro + lento |
| Resiliencia Adversarial | Probado contra PE malformados, cadenas hostiles | Fácilmente evadible | A menudo falla o clasifica mal |
| Rendimiento | 150–300 MB/s (texto), 6–15 MB/s (PE) | Altamente variable | Extremadamente lento |
| Compatibilidad con CI/CD | Sí — seguro, determinista, rápido | Parcial | No — inseguro para pipelines |
| Estabilidad del Esquema | Garantizada | Rara | Ninguna |
En resumen: IOCX está construido para la realidad adversarial real, no para entradas idealizadas.
Casos de Uso
CI/CD y DevSecOps
- Escanea binarios antes del lanzamiento
- Detecta URLs, IPs o secretos accidentales en builds
- Aplica puertas de seguridad con riesgo cero de ejecución
SOC y Respuesta a Incidentes
- Extrae indicadores de alertas o texto del portapapeles del analista
- Inspecciona muestras de malware de forma segura sin ejecución
- Normaliza IOC en JSON estructurado
Inteligencia de Amenazas
- Procesa feeds a escala
- Analiza informes no estructurados
- Construye pipelines de enriquecimiento sobre salida determinista
Automatización y Scripting
- Canaliza logs o artefactos a través de IOCX
- Usa la API de Python para ETL o flujos por lotes
- Extiende con detectores personalizados
Perfiles de Rendimiento
1. Extracción de IOC en Bruto (Texto, Logs, Buffers)
150–300 MB/s de rendimiento sostenido Ruta rápida — sin análisis de PE.
| Detector | Tiempo 1 MB | Rendimiento |
|---|---|---|
| Crypto | 0.0037 s | ~270 MB/s |
| Rutas de archivo | 0.0041 s | ~250 MB/s |
| IP | 0.0065 s | ~156 MB/s |
| Dominios | 0.0035 s | ~300 MB/s |
2. Archivos PE Típicos (~39 KB)
- 0.0122 s (típico)
- 0.0145 s (con heurísticas)
- 6–15 MB/s de rendimiento
3. PE Adversarial Denso (1.5 MB)
- 0.192 s
- ~7.6 MB/s de rendimiento
- Activa anomalías TLS, anomalías estructurales, patrones anti‑debug
4. Motor Completo (No PE)
- 1 MB: 0.038 s
Destacados de Versiones
Mostrar Historial de Versiones
v0.7.6.1 — Validador de Directorio de Excepciones
- Añade validación semántica profunda del directorio de excepciones (
.pdata) del PE; 14 nuevos códigos de razón; 15 validadores en total. - Corrige un defecto que estaba suprimiendo hallazgos estructurales en todo el motor.
- Cuatro comprobaciones adicionales resultaron estar muertas en producción: dos de colocación de directorios, una de mapeo de secciones y una de límites del directorio de recursos.
- Visible en la salida: los hallazgos previamente suprimidos o mal etiquetados ahora aparecerán.
- Pruebas: 1620 → 2136. Cobertura: 100%.
v0.7.6 — Expansión de Validadores Estructurales: Directorios de depuración y reubicaciones
- Dos nuevos validadores estructurales de PE — reubicaciones y depuración
- Los validadores WIN_CERTIFICATE y tls ahora obtienen la verdad estructural de parsers de struct dedicados, independientes de pefile
- 12 nuevos códigos de razón con taxonomías de sub‑razones resueltas por prioridad
- Análisis determinista a nivel de bytes — sin depender de la interpretación perezosa de pefile
- 1620 pruebas con 100% de cobertura
v0.7.5 — Expansión de Validadores Estructurales
- Cuatro nuevos validadores estructurales de PE — exports, imports de carga diferida, VS_VERSIONINFO y jerarquía de recursos
- 24 nuevos códigos de razón con taxonomías de sub‑razones resueltas por prioridad
- Análisis determinista a nivel de bytes — sin depender de la interpretación perezosa de pefile
- Metadatos relevantes para seguridad — características de DLL, decodificación de nombres de subsistema/máquina, entropía por recurso
- 1370 pruebas con 100% de cobertura — verificado de extremo a extremo contra
dumpbinen binarios reales
v0.7.4.1 — Parche de Compatibilidad con Windows
- Eliminada la dependencia de
python-magic, que causaba fallos de importación en sistemas Windows - Añadido un detector de tipo de archivo en Python puro para portabilidad total entre plataformas
- Mejorada la lógica de detección de PE aplicando validación estricta de PE compatible con Windows.
- Sin cambios de comportamiento en la extracción de IOC
- La corrección de consistencia de
--min-lengthestá planificada para v0.7.5
v0.7.4 — Análisis Avanzado de Directorios
- Análisis y validación completos del Directorio de Configuración de Carga
- Metadatos extendidos de la Cabecera Opcional para heurísticas posteriores
- Nuevas heurísticas GuardCF, cookie y de anomalías
- Análisis de PE más rápido
- 99 fixtures de PE en el conjunto de pruebas; 45 totalmente validados según especificación
v0.7.3 — Corrección Estructural y Heurísticas Deterministas
- Mayor endurecimiento de todos los validadores estructurales de PE
- Comportamiento determinista y estable en snapshots
- ReasonCodes claros y consistentes
- Heurísticas más sólidas construidas sobre verdad estructural
v0.7.2 — Corrección de Dependencias
- Añadida la dependencia faltante
idna - Sin cambios de comportamiento ni de esquema
v0.7.1 — Expansión de Heurísticas Adversariales y Endurecimiento del Parser
- Seis nuevas heurísticas de PE
- Corpus adversarial de PE expandido
- Extractores de dominio/URL/crypto/hash endurecidos
- Salida determinista validada por snapshots
v0.7.0 — Heurísticas Deterministas y Base de Pruebas Adversariales
- Heurísticas deterministas
- Muestras adversariales de capa 3
- Pruebas de contrato de snapshots
- Corrección de fallo en Rich Header
v0.6.0 — Esquema de Salida Estable y Metadatos Deterministas
- Esquema JSON totalmente estable
- Metadatos de PE normalizados
- Niveles de análisis formalizados
v0.5.0 — Niveles de Análisis, Análisis de Secciones PE, Pistas de Ofuscación
- Nuevo sistema de niveles de análisis
- Análisis estructural de PE
- Heurísticas de ofuscación
v0.4.0 — Arquitectura de Plugins
- Motor de reglas preparado para plugins
- Flujo de detección unificado
v0.3.0 — Detección de IOC Crypto
- Detección de wallets de Ethereum y Bitcoin
v0.2.0 — Detección de IP de Alta Fiabilidad
- Mejoras importantes en IPv4/IPv6
Inicio Rápido
Instalación
pip install iocx
Extraer IOC de un archivo
iocx suspicious.exe
Extraer de texto
echo "Visit http://bad.example.com" | iocx -
Habilitar análisis de PE
iocx suspicious.exe -a
API de Python
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
Ejemplo de Salida
IOCX produce JSON estructurado y determinista que incluye IOC, metadatos de PE, análisis de secciones, heurísticas e indicadores de ofuscación.
El ejemplo siguiente es una salida abreviada de una muestra adversarial de PE real. Demuestra la forma y profundidad del esquema manteniendo un tamaño manejable para fines de documentación.
Mostrar Ejemplo de Salida JSON
{
"file": "heuristic_rich.full.exe",
"type": "PE",
"iocs": {
"urls": ["http://not-a-real-domain.test/payload"],
"domains": ["example-malware.com"],
"ips": ["192.0.2.123"],
"hashes": [
"abcd1234ef567890abcd1234ef567890",
"1234567890",
"3333333333333333"
],
"filepaths": [
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/crtexe.c",
"/usr/x86_64-w64-mingw32/include",
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/pseudo-reloc.c"
]
},
"metadata": {
"file_type": "PE",
"imports": ["KERNEL32.dll", "msvcrt.dll", "USER32.dll"],
"sections": [
".text", ".data", ".rwx", ".rdata",
"UPX0", ".pdata", ".xdata", ".tls"
],
"resources": [],
"resource_strings": [],
"delayed_imports": [],
"bound_imports": [],
"exports": [],
"signatures": [],
"has_signature": false,
"tls": {
"start_address": 5368758272,
"end_address": 5368758280,
"callbacks": 5368754232
},
"header": {
"entry_point": 5088,
"image_base": 5368709120,
"machine": "AMD64",
"subsystem": "Windows GUI"
},
"optional_header": {
"section_alignment": 4096,
"file_alignment": 512,
"size_of_image": 155648
}
},
"analysis": {
"sections": [
{ "name": ".text", "entropy": 5.92 },
{ "name": ".rwx", "entropy": 0 },
{ "name": "UPX0", "entropy": 0.34 },
{ "name": ".rdata", "entropy": 4.03 }
],
"obfuscation": [
{
"value": "abnormal_section_layout_virtual_only",
"category": "obfuscation_hint",
"metadata": {
"section": ".bss",
"raw_size": 0,
"virtual_size": 384
}
}
],
"extended": [
{
"value": "summary",
"category": "pe_metadata",
"metadata": {
"dll_count": 3,
"import_count": 45,
"resource_count": 0,
"has_tls": true,
"has_signature": false
}
}
],
"heuristics": [
{
"value": "packer_suspected",
"metadata": {
"reason": "packer_section_name",
"section": "UPX0"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "anti_debug_api_import",
"dll": "kernel32.dll",
"function": "CheckRemoteDebuggerPresent"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "timing_api_import",
"dll": "kernel32.dll",
"function": "GetTickCount"
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "section_overlaps_headers",
"section": ".bss",
"raw_address": 0,
"size_of_headers": 1536
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "data_directory_overlap",
"directory_a": "IMAGE_DIRECTORY_ENTRY_IMPORT",
"directory_b": "IMAGE_DIRECTORY_ENTRY_IAT"
}
}
]
}
}
Arquitectura
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
Ecosistema de Plugins y Extensibilidad
IOCX está diseñado para extenderse de forma segura y predecible. Los plugins son ciudadanos de primera clase, validados por las mismas pruebas deterministas de snapshots que el motor central.
Puedes construir:
- detectores de IOC personalizados
- reglas regex personalizadas
- plugins conscientes de binarios
- heurísticas internas
- extractores específicos de pipelines
Consulta:
docs/specs/overlap-suppression.mddocs/specs/plugin-authoring-guidelines.md
Visión General del Ecosistema
IOCX es más que un solo binario — es un ecosistema modular:
- Motor Central — extracción determinista de IOC + análisis de PE
- Sistema de Plugins — detectores personalizados y módulos de análisis
- Corpus Adversarial — PE malformados, cadenas hostiles, muestras de fuzzing
- Framework de Pruebas de Snapshots — garantiza salida determinista
- Benchmarks de Rendimiento — aplicados en CI
- Suite de Documentación — especificaciones, contratos y guías de plugins
Quién Usa IOCX?
IOCX se usa en:
- Equipos de DFIR
- Pipelines de automatización de SOC
- Puertas de seguridad en CI/CD
- Plataformas de inteligencia de amenazas
- Laboratorios de investigación de malware
- Equipos de ingeniería de seguridad
En cualquier lugar donde los indicadores necesiten extraerse de forma segura, determinista y a escala, IOCX encaja.
Pruebas Seguras (Sin Malware Requerido)
Todas las muestras de prueba son:
- Sintéticas
- Benignas
- Públicamente seguras (EICAR, GTUBE)
- Diseñadas para evitar el manejo accidental de malware
Garantías de Rendimiento
IOCX aplica umbrales estrictos de rendimiento en CI para garantizar:
- Sin bloqueos por backtracking de regex
- Sin ralentizaciones patológicas
- Rendimiento estable entre versiones
Consulta:
docs/performance.md
Identidad del Proyecto y Nomenclatura
El nombre IOCX se refiere exclusivamente al motor oficial publicado en:
No permitido
- Repositorios llamados
iocx - Herramientas llamadas "iocx" que no formen parte de este proyecto
- Implicar afiliación sin permiso
Permitido
iocx-<plugin>iocx-extension-<name>iocx-detector-<feature>
Repositorios Oficiales de IOCX
- Motor Central: https://github.com/iocx-dev/iocx
- Meta‑Repositorio de Plugins: https://github.com/iocx-dev/iocx-plugins
- Documentación: https://github.com/iocx-dev/iocx/tree/main/docs/specs
- Paquete PyPI: https://pypi.org/project/iocx/
Hoja de Ruta
El desarrollo de IOCX se centra en estabilidad, extensibilidad y una cobertura más profunda del análisis estático. Los elementos siguientes representan áreas de trabajo y exploración en curso.
- Heurísticas de PE extendidas (comportamiento de carga diferida, anomalías estructurales, patrones de reubicación)
- Reglas de supresión selectiva para flujos de trabajo de OSINT, DFIR e inteligencia de amenazas
- Extracción de metadatos ELF y Mach‑O
- Modo de análisis por lotes para flujos de trabajo con múltiples artefactos
- Modos de salida estilo YARA y hooks de enriquecimiento
- Análisis estático agnóstico de binarios
- Ecosistema de plugins multiplataforma
- Bindings de lenguaje para Rust, Go y Node.js
Contribuciones
Damos la bienvenida a:
- Nuevos detectores
- Mejoras del parser
- Actualizaciones de documentación
- Muestras adversariales sintéticas
Consulta CONTRIBUTING.md para las directrices.
Seguridad
Si descubres un problema de seguridad, no abras un issue en GitHub.
Sigue las instrucciones en SECURITY.md.
Licencia
Licencia MPL‑2.0 — consulta LICENSE.