ahmxdniazi/ioc-threat-intel-mapper

GitHub: ahmxdniazi/ioc-threat-intel-mapper

一个自动化威胁情报 IOC 提取管道,从安全报告中解析 SHA256/IP/域名并通过 VirusTotal API 进行富化判定和报告生成。

Stars: 0 | Forks: 0

IOC Threat Intel Mapper Banner

## 🔎 概述 **IOC Threat Intel Mapper** 是一个自动化网络安全 pipeline,可从真实威胁情报报告中提取 **失陷标志物 (IOCs)**,使用 **VirusTotal API** 对其进行丰富,并生成专业的 **HTML 威胁情报报告** —— 完美模拟 SOC 分析师和威胁情报团队在企业环境中的实际工作流程。 ## ⚙️ 工作流程

Project Workflow

| 阶段 | 脚本 | 描述 | |---|---|---| | 1️⃣ 输入 | `sample_reports/*.txt` | 真实威胁情报报告 (Unit42, Cisco Talos, Sophos) | | 2️⃣ 提取 | `ioc_extractor.py` | 基于 Regex 的 IOC 提取,带有误报白名单过滤 | | 3️⃣ 丰富 | `vt_enricher.py` | 通过 VirusTotal API 进行丰富,并给出恶意/干净的判定 | | 4️⃣ 输出 | `output/iocs_enriched.json` | 包含各杀毒引擎检测计数的结构化 JSON | | 5️⃣ 报告 | `report_generator.py` | 包含摘要统计信息的专业暗色主题 HTML 报告 | ## 🏆 结果 | 指标 | 值 | |---|---| | 提取的 SHA256 哈希数 | **18** | | 通过 VirusTotal 丰富的哈希数 | **5** | | 确认为恶意 | **5 / 5 (100%)** | | 最大引擎检测数 | **60 / 72 引擎** | | 过滤的误报 | **6 (社交媒体 URL)** | ## 📸 截图 ### 第一步 — IOC 提取 (发现 18 个 SHA256 哈希)

IOC Extraction Results

### 第二步 — 应用白名单过滤 (移除误报)

Whitelist Filter

### 第三步 — 正在运行 VirusTotal 丰富

VirusTotal Enrichment

### 第四步 — JSON 结果 (全部为恶意)

JSON Results

### 第五步 — 最终 HTML 威胁情报报告

HTML Report

## 🧰 工具与技术 | 工具 | 用途 | |---|---| | **Python 3** | 核心脚本语言 | | **re (regex)** | IOC 模式提取 | | **requests** | VirusTotal API 调用 | | **json** | 结构化数据输出 | | **VirusTotal API v3** | 哈希 / IP / 域名丰富 | | **HTML/CSS** | 专业报告生成 | ## 📂 项目结构 ``` ioc-threat-intel-mapper/ │ ├── 📜 ioc_extractor.py # Stage 1: Extracts IOCs via regex ├── 📜 vt_enricher.py # Stage 2: Enriches via VirusTotal API ├── 📜 report_generator.py # Stage 3: Generates HTML report │ ├── 📁 sample_reports/ │ ├── report1.txt # Akira Ransomware - Palo Alto Unit42 │ ├── report2.txt # Akira Ransomware - Cisco Talos │ └── report3.txt # Akira Followup - Sophos Labs │ ├── 📁 output/ │ ├── iocs_raw.json # Extracted IOCs (pre-enrichment) │ ├── iocs_enriched.json # Enriched IOCs with VT verdicts │ └── ioc_report.html # Final HTML threat intel report │ ├── 📁 screenshots/ # Step-by-step execution screenshots ├── 📁 assets/ # Banner and workflow diagrams └── 📄 README.md ``` ## 🚀 如何运行 ### 前置条件 ``` pip install requests ``` ### 第一步 — 提取 IOC ``` python ioc_extractor.py # 输出:iocs_raw.json ``` ### 第二步 — 通过 VirusTotal 丰富 ``` # 将你的免费 API key 添加到 vt_enricher.py 第 5 行 python vt_enricher.py # 输出:iocs_enriched.json ``` ### 第三步 — 生成报告 ``` python report_generator.py # 输出:ioc_report.html(在浏览器中打开) ``` ## 🧠 展示的关键概念 - **IOC 提取** — 使用 regex 模式从原始文本中识别 IP、域名、SHA256/MD5 哈希、URL 和电子邮件 - **误报过滤** — 基于白名单的域名过滤,以减少噪音 - **威胁情报丰富** — 程序化集成 VirusTotal API v3 - **自动化报告** — 从结构化 JSON 数据生成专业的 HTML 报告 - **SOC 工作流程模拟** — 完整的分析师分诊 pipeline,从原始报告到最终判定 ## 📊 示例 IOC 输出 ``` { "ioc": "99c1cd740fa749a163ce8cdf93722191c4ba5d97de81576623a8bbcb622473d6", "type": "Hash", "malicious": 60, "suspicious": 0, "harmless": 0, "verdict": "MALICIOUS" } ``` ## 🔗 威胁情报来源 | 来源 | 报告 | 恶意软件家族 | |---|---|---| | [Palo Alto Unit42](https://github.com/PaloAltoNetworks/Unit42-timely-threat-intel) | Akira 勒索软件 IOC | 勒索软件 | | [Cisco Talos](https://github.com/Cisco-Talos/IOCs) | Akira 勒索软件演变 | 勒索软件 | | [Sophos Labs](https://github.com/sophoslabs/IoCs) | Akira 后续分析 | 勒索软件 | ## 👤 作者 **Muhammad Ahmad** 网络安全硕士 | SOC 分析师 | 云安全 | Azure [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0077B5?style=flat-square&logo=linkedin)](https://linkedin.com) [![GitHub](https://img.shields.io/badge/GitHub-Portfolio-181717?style=flat-square&logo=github)](https://github.com) ## ⚠️ 免责声明 本项目仅使用来自受信任安全供应商的公开可用 IOC 数据,且**仅用于防御和教育目的**。未执行任何恶意软件样本。所有哈希均来源于已发布的威胁情报报告。

作为实战网络安全作品集的一部分而构建 — 恶意软件分析、DFIR 与威胁情报方向

标签:Homebrew安装, IOC提取, Python, 威胁情报, 字符串匹配, 安全, 开发者工具, 无后门, 网络调试, 自动化, 调试辅助, 超时处理