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, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 逆向工具