
iocx v0.7.6.1
एक विस्तार योग्य, निर्धारिती स्थैतिक-विश्लेषण इंजन जो PE बाइनरी और टेक्स्ट से उच्च-संकेत IOC निकालता है, SOC स्वचालन और आधुनिक खतरा-विश्लेषण पाइपलाइनों के लिए बनाया गया है।
IOCX
आधुनिक सुरक्षा पाइपलाइनों के लिए नियतात्मक, शून्य-जोखिम IOC निष्कर्षण
IOCX CLI का उपयोग करके PE फ़ाइल से स्थिर IOC निष्कर्षण
आधिकारिक IOCX प्रोजेक्ट
यह नियतात्मक स्थिर IOC निष्कर्षण और PE विश्लेषण के लिए मूल IOCX इंजन है। "iocx" नाम का उपयोग करने वाले कोई भी अन्य रिपॉजिटरी इस प्रोजेक्ट से संबद्ध नहीं हैं।
आधिकारिक लिंक:
- PyPI: https://pypi.org/project/iocx/
- Github: https://github.com/iocx-dev/iocx
- वेबसाइट: https://iocx.dev/
IOCX क्यों मायने रखता है
आधुनिक मैलवेयर डिफ़ॉल्ट रूप से विरोधात्मक है — विकृत, चालाक, और भोले एक्सट्रैक्टरों को तोड़ने के लिए इंजीनियर किया गया।
- बाइनरी-अनजान उपकरण विकृत PE के तहत ढह जाते हैं
- सैंडबॉक्स असुरक्षित हैं और CI/CD में अव्यावहारिक हैं
- पुनरुत्पादनशीलता स्वचालित पाइपलाइनों के लिए आवश्यक है
IOCX उन वातावरणों के लिए बनाया गया है जहाँ शुद्धता और नियतात्मकता वास्तव में मायने रखती है।
IOCX इंजन
IOCX आधिकारिक स्थिर IOC निष्कर्षण इंजन है — एक नियतात्मक, बाइनरी-जागरूक प्रणाली जो DFIR, SOC स्वचालन, CI/CD सुरक्षा, और बड़े पैमाने के खतरा-सूचना पाइपलाइनों के लिए बनाई गई है।
केवल regex एक्सट्रैक्टरों या सैंडबॉक्स-निर्भर उपकरणों के विपरीत, IOCX निम्नलिखित करता है:
- शुद्ध स्थिर विश्लेषण
- शून्य निष्पादन जोखिम
- स्थिर, नियतात्मक आउटपुट
- विरोधात्मक-परीक्षित अनुमानी विधियाँ
यह स्केलेबल, आधुनिक खतरा विश्लेषण के लिए MalX Labs पारिस्थितिकी तंत्र का एक मुख्य घटक है।
10 सेकंड में IOCX आज़माएँ
echo "http://malicious.example" | iocx -
या किसी PE फ़ाइल को सुरक्षित रूप से स्कैन करें:
iocx suspicious.exe -a deep
IOCX क्यों मौजूद है
सुरक्षा टीमें तीन लगातार समस्याओं का सामना करती हैं:
- Regex एक्सट्रैक्टर विरोधात्मक इनपुट के तहत टूट जाते हैं
- सैंडबॉक्सिंग असुरक्षित, धीमी, और स्वचालन के लिए अनुपयुक्त है
- अधिकांश IOC उपकरण असंगत, धीमे हैं, या रनों के बीच सूक्ष्म रूप से भिन्न आउटपुट उत्पन्न करते हैं
IOCX इसे एक नियतात्मक, केवल-स्थिर इंजन से हल करता है जो स्वचालन, सुरक्षा, और स्केल के लिए डिज़ाइन किया गया है।
IOCX क्या नहीं है
IOCX जानबूझकर नहीं है:
- एक सैंडबॉक्स
- एक व्यवहारिक विश्लेषण उपकरण
- एक एमुलेटर
- एक संवर्धन इंजन
यह कभी भी अविश्वसनीय कोड निष्पादित नहीं करता। यह कभी भी गतिशील विश्लेषण नहीं करता। यह डिज़ाइन से केवल-स्थिर है — सुरक्षा, नियतात्मकता, और CI/CD संगतता के लिए।
डिज़ाइन दर्शन
IOCX आधुनिक मैलवेयर की वास्तविकताओं के लिए इंजीनियर किया गया है, विरासत उपकरणों की धारणाओं के लिए नहीं।
1. अस्पष्टता पर नियतात्मकता
स्थिर, पुनरुत्पादनीय आउटपुट — कोई यादृच्छिकता नहीं, कोई अस्थिरता नहीं।
2. गतिशील पर स्थिर
निष्पादन असुरक्षित है। स्थिर विश्लेषण पूर्वानुमेय, स्केलेबल, और CI-अनुकूल है।
3. विरोधात्मक-प्रथम इंजीनियरिंग
विकृत PE, भ्रष्ट RVA, शत्रुतापूर्ण स्ट्रिंग्स — IOCX उन्हें सामान्य इनपुट मानता है।
4. अनुबंध के रूप में स्कीमा स्थिरता
डाउनस्ट्रीम सिस्टम अपग्रेड पर कभी नहीं टूटने चाहिए।
5. बिना समझौते के प्रदर्शन
कच्चे टेक्स्ट पर 150–300 MB/s। सामान्य PE पर 6–15 MB/s। सबसे खराब विरोधात्मक लोड के तहत भी पूर्वानुमेय।
ये प्रतिबद्धताएँ PE संरचनात्मक विश्लेषण के लिए प्रकाशित शोध पद्धति से ली गई हैं — नियतात्मक फिक्स्चर निर्माण, एकल-विसंगति अनुशासन, और शुद्धता के ओरेकल के रूप में Windows लोडर व्यवहार। पूरी पद्धति के लिए docs/methodology.md देखें, और व्यापक विरोधात्मक-PE वर्गीकरण और वाणिज्यिक फिक्स्चर सूट के लिए paax.dev देखें।
IOCX को अलग क्या बनाता है
| क्षमता | IOCX | सामान्य IOC एक्सट्रैक्टर | सैंडबॉक्स / गतिशील उपकरण |
|---|---|---|---|
| सुरक्षा | शून्य-निष्पादन, केवल-स्थिर | केवल-regex, कोई बाइनरी सुरक्षा नहीं | अविश्वसनीय कोड निष्पादित करता है (उच्च-जोखिम) |
| नियतात्मकता | पूर्णतः नियतात्मक आउटपुट | शोर के तहत गैर-नियतात्मक | डिज़ाइन से गैर-नियतात्मक |
| बाइनरी जागरूकता | पूर्ण PE पार्सिंग, अनुमानी विधियाँ | कोई बाइनरी समर्थन नहीं | हाँ, लेकिन असुरक्षित + धीमा |
| विरोधात्मक लचीलापन | विकृत PE, शत्रुतापूर्ण स्ट्रिंग्स के विरुद्ध परीक्षित | आसानी से बायपास | अक्सर क्रैश या गलत वर्गीकरण |
| प्रदर्शन | 150–300 MB/s (टेक्स्ट), 6–15 MB/s (PE) | अत्यधिक परिवर्तनशील | अत्यंत धीमा |
| CI/CD अनुकूल | हाँ — सुरक्षित, नियतात्मक, तेज़ | आंशिक | नहीं — पाइपलाइनों के लिए असुरक्षित |
| स्कीमा स्थिरता | गारंटीकृत | दुर्लभ | कोई नहीं |
संक्षेप में: IOCX वास्तविक विरोधात्मक वास्तविकता के लिए बनाया गया है, आदर्श इनपुट के लिए नहीं।
उपयोग के मामले
CI/CD और DevSecOps
- रिलीज़ से पहले बाइनरी स्कैन करें
- बिल्ड में आकस्मिक URL, IP, या रहस्यों का पता लगाएँ
- शून्य निष्पादन जोखिम के साथ सुरक्षा गेट लागू करें
SOC और घटना प्रतिक्रिया
- अलर्ट या विश्लेषक क्लिपबोर्ड टेक्स्ट से संकेतक निकालें
- निष्पादन के बिना मैलवेयर नमूनों का सुरक्षित निरीक्षण करें
- IOC को संरचित JSON में सामान्यीकृत करें
खतरा सूचना
- बड़े पैमाने पर फ़ीड संसाधित करें
- असंरचित रिपोर्ट पार्स करें
- नियतात्मक आउटपुट पर संवर्धन पाइपलाइन बनाएँ
स्वचालन और स्क्रिप्टिंग
- लॉग या आर्टिफैक्ट को IOCX के माध्यम से पाइप करें
- ETL या बैच वर्कफ़्लो के लिए Python API का उपयोग करें
- कस्टम डिटेक्टरों के साथ विस्तार करें
प्रदर्शन प्रोफ़ाइल
1. कच्चा IOC निष्कर्षण (टेक्स्ट, लॉग, बफ़र्स)
150–300 MB/s निरंतर थ्रूपुट तेज़ पथ — कोई PE पार्सिंग नहीं।
| डिटेक्टर | 1 MB समय | थ्रूपुट |
|---|---|---|
| Crypto | 0.0037 s | ~270 MB/s |
| Filepaths | 0.0041 s | ~250 MB/s |
| IP | 0.0065 s | ~156 MB/s |
| Domains | 0.0035 s | ~300 MB/s |
2. सामान्य PE फ़ाइलें (~39 KB)
- 0.0122 s (सामान्य)
- 0.0145 s (अनुमानी विधियों के साथ)
- 6–15 MB/s थ्रूपुट
3. विरोधात्मक सघन PE (1.5 MB)
- 0.192 s
- ~7.6 MB/s थ्रूपुट
- TLS विसंगतियाँ, संरचनात्मक विसंगतियाँ, एंटी-डीबग पैटर्न ट्रिगर करता है
4. पूर्ण इंजन (गैर-PE)
- 1 MB: 0.038 s
संस्करण मुख्य विशेषताएँ
संस्करण इतिहास दिखाएँ
v0.7.6.2 — आयात तालिका सत्यापनकर्ता
- नया नियतात्मक आयात तालिका संरचनात्मक सत्यापनकर्ता (
IMPORT_*कारण कोड)। version_infoअब प्रत्येक विश्लेषण स्तर पर पार्स और प्रस्तुत किया जाता है (केवल-a fullपर नहीं), एक नए सीमित सार्वजनिक प्रोजेक्शन के माध्यम से।- पुनर्निर्मित CLI: ब्रांडेड
--versionआउटपुट, स्पष्ट--helpटेक्स्ट, पुनर्गठित तर्क समूह। - किसी भी प्रविष्टि से पहुँचने योग्य रीलोकेशन-पार्सर क्रैश, एक PE32+ डेटा-डायरेक्टरी ऑफ़सेट बग, और कई मौन निर्यात/संसाधन त्रुटि ड्रॉप्स को ठीक किया।
- नया स्थिर CI जाँच जो पार्सर त्रुटि टैग को सत्यापनकर्ताओं द्वारा मौन रूप से असंसाधित होने से रोकता है।
- टेस्ट सूट: 2,136 → 2,802 टेस्ट।
v0.7.6.1 — अपवाद निर्देशिका सत्यापनकर्ता
- PE अपवाद (
.pdata) निर्देशिका का गहन शब्दार्थ सत्यापन जोड़ता है; 14 नए कारण कोड; कुल 15 सत्यापनकर्ता। - एक दोष को ठीक करता है जो पूरे इंजन में संरचनात्मक निष्कर्षों को दबा रहा था।
- चार और जाँचें उत्पादन में मृत पाई गईं: दो निर्देशिका प्लेसमेंट, एक सेक्शन-मैपिंग, और एक संसाधन-निर्देशिका सीमा जाँच।
- आउटपुट-दृश्यमान: पहले दबाए गए या गलत लेबल किए गए निष्कर्ष अब दिखाई देंगे।
- टेस्ट: 1620 → 2136। कवरेज: 100%।
v0.7.6 — संरचनात्मक सत्यापनकर्ता विस्तार: डीबग और रीलोकेशन निर्देशिकाएँ
- दो नए PE संरचनात्मक सत्यापनकर्ता - रीलोकेशन और डीबग
- WIN_CERTIFICATE और tls सत्यापनकर्ता अब pefile से स्वतंत्र, समर्पित स्ट्रक्चर पार्सर से संरचनात्मक सत्य प्राप्त करते हैं
- प्राथमिकता-समाधित उप-कारण वर्गीकरण के साथ 12 नए कारण कोड
- नियतात्मक बाइट-स्तरीय पार्सिंग - pefile की आलसी व्याख्या पर कोई निर्भरता नहीं
- 100% कवरेज पर 1620 टेस्ट
v0.7.5 — संरचनात्मक सत्यापनकर्ता विस्तार
- चार नए PE संरचनात्मक सत्यापनकर्ता — निर्यात, डिले-लोड आयात, VS_VERSIONINFO, और संसाधन पदानुक्रम
- प्राथमिकता-समाधित उप-कारण वर्गीकरण के साथ 24 नए कारण कोड
- नियतात्मक बाइट-स्तरीय पार्सिंग — pefile की आलसी व्याख्या पर कोई निर्भरता नहीं
- सुरक्षा-प्रासंगिक मेटाडेटा — DLL विशेषताएँ, सबसिस्टम/मशीन नाम डिकोडिंग, प्रति-संसाधन एन्ट्रॉपी
- 100% कवरेज पर 1370 टेस्ट — वास्तविक बाइनरी पर
dumpbinके विरुद्ध एंड-टू-एंड सत्यापित
v0.7.4.1 — Windows संगतता हॉटफिक्स
python-magicनिर्भरता हटाई, जो Windows सिस्टम पर आयात विफलता का कारण बनती थी- पूर्ण क्रॉस-प्लेटफ़ॉर्म पोर्टेबिलिटी के लिए शुद्ध-Python फ़ाइल-प्रकार डिटेक्टर जोड़ा
- सख्त Windows-संगत PE सत्यापन लागू करके PE डिटेक्शन लॉजिक में सुधार करें।
- IOC निष्कर्षण में कोई व्यवहारिक परिवर्तन नहीं
--min-lengthसंगतता फिक्स v0.7.5 के लिए नियोजित है
v0.7.4 — उन्नत निर्देशिका पार्सिंग
- पूर्ण Load Config Directory पार्सिंग और सत्यापन
- डाउनस्ट्रीम अनुमानी विधियों के लिए विस्तारित Optional Header मेटाडेटा
- नए GuardCF, कुकी, विसंगति अनुमानी विधियाँ
- तेज़ PE विश्लेषण
- टेस्ट सूट में 99 PE फिक्स्चर; 45 पूर्णतः स्पेक-सत्यापित
v0.7.3 — संरचनात्मक शुद्धता और नियतात्मक अनुमानी विधियाँ
- सभी PE संरचनात्मक सत्यापनकर्ताओं का प्रमुख सुदृढ़ीकरण
- नियतात्मक, स्नैपशॉट-स्थिर व्यवहार
- स्पष्ट, सुसंगत ReasonCodes
- संरचनात्मक सत्य पर निर्मित मजबूत अनुमानी विधियाँ
v0.7.2 — निर्भरता फिक्स
- अनुपलब्ध
idnaनिर्भरता जोड़ी - कोई व्यवहारिक या स्कीमा परिवर्तन नहीं
v0.7.1 — विरोधात्मक अनुमानी विधियाँ विस्तार और पार्सर सुदृढ़ीकरण
- छह नई PE अनुमानी विधियाँ
- विस्तारित विरोधात्मक PE कॉर्पस
- सुदृढ़ डोमेन/URL/क्रिप्टो/हैश एक्सट्रैक्टर
- नियतात्मक स्नैपशॉट-सत्यापित आउटपुट
v0.7.0 — नियतात्मक अनुमानी विधियाँ और विरोधात्मक परीक्षण नींव
- नियतात्मक अनुमानी विधियाँ
- लेयर-3 विरोधात्मक नमूने
- स्नैपशॉट-अनुबंध टेस्ट
- Rich Header क्रैश फिक्स
v0.6.0 — स्थिर आउटपुट स्कीमा और नियतात्मक मेटाडेटा
- पूर्णतः स्थिर JSON स्कीमा
- सामान्यीकृत PE मेटाडेटा
- औपचारिक विश्लेषण स्तर
v0.5.0 — विश्लेषण स्तर, PE सेक्शन विश्लेषण, ऑब्फस्केशन संकेत
- नई विश्लेषण-स्तर प्रणाली
- PE संरचनात्मक विश्लेषण
- ऑब्फस्केशन अनुमानी विधियाँ
v0.4.0 — प्लगइन आर्किटेक्चर
- प्लगइन-तैयार नियम इंजन
- एकीकृत डिटेक्शन प्रवाह
v0.3.0 — क्रिप्टो IOC डिटेक्शन
- Ethereum और Bitcoin वॉलेट डिटेक्शन
v0.2.0 — उच्च-विश्वसनीयता IP डिटेक्शन
- प्रमुख IPv4/IPv6 सुधार
क्विकस्टार्ट
इंस्टॉल करें
pip install iocx
फ़ाइल से IOC निकालें
iocx suspicious.exe
टेक्स्ट से निकालें
echo "Visit http://bad.example.com" | iocx -
PE विश्लेषण सक्षम करें
iocx suspicious.exe -a
Python API
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
उदाहरण आउटपुट
IOCX संरचित, नियतात्मक JSON उत्पन्न करता है जिसमें IOC, PE मेटाडेटा, सेक्शन विश्लेषण, अनुमानी विधियाँ, और ऑब्फस्केशन संकेतक शामिल हैं।
नीचे दिया गया उदाहरण एक वास्तविक विरोधात्मक PE नमूने से संक्षिप्त आउटपुट है। यह स्कीमा के आकार और गहराई को प्रदर्शित करता है जबकि दस्तावेज़ीकरण उद्देश्यों के लिए आकार को प्रबंधनीय रखता है।
उदाहरण 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"
}
}
]
}
}
आर्किटेक्चर
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
प्लगइन पारिस्थितिकी तंत्र और विस्तारशीलता
IOCX को सुरक्षित और पूर्वानुमेय रूप से विस्तारित करने के लिए डिज़ाइन किया गया है। प्लगइन प्रथम-श्रेणी के नागरिक हैं, जो कोर इंजन के समान नियतात्मक स्नैपशॉट टेस्ट द्वारा सत्यापित हैं।
आप बना सकते हैं:
- कस्टम IOC डिटेक्टर
- कस्टम regex नियम
- बाइनरी-जागरूक प्लगइन
- आंतरिक अनुमानी विधियाँ
- पाइपलाइन-विशिष्ट एक्सट्रैक्टर
देखें:
docs/specs/overlap-suppression.mddocs/specs/plugin-authoring-guidelines.md
पारिस्थितिकी तंत्र अवलोकन
IOCX एक एकल बाइनरी से अधिक है — यह एक मॉड्यूलर पारिस्थितिकी तंत्र है:
- कोर इंजन — नियतात्मक IOC निष्कर्षण + PE विश्लेषण
- प्लगइन सिस्टम — कस्टम डिटेक्टर और विश्लेषण मॉड्यूल
- विरोधात्मक कॉर्पस — विकृत PE, शत्रुतापूर्ण स्ट्रिंग्स, फ़ज़ नमूने
- स्नैपशॉट परीक्षण फ्रेमवर्क — नियतात्मक आउटपुट सुनिश्चित करता है
- प्रदर्शन बेंचमार्क — CI में लागू
- दस्तावेज़ीकरण सूट — स्पेक, अनुबंध, और प्लगइन गाइड
IOCX का उपयोग कौन करता है?
IOCX का उपयोग इनमें किया जाता है:
- DFIR टीमें
- SOC स्वचालन पाइपलाइन
- CI/CD सुरक्षा गेट
- खतरा-सूचना प्लेटफ़ॉर्म
- मैलवेयर शोध प्रयोगशालाएँ
- सुरक्षा इंजीनियरिंग टीमें
जहाँ भी संकेतकों को सुरक्षित रूप से, नियतात्मक रूप से, और बड़े पैमाने पर निकालने की आवश्यकता हो, IOCX उपयुक्त है।
सुरक्षित परीक्षण (मैलवेयर की आवश्यकता नहीं)
सभी परीक्षण नमूने हैं:
- सिंथेटिक
- सौम्य
- सार्वजनिक रूप से सुरक्षित (EICAR, GTUBE)
- आकस्मिक मैलवेयर हैंडलिंग से बचने के लिए डिज़ाइन किए गए
प्रदर्शन गारंटी
IOCX CI में सख्त प्रदर्शन सीमाएँ लागू करता है ताकि सुनिश्चित हो:
- कोई regex बैकट्रैकिंग रुकावट नहीं
- कोई रोगात्मक मंदता नहीं
- रिलीज़ों में स्थिर प्रदर्शन
देखें:
docs/performance.md
प्रोजेक्ट पहचान और नामकरण
नाम IOCX विशेष रूप से आधिकारिक इंजन को संदर्भित करता है जो यहाँ प्रकाशित है:
- PyPI: https://pypi.org/project/iocx/
- GitHub: