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绕过, 网络安全, 订阅计费, 请求拦截, 逆向工具, 隐私保护, 风险评分