sahillad05/ai-threat-intelligence-assistant

GitHub: sahillad05/ai-threat-intelligence-assistant

一款基于 Google Gemini 与多源情报聚合的 AI 威胁情报分析助手,为安全分析师提供自动化的指标研判与结构化报告生成服务。

Stars: 0 | Forks: 0

# 🛡️ AI 驱动的威胁情报助手 这是一款由 AI 驱动的网络安全工具,用于分析 **IP 地址**、**域名**和 **URL** 的潜在威胁。它从多个威胁情报源收集情报,使用 **Google Gemini AI** 进行分析,并生成结构化且对分析师友好的威胁报告——所有这些都通过专业的 SOC 级仪表板完成。 ## 🎯 功能 - **多源情报** — 并发聚合来自 VirusTotal 和 AbuseIPDB 的数据 - **AI 驱动的分析** — Google Gemini 生成带有 JSON schema 验证的结构化威胁评估 - **基于规则的后备机制** — 在 AI 不可用时(如 429/配额超限),自动激活确定性分析引擎 - **对分析师友好的报告** — 包含威胁摘要、风险等级、攻击类型、调查步骤和缓解建议 - **AI 与 VirusTotal 对比** — 将 AI 的分析结果与真实威胁检测数据进行验证的后端服务 - **快速统计** — 直观的 KPI:VT 检测数、滥用评分、历史报告、风险评分 - **专业仪表板** — 企业级 SOC 界面(Splunk/Falcon 风格) - **颜色编码的严重程度** — 威胁摘要卡片的边框和徽章反映了风险等级 - **会话历史** — 在浏览器会话期间保留带有风险徽章的最近查询记录 ## 🖥️ 仪表板预览 该仪表板的设计看起来像一个真实的内部网络安全工具: - **左侧面板** — 指标输入表单、带有风险徽章的最近查询、数据源状态 - **右侧面板** — 快速统计行、带有严重程度边框的威胁摘要、风险评估、攻击类型、调查步骤、分析师问题、缓解建议,以及一个紧凑的 AI 与 VT 对比表格 ## 🏗️ 架构 ``` ┌─────────────────────────┐ │ Frontend Dashboard │ │ (HTML / CSS / JS) │ └──────────┬──────────────┘ │ POST /api/analyze ┌──────────▼──────────────┐ │ FastAPI Backend │ │ (Validation + CORS) │ └──────────┬──────────────┘ │ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ VirusTotal │ │ AbuseIPDB │ │ Gemini AI │ │ API Client │ │ API Client │ │ (or Fallback)│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ └────────┬───────┘ │ ▼ │ ┌───────────────┐ │ │ Aggregator │─── compact ────▶│ │ (Risk Score) │ summary │ └───────────────┘ │ │ │ ▼ ▼ ┌───────────────┐ ┌───────────────┐ │ Comparison │◀───────│ AI Report │ │ Service │ │ (Structured) │ └───────┬───────┘ └───────────────┘ ▼ ┌───────────────┐ │ Response │ │ (JSON) │ └───────────────┘ ``` ## 📁 项目结构 ``` ai-threat-intelligence-assistant/ │ ├── backend/ │ ├── app/ │ │ ├── __init__.py │ │ ├── main.py # FastAPI entry point + static file serving │ │ ├── config.py # Environment config with startup validation │ │ │ │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ └── schemas.py # Pydantic request/response models │ │ │ │ │ ├── routes/ │ │ │ ├── __init__.py │ │ │ └── threat_routes.py # POST /api/analyze + dev/test routes │ │ │ │ │ ├── services/ │ │ │ ├── __init__.py │ │ │ ├── virustotal_service.py # VirusTotal API client │ │ │ ├── abuseipdb_service.py # AbuseIPDB API client │ │ │ ├── aggregator.py # Multi-source data aggregation + risk scoring │ │ │ ├── gemini_service.py # Gemini AI analysis + fallback engine │ │ │ └── comparison_service.py # AI vs VirusTotal alignment comparison │ │ │ │ │ └── utils/ │ │ └── __init__.py │ │ │ ├── requirements.txt # Python dependencies │ ├── .env # API keys (never committed) │ └── .env.example # Template for .env │ ├── frontend/ │ ├── index.html # Dashboard HTML │ ├── css/ │ │ └── style.css # Enterprise SOC design system │ ├── js/ │ │ └── app.js # Frontend logic + API integration │ └── assets/ │ └── .gitkeep │ ├── .gitignore └── README.md ``` ## 🛠️ 技术栈 | 层级 | 技术 | | ------------------ | -------------------------- | | 后端框架 | FastAPI (Python 3.10+) | | AI 引擎 | Google Gemini 2.5 Flash | | 威胁情报 | VirusTotal, AbuseIPDB | | 前端 | HTML5, CSS3, Vanilla JS | | HTTP Client | httpx (async-capable) | | 环境管理 | python-dotenv | | 数据验证 | Pydantic v2 | ## 🚀 快速开始 ### 前置条件 - Python 3.10+ - Git - 用于 Gemini、VirusTotal 和 AbuseIPDB 的 API 密钥(免费版) ### 1. 克隆仓库 ``` git clone https://github.com/sahillad05/ai-threat-intelligence-assistant.git cd ai-threat-intelligence-assistant ``` ### 2. 创建虚拟环境 ``` cd backend python -m venv .venv ``` **激活:** | 操作系统 | 命令 | | ------------- | ------------------------------ | | Windows | `.venv\Scripts\activate` | | macOS / Linux | `source .venv/bin/activate` | ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 配置 API 密钥 ``` # 复制 template cp .env.example .env # (Windows: copy .env.example .env) # 编辑 .env 并添加你的 API keys ``` | 变量 | 获取途径 | | ------------------ | ------------------------------------------------- | | `GEMINI_API_KEY` | https://aistudio.google.com/apikey | | `VIRUSTOTAL_API_KEY` | https://www.virustotal.com/gui/join-us | | `ABUSEIPDB_API_KEY` | https://www.abuseipdb.com/account/api | ### 5. 运行服务器 ``` uvicorn app.main:app --reload --port 8000 ``` ### 6. 打开仪表板 | URL | 描述 | | -------------------------------- | ---------------------------------------- | | http://localhost:8000 | 仪表板界面 | | http://localhost:8000/docs | Swagger API 文档 | | http://localhost:8000/health | 健康检查 | | http://localhost:8000/config/status | API 密钥状态(安全) | ## 📡 API Endpoint ### 生产环境 | 方法 | Endpoint | 描述 | | ------ | ---------------- | ------------------------------------------ | | POST | `/api/analyze` | 完整的威胁分析 pipeline | **请求体:** ``` { "indicator": "8.8.8.8", "type": "ip" } ``` **支持的类型:** `ip`, `domain`, `url` ### 健康 / 状态 | 方法 | Endpoint | 描述 | | ------ | ----------------- | -------------------------- | | GET | `/` | 仪表板界面 | | GET | `/health` | 健康检查 | | GET | `/config/status` | API 密钥配置状态 | | GET | `/docs` | Swagger UI | ### 开发 / 测试 | 方法 | Endpoint | 描述 | | ------ | ------------------------ | ------------------------------ | | GET | `/api/test/virustotal` | 测试 VirusTotal 集成 | | GET | `/api/test/abuseipdb` | 测试 AbuseIPDB 集成 | ## 🔑 环境变量 | 变量 | 描述 | 必需 | 默认值 | | -------------------- | ------------------------------ | -------- | ----------------- | | `GEMINI_API_KEY` | Google Gemini API key | ✅ | — | | `GEMINI_MODEL` | 要使用的 Gemini 模型 | ❌ | `gemini-2.5-flash`| | `VIRUSTOTAL_API_KEY` | VirusTotal API key | ✅ | — | | `ABUSEIPDB_API_KEY` | AbuseIPDB API key | ✅ | — | ## 🧠 工作原理 ### 分析 Pipeline 1. **输入验证** — Pydantic 验证指标的类型和格式 2. **情报收集** — 并发查询 VirusTotal 和 AbuseIPDB 3. **风险聚合** — 将分数标准化并计算出综合风险判定 4. **AI 分析** — 将精简的数据摘要与结构化的 JSON prompt 一起发送给 Gemini 5. **后备引擎** — 如果 Gemini 返回 429/错误,确定性的基于规则的分析将生成报告 6. **AI 与 VT 对比** — 后端将 AI 风险评估与 VT 检测数据进行对比 7. **响应** — 包含完整报告、原始数据、对比和判定的结构化 JSON ### 弹性设计 - **Gemini 配额超限 (429)?** → 自动回退到基于规则的分析 - **VirusTotal 不可用?** → 仅使用 AbuseIPDB 数据继续生成报告 - **AbuseIPDB 不可用?** → 仅使用 VirusTotal 数据继续生成报告 - **两个 API 均宕机?** → 返回带有明确信息的优雅错误 - **Gemini JSON 无效?** → Schema 验证会捕获它 → 激活后备机制 ## 📜 许可证 本项目出于教育和实习目的而构建。 ## 🙏 致谢 - [Google Gemini](https://ai.google.dev/) — AI 分析引擎 - [VirusTotal](https://www.virustotal.com/) — 恶意软件和威胁情报 - [AbuseIPDB](https://www.abuseipdb.com/) — IP 滥用报告数据库 - [FastAPI](https://fastapi.tiangolo.com/) — 现代的 Python Web 框架
标签:AI安全分析, DLL 劫持, Web前端, 大语言模型, 威胁情报, 安全运营中心(SOC), 开发者工具, 网络安全, 运行时操纵, 逆向工具, 隐私保护