CyberEnthusiastic/threat-intel-analyzer

GitHub: CyberEnthusiastic/threat-intel-analyzer

Python威胁情报分析框架,实现从IOC富化、MITRE ATT&CK映射、威胁行为者归因到Sigma检测规则生成的一站式自动化流程。

Stars: 0 | Forks: 0

# 威胁情报分析器 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE%20ATT%26CK-mapped-1F4E79)](https://attack.mitre.org/) [![Sigma](https://img.shields.io/badge/output-Sigma%20YAML-7B42BC)](https://github.com/SigmaHQ/sigma) ## 功能说明 接收一项观察结果(来自某个事件的一台主机 + 一个进程 + IOC 列表), 执行以下四个步骤: 1. **富化 (Enrich)** 针对本地威胁情报 JSON(以及可选的公开 OSINT)对每个 IOC 进行信息补充 —— 支持 IP、域名、URL、MD5/SHA1/SHA256 等格式。 2. **映射 (Map)** 将富化后的 IOC 及观察到的进程映射到 MITRE ATT&CK 技术。内置了一个包含 30 多种技术的精选语料库,涵盖了 SOC 最常见的观察结果(PowerShell、编码脚本、勒索软件、Tor、MFA 疲劳攻击等)。 3. **关联 (Correlate)** 将得到的技术集合与精选的威胁行为者配置文件(LockBit 3.0、BlackCat、FIN7、Lazarus、SmokeLoader、Scattered Spider、MFA 疲劳攻击工具包、Tor 数据外泄)进行比对关联 —— 输出带有置信度分数的排序列表。 4. **生成 Sigma 规则** —— 每个匹配到的行为者生成一条 YAML 规则(当没有任何行为者达到阈值时,则生成一条通用规则)。使用 `sigmac` 即可将其转换为你的 SIEM 方言。 ``` ====================================================================== Threat Intel Analyzer ====================================================================== [*] Source: soc-tier-1-incident-2025-04-18 Host: WIN-FIN-014 [*] IOCs : 5 (scored >0: 5) [*] ATT&CK : 9 techniques mapped [*] Actors : 8 correlated profiles ── MITRE ATT&CK techniques ───────────────────── T1090.003 Multi-hop Proxy (Tor) [Command and Control] conf=85 T1486 Data Encrypted for Impact [Impact] conf=85 T1490 Inhibit System Recovery [Impact] conf=85 T1105 Ingress Tool Transfer [Command and Control] conf=85 T1059.001 PowerShell [Execution] conf=75 ... ── Threat-actor correlations ────────────────── Tor-based exfiltration score=73 (2/3) ⭐ SmokeLoader broker score=60 (3/6) ⭐ BlackCat / ALPHV score=50 (5/8) ... -> wrote rules/blackcat_alphv.yml -> wrote rules/smokeloader_broker.yml -> wrote rules/tor_based_exfiltration.yml ``` ## 为什么选择这个工具 - **在一个工具中实现从分诊到检测。** 大多数事件响应工作流在“我们获取了 IOC”这一步就停止了。这个工具则继续往下走:对它们进行映射、归因,*并*编写出能捕获下一次攻击的检测规则。 - **Sigma 输出具有可移植性。** YAML 规则可以通过 `sigmac` 转换为 Splunk SPL、Elastic EQL、Sentinel KQL、Chronicle YARA-L。一个事实来源,适配所有 SIEM。 - **诚实可信的威胁行为者归因。** 评分是根据你观察到的该行为者特征技术的数量得出的 —— 没有 AI 幻觉,没有不透明的向量嵌入。你可以直接阅读 `ttp_correlator.py` 中的表格并提出质疑。 - **本地优先。** IOC 数据库、ATT&CK 语料库和威胁行为者配置文件均位于此代码库中。即使在你无法访问外部威胁情报 API 的隔离网络环境中也能正常工作。 - **零依赖。** 仅使用 Python 3.8+ 标准库。 ## 快速入门 ``` git clone https://github.com/CyberEnthusiastic/threat-intel-analyzer.git cd threat-intel-analyzer # 在捆绑的 observation 上运行 (5 IOCs → 9 techniques → 3 Sigma rules): python analyzer.py --observation samples/observation.json \ --intel samples/threat_intel.json \ --rules-out rules/ # 从 SOAR 或 runbook 的实际运行: python analyzer.py --observation /tmp/incident-2025-04.json \ --intel ./intel/local.json --json out.json \ --rules-out detection_rules/ ``` ## 观察结果格式 最小化观察结果结构: ``` { "source": "soc-tier-1-incident-2025-04-18", "host": "WIN-FIN-014", "user": "fin\\jdoe", "process": "powershell.exe", "iocs": [ "45.155.205.233", "44d8...02f", "evil-update.click", "185.220.101.42" ] } ``` 任何你没有的数据都可以省略。处理流程会优雅降级 —— 输入越少 → 映射越少 → 生成的规则越少,但绝不会报错。 ## ATT&CK 语料库 `mitre_mapper.py` 中的技术语料库涵盖了全部 12 个 ATT&CK 战术中的 30 多种技术。示例: | 技术 | 战术 | 触发条件 | |---|---|---| | `T1059.001` PowerShell | 执行 | process = `powershell.exe` / `pwsh.exe` | | `T1059.005` Visual Basic | 执行 | process = `wscript.exe` / `cscript.exe` / `mshta.exe` | | `T1486` 数据加密造成影响 | 影响 | tag = `ransomware` | | `T1490` 抑制系统恢复 | 影响 | tag = `ransomware` | | `T1071.001` Web 协议 | 命令控制 | URL / 域名 IOC | | `T1090.003` 多跳代理 | 命令控制 | tag = `tor-exit` | | `T1105` 入站工具传输 | 命令控制 | tag = `loader` | | `T1621` MFA 请求生成 | 凭证访问 | tag = `mfa-fatigue` | 添加映射只需在 `_TAG_TO_TECH` 或 `_PROCESS_TECHNIQUES` 中添加一条记录。 ## 威胁行为者配置文件 | 行为者 | 类别 | 特征技术 | |---|---|---| | **LockBit 3.0** | ransomware | T1486, T1490, T1562.001 | | **BlackCat / ALPHV** | ransomware | T1486, T1078.004 | | **FIN7 / Carbon Spider** | apt | T1059.005, T1078 | | **Lazarus / APT38** | apt | T1567.002, T1041 | | **SmokeLoader broker** | loader | T1105, T1027 | | **Scattered Spider / 0ktapus** | apt | T1621, T1078.004 | | **MFA fatigue kit** | broker | T1621 | | **Tor exfiltration** | broker | T1090.003 | 关联过程会通过 `(匹配数 / 配置文件大小) * 80` 计算出一个基础分数, 如果所有的特征技术都出现了(输出中的 ⭐ 标志),则额外加 20 分。 ## Sigma 输出 每条生成的规则都是符合 Sigma YAML 1.0 规范的: ``` title: Activity matching SmokeLoader broker id: a3f1... description: Auto-generated from 3 of 6 signature techniques. status: experimental author: threat-intel-analyzer date: 2025/04/18 tags: - attack.t1105 - attack.t1027 - attack.t1071.001 references: - actor:smokeloader_broker logsource: category: network_connection detection: sel_ip: DestinationIp: - '45.155.205.233' sel_dom: DestinationHostname|contains: - 'evil-update.click' sel_hash: Hashes|contains: - '44d8...02f' condition: sel_ip or sel_dom or sel_hash falsepositives: - Legitimate use of public services with overlapping indicators level: high ``` 转换为你的 SIEM 格式: ``` sigmac -t splunk rules/smokeloader_broker.yml > smokeloader.spl sigmac -t es-qs rules/smokeloader_broker.yml > smokeloader.eql ``` ## 命令行 ``` usage: analyzer.py [-h] --observation PATH [--intel PATH] [--json PATH] [--rules-out DIR] [--actor-threshold N] ``` | 标志 | 用途 | |---|---| | `--observation PATH` | 观察结果 JSON 文件 (主机 + 进程 + IOC 列表) | | `--intel PATH` | 本地威胁情报 JSON 文件 (格式与 MDR 分诊机器人相同) | | `--json PATH` | 为下游工具写入完整的 JSON 报告 | | `--rules-out DIR` | 用于写入生成的 Sigma 规则文件的目录 | | `--actor-threshold N` | 包含在规则生成中的最低行为者分数 (默认为 50) | ## 架构 ``` analyzer.py ── CLI orchestrator: enrich → map → correlate → emit ioc_enricher.py ── shared with mdr-triage-bot mitre_mapper.py ── ATT&CK corpus + heuristic mappers ttp_correlator.py ── threat-actor profiles + scoring sigma_generator.py ── Sigma YAML emitter (stdlib-only YAML output) samples/ observation.json ── one realistic incident fixture threat_intel.json ── small but populated IOC database tests/ test_analyzer.py ── 10 unit tests, runs in <100ms ``` ## 运行测试 ``` python -m unittest discover tests ``` 10 个测试涵盖了:ATT&CK 映射器(进程 → 技术、语料库大小、多 IOC 观察)、TTP 关联器(特征全匹配加分、无匹配、配置文件数量)、Sigma 生成器(YAML 结构、无行为者匹配时的通用回退规则),以及基于样本观察结果的端到端测试。 ## 许可证 MIT —— 详见 [LICENSE](./LICENSE)。
标签:ESC4, IOC富化, MITRE ATT&CK映射, OSINT, Python安全工具, SIEM检测规则, Sigma YAML, Sigma规则生成, SOC自动化, TTP关联, YAML, 入侵指标, 勒索软件, 威胁情报分析, 安全库, 安全运营中心, 库, 应急响应, 攻击者识别, 网络信息收集, 网络安全, 网络映射, 逆向工具, 隐私保护, 黑客组织画像