Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
iocx — Un motore di analisi statica estensibile e deterministico che estrae IOC ad alto segnale da binari PE e testo, progettato per l'automazione SOC e le pipeline moderne di analisi delle minacce. | Kitploit
Strumenti/GitHubGitHub/iocx-dev/iocx
Gestione degli Indicatori di Compromissione (IOC)Analisi StaticaAnalisi delle VulnerabilitàInformatica ForenseAnalisi MalwareDevSecOpsAnalisi di BinariThreat IntelligenceRisposta agli Incidenti
GitHubiocx-dev/iocx

iocx

Un motore di analisi statica estensibile e deterministico che estrae IOC ad alto segnale da binari PE e testo, progettato per l'automazione SOC e le pipeline moderne di analisi delle minacce.

286541 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi RepositorySito web
Condividi
# IOCX
### **Estrazione IOC deterministica e a rischio zero per le pipeline di sicurezza moderne**

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/7470/35e58092394d24631c5bf5a2ef49c2c64bb1726cc5798d35bdaa36800597e402.gif" width="720" alt="IOCX Demo">
</p>

<p align="center"><sub>Estrazione statica di IOC da un file PE tramite la CLI di IOCX</sub></p>

<p align="center">
  <a href="https://pypi.org/project/iocx/"><img src="https://img.shields.io/pypi/v/iocx?logo=pypi&amp;logoColor=white"></a>
  <img src="https://img.shields.io/badge/tests-2802_passed-brightgreen">
  <img src="https://img.shields.io/badge/coverage-100%25-brightgreen">
  <img src="https://img.shields.io/badge/python-3.12-blue">
  <a href="https://github.com/iocx-dev/iocx/actions"><img src="https://img.shields.io/github/actions/workflow/status/iocx-dev/iocx/ci.yml?label=build"></a>
  <a href="https://github.com/iocx-dev/iocx/blob/main/LICENSE"><img src="https://img.shields.io/github/license/iocx-dev/iocx"></a>
</p>

# Progetto ufficiale IOCX

Questo è il motore IOCX originale per l'estrazione statica deterministica di IOC e l'analisi PE.
Qualsiasi altro repository che utilizzi il nome "iocx" **non è affiliato** a questo progetto.

**Link ufficiali:**

- PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)
- Github: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)
- Sito web: [https://iocx.dev/](https://iocx.dev/)

---

# Perché IOCX è importante

Il malware moderno è **adversarial per impostazione predefinita** — malformato, evasivo e progettato per rompere gli estrattori ingenui.

- **Gli strumenti ignari dei binari** collassano di fronte a PE malformati
- **Le sandbox** sono insicure e inutilizzabili in CI/CD
- **La riproducibilità** è essenziale per le pipeline automatizzate

**IOCX è costruito per ambienti in cui correttezza e determinismo contano davvero.**

---

# Il motore IOCX

**IOCX è il motore ufficiale di estrazione statica di IOC** — un sistema deterministico e consapevole dei binari, costruito per DFIR, automazione SOC, sicurezza CI/CD e pipeline di threat-intel su larga scala.

A differenza degli estrattori basati solo su regex o degli strumenti dipendenti da sandbox, IOCX esegue:

- **analisi puramente statica**
- **rischio di esecuzione zero**
- **output stabile e deterministico**
- **euristiche testate in modo adversariale**

È un componente centrale dell'ecosistema MalX Labs per un'analisi delle minacce moderna e scalabile.

---

# Prova IOCX in 10 secondi

```bash
echo "http://malicious.example" | iocx -
```

Oppure analizza un file PE in sicurezza:

```bash
iocx suspicious.exe -a deep
```

---

# Perché esiste IOCX

I team di sicurezza affrontano tre problemi persistenti:

1. **Gli estrattori regex** si rompono con input adversarial
2. **Il sandboxing** è insicuro, lento e inadatto all'automazione
3. **La maggior parte degli strumenti IOC** è incoerente, lenta o produce output leggermente diversi tra un'esecuzione e l'altra

IOCX risolve questo con un **motore deterministico e puramente statico** progettato per automazione, sicurezza e scala.

---

# Cosa IOCX *non è*

IOCX è intenzionalmente **non**:

- una sandbox
- uno strumento di analisi comportamentale
- un emulatore
- un motore di enrichment

Non esegue mai codice non attendibile.
Non esegue mai analisi dinamica.
È **puramente statico per progettazione** — per sicurezza, determinismo e compatibilità con CI/CD.

---

# Filosofia di progettazione

IOCX è progettato per le realtà del malware moderno, non per le assunzioni degli strumenti legacy.

### **1. Determinismo invece di ambiguità**
Output stabile e riproducibile — nessuna casualità, nessuna volatilità.

### **2. Statico invece di dinamico**
L'esecuzione è insicura. L'analisi statica è prevedibile, scalabile e adatta alla CI.

### **3. Ingegneria adversarial-first**
PE malformati, RVA corrotti, stringhe ostili — IOCX li tratta come input normali.

### **4. Stabilità dello schema come contratto**
I sistemi a valle non dovrebbero mai rompersi con un aggiornamento.

### **5. Prestazioni senza compromessi**
150–300 MB/s su testo grezzo.
6–15 MB/s su PE tipici.
Prevedibile anche sotto carico adversarial nel caso peggiore.

---

Questi impegni derivano da una metodologia di ricerca pubblicata per l'analisi strutturale dei PE — costruzione deterministica di fixture, disciplina dell'anomalia singola e comportamento del loader di Windows come oracolo di correttezza. Vedi docs/methodology.md per la metodologia completa, e [paax.dev](https://paax.dev) per la tassonomia più ampia dei PE adversarial e la suite commerciale di fixture.

# Cosa rende IOCX diverso

| Capacità | **IOCX** | Estrattori IOC tipici | Strumenti sandbox / dinamici |
|-----------|-----------|------------------------|--------------------------|
| **Sicurezza** | Zero esecuzione, puramente statico | Solo regex, nessuna sicurezza sui binari | Esegue codice non attendibile (alto rischio) |
| **Determinismo** | Output completamente deterministico | Non deterministico sotto rumore | Non deterministico per progettazione |
| **Consapevolezza dei binari** | Parsing PE completo, euristiche | Nessun supporto ai binari | Sì, ma insicuro + lento |
| **Resilienza adversarial** | Testato contro PE malformati, stringhe ostili | Facilmente aggirabile | Spesso va in crash o classifica erroneamente |
| **Prestazioni** | 150–300 MB/s (testo), 6–15 MB/s (PE) | Altamente variabili | Estremamente lento |
| **Compatibilità CI/CD** | Sì — sicuro, deterministico, veloce | Parziale | No — insicuro per le pipeline |
| **Stabilità dello schema** | Garantita | Rara | Nessuna |

**In breve:** IOCX è costruito per la *realtà adversarial concreta*, non per input idealizzati.

---

# Casi d'uso

### CI/CD & DevSecOps
- Analizza i binari prima del rilascio
- Rileva URL, IP o segreti accidentali nelle build
- Applica gate di sicurezza con rischio di esecuzione zero

### SOC & Incident Response
- Estrai indicatori da alert o dal testo negli appunti dell'analista
- Ispeziona campioni di malware in sicurezza senza esecuzione
- Normalizza gli IOC in JSON strutturato

### Threat Intelligence
- Elabora feed su larga scala
- Analizza report non strutturati
- Costruisci pipeline di enrichment su output deterministico

### Automazione & Scripting
- Invia log o artefatti attraverso IOCX tramite pipe
- Usa l'API Python per flussi ETL o batch
- Estendi con rilevatori personalizzati

---

# Profili di prestazioni

### **1. Estrazione IOC grezza (testo, log, buffer)**
**150–300 MB/s** di throughput sostenuto
Percorso veloce — nessun parsing PE.

| Rilevatore  | Tempo per 1 MB | Throughput |
|-----------|-----------|------------|
| Crypto    | 0.0037 s  | ~270 MB/s  |
| Filepaths | 0.0041 s  | ~250 MB/s  |
| IP        | 0.0065 s  | ~156 MB/s  |
| Domini   | 0.0035 s  | ~300 MB/s  |

---

### **2. File PE tipici (~39 KB)**
- **0.0122 s** (tipico)
- **0.0145 s** (con euristiche)
- **6–15 MB/s** di throughput

---

### **3. PE adversarial denso (1.5 MB)**
- **0.192 s**
- **~7.6 MB/s** di throughput
- Attiva anomalie TLS, anomalie strutturali, pattern anti-debug

---

### **4. Motore completo (non-PE)**
- **1 MB:** 0.038 s

---

# Punti salienti delle versioni

<details>
<summary><strong>Mostra cronologia versioni</strong></summary>
<br>

### v0.7.6.2 — Validatore della tabella di importazione

- Nuovo **validatore strutturale deterministico della tabella di importazione** (codici motivo `IMPORT_*`).
- `version_info` ora viene analizzato e reso disponibile a **ogni** livello di analisi (non solo con `-a full`), tramite una nuova proiezione pubblica limitata.
- CLI ricostruita: output `--version` brandizzato, testo `--help` più chiaro, gruppi di argomenti riorganizzati.
- Corretto un crash del parser di rilocazione raggiungibile da qualsiasi entry, un bug dell'offset della data-directory PE32+ e diverse perdite silenziose di errori su export/risorse.
- Nuovo controllo CI statico che impedisce ai tag di errore del parser di rimanere silenziosamente non consumati dai validatori.
- Suite di test: da 2.136 a 2.802 test.

---

### v0.7.6.1 — Validatore della directory delle eccezioni

- Aggiunge una validazione semantica approfondita della directory delle eccezioni PE (`.pdata`); 14 nuovi codici motivo; 15 validatori in totale.
- Corregge un difetto che sopprimeva i risultati strutturali in tutto il motore.
- Quattro ulteriori controlli sono risultati morti in produzione: due sul posizionamento delle directory, uno sulla mappatura delle sezioni e uno sul controllo dei limiti della directory delle risorse.
- **Visibile nell'output:** i risultati precedentemente soppressi o etichettati erroneamente ora appariranno.
- Test: da 1620 a 2136. Copertura: 100%.

---

### **v0.7.6 — Espansione dei validatori strutturali: directory debug e relocations**
- Due nuovi validatori strutturali PE - relocations e debug
- I validatori WIN_CERTIFICATE e tls ora ricavano la verità strutturale da parser di struct dedicati, indipendenti da pefile
- 12 nuovi codici motivo con tassonomie di sotto-motivi risolte per priorità
- Parsing deterministico a livello di byte - nessuna dipendenza dall'interpretazione lazy di pefile
- 1620 test con copertura al 100%

---

### **v0.7.5 — Espansione dei validatori strutturali**
- Quattro nuovi validatori strutturali PE — exports, delay-load imports, VS_VERSIONINFO e gerarchia delle risorse
- 24 nuovi codici motivo con tassonomie di sotto-motivi risolte per priorità
- Parsing deterministico a livello di byte — nessuna dipendenza dall'interpretazione lazy di pefile
- Metadati rilevanti per la sicurezza — caratteristiche DLL, decodifica di subsystem/machine, entropia per risorsa
- 1370 test con copertura al 100% — verificati end-to-end rispetto a `dumpbin` su binari reali

---

### **v0.7.4.1 — Hotfix di compatibilità Windows**
- Rimossa la dipendenza `python-magic`, che causava errori di importazione sui sistemi Windows
- Aggiunto un rilevatore di tipo di file in puro Python per la piena portabilità multipiattaforma
- Migliorata la logica di rilevamento PE applicando una validazione PE rigorosa e compatibile con Windows.
- Nessuna modifica comportamentale all'estrazione degli IOC
- La correzione di coerenza di `--min-length` è pianificata per la **v0.7.5**

---

### **v0.7.4 — Parsing avanzato delle directory**
- Parsing e validazione completi della **Load Config Directory**
- Metadati estesi dell'Optional Header per euristiche a valle
- Nuove euristiche GuardCF, cookie, anomalie
- Analisi PE più veloce
- 99 fixture PE nella suite di test; 45 completamente validate rispetto alla specifica

---

### **v0.7.3 — Correttezza strutturale ed euristiche deterministiche**
- Rafforzamento importante di tutti i validatori strutturali PE
- Comportamento deterministico e stabile rispetto agli snapshot
- ReasonCodes chiari e coerenti
- Euristiche più solide costruite sulla verità strutturale

---

### **v0.7.2 — Correzione delle dipendenze**
- Aggiunta la dipendenza `idna` mancante
- Nessuna modifica comportamentale o allo schema

---

### **v0.7.1 — Espansione delle euristiche adversarial e rafforzamento del parser**
- Sei nuove euristiche PE
- Corpus PE adversarial ampliato
- Estrattori domain/URL/crypto/hash rafforzati
- Output deterministico validato tramite snapshot

---

### **v0.7.0 — Euristiche deterministiche e fondazione del testing adversarial**
- Euristiche deterministiche
- Campioni adversarial di livello 3
- Test con contratto su snapshot
- Correzione del crash di Rich Header

---

### **v0.6.0 — Schema di output stabile e metadati deterministici**
- Schema JSON completamente stabile
- Metadati PE normalizzati
- Livelli di analisi formalizzati

---

### **v0.5.0 — Livelli di analisi, analisi delle sezioni PE, indizi di offuscamento**
- Nuovo sistema di livelli di analisi
- Analisi strutturale PE
- Euristiche di offuscamento

---

### **v0.4.0 — Architettura a plugin**
- Motore di regole pronto per i plugin
- Flusso di rilevamento unificato

---

### **v0.3.0 — Rilevamento IOC crypto**
- Rilevamento di wallet Ethereum e Bitcoin

---

### **v0.2.0 — Rilevamento IP ad alta affidabilità**
- Miglioramenti importanti a IPv4/IPv6

</details>

---

# Avvio rapido

### Installazione
```bash
pip install iocx
```

### Estrai IOC da un file
```bash
iocx suspicious.exe
```

### Estrai da testo
```bash
echo "Visit http://bad.example.com" | iocx -
```

### Abilita l'analisi PE
```bash
iocx suspicious.exe -a
```

### API Python
```python
from iocx.engine import Engine

engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
```

---

# Esempio di output

> IOCX produce JSON strutturato e deterministico che include IOC, metadati PE, analisi delle sezioni, euristiche e indicatori di offuscamento.
>
> L'esempio seguente è un output abbreviato di un campione PE adversarial reale. Dimostra la forma e la profondità dello schema mantenendo una dimensione gestibile per scopi di documentazione.

<details>
<summary><strong>Mostra esempio di output JSON</strong></summary>

```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"
                }
            }
        ]
    }
}
```

</details>

---

# Architettura

```
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
    ├── detectors/
    ├── parsers/
    ├── plugins/
    ├── cli/
    └── analysis/
```

---

# Ecosistema di plugin ed estensibilità

IOCX è progettato per essere esteso in modo sicuro e prevedibile.
I plugin sono **cittadini di prima classe**, validati dagli stessi test deterministici su snapshot del motore principale.

Puoi costruire:

- rilevatori IOC personalizzati
- regole regex personalizzate
- plugin consapevoli dei binari
- euristiche interne
- estrattori specifici per pipeline

Vedi:

- `docs/specs/overlap-suppression.md`
- `docs/specs/plugin-authoring-guidelines.md`

---

# Panoramica dell'ecosistema

IOCX è più di un singolo binario — è un ecosistema modulare:

- **Motore principale** — estrazione IOC deterministica + analisi PE
- **Sistema di plugin** — rilevatori e moduli di analisi personalizzati
- **Corpus adversarial** — PE malformati, stringhe ostili, campioni fuzz
- **Framework di snapshot testing** — garantisce output deterministico
- **Benchmark di prestazioni** — applicati in CI
- **Suite di documentazione** — specifiche, contratti e guide ai plugin

---

# Chi usa IOCX?

IOCX è utilizzato in:

- team DFIR
- pipeline di automazione SOC
- gate di sicurezza CI/CD
- piattaforme di threat-intel
- laboratori di ricerca sul malware
- team di security engineering

Ovunque gli indicatori debbano essere estratti **in sicurezza**, **in modo deterministico** e **su larga scala**, IOCX è adatto.

---

# Test sicuri (nessun malware richiesto)

Tutti i campioni di test sono:

- Sintetici
- Benigni
- Pubblicamente sicuri (EICAR, GTUBE)
- Progettati per evitare la gestione accidentale di malware

---

# Garanzie di prestazioni

IOCX applica soglie di prestazioni rigorose in CI per garantire:

- Nessun blocco da backtracking regex
- Nessun rallentamento patologico
- Prestazioni stabili tra le release

Vedi:

- `docs/performance.md`

---

# Identità e denominazione del progetto

Il nome **IOCX** si riferisce esclusivamente al motore ufficiale pubblicato su:

- PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)
- GitHub: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)

### Non consentito
- Repository chiamati `iocx`
- Strumenti chiamati "iocx" non facenti parte di questo progetto
- Insinuare un'affiliazione senza permesso

### Consentito
- `iocx-<plugin>`
- `iocx-extension-<name>`
- `iocx-detector-<feature>`

---

# Repository ufficiali IOCX

- Motore principale: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)
- Meta-repo dei plugin: [https://github.com/iocx-dev/iocx-plugins](https://github.com/iocx-dev/iocx-plugins)
- Documentazione: [https://github.com/iocx-dev/iocx/tree/main/docs/specs](https://github.com/iocx-dev/iocx/tree/main/docs/specs)
- Pacchetto PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)

---

# Roadmap

Lo sviluppo di IOCX si concentra su stabilità, estensibilità e copertura più profonda dell'analisi statica.
Gli elementi seguenti rappresentano aree di lavoro ed esplorazione in corso.

- **Euristiche PE estese** (comportamento delay-load, anomalie strutturali, pattern di rilocazione)
- **Regole di soppressione selettiva** per flussi OSINT, DFIR e threat-intel
- **Estrazione di metadati ELF e Mach-O**
- **Modalità di analisi batch** per flussi multi-artefatto
- **Modalità di output in stile YARA** e hook di enrichment
- **Analisi statica indipendente dal tipo di binario**
- **Ecosistema di plugin multipiattaforma**
- **Binding linguistici** per Rust, Go e Node.js

---

# Contribuire

Accogliamo con favore:

- Nuovi rilevatori
- Miglioramenti ai parser
- Aggiornamenti alla documentazione
- Campioni adversarial sintetici

Vedi `CONTRIBUTING.md` per le linee guida.

---

# Sicurezza

Se scopri un problema di sicurezza, **non aprire una issue su GitHub**.
Segui le istruzioni in `SECURITY.md`.

---

# Licenza

Licenza MPL-2.0 — vedi `LICENSE`.
Scarica lo strumento