
iocx v0.7.6
Un moteur d’analyse statique extensible et déterministe qui extrait des IOC à haute signalétique depuis des binaires PE et du texte, conçu pour l’automatisation des SOC et les pipelines modernes d’analyse des menaces.
IOCX
Extraction déterministe et sans risque d'IOC pour les pipelines de sécurité modernes
Extraction statique d'IOC à partir d'un fichier PE à l'aide de la CLI IOCX
Projet officiel IOCX
Ceci est le moteur IOCX original pour l'extraction statique déterministe d'IOC et l'analyse PE. Tout autre dépôt utilisant le nom « iocx » n'est pas affilié à ce projet.
Liens officiels :
- PyPI : https://pypi.org/project/iocx/
- Github : https://github.com/iocx-dev/iocx
- Site web : https://iocx.dev/
Pourquoi IOCX est important
Les malwares modernes sont adversariaux par défaut — malformés, évasifs et conçus pour mettre en échec les extracteurs naïfs.
- Les outils non conscients du binaire s'effondrent face à des PE malformés
- Les sandboxes sont dangereuses et inutilisables en CI/CD
- La reproductibilité est essentielle pour les pipelines automatisés
IOCX est conçu pour les environnements où la correction et le déterminisme comptent réellement.
Le moteur IOCX
IOCX est le moteur officiel d'extraction statique d'IOC — un système déterministe et conscient du binaire, conçu pour le DFIR, l'automatisation SOC, la sécurité CI/CD et les pipelines de threat-intel à grande échelle.
Contrairement aux extracteurs uniquement basés sur des regex ou aux outils dépendants d'une sandbox, IOCX effectue :
- une analyse purement statique
- un risque d'exécution nul
- une sortie stable et déterministe
- des heuristiques testées en conditions adversariales
C'est un composant central de l'écosystème MalX Labs pour une analyse des menaces moderne et évolutive.
Essayez IOCX en 10 secondes
echo "http://malicious.example" | iocx -
Ou analysez un fichier PE en toute sécurité :
iocx suspicious.exe -a deep
Pourquoi IOCX existe
Les équipes de sécurité font face à trois problèmes persistants :
- Les extracteurs à base de regex se cassent face à des entrées adversariales
- Le sandboxing est dangereux, lent et inadapté à l'automatisation
- La plupart des outils IOC sont incohérents, lents ou produisent des sorties subtilement différentes entre les exécutions
IOCX résout cela avec un moteur déterministe, uniquement statique, conçu pour l'automatisation, la sécurité et l'échelle.
Ce qu'IOCX n'est pas
IOCX n'est intentionnellement pas :
- une sandbox
- un outil d'analyse comportementale
- un émulateur
- un moteur d'enrichissement
Il n'exécute jamais de code non fiable. Il n'effectue jamais d'analyse dynamique. Il est uniquement statique par conception — pour la sécurité, le déterminisme et la compatibilité CI/CD.
Philosophie de conception
IOCX est conçu pour les réalités des malwares modernes, et non pour les hypothèses des outils hérités.
1. Le déterminisme plutôt que l'ambiguïté
Une sortie stable et reproductible — sans aléatoire, sans volatilité.
2. Le statique plutôt que le dynamique
L'exécution est dangereuse. L'analyse statique est prévisible, évolutive et adaptée à la CI.
3. Une ingénierie orientée adversaire d'abord
PE malformés, RVA corrompus, chaînes hostiles — IOCX les traite comme des entrées normales.
4. La stabilité du schéma comme contrat
Les systèmes en aval ne devraient jamais casser lors d'une mise à niveau.
5. La performance sans compromis
150–300 Mo/s sur du texte brut. 6–15 Mo/s sur des PE typiques. Prévisible même sous une charge adversariale dans le pire des cas.
Ces engagements découlent d'une méthodologie de recherche publiée pour l'analyse structurelle des PE — construction déterministe de fixtures, discipline du single-anomaly et comportement du loader Windows comme oracle de correction. Voir docs/methodology.md pour la méthodologie complète, et paax.dev pour la taxonomie élargie des PE adversariaux et la suite commerciale de fixtures.
Ce qui rend IOCX différent
| Capacité | IOCX | Extracteurs IOC typiques | Outils Sandbox / Dynamiques |
|---|---|---|---|
| Sécurité | Zéro-exécution, uniquement statique | Uniquement regex, aucune sécurité binaire | Exécute du code non fiable (haut risque) |
| Déterminisme | Sortie entièrement déterministe | Non déterministe sous bruit | Non déterministe par conception |
| Conscience du binaire | Analyse PE complète, heuristiques | Aucun support binaire | Oui, mais dangereux + lent |
| Résilience adversariale | Testé contre des PE malformés, chaînes hostiles | Facilement contourné | Plante ou classe mal souvent |
| Performance | 150–300 Mo/s (texte), 6–15 Mo/s (PE) | Très variable | Extrêmement lent |
| Adapté à la CI/CD | Oui — sûr, déterministe, rapide | Partiel | Non — dangereux pour les pipelines |
| Stabilité du schéma | Garantie | Rare | Aucune |
En bref : IOCX est conçu pour la réalité adversariale concrète, pas pour des entrées idéalisées.
Cas d'usage
CI/CD & DevSecOps
- Analyser les binaires avant publication
- Détecter les URL, IP ou secrets accidentels dans les builds
- Appliquer des barrières de sécurité avec un risque d'exécution nul
SOC & Réponse aux incidents
- Extraire des indicateurs à partir d'alertes ou du texte du presse-papiers d'un analyste
- Inspecter en toute sécurité des échantillons de malware sans exécution
- Normaliser les IOC en JSON structuré
Threat Intelligence
- Traiter des flux à grande échelle
- Analyser des rapports non structurés
- Construire des pipelines d'enrichissement sur une sortie déterministe
Automatisation & Scripting
- Faire passer des logs ou des artefacts dans IOCX
- Utiliser l'API Python pour des workflows ETL ou par lots
- Étendre avec des détecteurs personnalisés
Profils de performance
1. Extraction brute d'IOC (texte, logs, buffers)
150–300 Mo/s de débit soutenu Chemin rapide — sans analyse PE.
| Détecteur | Temps pour 1 Mo | Débit |
|---|---|---|
| Crypto | 0.0037 s | ~270 Mo/s |
| Filepaths | 0.0041 s | ~250 Mo/s |
| IP | 0.0065 s | ~156 Mo/s |
| Domains | 0.0035 s | ~300 Mo/s |
2. Fichiers PE typiques (~39 Ko)
- 0.0122 s (typique)
- 0.0145 s (avec heuristiques)
- 6–15 Mo/s de débit
3. PE dense adversarial (1,5 Mo)
- 0.192 s
- ~7.6 Mo/s de débit
- Déclenche des anomalies TLS, des anomalies structurelles, des motifs anti-debug
4. Moteur complet (non-PE)
- 1 Mo : 0.038 s