Sharv619/network-guardian-ai

GitHub: Sharv619/network-guardian-ai

一个基于 FastAPI 和 React 的多租户 DNS 威胁检测 SaaS 平台,通过多层 AI 分析引擎实时识别恶意域名和网络异常行为。

Stars: 0 | Forks: 0

# 🛡️ Network Guardian AI ### *多租户安全即服务平台* ## 📖 目录 1. [🔍 概述](#-overview) 2. [🕹️ 核心功能](#-core-features) 3. [🏗️ 系统架构](#-system-architecture) 4. [🧠 智能层级](#-intelligence-layers) 5. [👥 多租户](#-multi-tenancy) 6. [💳 计费与订阅](#-billing--subscriptions) 7. [🔑 开发者 API](#-developer-api) 8. [🎨 UI 组件](#-ui-components) 9. [🚀 快速开始](#-getting-started) 10. [🧪 测试](#-testing) ## 🔍 概述 Network Guardian AI 是一个支持多租户的实时网络安全平台。它通过 AdGuard 拦截 DNS 查询,执行多层行为分析,并通过现代化的 Dashboard UI 提供威胁情报。 **安全即服务**:已准备好进行商业化部署,具备租户隔离、计费集成和基于层级的访问控制功能。 ## 🕹️ 核心功能 * **实时威胁检测**:带有风险评估的 DNS 请求实时流 * **手动域名分析**:使用 Gemini AI 和 ML 启发式算法按需分析 * **12 面板统计仪表盘**:全面的指标概览(概览、ML、警报、黑名单、设置) * **管理员仪表盘**:CRM 风格的租户管理界面 * **用量追踪**:每个租户的用量分析和速率限制 * **开发者门户**:API 密钥生成和端点文档 ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Docker Compose │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────────────┐ ┌─────────────────────────┐ │ │ │ Network Guardian │ │ AdGuard Home │ │ │ │ (Backend + UI) │ │ (DNS Interceptor) │ │ │ │ Port: 8000 │ │ Port: 8080, 53 │ │ │ └─────────────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` **组件:** - **Frontend**:React/TypeScript,由后端静态提供服务 - **Backend**:Python 3.11 / FastAPI - **Database**:支持多租户的 SQLite - **DNS 拦截器**:AdGuard Home - **AI**:Google Gemini(带有本地启发式回退机制) ## 🧠 智能层级 | 层级 | 方法 | 目的 | | :--- | :--- | :--- | | **第 1 层** | Shannon 熵 | 本地检测随机 DGA 字符串 | | **第 2 层** | 孤立森林 (ML) | 无监督异常检测 | | **第 3 层** | Gemini AI | 语义威胁分析 | | **第 4 层** | 黑名单查询 | 已知威胁数据库 | ## 👥 多租户 ### 租户管理 - **完全隔离**:每个租户拥有独立的数据、API 密钥和配置 - **租户中间件**:通过子域名、Header 或 API 密钥自动识别租户 - **仪表盘切换**:TenantSelector 组件用于快速切换上下文 ### 订阅层级 | 层级 | 功能 | 速率限制 | |------|----------|------------| | **Free** | 100 次请求/分钟 | 基础 ML 启发式算法 | | **Pro** | 无限制 + Gemini AI | 完整分析流水线 | | **Enterprise** | 定制化 + SLA | 优先支持 | ## 💳 计费与订阅 ### Stripe 集成 - **结账会话**:一键升级订阅 - **客户门户**:自助计费管理 - **Webhook 处理**:支付事件时自动更新层级 - **用量追踪**:每个租户的每日和整体统计数据 ### API 端点 ``` POST /billing/checkout - Create Stripe checkout session POST /billing/portal - Get customer portal URL POST /billing/webhook - Stripe webhook handler GET /billing/tiers - List subscription tiers ``` ## 🔑 开发者 API ### 认证 - **API 密钥**:每个租户的 API 密钥生成 - **JWT 支持**:基于 Token 的认证 - **速率限制**:基于层级的请求限制 ### 端点 ``` POST /api/v1/analyze - Analyze domain GET /api/v1/stats - Get tenant statistics GET /api/v1/history - Get threat history WS /ws/public - Real-time updates ``` ### 速率限制 | 层级 | 请求/分钟 | |------|----------------| | Free | 100 | | Pro | 1000 | | Enterprise | 无限 | ## 🎨 UI 组件 ### 统计仪表盘 (12 个面板) 1. 黑名单知识库 / 已知威胁 2. Ollama 模型 / 本地 AI 3. 总决策数 / 已分析域名 4. 自主评分 / 本地分析率 5. 已学习模式 / ML 模型 6. 活跃警报 / 待处理 7. 异常模型 / 训练状态 8. 活跃源 / 黑名单来源 9. 向量嵌入 / 威胁存储 10. 熵阈值 / 动态 11. 活动趋势图 12. 类别分布饼图 ### 页面 - **仪表盘**:主要威胁监控视图 - **管理**:租户管理,CRM 界面 - **用量**:每个租户的用量分析 - **定价**:订阅层级信息 ## 🚀 快速开始 ### 1. 环境设置 ``` cp .env.example .env # 编辑 .env 并填入你的 API keys: GEMINI_API_KEY=your_key STRIPE_API_KEY=sk_live_... STRIPE_WEBHOOK_SECRET=whsec_... ``` ### 2. 启动服务 ``` # 构建并启动 docker compose up --build -d # 或直接启动(如果镜像存在) docker compose up -d ``` ### 3. 访问 | 服务 | URL | |---------|-----| | **仪表盘** | http://localhost:8000 | | **AdGuard UI** | http://localhost:8080 | | **API 文档** | http://localhost:8000/docs | ### 4. 环境变量 ``` # 核心 GEMINI_API_KEY=your_gemini_key ADGUARD_URL=http://adguard:80 ADGUARD_USER=admin ADGUARD_PASS=your_password # Stripe Billing STRIPE_API_KEY=sk_live_... STRIPE_WEBHOOK_SECRET=whsec_... STRIPE_PRO_PRICE_ID=price_... STRIPE_ENTERPRISE_PRICE_ID=price_... # Ollama(可选) OLLAMA_ENABLED=false OLLAMA_BASE_URL=http://host.docker.internal:11434 OLLAMA_MODEL=nomic-embed-text OLLAMA_CHAT_MODEL=llama3.2 # 多租户 ENVIRONMENT=development # Set to production for production API_RATE_LIMIT_PER_TENANT=100 DEFAULT_TENANT_ID=1 ``` ## 🧪 测试 ``` # 所有测试 PYTHONPATH=. python -m pytest Tests_AI/ -v # 单个测试 PYTHONPATH=. python -m pytest Tests_AI/test_heuristics.py -v # 带覆盖率 PYTHONPATH=. pytest Tests_AI/ -v --cov=backend # Linting ruff check backend/ && ruff check backend/ --fix mypy backend/ --ignore-missing-imports ``` ## 📊 项目结构 ``` network-guardian-ai/ ├── backend/ │ ├── api/ # FastAPI routes │ │ ├── stats.py # Statistics endpoints │ │ ├── chat.py # Chatbot │ │ ├── billing.py # Stripe billing │ │ ├── tenant_router.py │ │ └── developer_router.py │ ├── core/ │ │ ├── config.py # Settings │ │ ├── tenant_middleware.py │ │ └── websocket_manager.py │ ├── db/ │ │ ├── models.py # SQLAlchemy models │ │ ├── repository.py # Data access │ │ └── database.py # DB connection │ ├── logic/ │ │ ├── ml_heuristics.py │ │ ├── anomaly_engine.py │ │ └── metadata_classifier.py │ └── services/ │ ├── adguard_poller.py │ ├── gemini_service.py │ └── blocklist_loader.py ├── frontend/ │ ├── components/ │ │ ├── Dashboard.tsx │ │ ├── StatsPanel.tsx # 12-panel overview │ │ ├── AdminDashboard.tsx │ │ ├── LoginPage.tsx │ │ └── TenantSelector.tsx │ ├── services/ │ │ ├── tenantService.ts │ │ └── websocketService.ts │ └── App.tsx ├── docker-compose.yml # Production ├── docker-compose.dev.yml # Development with hot-reload ├── Dockerfile # Multi-stage build └── Tests_AI/ # pytest tests ``` ## 🤝 构建技术 - **AI/ML**:Google Gemini, Scikit-Learn, Shannon 熵 - **后端**:Python 3.11, FastAPI, SQLAlchemy - **前端**:React 19, TypeScript, Tailwind CSS, Recharts - **数据库**:SQLite (开发环境),兼容 PostgreSQL - **计费**:Stripe - **DNS**:AdGuard Home ## 📈 系统状态 - ✅ 具有完全数据隔离的多租户隔离 - ✅ 具有 Webhook 处理的 Stripe 计费集成 - ✅ 具有速率限制的开发者 API - ✅ 12 面板统计仪表盘 - ✅ 管理员 CRM 界面 - ✅ 实时 WebSocket 更新 - ✅ 生产环境 Docker 部署
标签:AdGuard, Apex, DNS分析, Docker容器, Gemini AI, IP 地址批量处理, OISF, PB级数据处理, SaaS平台, 云审计, 人工智能, 仪表盘, 后台拦截, 域名校验, 多租户架构, 威胁情报, 安全运维, 开发者工具, 开发者门户, 异常检测, 攻击面发现, 日志管理, 机器学习, 用户模式Hook绕过, 网络安全, 订阅计费, 请求拦截, 逆向工具, 隐私保护, 风险评分