Ki1shan/Aegis_Sentinel
GitHub: Ki1shan/Aegis_Sentinel
一款基于 FastAPI 的轻量级实时威胁检测与 SOC 监控平台,通过规则引擎与 ML 加权评分自动识别并封锁恶意 HTTP 流量。
Stars: 0 | Forks: 0
# 🛡️ Aegis Sentinel v3.0






## 概述
Aegis Sentinel 是一个全栈网络安全监控系统,可实时分析传入的 HTTP 流量,使用加权多信号引擎对威胁进行评分,自动封锁恶意 IP,生成警报,并在 SOC 风格的仪表板中全面展示所有信息。
该系统结合了**基于规则的检测**(已知的机器人特征、可疑请求头、路径匹配)与**行为 ML 评分引擎**(请求频率、会话熵、时间模式、请求头差异),从而将威胁从 `minimal`(极低)分类到 `critical`(严重)。
## 架构
```
┌──────────────────────────────────────────────────────────────────┐
│ AEGIS SENTINEL v3.0 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ FASTAPI BACKEND (main.py) │ │
│ │ Request interception, rate limiting, IP tracking │ │
│ │ JWT auth middleware, REST API, dashboard serving │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────┼──────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────────┐ ┌────────────────┐ ┌──────────────────┐ │
│ │ THREAT DETECTOR │ │ ML SCORER │ │ AUTH MODULE │ │
│ │ detection.py │ │ detection.py │ │ auth.py │ │
│ │ │ │ │ │ │ │
│ │ - Request rate │ │ - 8 ML features│ │ - JWT HS256 │ │
│ │ - Bot patterns │ │ - Weighted │ │ - PBKDF2 hashing │ │
│ │ - Suspicious UA │ │ scoring │ │ - Role-based │ │
│ │ - Path matching │ │ - Anomaly flag │ │ - 60min expiry │ │
│ │ - Header analysis│ │ - Category │ │ - Middleware │ │
│ │ - Behavioral │ │ prediction │ │ enforcement │ │
│ │ - Reputation │ │ │ │ │ │
│ └──────────────────┘ └────────────────┘ └──────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ DATABASE LAYER (database.py) │ │
│ │ SQLite + 7 tables: users, ip_tracking, request_log, │ │
│ │ alerts, threat_signatures, ml_model_cache, settings │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ SOC DASHBOARD (index.html + Chart.js) │ │
│ │ Live stats, IP table, alert feed, threat visualization │ │
│ └────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
```
## 检测引擎
### ThreatDetector — 基于规则(5 个信号,加权)
| 信号 | 权重 | 分析内容 |
|--------|--------|-----------------|
| `request_rate` | 25% | 每秒请求数与时间窗口阈值的对比 |
| `behavioral` | 25% | RPM、唯一 Agent 数量、总请求量 |
| `pattern_match` | 20% | 已知的机器人 UA、可疑路径、工具特征 |
| `header_analysis` | 15% | 可疑请求头、缺失请求头、代理特征 |
| `reputation` | 15% | IP 类别分析、多播范围 |
**可检测到的已知机器人/扫描器特征:**
`curl`, `wget`, `python`, `scrapy`, `nmap`, `sqlmap`, `hydra`, `metasploit`, `nikto`, `masscan`, `burp`, `dirbuster`, `gobuster` 等。
**标记的可疑路径:**
`/admin`, `/wp-login`, `/wp-admin`, `/phpmyadmin`, `/.env`, `/.git`, `/config`, `/backup`, `/xmlrpc.php`, `/wp-config.php`, `/administrator` 等。
### MLThreatScorer — 行为 ML(8 个特征,加权)
| 特征 | 权重 | 逻辑 |
|---------|--------|-------|
| `request_frequency` | 15% | RPM 评分 — 100+ RPM = 1.0 |
| `behavioral` | 15% | 请求/秒阈值 |
| `temporal_pattern` | 15% | 间隔方差 — 低方差 = 机器人 |
| `path_entropy` | 12% | 路径多样性比率 — 低值 = 扫描 |
| `header_variance` | 13% | 请求头数量 — 稀疏 = 自动化工具 |
| `session_duration` | 10% | 极短的会话 = 高评分 |
| `threat_history` | 10% | 历史评分放大 1.2 倍 |
| `geo_anomaly` | 10% | 为未来的地理位置功能预留 |
**威胁类别预测:**
```
request_frequency > 0.8 → ddos
behavior_anomaly > 0.7 → bruteforce
path_entropy > 0.6 → scanning
header_variance > 0.5 → bot
else → unknown
```
### 风险等级
| 评分 | 风险等级 | 严重性 | 操作 |
|-------|-----------|---------|--------|
| 0.0 – 0.19 | minimal | low | 监控 |
| 0.2 – 0.39 | low | low | 监控 |
| 0.4 – 0.59 | medium | medium | 标记 |
| 0.6 – 0.79 | high | high | 警报 + 封锁 |
| 0.8 – 1.0 | critical | critical | 自动封锁 + 警报 |
## 认证系统
- **JWT HS256** token,60 分钟过期时间
- **PBKDF2-HMAC-SHA256** 密码哈希(100,000 次迭代)带随机盐
- **基于角色的访问控制** — `admin` 和 `operator` 角色
- **认证中间件** — 除 `/api/login`, `/api/register`, `/`, `/docs` 之外,所有 API 路由均受保护
- 默认管理员:`admin` / `aegis2024!`(在生产环境中请务必修改)
## 数据库架构(7 张表)
| 表 | 用途 |
|-------|---------|
| `users` | 用户账户,包含 PBKDF2 哈希密码、角色、上次登录时间 |
| `ip_tracking` | 每个 IP 的状态 — 请求计数、封锁状态、威胁评分、风险等级 |
| `request_log` | 完整的请求历史 — IP、状态、UA、威胁评分、响应时间 |
| `alerts` | 警报信息流 — 严重性、消息、确认追踪 |
| `threat_signatures` | 可扩展的威胁特征数据库 |
| `ml_model_cache` | 每个 IP 的 ML 预测缓存 |
| `settings` | 运行时可配置参数 |
**索引:** `request_log.ip_address`, `request_log.timestamp`, `alerts.severity`
## API 接口
| 方法 | 接口 | 需认证 | 描述 |
|--------|----------|------|-------------|
| `GET` | `/` | 否 | SOC 仪表板 |
| `POST` | `/api/login` | 否 | JWT 登录 |
| `POST` | `/api/register` | 否 | 用户注册 |
| `GET` | `/api/data` | 是 | 分析请求,返回威胁评估结果 |
| `GET` | `/api/stats` | 是 | 完整统计 — IP、警报、近期请求 |
| `GET` | `/api/alerts` | 是 | 活动警报信息流 |
| `POST` | `/api/alerts/{id}/acknowledge` | 是 | 确认警报 |
| `GET` | `/api/threat-analysis/{ip}` | 是 | 特定 IP 的深入分析 |
| `GET` | `/api/ml-training-data` | 是 | 导出用于训练的 ML 特征数据 |
| `DELETE` | `/api/unblock/{ip}` | 是 | 解封 IP |
| `DELETE` | `/api/reset` | 是 | 清除所有追踪数据 |
| `GET` | `/api/settings` | 是 | 获取运行时配置 |
| `POST` | `/api/settings` | 是 | 更新运行时配置 |
## 运行时配置(可通过 API 调整)
| 设置项 | 默认值 | 描述 |
|---------|---------|-------------|
| `max_requests` | 10 | 触发封锁前每个时间窗口允许的最大请求数 |
| `window_seconds` | 15 | 限速滑动窗口 |
| `block_duration` | 300 | IP 封锁持续时间(秒) |
| `ml_threshold` | 0.7 | 触发标记的 ML 评分阈值 |
| `enable_ml` | true | 启用 ML 评分 |
| `auto_block` | true | 自动封锁严重威胁 |
## 安装
```
git clone https://github.com/Ki1shan/Aegis_Sentinel.git
cd Aegis_Sentinel
pip install -r requirements.txt
python main.py
```
在浏览器中打开 `http://127.0.0.1:8000/` 查看 SOC 仪表板
## 使用说明
### 默认登录凭据
```
Username: admin
Password: aegis2024!
```
### API 使用
**登录:**
```
curl -X POST http://127.0.0.1:8000/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "aegis2024!"}'
```
**分析请求:**
```
curl http://127.0.0.1:8000/api/data \
-H "Authorization: Bearer "
```
**获取完整统计:**
```
curl http://127.0.0.1:8000/api/stats \
-H "Authorization: Bearer "
```
**深入 IP 威胁分析:**
```
curl http://127.0.0.1:8000/api/threat-analysis/192.168.1.100 \
-H "Authorization: Bearer "
```
## 威胁响应示例
```
{
"status": "danger",
"message": "DDoS SIGNATURE DETECTED - IP QUARANTINED",
"ip": "192.168.1.9",
"count": 15,
"threat_score": 0.87,
"risk_level": "critical",
"detected_patterns": ["Rapid requests: 15 in 15s"],
"ml_analysis": {
"confidence": 0.92,
"recommendations": ["Consider IP blocking", "Enable enhanced monitoring"]
},
"blocked": true,
"response_time_ms": 2.41
}
```
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 后端 | Python, FastAPI, uvicorn |
| 前端 | HTML, TailwindCSS, JavaScript, Chart.js |
| 认证 | JWT (PyJWT), PBKDF2-HMAC-SHA256 |
| 数据库 | SQLite3 |
| 检测 | 基于规则 + 加权 ML 评分 |
## 作者
**Kishan N**
攻击性安全工程师 | 蓝队与检测工程
构建 Aegis Sentinel 旨在展示如何在一个轻量级、可部署的 SOC 平台中,结合多信号行为分析和 ML 评分,而无需依赖外部 ML 框架。
## 许可证
MIT 许可证 — 详情请参阅 `LICENSE` 文件。
*尽早检测。快速封锁。保持警惕。*
标签:Apex, AppImage, AV绕过, CISA项目, FastAPI, HTTP流量分析, IP封禁, JWT认证, Python, SOC平台, SQLite, TCP/IP协议栈, TCP/UDP协议, WAF, Web应用防火墙, 云计算, 入侵检测系统, 多信号评分, 威胁情报, 安全仪表盘, 安全数据湖, 安全运营中心, 实时威胁检测, 开发者工具, 异常检测, 异常行为分析, 数据可视化, 无后门, 机器学习, 网络安全, 网络安全平台, 网络安全监控, 网络映射, 自动化防御, 规则引擎, 请求限速, 逆向工具, 隐私保护, 零信任安全, 驱动开发, 黑客防御