bobby-tablez/TTP-Threat-Feeds
GitHub: bobby-tablez/TTP-Threat-Feeds
一款利用AI从安全研究博客中自动提取对抗性TTP和IOC的威胁情报生成工具,支持本地和云端LLM。
Stars: 70 | Forks: 17
# TTP-Threat-Feeds
**TTP-Threat-Feeds** 是一个由脚本驱动的威胁情报源生成器,旨在利用 ✨AI✨ 提取对抗性的 TTP 和 IOC。

本项目的目的是自动化发现和解析已发布安全研究中的威胁行为者行为。通过抓取 `urls.txt` 中列出的受信任供应商和博客的帖子,该工具识别相关内容,提取可观察的对手行为 (TTP),然后输出结构化、人类可读的 YAML 文件。这些 YAML 文件旨在帮助检测工程师和威胁研究人员快速推导检测机会和关联逻辑。
## 工作原理
- 从经过审查的威胁情报源 (`urls.txt`) 抓取 URL
- 提取每篇出版物的文本,包括屏幕截图的嵌入式图像 OCR
- 将内容输入带有专用提示词的本地 LLM
- 提取:
- 摘要
- 归因
- 恶意软件家族
- MITRE ATT&CK 技术
- 完整命令行
- 进程关系
- 持久化和横向移动痕迹
- IOC(域名、IP、哈希和 URL)
- 将结果保存为结构化的 YAML 文件,按日期和来源排序
- 每个文件包含时间戳、源域名和主要恶意软件家族名称(如果找到)。
## LLM 设置
本项目支持多个 LLM 提供商,包括本地和基于云端的。
### 支持的提供商
| Provider | Type | Default Model | Notes |
|----------|------|---------------|-------|
| **LM Studio** | Local | `qwen2.5-coder-32b-instruct` | 默认,OpenAI 兼容端点 |
| **Ollama** | Local | `qwen2.5-coder:32b` | 易于本地部署 |
| **OpenAI** | Cloud | `gpt-4o` | 需要 API key |
| **Claude** | Cloud | `claude-3-5-sonnet-20241022` | 需要 API key |
| **Gemini** | Cloud | `gemini-2.0-flash-exp` | 需要 API key |
### 使用示例
**默认 (LM Studio):**
```
python ttp_extractor.py
# 或明确指定
python ttp_extractor.py --lmstudio
```
**Ollama:**
```
python ttp_extractor.py --ollama
# 使用自定义 model
python ttp_extractor.py --ollama --model llama3.1:70b
```
**OpenAI:**
```
export OPENAI_API_KEY="your-api-key"
python ttp_extractor.py --openai
# 使用特定 model
python ttp_extractor.py --openai --model gpt-4o-mini
```
**Claude:**
```
export ANTHROPIC_API_KEY="your-api-key"
python ttp_extractor.py --claude
# 使用特定 model
python ttp_extractor.py --claude --model claude-3-5-sonnet-20241022
```
**Gemini:**
```
export GOOGLE_API_KEY="your-api-key"
python ttp_extractor.py --gemini
# 使用特定 model
python ttp_extractor.py --gemini --model gemini-2.0-flash-exp
```
**自定义端点 (用于本地提供商):**
```
python ttp_extractor.py --lmstudio --endpoint http://192.168.1.100:1234/v1/chat/completions
python ttp_extractor.py --ollama --endpoint http://192.168.1.100:11434/api/chat
```
### 推荐的本地模型
用于通过 LM Studio 或 Ollama 进行本地部署:
- [`qwen2.5-coder-32b-instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) **推荐**
- [`gemma-3-12b-it@q8_0`](https://huggingface.co/Triangle104/gemma-3-12b-it-Q8_0-GGUF)
- [`phi-4`](https://huggingface.co/microsoft/phi-4)
- [`devstral-small-2505`](https://huggingface.co/mistralai/Devstral-Small-2505)
- [`llama-3.1-70b-instruct`](https://huggingface.co/meta-llama/Llama-3.1-70B-Instruct)
### API Key 设置
对于云提供商,设置环境变量:
```
# OpenAI
export OPENAI_API_KEY="sk-..."
# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-..."
# Google Gemini
export GOOGLE_API_KEY="..."
```
或者通过命令行直接传递:
```
python ttp_extractor.py --openai --api-key "sk-..."
```
## 图像文本的 OCR 支持
某些供应商将命令行示例或 TTP 嵌入在截图中。此工具通过 `pytesseract` 包含 OCR 功能,以提取此内容并将其附加到 LLM 输入中,确保不会遗漏任何关键见解。
## 快速开始
1. **克隆并设置:**
```
git clone
cd TTP-Threat-Feeds
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
```
2. **选择你的 LLM 提供商:**
**选项 A: 本地 (LM Studio) - 默认**
- 安装 [LM Studio](https://lmstudio.ai/)
- 下载模型(例如 `qwen2.5-coder-32b-instruct`)
- 启动本地服务器
- 运行:`python ttp_extractor.py`
**选项 B: 本地 (Ollama)**
- 安装 [Ollama](https://ollama.ai/)
- 运行:`ollama pull qwen2.5-coder:32b`
- 运行:`python ttp_extractor.py --ollama`
**选项 C: 云端 (OpenAI/Claude/Gemini)**
- 从你的提供商处获取 API key
- 运行:`export OPENAI_API_KEY="your-key"`
- 运行:`python ttp_extractor.py --openai`
3. **配置 URL:**
将威胁情报博客 URL 添加到 `urls.txt`(每行一个)
4. **运行提取器:**
```
python ttp_extractor.py
```
结果将作为 YAML 文件保存到 `results/YYYY/MM/`。
## 环境要求
```
pip install -r requirements.txt
```
**注意:** 云提供商 SDK 是可选的。仅在使用该提供商时安装:
```
# 对于 OpenAI
pip install openai>=1.0.0
# 对于 Claude
pip install anthropic>=0.18.0
# 对于 Gemini(可选,可以使用 REST API)
pip install google-generativeai>=0.3.0
```
## ⚠️ 免责声明 ⚠️
这个 **基于感觉编码 (vibe-coded)** 的项目通过 LLM 生成结果,LLM 可能会犯错。虽然它产生非常有用的结果,但正因如此,它并非设计用于摄入到自动化流水线或警报系统中。
请 **不要将这些 YAML 视为绝对事实**。务必对照原始出版物验证提取的数据。LLM 很有帮助,但它并非绝对正确。
标签:AI安全, AI风险缓解, C2, Chat Copilot, Claude, Cloudflare, CVE检测, DLL 劫持, ESC4, Gemini, IOC提取, LLM, LLM评估, LM Studio, MITRE ATT&CK, OCR, Ollama, OpenAI, OSINT, Petitpotam, Python, Qwen2.5, TTP提取, Unmanaged PE, YAML, 代码示例, 内存规避, 大语言模型, 威胁情报, 威胁源, 安全库, 开发者工具, 数据分析, 无后门, 自动化情报, 逆向工具