arpitgupta369/ioc-threat-hunter

GitHub: arpitgupta369/ioc-threat-hunter

基于 Python 标准库的离线 IOC 威胁狩猎工具,支持从多种格式 feeds 加载失陷指标并在日志数据集中进行降阶感知匹配与 MITRE ATT&CK 映射报告。

Stars: 0 | Forks: 0

# ioc-threat-hunter **加载 IOC feeds,并在任何日志或数据集中进行追踪 —— 包含降级(defanged) indicators 和 MITRE ATT&CK 标签。** ## 为什么开发这个项目 威胁追踪是我在 MeitY Young Scholar Traineeship 期间 **CERT-In** 工作的核心部分:提取 indicators of compromise(IPs、domains、file hashes),并在 proxy、DNS、mail 和 endpoint telemetry 中进行扫描,以发现 攻击者已经在何处接触过该系统环境。Indicators 以 *defanged*(降级)形式(`hxxps://evil[.]com`, `45[.]155[.]205[.]233`)从 feeds 和报告中获取,因此 它们不会被意外点击。此工具将该追踪过程自动化:它接收 feeds,对 indicators 进行重新还原(refangs)并与数据集进行匹配,显示周围的 context,并将每个命中项映射到 MITRE ATT&CK 技术,以便将发现的结果直接整理进事件报告中。 ## 功能特性 - **多格式 feeds** 从 `feeds/` 加载:IP blocklists 和 domain lists (`.txt`) 以及 file-hash feeds (`.json`, md5/sha1/sha256)。 - **Defang-aware(感知降级)匹配** — 在比较之前对 `hxxp`/`hxxps`, `[.]`, `(.)`, `[dot]`, `[at]`, `[:]`, `[/]` 进行 refang(还原)处理,并标记哪些命中项被 defanged。 - **Indicator 提取** 适用于 IPv4(octet-validated)、domains 和 md5/sha1/ sha256 hashes(采用最长 hash 优先原则以避免片段冲突)。 - 每个命中项周围的 **Context window**(可通过 `--context` 配置)。 - 来自小型内置 `mitre_map.json` 的 **MITRE ATT&CK 标记**(支持按 IOC 覆盖以及按类型设置默认值)。 - **文本或 JSON** 输出;可通过 `--demo` 完全离线运行。 ## 技术栈 Python 3.9+(仅限标准库:`re`, `argparse`, `json`, `os`)。 ## 安装说明 ``` git clone https://github.com/arpitgupta369/ioc-threat-hunter.git cd ioc-threat-hunter # 无需第三方 dependencies python threat_hunter.py --demo ``` ## 用法 在内置的示例数据集中进行追踪: ``` python threat_hunter.py --demo ``` 使用您自己的 feeds 目录在您自己的数据集中进行追踪: ``` python threat_hunter.py --input /path/to/proxy.log --feeds ./feeds --context 2 python threat_hunter.py --input events.csv --json ``` 预期输出(节选): ``` Matches found : 10 ATT&CK techniques observed: - T1110 - Brute Force (login attack source) - T1566.002 - Phishing: Spearphishing Link - T1204.002 - User Execution: Malicious File [4] 45.155.205.233 (ip) [defanged in source] Feed : ip_blocklist.txt ATT&CK : T1110 - Brute Force (login attack source) Hits : 1 (line(s): 6) Context : >> 2026-07-18T08:18:02 fw outbound 10.0.0.31:49312 -> 45[.]155[.]205[.]233:443 established ``` ## 项目结构 ``` ioc-threat-hunter/ ├── threat_hunter.py # refang + extract + match + report ├── feeds/ │ ├── ip_blocklist.txt # malicious IPs │ ├── malicious_domains.txt # malicious domains │ ├── file_hashes.json # md5/sha1/sha256 feed │ └── mitre_map.json # IOC -> ATT&CK technique mapping ├── samples/ │ └── proxy_and_mail.log # sample dataset with defanged IOCs ├── README.md ├── LICENSE └── .gitignore ``` ## 添加您自己的 IOCs 将更多 indicators 放入 `feeds/`:在 `.txt` 中每行放一个 IP/domain (注释以 `#` 开头),或者扩展 `file_hashes.json`。通过编辑 `mitre_map.json` 添加 ATT&CK context(针对特定 IOC 的 `overrides`,针对类别的 `default_by_type`)。 ## 免责声明 本项目仅供**教育、防御和授权目的使用**。仅将其用于您拥有或明确获得授权可进行追踪的系统中的数据。 内置的 feeds 是虚构的/测试值(包括无害的 EICAR 测试 签名),不得将其视为实时的威胁情报来源。 由 **Arpit Gupta** 构建 — [LinkedIn](https://linkedin.com/in/arpit-gupta-060b302a7/) · [GitHub](https://github.com/arpitgupta369)
标签:IP 地址批量处理, PB级数据处理, Python, 威胁情报, 安全运维, 开发者工具, 攻防检测, 无后门, 网络信息收集