Volver a actualizaciones
Nuevo releaseSep 3, 2026

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.

Compartir

IOCX

Extracción de IOC determinista y sin riesgos para pipelines de seguridad modernos

IOCX Demo

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:


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:

  1. Los extractores basados en regex fallan ante entradas adversariales
  2. El sandboxing es inseguro, lento e inadecuado para la automatización
  3. 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

CapacidadIOCXExtractores de IOC TípicosHerramientas de Sandbox / Dinámicas
SeguridadSolo estático, cero ejecuciónSolo regex, sin seguridad binariaEjecuta código no confiable (alto riesgo)
DeterminismoSalida totalmente deterministaNo determinista bajo ruidoNo determinista por diseño
Conciencia BinariaAnálisis completo de PE, heurísticasSin soporte binarioSí, pero inseguro + lento
Resiliencia AdversarialProbado contra PE malformados, cadenas hostilesFácilmente evadibleA menudo falla o clasifica mal
Rendimiento150–300 MB/s (texto), 6–15 MB/s (PE)Altamente variableExtremadamente lento
Compatibilidad con CI/CDSí — seguro, determinista, rápidoParcialNo — inseguro para pipelines
Estabilidad del EsquemaGarantizadaRaraNinguna

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.

DetectorTiempo 1 MBRendimiento
Crypto0.0037 s~270 MB/s
Rutas de archivo0.0041 s~250 MB/s
IP0.0065 s~156 MB/s
Dominios0.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 dumpbin en 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-length está 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.md
  • docs/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


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.

Categorías