iocx-dev/iocx

GitHub: iocx-dev/iocx

这是一个用于从PE二进制文件和文本中静态提取威胁指标(IOC)的轻量级、可扩展引擎。

Stars: 1 | Forks: 1

PyPI Version Coverage Tests Python Version License Build Status Performance Throughput Pathological IPv6 Timing

# 官方 IOCX 项目 这是用于静态 IOC 提取和 PE 分析的**原始 IOCX 引擎**。 - PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/) - Github: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx) - Website: [https://iocx.dev/](https://iocx.dev/) 任何其他使用 "iocx" 名称的仓库均**不属于**本项目。 # IOCX — 针对二进制文件、文本和工件的静态 IOC 提取 **为 DFIR、SOC 自动化和大规模威胁分析提供快速、安全、确定性的 IOC 提取。** IOCX 是一个轻量级、可扩展的引擎,用于使用**纯静态分析**提取威胁指标 (IOC) 和结构元数据。无需执行。无需沙箱。零风险。 专为以下场景构建: - DFIR 工作流 - SOC 自动化 - 威胁情报流水线 - CI/CD 安全检查 - 大规模批处理 IOCX 是 MalX Labs 生态系统的核心组件,旨在提供可扩展的现代威胁分析工具。 ## 为何选择 IOCX? IOCX 专为重视**安全性、确定性和自动化**的环境而设计。与仅处理原始文本的提取器不同,IOCX 包含**感知二进制的静态分析**、**插件友好的规则系统**以及适用于流水线和长期集成的**稳定 JSON schema**。 ### 主要优势 - **纯静态设计** — 从不执行不受信任的代码 - **二进制解析** — 感知 PE 的提取,包含节分析、熵和混淆提示 - **分析级别** — 基础、深度和完整 (future-ready),用于性能调优的工作流 - **确定性行为** — 稳定的输出和可预测的性能 - **可扩展规则引擎** — 自定义检测器、解析器和插件 - **一致的 JSON schema** — 与 SIEM/SOAR 干净集成 - **低依赖占用** — 对企业环境安全 - **流水线就绪** — 快速启动,高吞吐量 ## IOCX *不是* 什么 为了避免混淆: - 不是沙箱 - 不是恶意软件模拟器 - 不是行为分析工具 - 不是增强引擎 (该功能位于 MalX Cloud 平台中) IOCX 在设计上**仅进行静态提取**。 ## 用例 ### SOC 和事件响应 - 从电子邮件、警报或分析师剪贴板文本中提取指标 - 将报告中的 IOC 解析为结构化 JSON - 在不执行的情况下安全检查恶意软件样本 ### 威胁情报处理 - 标准化来自情报源 的指标 - 批量处理非结构化文本 - 在确定性输出之上构建增强流水线 ### CI/CD 和 DevSecOps - 在发布之前扫描二进制文件中嵌入的指标 - 将 IOC 提取集成到自动检查中 - 检测构建中意外包含的 URL 或地址 ### 批量自动化和脚本 - 通过 IOCX 管道传输日志或工件 - 使用 Python API 进行 ETL 或批处理工作流 - 使用自定义检测器扩展以检测内部模式 ## 版本亮点 ### v0.5.0 — 分析级别、PE 节分析、混淆提示 - 新的分析级别系统:basic、deep(默认)和 full(future-ready) - PE 结构分析:节布局、原始/虚拟大小、熵 - 混淆启发式:异常节模式、仅虚拟节、熵异常 - 为未来的加壳器/TLS/反调试模块扩展的分析存根 - 干净、稳定的 JSON schema,包含可选的分析块 - 无标志模式保持快速和极简,适用于流水线使用 ### v0.4.0 — 插件架构、自定义检测器、更简洁的内部实现 - 引入了支持插件的规则引擎,允许自定义 IOC 检测器和解析器 - 在一致、可扩展的接口下统一了内部检测流程 - 增加了对用户定义的正则检测器和轻量级解析模块的支持 - 改进了核心引擎、检测器和输出格式之间的分离 - 减少了模块间的耦合,以支持长期可扩展性 - 保持了相同快速、确定性的性能特征 ### v0.3.0 — 更强的架构、新的加密货币 IOC 检测 - Ethereum 和 Bitcoin 钱包检测 - 改进了长期可扩展性的架构 - 在多 MB 输入上保持同样极快的性能 ### v0.2.0 — 高可靠性 IP 检测 在嘈杂、格式错误和混合内容环境中,对 IPv4/IPv6 提取进行了重大改进 ## 真实 CLI 输出 (Chaos Corpus 样本) ``` $ iocx chaos_corpus.json { "file": "examples/samples/structured/chaos_corpus.json", "type": "text", "iocs": { "urls": [ "http://[2001:db8::1]:443" ], "domains": [], "ips": [ "2001:db8::1", "2001:db8::1:443", "10.0.0.1", "192.168.1.10", "fe80::dead:beef%eth0", "1.2.3.4", "fe80::1%eth0", "192.168.1.110", "fe80::1%eth0fe80", "::2%eth1", "2001:db8::" ], "hashes": [], "emails": [], "filepaths": [], "base64": [] }, "metadata": {} } ```
Chaos Corpus: 输入 → 提取输出 → 说明
| Input | Extracted Output | Explanation | |---------------------------------------|------------------------------------------|---------------------------------------------| | fe80::dead:beef%eth0/garbage | fe80::dead:beef%eth0 | 恢复有效的 IPv6,忽略垃圾内容。 | | xxx192.168.1.10yyy | 192.168.1.10 | 垃圾文本中的 IPv4。 | | DROP:client=10.0.0.1;;;ERR | 10.0.0.1 | 来自嘈杂日志字段的 IPv4。 | | [2001:db8::1]::::443 | 2001:db8::1 | 提取了 IPv6 和 IPv6+port。 | | | 2001:db8::1:443 | | | GET http://[2001:db8::1]:443/index | http://[2001:db8::1]:443 | 正确解析了带有 IPv6 的 URL。 | | udp://[fe80::1%eth0]::::53 | fe80::1%eth0 | 拼接的 IPv6 被拆分。 | | 192.168.1.110.0.0.1 | 192.168.1.110 | 恢复了组合的 IP 段。 | | fe80::1%eth0fe80::2%eth1 | fe80::1%eth0fe80, ::2%eth1 | 拼接的 IPv6 被拆分。 | | 2001:db8::12001:db8::2 | 2001:db8:: | 找到了最长的有效 IPv6 前缀。 | | 256.256.256:256 | — | 忽略了无效指标。 |
性能基准 (v0.2.0)
所有测量数据均来自最新的性能测试套件: | Sample Type | Time | |------------------------------|----------| | 1 MB mixed‑content sample | 0.0053s | | Pathological IPv6 blob | 0.0055s | | 100 KB sample | 0.0006s | | 300 KB sample | 0.0017s | | 600 KB sample | 0.0031s | | 1 MB sample | 0.0055s | - **Throughput:** ~200 MB/s - **Worst‑case IPv6 blob:** ~0.5 ms - **Linear scaling:** 从 100 KB → 1 MB 几乎呈完美的线性扩展
性能基准 (v0.3.0)
所有测量数据均来自最新的性能测试套件: | Sample Type | Time | |------------------------------|----------| | **IP** | | | 1 MB mixed‑content sample | 0.0070s | | Pathological IPv6 blob | 0.0004s | | 100 KB sample | 0.0008s | | 300 KB sample | 0.0021s | | 600 KB sample | 0.0038s | | 1 MB sample | 0.0068s | | **Filepath** | | | 1 MB mixed‑content sample | 0.0040s | | Pathological deep unix path | 0.0237s | | 300 KB sample | 0.0011s | | 600 KB sample | 0.0022s | | 1000 KB sample | 0.0038s | | 1500 KB sample | 0.0055s | | **Crypto** | | | 1 MB mixed‑content sample | 0.0021s | | Pathological ETH-like blob | 0.0012s | | 300 KB sample | 0.0006s | | 600 KB sample | 0.0012s | | 1000 KB sample | 0.0020s | | 1500 KB sample | 0.0031s | - **Throughput:** ~200 MB/s - **Worst‑case IPv6 blob:** ~0.5 ms - **Worst‑case filepath blob:** ~23 ms - **Worst‑case crypto blob:** ~1 ms - **Linear scaling:** 从 100 KB → 1 MB 几乎呈完美的线性扩展
## 项目标识与命名 IOCX 是发布在以下位置的官方静态 IOC 提取引擎的名称: - **PyPI**: https://pypi.org/project/iocx/ - **GitHub**: https://github.com/iocx-dev/iocx IOCX 的名称、品牌和项目标识**仅**指代本项目及其相关软件包、文档和发布版本。 为了防止用户混淆并维护健康的生态系统: ### 第三方项目**不得**做的事 - 使用 `iocx` 作为其仓库名称 - 发布名为 "iocx" 但并非本项目的工具 - 声称自己是 IOCX 的创建者或维护者 - 使用官方 `iocx` 软件包的 PyPI 徽章 - 未经许可暗示官方隶属关系或认可 这些行为会误导用户并侵犯项目的标识。 ### 允许且鼓励的做法 欢迎使用第三方工具、插件和集成。 为了避免混淆,它们应遵循以下命名模式: - `iocx-` - `iocx-plugin-` - `iocx-extension-` 示例: - `iocx-osint-enricher` - `iocx-detector-custom` ### 这为何重要 IOCX 被用于 DFIR、SOC 自动化、CI/CD 流水线和威胁情报工作流。 清晰的命名可确保: - 用户知道哪个工具是**官方** IOCX 引擎 - 第三方工具易于发现且不会引起混淆 - 生态系统以结构化、健康的方式发展 如果您正在构建与 IOCX 集成的工具,并希望获得有关命名或归属的指导,请随时提 issue ## 官方 IOCX 仓库 - Core Engine: https://github.com/iocx-dev/iocx - Plugins Meta‑Repo: https://github.com/iocx-dev/iocx-plugins - Documentation: https://github.com/iocx-dev/iocx/tree/main/docs/specs - PyPI Package: https://pypi.org/project/iocx/ ## 功能 ### IOC 提取 - URLs - Domains - IPv4 / IPv6 地址 - 文件路径 (Windows, Linux, UNC, env-vars) - Hashes (MD5 / SHA1 / SHA256 / SHA512 / Generic Hex) - Email 地址 - Base64 字符串 - Crypto wallets (Ethereum / Bitcoin) ### 感知二进制的静态分析 - Windows PE 文件 (`.exe`, `.dll`) - 从二进制文件中提取的字符串 - 导入、节、资源、元数据 - **分析级别:** - `basic` - 节布局 + 熵 - `deep` - 增加混淆启发式 - `full` - 扩展分析存根 (*future-ready*) ### 性能与缓存 - 快速启动和高吞吐量 - 针对重复扫描的可选缓存 - 适用于 CI/CD 和大批量工作流 ### 对开发者友好 - 干净、稳定的 JSON 输出 - CLI + Python API - 模块化、可扩展的规则系统 - 最小的依赖占用 ### 安全优先 - 零恶意软件执行 - 对不受信任的输入安全 - 流水线确定性行为 ### 为何仅限静态? 静态分析确保**安全性**、**确定性**和**CI 友好的操作**。无需沙箱、无需执行,且没有触发恶意软件行为的风险。 ## 快速开始 ### 安装 ``` pip install iocx ``` ### 从文件中提取 IOC 显示示例 JSON 输出
``` { "file": "suspicious.exe", "type": "PE", "iocs": { "urls": [], "domains": [], "ips": [], "hashes": [], "emails": [], "filepaths": [ "C:\\Windows\\System32\\cmd.exe", "D:\\Temp\\payload.bin", "E:/Users/Bob/AppData/Roaming/evil.dll", "F:\\Program Files\\SomeApp\\bin\\run.exe", "C:\\Users\\Alice\\Desktop\\notes.txt", "Z:\\Archive\\2024\\logs\\system.log", "\\\\SERVER01\\share\\dropper.exe", "\\\\192.168.1.44\\c$\\Windows\\Temp\\run.ps1", "\\\\FILESRV\\public\\docs\\report.pdf", "\\\\NAS01\\data\\backups\\2024\\config.json", "/usr/bin/python3.11", "/etc/passwd", "/var/lib/docker/overlay2/abc123/config.v2.json", "/tmp/x1/x2/x3/x4/x5/script.sh", "/opt/tools/bin/runner", "/home/alice/.config/evil.sh", ".\\payload.exe", "..\\lib\\config.json", "./run.sh", "../bin/loader.so", ".\\scripts\\install.ps1", "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\evil.lnk", "%TEMP%\\payload.exe", "%USERPROFILE%\\Downloads\\file.txt", "$HOME/.config/evil.sh", "$HOME/bin/run.sh", "$TMPDIR/cache/tmp123.bin", "C:\\Windows\\Temp\\payload.bin", "/home/alice/.config/evil" ], "base64": [], "crypto.btc": [], "crypto.eth": [] }, "metadata": { "file_type": "PE", "imports": [ "KERNEL32.dll", "msvcrt.dll" ], "sections": [ ".text", ".data", ".rdata", ".pdata", ".xdata", ".bss", ".idata", ".CRT", ".tls", ".rsrc", ".reloc" ], "resource_strings": [ "C:\\Windows\\System32\\cmd.exe", "\\\\SERVER01\\share\\dropper.exe", "/home/alice/.config/evil.sh@%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\evil.lnk" ] }, "analysis": { "sections": [ { "name": ".text", "raw_size": 7168, "virtual_size": 6712, "characteristics": 1610612832, "entropy": 5.790750971742716 }, { "name": ".data", "raw_size": 512, "virtual_size": 464, "characteristics": 3221225536, "entropy": 2.094202310841767 }, { "name": ".rdata", "raw_size": 3584, "virtual_size": 3408, "characteristics": 1073741888, "entropy": 4.545752258688727 }, { "name": ".pdata", "raw_size": 1024, "virtual_size": 540, "characteristics": 1073741888, "entropy": 2.327719716055491 }, { "name": ".xdata", "raw_size": 512, "virtual_size": 488, "characteristics": 1073741888, "entropy": 4.1370410751038245 }, { "name": ".bss", "raw_size": 0, "virtual_size": 384, "characteristics": 3221225600, "entropy": 0.0 }, { "name": ".idata", "raw_size": 1536, "virtual_size": 1472, "characteristics": 3221225536, "entropy": 3.7542599473501452 }, { "name": ".CRT", "raw_size": 512, "virtual_size": 96, "characteristics": 3221225536, "entropy": 0.2718922950073886 }, { "name": ".tls", "raw_size": 512, "virtual_size": 16, "characteristics": 3221225536, "entropy": 0.0 }, { "name": ".rsrc", "raw_size": 512, "virtual_size": 416, "characteristics": 1073741888, "entropy": 2.6481096709923975 }, { "name": ".reloc", "raw_size": 512, "virtual_size": 188, "characteristics": 1107296320, "entropy": 2.2248162937403557 } ], "obfuscation": [ { "value": "abnormal_section_layout_virtual_only", "start": 0, "end": 0, "category": "obfuscation_hint", "metadata": { "section": ".bss", "raw_size": 0, "virtual_size": 384 } } ] } } ``` ## 架构 ``` iocx/ │ ├── examples/ # Sample files + generators ├── docs/ # Detector contracts, overlap suppression rules, and plugin authoring guidelines ├── tests/ # Unit, integration, fuzz, robustness, and performance tests ├── iocx ├── detectors/ # Regex-based IOC detectors ├── parsers/ # PE parsing, string extraction ├── plugins/ # Plugin API and registry ├── cli/ # Command-line interface ├── analysis/ # PE static-analysis modules ``` 该引擎特意采用模块化设计,以便轻松扩展或替换组件。 ## 扩展 IOCX 请参阅 `docs/specs/` 了解: - 检测器契约 - 重叠抑制规则 - 插件编写指南 ## 安全测试 (无需恶意软件) 所有测试样本均为: - 合成的 - 良性的 - 公开安全的 (EICAR, GTUBE) - 旨在避免意外处理恶意软件 ## 贡献 我们欢迎: - 新的 IOC 检测器 - 解析器改进 - Bug 报告 - 文档更新 - 合成测试样本 完整指南请参阅 CONTRIBUTING.md。 ## 安全 如果您发现安全问题,请勿提 GitHub issue。 请按照 SECURITY.md 中的说明操作。 ## 许可证 根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE。 *IOCX 名称和项目标识仅指代由 iocx-dev 组织维护的 IOCX 引擎*
标签:CI/CD安全, DAST, DNS枚举, IOC提取, Llama, PE分析, Python, Python 3.12, SOC自动化, SolidJS, 二进制分析, 云安全监控, 云安全运维, 反病毒, 可扩展引擎, 威胁分析, 威胁情报, 开发者工具, 恶意软件分析, 批量处理, 数字取证, 文本分析, 无后门, 无风险分析, 溯源分析, 网络安全, 网络安全工具, 自动化侦查工具, 自动化脚本, 调试插件, 逆向工具, 隐私保护, 静态分析