symbolnotdefined/T2DE-Threat_to_Detection_Engine
GitHub: symbolnotdefined/T2DE-Threat_to_Detection_Engine
基于大语言模型的威胁情报转检测引擎,自动将威胁报告映射到 MITRE ATT&CK 技术并生成检测规则与覆盖率分析。
Stars: 0 | Forks: 0
# 威胁到检测引擎(T2DE)
将威胁情报转化为行为检测逻辑
## 功能
### 🎯 核心能力
- 从**文本文件**或 **URL** 解析威胁情报报告
- 使用 AI 提取结构化威胁数据(支持 Ollama、Anthropic Claude、OpenAI GPT)
- 将攻击链映射到 **MITRE ATT&CK** 技术
- 生成全面的 IOC 分析
### 🔍 检测匹配
- 从 Sigma 和 Elastic 仓库**自动匹配检测规则**
- 链接到 **Atomic Red Team** 测试进行验证
- 搜索 1000 多条社区检测规则
### 📊 覆盖率分析
- **检测盲区识别** - 发现未被覆盖的技术
- **覆盖率评分** - 量化检测质量(0-100 分制)
- **优先级建议** - 可执行的检测工程任务
- 可视化覆盖率评级(A-F 等级)
### 🤖 AI 驱动的检测工程
- 为检测盲区**自动生成 Sigma 规则**
- 以多种格式(Splunk、KQL、EQL)**创建 hunting 查询**
- 从攻击链中**提取行为模式**
- **建议数据源**和实施指南
- 为每项检测**提供调优建议**
### 🧪 测试与验证
- 将技术映射到 Atomic Red Team 测试用例
- 为每项检测提供验证方法
- 展示可测试的攻击模拟
### 💣 高性价比
- **使用 Ollama 的免费本地选项** - 无需 API 费用!
- 初始克隆仓库后可离线运行
## 安装
```
pip3 install -r requirements.txt
```
## 配置
在项目根目录创建一个 `.env` 文件,并配置您首选的 LLM 提供商:
### 选项 1:Ollama(免费,本地)
```
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.1
MODEL_TEMPERATURE=0
MODEL_TIMEOUT=60.0
```
**设置 Ollama:**
1. 从 https://ollama.ai/ 安装 Ollama
2. 拉取模型:`ollama pull llama3.1`
3. 启动 Ollama:`ollama serve`
### 选项 2:Anthropic Claude
```
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=your_anthropic_api_key_here
MODEL_TEMPERATURE=0
MODEL_TIMEOUT=60.0
```
从以下地址获取您的 API 密钥:https://console.anthropic.com/
### 选项 3:OpenAI GPT
```
LLM_PROVIDER=openai
OPENAI_API_KEY=your_openai_api_key_here
MODEL_TEMPERATURE=0
MODEL_TIMEOUT=60.0
```
从以下地址获取您的 API 密钥:https://platform.openai.com/
### 性能调优(可选)
```
# 启用多种查询类型进行狩猎查询(速度较慢但更全面)
# 默认:仅生成 Splunk 查询(7 次 LLM 调用,约 35-210 秒)
# 启用此选项:生成 Splunk + KQL 查询(10 次 LLM 调用,约 50-300 秒)
ENABLE_MULTI_QUERY_TYPES=true
```
**性能说明:**
- 默认情况下,AI 检测生成会进行 7 次 LLM 调用(3 条 Sigma 规则 + 3 条 hunting 查询 + 1 次模式提取)
- 每次 LLM 调用耗时 5-30 秒,具体取决于提供商和模型
- 总计时间:默认配置约为 35-210 秒
- 启用 `ENABLE_MULTI_QUERY_TYPES=true` 可以生成更全面的 hunting 查询,但会增加处理时间
## 用法
### 从文本文件:
```
python main.py --input data/raw/threat_report.txt --output data/output/analysis.md
```
### 从 URL:
```
python main.py --input https://example.com/threat-report --output data/output/analysis.md
```
### 参数:
- `--input`:输入文本文件的路径或威胁报告的 URL(必填)
- `--output`:保存 Markdown 输出的路径(默认值:output.md)
## 工作原理
1. **输入**:接受本地文本文件或包含威胁报告的 URL
2. **解析**:使用 LangChain 与您选择的 LLM 提取结构化情报
3. **分析**:识别包含 MITRE ATT&CK 技术和 IOC 的攻击链
4. **检测匹配**:自动在 Sigma 和 Elastic 仓库中搜索相关的检测规则
5. **输出**:生成包含匹配的检测和可操作情报的 Markdown 格式报告
### 检测匹配与覆盖率分析
该工具会自动:
1. **克隆/更新仓库:**
- [SigmaHQ/sigma](https://github.com/SigmaHQ/sigma) - 社区检测规则
- [elastic/detection-rules](https://github.com/elastic/detection-rules) - Elastic SIEM 规则
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) - 攻击测试用例
2. **匹配检测:**
- 搜索与 MITRE ATT&CK 技术匹配的规则
- 根据威胁情报中的关键词进行匹配
- 提供指向检测规则的直接 GitHub 链接
3. **分析覆盖率:**
- 计算检测覆盖率百分比
- 识别盲区(没有检测规则的技术)
- 对检测质量进行评分(0-100 分制)
- 分配覆盖率等级(A-F)
4. **建议操作:**
- 按优先级排列盲区(CRITICAL、HIGH、MEDIUM、LOW)
- 链接到 Atomic Red Team 测试进行验证
- 提供可执行的检测工程任务
**首次运行**:该工具将克隆仓库(总计约 800MB)。后续运行将通过 `git pull` 进行更新。
## 输出结构
生成的报告包括:
- **执行摘要**:威胁的高层级概述
- **攻击链**:带有 MITRE ATT&CK 技术映射的顺序步骤
- **匹配的检测规则**:
- 来自 SigmaHQ 仓库的 Sigma 规则
- 来自 elastic/detection-rules 的 Elastic 检测规则
- GitHub 中规则文件的直接链接
- 每条规则匹配的技术和关键词
- **失陷指标 (IOCs)**:IP、域名、哈希值、文件路径等。
## 示例输出
该工具生成全面的 Markdown 报告,包含:
### 1. 检测覆盖率分析
```
## 检测覆盖率分析
**Overall Coverage:** 🟡 GOOD (75.0%)
### 摘要
- **Total Techniques:** 8
- **Covered by Detections:** 6 (75.0%)
- **Detection Gaps:** 2
- **Total Detection Rules:** 12
- **Techniques with Atomic Tests:** 7 (87.5%)
```
### 2. 匹配的检测规则
```
### Sigma Rules
#### 可疑的 PowerShell 执行
- **Description:** Detects suspicious PowerShell command execution
- **Severity:** high
- **Matched Techniques:** T1059.001
- **Source:** [Link to GitHub]
- **Repository:** SigmaHQ/sigma
```
### 3. Atomic Red Team 测试
```
## Atomic Red Team 测试覆盖
### T1059.001 - PowerShell
**Test Count:** 15 available tests
#### 测试 #1:PowerShell 执行
- **Description:** Execute PowerShell script...
- **Platforms:** windows
- **Executor:** powershell
[View all tests on GitHub](...)
```
### 4. 关键检测盲区
```
## 关键检测盲区
### 🔴 关键:T1055.012 - Process Hollowing
**Description:** Adversary injects code into suspended process...
**Has Atomic Tests:** ✅ Yes
**Recommendation:**
Validate detection capability using 3 available Atomic Red Team tests |
Develop detection for Process Hollowing focusing on: Adversary injects... |
Review MITRE ATT&CK for data sources and detection opportunities
```
标签:AI安全, AI风险缓解, Atomic Red Team, Chat Copilot, Claude, Cloudflare, CVE检测, DLL 劫持, Elastic规则, EQL, Gradle, IOC分析, IP 地址批量处理, KQL, LLM, LLM评估, MITRE ATT&CK, Ollama, OpenAI, Python安全工具, Sigma规则, Splunk查询, Unmanaged PE, 内存规避, 大语言模型, 威胁分析, 威胁情报, 开发者工具, 搜索语句(dork), 攻击链映射, 数据展示, 数据泄露检测, 无线安全, 本地部署, 检测差距, 漏洞测试, 目标导入, 紫队, 红队, 网络信息收集, 网络安全, 网络安全审计, 自动化侦查工具, 行为检测, 覆盖率分析, 逆向工具, 隐私保护