
iocx v0.7.6
Um mecanismo de análise estática extensível e determinístico que extrai IOCs de alto sinal de binários PE e texto, criado para automação de SOC e pipelines modernos de análise de ameaças.
IOCX
Extração de IOC Determinística e Sem Risco para Pipelines de Segurança Modernos
Extração estática de IOC de um arquivo PE usando a CLI do IOCX
Projeto Oficial IOCX
Este é o motor IOCX original para extração estática determinística de IOC e análise de PE. Quaisquer outros repositórios que usem o nome "iocx" não são afiliados a este projeto.
Links oficiais:
- PyPI: https://pypi.org/project/iocx/
- Github: https://github.com/iocx-dev/iocx
- Website: https://iocx.dev/
Por Que o IOCX é Importante
Malware moderno é adversarial por padrão — malformado, evasivo e projetado para quebrar extratores ingênuos.
- Ferramentas sem consciência binária colapsam sob PEs malformados
- Sandboxes são inseguros e inutilizáveis em CI/CD
- Reprodutibilidade é essencial para pipelines automatizados
O IOCX é construído para ambientes onde correção e determinismo realmente importam.
O Motor IOCX
O IOCX é o motor oficial de extração estática de IOC — um sistema determinístico e com consciência binária, construído para DFIR, automação de SOC, segurança em CI/CD e pipelines de inteligência de ameaças em larga escala.
Diferente de extratores baseados apenas em regex ou ferramentas dependentes de sandbox, o IOCX realiza:
- análise puramente estática
- risco zero de execução
- saída estável e determinística
- heurísticas testadas contra adversários
É um componente central do ecossistema MalX Labs para análise moderna e escalável de ameaças.
Experimente o IOCX em 10 Segundos
echo "http://malicious.example" | iocx -
Ou analise um arquivo PE com segurança:
iocx suspicious.exe -a deep
Por Que o IOCX Existe
Equipes de segurança enfrentam três problemas persistentes:
- Extratores baseados em regex quebram sob entrada adversarial
- Sandboxing é inseguro, lento e inadequado para automação
- A maioria das ferramentas de IOC é inconsistente, lenta ou produz resultados sutilmente diferentes entre execuções
O IOCX resolve isso com um motor determinístico e exclusivamente estático, projetado para automação, segurança e escala.
O Que o IOCX Não É
O IOCX intencionalmente não é:
- um sandbox
- uma ferramenta de análise comportamental
- um emulador
- um motor de enriquecimento
Ele nunca executa código não confiável. Ele nunca realiza análise dinâmica. É exclusivamente estático por design — para segurança, determinismo e compatibilidade com CI/CD.
Filosofia de Design
O IOCX é projetado para as realidades do malware moderno, não para as suposições de ferramentas legadas.
1. Determinismo acima de ambiguidade
Saída estável e reproduzível — sem aleatoriedade, sem volatilidade.
2. Estático acima de dinâmico
Execução é insegura. Análise estática é previsível, escalável e amigável a CI.
3. Engenharia adversarial em primeiro lugar
PEs malformados, RVAs corrompidos, strings hostis — o IOCX os trata como entrada normal.
4. Estabilidade de esquema como contrato
Sistemas downstream nunca devem quebrar em atualizações.
5. Desempenho sem concessões
150–300 MB/s em texto bruto. 6–15 MB/s em PEs típicos. Previsível mesmo sob carga adversarial no pior caso.
Esses compromissos derivam de uma metodologia de pesquisa publicada para análise estrutural de PE — construção determinística de fixtures, disciplina de anomalia única e o comportamento do loader do Windows como oráculo de correção. Consulte docs/methodology.md para a metodologia completa e paax.dev para a taxonomia adversarial de PE mais ampla e o conjunto comercial de fixtures.
O Que Torna o IOCX Diferente
| Capacidade | IOCX | Extratores de IOC Típicos | Ferramentas de Sandbox / Dinâmicas |
|---|---|---|---|
| Segurança | Zero execução, somente estático | Somente regex, sem segurança binária | Executa código não confiável (alto risco) |
| Determinismo | Saída totalmente determinística | Não determinístico sob ruído | Não determinístico por design |
| Consciência Binária | Parsing completo de PE, heurísticas | Sem suporte binário | Sim, mas inseguro + lento |
| Resiliência Adversarial | Testado contra PEs malformados, strings hostis | Facilmente contornado | Frequentemente trava ou classifica incorretamente |
| Desempenho | 150–300 MB/s (texto), 6–15 MB/s (PE) | Altamente variável | Extremamente lento |
| Amigável a CI/CD | Sim — seguro, determinístico, rápido | Parcial | Não — inseguro para pipelines |
| Estabilidade de Esquema | Garantida | Rara | Nenhuma |
Em resumo: o IOCX é construído para a realidade adversarial real, não para entrada idealizada.
Casos de Uso
CI/CD & DevSecOps
- Analise binários antes do lançamento
- Detecte URLs, IPs ou segredos acidentais em builds
- Imponha portões de segurança com risco zero de execução
SOC & Resposta a Incidentes
- Extraia indicadores de alertas ou texto da área de transferência do analista
- Inspecione amostras de malware com segurança, sem execução
- Normalize IOCs em JSON estruturado
Inteligência de Ameaças
- Processe feeds em escala
- Analise relatórios não estruturados
- Construa pipelines de enriquecimento com saída determinística
Automação & Scripting
- Envie logs ou artefatos por pipes através do IOCX
- Use a API Python para ETL ou fluxos em lote
- Estenda com detectores personalizados
Perfis de Desempenho
1. Extração Bruta de IOC (Texto, Logs, Buffers)
150–300 MB/s de throughput sustentado Caminho rápido — sem parsing de PE.
| Detector | Tempo para 1 MB | Throughput |
|---|---|---|
| Crypto | 0.0037 s | ~270 MB/s |
| Filepaths | 0.0041 s | ~250 MB/s |
| IP | 0.0065 s | ~156 MB/s |
| Domínios | 0.0035 s | ~300 MB/s |
2. Arquivos PE Típicos (~39 KB)
- 0.0122 s (típico)
- 0.0145 s (com heurísticas)
- 6–15 MB/s de throughput
3. PE Adversarial Denso (1.5 MB)
- 0.192 s
- ~7.6 MB/s de throughput
- Aciona anomalias de TLS, anomalias estruturais, padrões anti-debug
4. Motor Completo (Não-PE)
- 1 MB: 0.038 s
Destaques de Versão
Mostrar Histórico de Versões
v0.7.6.1 — Validador de Diretório de Exceções
- Adiciona validação semântica profunda do diretório de exceções (
.pdata) do PE; 14 novos códigos de motivo; 15 validadores no total. - Corrige um defeito que estava suprimindo achados estruturais em todo o motor.
- Quatro verificações adicionais encontradas como mortas em produção: duas de posicionamento de diretório, uma de mapeamento de seção e uma de verificação de limites do diretório de recursos.
- Visível na saída: achados anteriormente suprimidos ou rotulados incorretamente agora aparecerão.
- Testes: 1620 → 2136. Cobertura: 100%.
v0.7.6 — Expansão de Validadores Estruturais: Diretórios de debug e relocações
- Dois novos validadores estruturais de PE — relocações e debug
- Validadores de WIN_CERTIFICATE e tls agora obtêm verdade estrutural de parsers de struct dedicados, independentes de pefile
- 12 novos códigos de motivo com taxonomias de sub-motivos resolvidas por prioridade
- Parsing determinístico em nível de byte — sem depender da interpretação preguiçosa do pefile
- 1620 testes com 100% de cobertura
v0.7.5 — Expansão de Validadores Estruturais
- Quatro novos validadores estruturais de PE — exports, imports de delay-load, VS_VERSIONINFO e hierarquia de recursos
- 24 novos códigos de motivo com taxonomias de sub-motivos resolvidas por prioridade
- Parsing determinístico em nível de byte — sem depender da interpretação preguiçosa do pefile
- Metadados relevantes para segurança — características de DLL, decodificação de nomes de subsistema/máquina, entropia por recurso
- 1370 testes com 100% de cobertura — verificados de ponta a ponta contra
dumpbinem binários reais
v0.7.4.1 — Hotfix de Compatibilidade com Windows
- Removida a dependência
python-magic, que causava falhas de importação em sistemas Windows - Adicionado um detector de tipo de arquivo em Python puro para portabilidade total entre plataformas
- Melhora a lógica de detecção de PE impondo validação estrita de PE compatível com Windows.
- Sem mudanças comportamentais na extração de IOC
- A correção de consistência do
--min-lengthestá planejada para v0.7.5
v0.7.4 — Parsing Avançado de Diretórios
- Parsing e validação completos do Load Config Directory
- Metadados estendidos do Optional Header para heurísticas downstream
- Novas heurísticas de GuardCF, cookie e anomalia
- Análise de PE mais rápida
- 99 fixtures de PE no conjunto de testes; 45 totalmente validados por especificação
v0.7.3 — Correção Estrutural e Heurísticas Determinísticas
- Grande endurecimento de todos os validadores estruturais de PE
- Comportamento determinístico e estável em snapshots
- ReasonCodes claros e consistentes
- Heurísticas mais fortes construídas sobre verdade estrutural
v0.7.2 — Correção de Dependência
- Adicionada a dependência ausente
idna - Sem mudanças comportamentais ou de esquema
v0.7.1 — Expansão de Heurísticas Adversariais e Endurecimento de Parsers
- Seis novas heurísticas de PE
- Corpus adversarial de PE expandido
- Extratores de domínio/URL/crypto/hash endurecidos
- Saída determinística validada por snapshots
v0.7.0 — Heurísticas Determinísticas e Fundação de Testes Adversariais
- Heurísticas determinísticas
- Amostras adversariais de camada 3
- Testes de contrato de snapshot
- Correção de crash no Rich Header
v0.6.0 — Esquema de Saída Estável e Metadados Determinísticos
- Esquema JSON totalmente estável
- Metadados de PE normalizados
- Níveis de análise formalizados
v0.5.0 — Níveis de Análise, Análise de Seções de PE, Dicas de Ofuscação
- Novo sistema de níveis de análise
- Análise estrutural de PE
- Heurísticas de ofuscação
v0.4.0 — Arquitetura de Plugins
- Motor de regras pronto para plugins
- Fluxo de detecção unificado
v0.3.0 — Detecção de IOC de Crypto
- Detecção de carteiras Ethereum e Bitcoin
v0.2.0 — Detecção de IP de Alta Confiabilidade
- Principais melhorias em IPv4/IPv6
Início Rápido
Instalação
pip install iocx
Extraia IOCs de um arquivo
iocx suspicious.exe
Extraia de texto
echo "Visit http://bad.example.com" | iocx -
Habilite a análise de PE
iocx suspicious.exe -a
API Python
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
Exemplo de Saída
O IOCX produz JSON estruturado e determinístico que inclui IOCs, metadados de PE, análise de seções, heurísticas e indicadores de ofuscação.
O exemplo abaixo é uma saída resumida de uma amostra adversarial real de PE. Ele demonstra a forma e a profundidade do esquema, mantendo o tamanho gerenciável para fins de documentação.
Mostrar Exemplo de Saída 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"
}
}
]
}
}
Arquitetura
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
Ecossistema de Plugins e Extensibilidade
O IOCX é projetado para ser estendido com segurança e previsibilidade. Plugins são cidadãos de primeira classe, validados pelos mesmos testes determinísticos de snapshot que o motor central.
Você pode construir:
- detectores de IOC personalizados
- regras de regex personalizadas
- plugins com consciência binária
- heurísticas internas
- extratores específicos de pipeline
Consulte:
docs/specs/overlap-suppression.mddocs/specs/plugin-authoring-guidelines.md
Visão Geral do Ecossistema
O IOCX é mais do que um único binário — é um ecossistema modular:
- Motor Central — extração determinística de IOC + análise de PE
- Sistema de Plugins — detectores personalizados e módulos de análise
- Corpus Adversarial — PEs malformados, strings hostis, amostras de fuzzing
- Framework de Testes de Snapshot — garante saída determinística
- Benchmarks de Desempenho — aplicados no CI
- Suíte de Documentação — especificações, contratos e guias de plugins
Quem Usa o IOCX?
O IOCX é usado em:
- Equipes de DFIR
- Pipelines de automação de SOC
- Portões de segurança em CI/CD
- Plataformas de inteligência de ameaças
- Laboratórios de pesquisa de malware
- Equipes de engenharia de segurança
Em qualquer lugar onde indicadores precisam ser extraídos com segurança, de forma determinística e em escala, o IOCX se encaixa.
Testes Seguros (Sem Necessidade de Malware)
Todas as amostras de teste são:
- Sintéticas
- Benignas
- Publicamente seguras (EICAR, GTUBE)
- Projetadas para evitar manuseio acidental de malware
Garantias de Desempenho
O IOCX aplica limites estritos de desempenho no CI para garantir:
- Sem travamentos por backtracking de regex
- Sem lentidões patológicas
- Desempenho estável entre versões
Consulte:
docs/performance.md
Identidade do Projeto e Nomenclatura
O nome IOCX refere-se exclusivamente ao motor oficial publicado em:
Não permitido
- Repositórios chamados
iocx - Ferramentas chamadas "iocx" que não fazem parte deste projeto
- Implicar afiliação sem permissão
Permitido
iocx-<plugin>iocx-extension-<nome>iocx-detector-<recurso>
Repositórios Oficiais do IOCX
- Motor Central: https://github.com/iocx-dev/iocx
- Meta-Repositório de Plugins: https://github.com/iocx-dev/iocx-plugins
- Documentação: https://github.com/iocx-dev/iocx/tree/main/docs/specs
- Pacote PyPI: https://pypi.org/project/iocx/
Roadmap
O desenvolvimento do IOCX foca em estabilidade, extensibilidade e cobertura mais profunda de análise estática. Os itens abaixo representam áreas contínuas de trabalho e exploração.
- Heurísticas estendidas de PE (comportamento de delay-load, anomalias estruturais, padrões de relocação)
- Regras de supressão seletiva para fluxos de trabalho de OSINT, DFIR e inteligência de ameaças
- Extração de metadados de ELF e Mach-O
- Modo de análise em lote para fluxos de trabalho com múltiplos artefatos
- Modos de saída estilo YARA e hooks de enriquecimento
- Análise estática agnóstica de binário
- Ecossistema de plugins multiplataforma
- Bindings de linguagem para Rust, Go e Node.js
Contribuindo
Aceitamos:
- Novos detectores
- Melhorias de parsers
- Atualizações de documentação
- Amostras adversariais sintéticas
Consulte CONTRIBUTING.md para diretrizes.
Segurança
Se você descobrir um problema de segurança, não abra uma issue no GitHub.
Siga as instruções em SECURITY.md.
Licença
Licença MPL‑2.0 — consulte LICENSE.