Iammythbuster/aishield
GitHub: Iammythbuster/aishield
一个基于机器学习的轻量级实时网络安全监控平台,通过异常检测、可视化威胁地图和自动化告警帮助安全团队快速响应网络威胁。
Stars: 0 | Forks: 0
# AI-Shield
一个由机器学习驱动的实时网络安全监控平台。AI-Shield 接收网络流量,使用 Isolation Forest 异常检测模型对每个连接进行评分,触发带有地理位置的警报,并为安全分析师提供实时仪表盘以进行分类和响应。
本项目作为一个大学项目开发。
## 功能
- **AI 异常检测** — Isolation Forest 模型实时对每条网络日志进行评分,将威胁分为低 / 中 / 高 / 严重级别
- **实时仪表盘** — KPI(流量、警报数量、异常分数、事件数/秒)通过 WebSocket 每 3 秒推送到前端
- **全球威胁地图** — 地理定位的警报绘制在交互式 Leaflet 地图上,支持国家/严重程度过滤
- **一键响应** — 直接从 UI 阻止或解除阻止 IP(Linux 上使用 iptables,其他系统上为模拟操作)
- **审计追踪** — 每个分析师和管理员的操作都会记录时间戳和 IP
- **团队管理** — 仅限管理员进行用户的增删改查操作,并支持基于角色的访问控制(admin / analyst / viewer)
- **多源数据接入** — 接受网络日志、Windows 设备遥测数据、路由器 syslog 以及来自 Suricata/Zeek/SIEM 的原始警报
- **电子邮件警报** — 针对高和严重级别的事件自动发送电子邮件通知
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 18, Vite, Tailwind CSS, Recharts, Leaflet |
| 后端 | FastAPI, SQLAlchemy (async), Celery |
| ML | scikit-learn Isolation Forest, NumPy, joblib |
| 数据库 | PostgreSQL 15 |
| 缓存 / 队列 | Redis |
| 认证 | JWT, bcrypt, TOTP (MFA) |
| 地理位置 | MaxMind GeoLite2 |
| 基础设施 | Docker, Docker Compose, Nginx |
## 架构
```
Devices / Routers / SIEM
│
▼
POST /api/ingest/*
│
▼
PostgreSQL (NetworkLog)
│
▼
Isolation Forest scorer
→ anomaly_score (0–1)
→ severity classification
→ GeoIP lookup
│
┌────┴────┐
▼ ▼
Alert Email (high/critical)
│
▼
WebSocket → React Dashboard
```
## 本地开发
### 前置条件
- Docker & Docker Compose
- Python 3.12(用于设备代理)
### 1. 克隆仓库
```
git clone https://github.com/Iammythbuster/aishield.git
cd aishield
```
### 2. 配置环境
```
cp backend/.env.example backend/.env
# 使用你的值编辑 backend/.env
```
### 3. 训练 ML 模型
```
cd ml
pip install scikit-learn numpy pandas joblib
python generate_iot_synthetic.py
python train_iot.py
cd ..
```
### 4. 添加 GeoIP 数据库
从 [MaxMind](https://www.maxmind.com/en/geolite2/signup) 下载 `GeoLite2-City.mmdb` 并将其放置在 `ml/` 目录中。
### 5. 启动所有服务
```
docker compose up --build
```
| 服务 | URL |
|---|---|
| 前端 | http://localhost:3000 |
| 后端 API | http://localhost:8000/docs |
| PostgreSQL | localhost:5432 |
| Redis | localhost:6379 |
默认管理员凭据:`admin@aishield.com` / `admin123`
## 设备代理
在您想要监控的任意 Windows 机器上运行:
```
pip install psutil requests
python device_agent.py
```
它将每 10 秒向后台发送一次 CPU、内存、进程、网络连接和防火墙日志。
## 发送测试流量
```
curl -X POST http://localhost:8000/api/ingest \
-H "Content-Type: application/json" \
-d '{
"src_ip": "185.220.101.77",
"dst_ip": "192.168.1.20",
"src_port": 53000,
"dst_port": 3389,
"protocol": "TCP",
"bytes": 15000000,
"packets": 200000,
"duration": 25.0,
"timestamp": "2026-01-01T12:00:00Z"
}'
```
## 部署
该应用专为以下部署方式设计:
- **后端 + Worker + 数据库 + Redis** → [Railway](https://railway.app)
- **前端** → [Vercel](https://vercel.com)
Railway 上所需的环境变量:
```
JWT_SECRET=
FRONTEND_ORIGIN=https://your-app.vercel.app
SMTP_USER=you@gmail.com # optional
SMTP_PASSWORD=your-app-password # optional
ALERT_EMAIL=alerts@example.com # optional
```
`DATABASE_URL` 和 `REDIS_URL` 由 Railway 插件自动注入。
## 项目结构
```
ai-shield/
├── backend/
│ ├── routers/ # API endpoints
│ ├── services/ # ML scorer, GeoIP, email, firewall
│ ├── models.py # SQLAlchemy models
│ ├── schemas.py # Pydantic schemas
│ └── main.py # FastAPI app
├── frontend/
│ └── src/
│ ├── pages/ # Dashboard, Alerts, ThreatMap, etc.
│ ├── components/ # Reusable UI components
│ ├── api/ # Axios client
│ └── hooks/ # useWebSocket
├── ml/
│ ├── generate_iot_synthetic.py
│ ├── train_iot.py
│ └── evaluate_iot.py
├── infra/
│ ├── backend.Dockerfile
│ ├── frontend.Dockerfile (nginx)
│ └── nginx.conf
├── device_agent.py # Windows endpoint monitor
├── docker-compose.yml
└── init.sql
```
## API 接口
| 方法 | 路径 | 描述 |
|---|---|---|
| POST | `/api/auth/login` | 登录,返回 JWT |
| POST | `/api/ingest` | 接收网络日志并进行评分 |
| GET | `/api/alerts` | 列出警报(可过滤) |
| GET | `/api/alerts/threats/map` | 用于威胁地图的地理定位警报 |
| POST | `/api/response/block` | 阻止 IP |
| GET | `/api/kpis/ws` | WebSocket — 实时 KPI 流 |
| GET | `/api/audit-logs` | 审计追踪(仅限管理员) |
| GET | `/api/system/health` | 系统健康检查 |
当后端运行时,可以在 `/docs` 查看完整的交互式文档。
## 角色
| 角色 | 权限 |
|---|---|
| `admin` | 完全访问权限 — 用户管理、审计日志、所有操作 |
| `analyst` | 对警报进行分类,阻止/解除阻止 IP |
| `viewer` | 只读仪表盘访问权限 |
标签:AI异常检测, Apex, AV绕过, Celery, Docker, FastAPI, GeoIP, HTTP/HTTPS抓包, iptables, IP 地址批量处理, IP封锁, Isolation Forest, JWT, Leaflet, PostgreSQL, React, Redis, Rootkit, SIEM集成, Suricata, Syscalls, WebSocket, Zeek, 依赖分析, 入侵检测系统, 告警分类, 多因子认证, 大专院校课程设计, 威胁情报地图, 安全事件响应, 安全大屏, 安全数据湖, 安全防御评估, 实时监控平台, 态势感知, 插件系统, 搜索引擎查询, 机器学习, 测试用例, 现代安全运营, 系统管理员, 网络安全, 网络流量分析, 自定义脚本, 请求拦截, 逆向工具, 防御绕过, 隐私保护