haniszaim/conversational-threat-intel-analyst
GitHub: haniszaim/conversational-threat-intel-analyst
基于 Claude 工具调用循环和五大威胁情报源的聊天式 SOC 分析助手,支持用自然语言调查 IOC、威胁行为者和漏洞暴露。
Stars: 0 | Forks: 0
# 对话式威胁情报分析师
一个基于聊天的 agent,可让 SOC 分析师使用通俗英语调查入侵指标、威胁行为者、软件漏洞暴露及相关实体。后端采用 FastAPI,在五个实时威胁情报源上运行 Claude 工具调用循环,前端采用 React 聊天界面。
## 功能说明
- **IOC 查询** — "45.83.122.10 是否为恶意 IP?" (VirusTotal + AbuseIPDB)
- **行为者与 TTP 分析** — "APT29 已知的 TTPs 有哪些?" (MITRE ATT&CK)
- **漏洞暴露推理** — "我们运行的是 Confluence 7.13,我们有暴露风险吗?" (NVD)
- **枢纽关联** — "从该 IP 关联到相关域名" (AlienVault OTX passive DNS)
- **多轮追问** — "它的 ASN 是什么?" 会自动结合之前的上下文进行解析
每个回答都会引用其来源并提供置信度得分;该 agent 被严格要求禁止捏造未经工具检索的威胁情报。有关意图路由和提示注入防御的工作原理,请参阅 `DESIGN_NOTE.md`。
## 架构
```
backend/app/
main.py FastAPI app: POST /api/chat, GET /api/usage
orchestrator.py Claude tool-use loop, caching, tracing, confidence scoring
session.py In-memory per-session conversation state
prompts.py System prompt + injection-defense addendum
security/
injection_guard.py Untrusted-data wrapping + injection pattern detection
tools/
virustotal.py, abuseipdb.py, nvd.py, mitre_attack.py, otx.py
confidence.py Source-tier confidence scoring
cache.py TTL cache (rate-limit protection)
eval_cases.yaml / run_eval.py Scripted behavioral eval harness
test_injection_guard.py Unit tests for the injection detector
frontend/src/
App.tsx Session/history state
components/
ChatWindow, MessageBubble, CitationChip, TracePanel, HistorySidebar, InputBar
```
## 前置条件
- Python 3.11+
- Node.js 18+
- 免费 API 密钥:[Anthropic](https://console.anthropic.com)、[VirusTotal](https://www.virustotal.com)、[AbuseIPDB](https://www.abuseipdb.com)、[AlienVault OTX](https://otx.alienvault.com)
(NVD 和 MITRE ATT&CK 无需密钥)
## 设置
### 后端
```
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
```
创建 `backend/.env`:
```
ANTHROPIC_API_KEY=your_key_here
VIRUSTOTAL_API_KEY=your_key_here
ABUSEIPDB_API_KEY=your_key_here
OTX_API_KEY=your_key_here
```
运行:
```
cd app
uvicorn main:app --reload --port 8000
```
首次请求分析威胁行为者时,将会下载并缓存 MITRE ATT&CK 数据集(几十 MB)——这项一次性的首次调用会比后续调用慢。
### 前端
```
cd frontend
npm install
npm run dev
```
打开打印出的本地 URL(通常是 `http://localhost:5173`)。后端必须在端口 8000 上运行,前端才能正常工作——CORS 仅限制在 `http://localhost:5173`。
## 测试
```
cd backend/app
pytest test_injection_guard.py -v # injection-detection unit tests (no API calls, free)
python run_eval.py # scripted behavioral eval (makes real API calls)
```
## 已知限制
- 会话保存在内存中,并在后端重启时重置(无数据库持久化)。前端侧边栏中的聊天记录存储在浏览器的 `localStorage` 中,与后端的会话状态相互独立。
- Shodan 未被纳入——与其它四个数据源不同,其免费层级需要受限/付费账户。
- NVD 的 `keywordSearch` 属于模糊文本匹配,并非精确的 CPE 版本匹配——应将结果视为“可能相关的 CVE”,而不能保证与所声明的软件版本完全匹配。
- `run_eval.py` 会发起真实的 Anthropic 和威胁情报 API 调用,并会产生实际的费用消耗——请谨慎运行,不要在每次更改时都执行。
标签:AV绕过, CISA项目, DLL 劫持, FastAPI, IP 地址批量处理, React, Syscalls, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 逆向工具