zeyaulhasan/AI-Powered-Cyber-Threat-Intelligence-SOC-Platform

GitHub: zeyaulhasan/AI-Powered-Cyber-Threat-Intelligence-SOC-Platform

基于FastAPI和React构建的AI增强型网络安全威胁情报监控平台,结合规则检测与ML异常分析,为安全团队提供实时可视化的威胁检测与智能响应能力。

Stars: 0 | Forks: 0

# 🛡️ AI 驱动的网络威胁情报与 SOC 平台
![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=for-the-badge&logo=fastapi&logoColor=white) ![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-3.4-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white) ![Firebase](https://img.shields.io/badge/Firebase-Auth-FFCA28?style=for-the-badge&logo=firebase&logoColor=black) ![Gemini](https://img.shields.io/badge/Gemini_AI-Powered-4285F4?style=for-the-badge&logo=google&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge&logo=docker&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) **企业级网络安全监控系统,具备 AI 增强威胁检测、实时 SOC 仪表板、基于 ML 的异常检测以及智能 AI 聊天机器人 —— 采用现代全栈架构构建。** [功能特性](#-features) • [技术栈](#-tech-stack) • [快速开始](#-quick-start) • [API 参考](#-api-reference) • [系统架构](#-architecture)
## ✨ 功能特性 ### 🔐 认证与多用户 - **双重认证** — 通过 Firebase 进行邮箱/密码 + Google OAuth 认证 - **多用户架构** — 隔离的、特定于用户的威胁跟踪和仪表板 - **安全的基于 Token 的会话** — 每次 API 调用都进行 JWT 验证 ### 🧠 AI 与机器学习 - **ML 异常检测** — 基于网络流量模式训练的 Isolation Forest 算法 - **AI 聊天机器人** — 利用 Google Gemini API 进行智能威胁解释与问答 - **动态威胁评分** — 结合异常、规则和置信度分数的加权评分(0–100) - **AI 安全洞察** — 自动生成摘要、模式检测和缓解建议 ### 🚨 威胁检测引擎 - **暴力破解检测** — 监控时间窗口内的失败登录尝试 - **端口扫描检测** — 标记访问 10 个以上唯一端口的来源 - **DDoS 检测** — 识别每分钟超过 1000 个数据包的洪泛攻击 - **黑名单 IP 匹配** — 与已知恶意 IP 列表进行交叉比对 - **协议不匹配** — 检测异常的端口-协议组合 ### 📊 企业级 SOC 仪表板 - **实时威胁推送** — 基于 WebSocket 的实时更新 - **交互式分析** — 趋势图表、攻击分布、严重程度细分 - **报告生成** — 导出为 PDF 和 CSV - **IP 地理定位** — 集成 IPinfo API 进行地理威胁映射 ### 📧 告警与通知 - **自动化邮件告警** — 针对严重威胁的 Gmail SMTP 通知 - **可配置阈值** — 通过环境变量自定义检测灵敏度 ## 🛠️ 技术栈
### 后端 | 技术 | 用途 | |:-----------|:--------| | **Python 3.10+** | 核心语言 | | **FastAPI** | 异步 REST API 框架 | | **SQLAlchemy** | ORM 与数据库管理 | | **SQLite / PostgreSQL** | 数据持久化 | | **scikit-learn** | Isolation Forest ML 模型 | | **WebSockets** | 实时通信 | | **Firebase Admin SDK** | 服务端认证 | | **Google Gemini API** | AI 驱动的分析 | | **IPinfo API** | IP 地理定位 | | **Gmail SMTP** | 邮件告警服务 | ### 前端 | 技术 | 用途 | |:-----------|:--------| | **React 18** | UI 框架 | | **Vite 5** | 构建工具与开发服务器 | | **Tailwind CSS 3.4** | 实用优先的样式框架 | | **Recharts** | 数据可视化与图表 | | **Framer Motion** | 动画与过渡效果 | | **Zustand** | 轻量级状态管理 | | **React Router v6** | 客户端路由 | | **Firebase SDK** | 客户端认证 | | **Axios** | HTTP 客户端 | | **Lucide React** | 图标库 |
## 🚀 快速开始 ### 前置条件 - Python 3.10+ - Node.js 18+ - npm ### 1. 克隆仓库 ``` git clone https://github.com//ai-cyber-threat-intelligence.git cd ai-cyber-threat-intelligence ``` ### 2. 后端设置 ``` cd backend # 创建并激活虚拟环境 python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境 cp .env.example .env # 使用你的凭证编辑 .env(参见 Environment Variables 部分) # 启动服务器 uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` ### 3. 前端设置 ``` cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ### 4. 访问应用 | 服务 | URL | |:---------|:----| | 仪表板 | [http://localhost:5173](http://localhost:5173) | | API 文档 (Swagger) | [http://localhost:8000/docs](http://localhost:8000/docs) | ### 🐳 Docker (替代方案) ``` # 使用一条命令启动整个技术栈 docker-compose up --build ``` ## 🔑 环境变量 在 `backend/` 目录下创建 `.env` 文件(使用 `.env.example` 作为模板): | 变量 | 描述 | 必填 | |:---------|:------------|:--------:| | `FIREBASE_PROJECT_ID` | Firebase 项目 ID | ✅ | | `FIREBASE_PRIVATE_KEY` | Firebase 服务账号私钥 | ✅ | | `FIREBASE_CLIENT_EMAIL` | Firebase 服务账号邮箱 | ✅ | | `GEMINI_API_KEY` | Google Gemini API 密钥 | ✅ | | `IPINFO_API_KEY` | IPinfo API Token | ⚙️ | | `EMAIL_ADDRESS` | 用于发送告警的 Gmail 地址 | ⚙️ | | `EMAIL_APP_PASSWORD` | Gmail 应用密码 | ⚙️ | | `DATABASE_URL` | 数据库连接字符串 | ⚙️ | | `BRUTE_FORCE_THRESHOLD` | 失败登录阈值 (默认: `5`) | ❌ | | `PORT_SCAN_THRESHOLD` | 唯一端口阈值 (默认: `10`) | ❌ | | `DDOS_THRESHOLD` | 每分钟数据包阈值 (默认: `1000`) | ❌ |
🔧 如何获取 API 密钥 #### Firebase 1. 前往 [Firebase Console](https://console.firebase.google.com/) → 创建项目 2. 启用 **Authentication** → 邮箱/密码 + Google 登录 3. **项目设置 → 服务账号 → 生成新的私钥** 4. 从 JSON 中提取 `project_id`, `private_key`, 和 `client_email` 5. 对于前端:**项目设置 → 您的应用 → 添加网页应用** → 复制配置 #### Google Gemini API 1. 访问 [Google AI Studio](https://aistudio.google.com/app/apikey) 2. 点击 **Create API Key** — 提供免费额度 #### IPinfo 1. 在 [ipinfo.io/signup](https://ipinfo.io/signup) 注册 2. 复制您的 Token (免费版: 50,000 次请求/月) #### Gmail 应用密码 1. 在您的 Google 账号上启用 **两步验证** 2. **Google 账号 → 安全性 → 两步验证 → 应用密码** 3. 为“邮件”生成一个密码
## 📡 API 参考 所有端点(除了 `/api/health`)都需要: ``` Authorization: Bearer ``` | 方法 | 端点 | 描述 | |:------:|:---------|:------------| | `GET` | `/api/health` | 健康检查 (无需认证) | | `GET` | `/api/user/profile` | 获取已认证用户的个人资料 | | `POST` | `/api/logs/upload` | 上传网络日志以进行分析 | | `GET` | `/api/threats` | 获取威胁日志 (可筛选) | | `GET` | `/api/analytics/summary` | 仪表板分析与统计 | | `POST` | `/api/chat` | 与 AI 助手对话 | | `GET` | `/api/demo/generate` | 生成合成演示数据 | | `WS` | `/ws/{user_id}` | 用于实时更新的 WebSocket |
查询参数 **`GET /api/threats`** | 参数 | 类型 | 描述 | |:----------|:-----|:------------| | `limit` | int | 每页结果数 (最大 100) | | `offset` | int | 分页偏移量 | | `severity` | string | `Critical` / `High` / `Medium` / `Low` | | `start_date` | string | ISO 8601 日期筛选 | | `end_date` | string | ISO 8601 日期筛选 | **`GET /api/analytics/summary`** | 参数 | 类型 | 描述 | |:----------|:-----|:------------| | `days` | int | 分析周期 (最大 90) |
## 🧠 威胁检测 — 工作原理 ### 基于规则的检测 | 威胁类型 | 触发条件 | 严重程度 | |:------------|:------------------|:---------| | **暴力破解** | 5 分钟内 ≥ 5 次失败登录 | Medium → High | | **端口扫描** | 一个来源访问 10+ 个唯一端口 | Medium → High | | **DDoS** | 每分钟 1000+ 个数据包 | High → Critical | | **黑名单 IP** | 匹配已知恶意 IP | Critical | | **协议不匹配** | 异常的端口-协议组合 | Medium | ### ML 异常检测 - **算法:** Isolation Forest (无监督) - **特征:** `port`, `packet_count`, `byte_count`, `duration`, `protocol`, `hour_of_day` - **输出:** 归一化到 0–100 的异常分数 ### 威胁评分公式 ``` Threat Score = (Anomaly Score × 0.5) + (Rule Score × 0.3) + (Confidence × 0.2) ``` | 严重程度 | 分数范围 | |:---------|:------------| | 🔴 Critical | 90 – 100 | | 🟠 High | 71 – 89 | | 🟡 Medium | 31 – 70 | | 🟢 Low | 0 – 30 | ## 🏗️ 系统架构 ``` ai-cyber-threat-intelligence/ │ ├── backend/ │ ├── main.py # FastAPI app entry point │ ├── config.py # Configuration & env management │ ├── auth.py # Firebase auth middleware │ ├── requirements.txt # Python dependencies │ ├── .env.example # Environment template │ ├── Dockerfile # Backend Docker config │ ├── database/ │ │ ├── models.py # SQLAlchemy ORM models │ │ └── db.py # Database connection setup │ ├── services/ │ │ ├── threat_detector.py # Rule-based detection engine │ │ ├── anomaly_engine.py # Isolation Forest ML engine │ │ ├── gemini_service.py # Google Gemini AI integration │ │ ├── ip_lookup.py # IPinfo geolocation service │ │ ├── email_service.py # Email alerting service │ │ └── firebase_service.py # Firebase Admin SDK wrapper │ └── ws_manager/ │ └── manager.py # WebSocket connection manager │ ├── frontend/ │ ├── src/ │ │ ├── App.jsx # Root component & routing │ │ ├── main.jsx # React entry point │ │ ├── index.css # Global styles │ │ ├── components/ # Reusable UI components │ │ ├── pages/ # Application pages │ │ ├── context/ # React context providers │ │ ├── services/ # API service layer │ │ └── config/ # Firebase client config │ ├── package.json │ ├── tailwind.config.js │ ├── vite.config.js │ └── Dockerfile # Frontend Docker config │ ├── docker-compose.yml # Multi-service orchestration ├── sample_logs.csv # Example network log file └── README.md # Project documentation ``` ## 📋 使用指南 ### 1. 🔐 登录 - 访问 [http://localhost:5173](http://localhost:5173) - 使用邮箱/密码**注册**或使用 Google **登录** ### 2. 📤 上传网络日志 - 导航到 **Upload** 页面 - 上传包含网络流量数据的 `.csv` 或 `.json` 文件 - 支持的 CSV 字段: | 字段 | 类型 | 必填 | |:------|:-----|:--------:| | `source_ip` | string | ✅ | | `destination_ip` | string | ❌ | | `protocol` | string (`tcp`/`udp`/`http`/`https`) | ❌ | | `port` | integer | ❌ | | `packet_count` | integer | ❌ | | `byte_count` | integer | ❌ | | `duration` | float (秒) | ❌ | | `failed_login` | boolean | ❌ | ### 3. 📊 探索仪表板 - 查看实时威胁推送、严重程度分布和趋势分析 - 点击单个威胁查看 AI 生成的解释 - 通过 **Reports** 页面将数据导出为 PDF 或 CSV ### 4. 🤖 与 AI 对话 - 打开 **Chatbot** 页面并提出情境化问题: - *"Summarize my recent threats"* (总结我最近的威胁) - *"Which country has the most attacks?"* (哪个国家的攻击最多?) - *"What is a brute force attack and how do I prevent it?"* (什么是暴力破解攻击,我该如何预防?) ### 5. 🧪 试用演示模式 - 在仪表板上点击 **"Generate Demo Data"** 以填充合成威胁数据进行测试 ## 🚢 部署 ### 后端 → [Render](https://render.com) / [Railway](https://railway.app) 1. 将代码推送到 GitHub 2. 将仓库连接到托管平台 3. 设置所有环境变量 4. 设置启动命令: `uvicorn main:app --host 0.0.0.0 --port 0` ### 前端 → [Vercel](https://vercel.com) / [Netlify](https://netlify.com) 1. 将代码推送到 GitHub 2. 连接仓库 3. 设置 **Build command:** `npm run build` 4. 设置 **Output directory:** `dist` ### 数据库 (生产环境) - 使用 **PostgreSQL** (推荐: [Supabase](https://supabase.com), [Neon](https://neon.tech), 或 [Railway](https://railway.app)) - 在环境变量中更新 `DATABASE_URL` ## 🐛 故障排除
后端问题 | 问题 | 解决方案 | |:--------|:---------| | **数据库连接错误** | 验证 `DATABASE_URL` 格式。 SQLite: `sqlite:///./database.db` | | **Firebase 认证失败** | 确保 `FIREBASE_PRIVATE_KEY` 包含 `\n` 字符 | | **邮件发送失败** | 使用 Gmail **应用密码**,而不是您的常规密码 | | **Gemini API 429 错误** | 免费额度已用尽 — 等待 1 分钟后重试 |
前端问题 | 问题 | 解决方案 | |:--------|:---------| | **Firebase 认证错误** | 验证 `src/config/firebase.js` 中的配置 | | **WebSocket 无法连接** | 确认后端正在端口 8000 上运行 | | **白屏** | 运行 `cd frontend && npm install` 重新安装依赖 |
## 🤝 贡献 1. **Fork** 本仓库 2. **创建** 功能分支: `git checkout -b feature/amazing-feature` 3. **提交** 您的更改: `git commit -m "Add amazing feature"` 4. **推送** 到分支: `git push origin feature/amazing-feature` 5. **打开** Pull Request ## 📝 许可证 本项目基于 **MIT License** 授权 — 可免费用于个人、作品集和商业项目。
**用 ❤️ 构建用于企业网络安全监控** `Python` · `FastAPI` · `React` · `Tailwind CSS` · `Firebase` · `Gemini AI` · `scikit-learn`
标签:AI 助手, AMSI绕过, Apex, AV绕过, CISA项目, DLL 劫持, DNS 反向解析, Docker, FastAPI, Firebase, Isolation Forest, JWT, OAuth, Python, React, SOC平台, Syscalls, TailwindCSS, 人工智能, 企业级安全, 大语言模型, 威胁情报, 威胁检测, 安全仪表盘, 安全运营中心, 安全防御评估, 密码管理, 开发者工具, 异常检测, 插件系统, 无后门, 机器学习, 欺诈检测, 测试用例, 用户模式Hook绕过, 红队行动, 结构化查询, 网络安全, 网络安全审计, 网络映射, 网络流量分析, 自动化安全, 自定义脚本, 请求拦截, 逆向工具, 速率限制, 隐私保护, 风险评分