Ki1shan/Aegis_Sentinel

GitHub: Ki1shan/Aegis_Sentinel

一款基于 FastAPI 的轻量级实时威胁检测与 SOC 监控平台,通过规则引擎与 ML 加权评分自动识别并封锁恶意 HTTP 流量。

Stars: 0 | Forks: 0

# 🛡️ Aegis Sentinel v3.0 ![Python](https://img.shields.io/badge/python-3.8+-blue) ![FastAPI](https://img.shields.io/badge/fastapi-0.109-green) ![License](https://img.shields.io/badge/license-MIT-green) ![Status](https://img.shields.io/badge/status-active-brightgreen) ![Detection](https://img.shields.io/badge/detection-rule--based%20%2B%20ML-orange) ![Auth](https://img.shields.io/badge/auth-JWT-red) ## 概述 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应用防火墙, 云计算, 入侵检测系统, 多信号评分, 威胁情报, 安全仪表盘, 安全数据湖, 安全运营中心, 实时威胁检测, 开发者工具, 异常检测, 异常行为分析, 数据可视化, 无后门, 机器学习, 网络安全, 网络安全平台, 网络安全监控, 网络映射, 自动化防御, 规则引擎, 请求限速, 逆向工具, 隐私保护, 零信任安全, 驱动开发, 黑客防御