tidbocode/ThreatLens
GitHub: tidbocode/ThreatLens
一个基于LangChain和Ollama的本地化威胁情报问答代理,通过RAG技术将多源开源威胁情报向量化后支持自然语言查询。
Stars: 0 | Forks: 0
# ThreatLens
LangChain 驱动的威胁情报问答代理 — 通过 Ollama 完全本地运行。
拉取实时威胁情报源(MITRE ATT&CK、ThreatFox、AlienVault OTX),将其索引到本地向量存储中,并回答有关威胁组织、TTP、IOC、CVE 和恶意软件的自然语言问题。
## 前置条件
- 本地运行 [Ollama](https://ollama.com)(`ollama serve`)
- 需要下载的模型:
ollama pull mistral:7b
ollama pull nomic-embed-text
## 设置
**本地**
```
pip install -r requirements.txt
cp .env.example .env # optionally add OTX_API_KEY
```
**Docker**
```
cp .env.example .env # optionally add OTX_API_KEY
docker compose build
```
## 使用方法
**摄取实时威胁情报源**(MITRE ATT&CK + ThreatFox + 如果设置了 OTX 密钥):
```
# local
python main.py ingest
# docker
docker compose run --rm threatlens ingest
```
**提出单个问题:**
```
# local
python main.py ask "What TTPs does APT29 use?"
# docker
docker compose run --rm threatlens ask "What TTPs does APT29 use?"
```
**交互式聊天:**
```
# local
python main.py chat
# docker
docker compose run --rm threatlens chat
```
## 项目结构
```
ThreatLens/
├── chroma_db/ # vector store (auto-created on first ingest)
├── src/threatlens/
│ ├── feeds/
│ │ ├── mitre.py # MITRE ATT&CK techniques
│ │ ├── abusech.py # ThreatFox IOCs (last 7 days)
│ │ └── otx.py # AlienVault OTX pulses (optional)
│ ├── config.py # env-based configuration
│ ├── ingest.py # feed ingestion and embedding
│ └── agent.py # RAG chain (Ollama + Chroma)
├── main.py # CLI entry point
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── .env.example
```
## 配置
所有设置都可在 `.env` 中覆盖:
| 变量 | 默认值 | 描述 |
|---|---|---|
| `OLLAMA_BASE_URL` | `http://localhost:11434` | Ollama 服务器 URL |
| `CHAT_MODEL` | `mistral:7b` | 聊天模型(必须在 Ollama 中下载) |
| `EMBED_MODEL` | `nomic-embed-text` | 嵌入模型(必须在 Ollama 中下载) |
| `OTX_API_KEY` | — | AlienVault OTX 密钥(可选,在 otx.alienvault.com 免费获取) |
| `CHROMA_PATH` | `./chroma_db` | 向量存储路径 |
| `CHUNK_SIZE` | `500` | 每个分块的字符数 |
| `CHUNK_OVERLAP` | `50` | 分块之间的重叠 |
| `RETRIEVAL_K` | `5` | 每次查询检索的文档数 |
标签:AI风险缓解, APT分析, Chroma, Cloudflare, CVE, DAST, DLL 劫持, Docker, IOC, LangChain, LLM, LLM评估, MITRE ATT&CK, Ollama, Python, RAG, ThreatFox, TTP, Unmanaged PE, 向量数据库, 大语言模型, 威胁情报, 安全运营, 安全防御评估, 开发者工具, 恶意软件分析, 扫描框架, 数字签名, 无后门, 本地大模型, 本地部署, 检索增强生成, 网络安全, 自动化威胁情报, 请求拦截, 轻量级, 逆向工具, 问答系统, 隐私保护, 隐私安全