aarav2195/SentinelShield
GitHub: aarav2195/SentinelShield
基于 Flask 的轻量级 Web 应用防火墙,通过基于规则的请求检测和实时仪表板拦截并可视化常见 Web 攻击。
Stars: 1 | Forks: 0
# 🛡️ SentinelShield
### 一个基于 Flask 的 Web 应用防火墙 (WAF),具备实时入侵检测和安全仪表板
## 📌 概述
SentinelShield 是一个使用 **Python** 和 **Flask** 开发的轻量级 Web 应用防火墙 (WAF),它会在每个传入的 HTTP 请求到达 Web 应用之前对其进行检查。该系统能够检测多种类别的 Web 攻击,拦截恶意请求,应用速率限制,记录安全事件,并通过实时仪表板对攻击分析进行可视化展示。
该项目展示了实用的 Web 安全概念,包括请求检查、基于规则的攻击检测、请求记录、仪表板可视化以及 Web 应用保护。
## ✨ 功能特性
- HTTP 请求检查
- SQL 注入检测
- 跨站脚本攻击 (XSS) 检测
- 命令注入检测
- 目录遍历检测
- 本地文件包含 (LFI) 检测
- 基于 IP 的速率限制
- 请求记录
- 安全仪表板
- 攻击分布分析
- 威胁等级监控
- 拦截请求页面
- 响应式用户界面
## 🛠️ 使用的技术
| 类别 | 技术 |
|-----------|------------|
| 后端 | Python, Flask |
| 前端 | HTML5, CSS3, Bootstrap 5 |
| 可视化 | Plotly |
| 数据处理 | Pandas |
| 安全 | 正则表达式 (Regex) |
| 日志 | 自定义 Logger |
| 版本控制 | Git & GitHub |
## 📂 项目结构
```
SentinelShield/
│
├── logs/
├── reports/
├── screenshots/
├── src/
│ ├── detector.py
│ ├── dashboard.py
│ ├── logger.py
│ ├── rate_limiter.py
│ ├── rules.py
│ └── utils.py
│
├── static/
├── templates/
│
├── app.py
├── README.md
├── requirements.txt
└── .gitignore
```
# 🏗️ 系统架构
SentinelShield 应用遵循模块化架构,在每个 HTTP 请求到达应用程序之前都会对其进行检查。
```
Client Request
│
▼
Flask Application
│
▼
Request Inspector
│
▼
Threat Detection Engine
┌────────────┼────────────┬─────────────┐
│ │ │ │
▼ ▼ ▼ ▼
SQL Injection XSS Command Injection LFI /
Detection Detection Detection Directory Traversal
│
▼
Rate Limiter
│
▼
Security Logger
│
▼
Security Dashboard
```
该应用程序使用基于规则的检测引擎来识别恶意请求。每个传入的请求都会经过检查、分类、记录,并通过仪表板进行可视化,以实现安全监控。
# 🔄 请求处理工作流
每个传入的 HTTP 请求都遵循以下工作流:
```
Incoming Request
│
▼
Request Inspection
│
▼
Threat Detection
│
┌────┴────┐
│ │
Safe Malicious
│ │
▼ ▼
Home Blocked Page
│
▼
Logging
│
▼
Dashboard Analytics
```
### 工作流说明
1. 客户端发送 HTTP 请求。
2. Flask 捕获并检查该请求。
3. 分析请求参数、URL 和表单数据。
4. 检测引擎检查是否存在受支持的攻击特征。
5. 速率限制器验证请求频率。
6. 安全的请求将继续发送至应用程序。
7. 恶意请求将被立即拦截。
8. 每个处理过的请求都会记录在日志文件中。
9. 仪表板更新攻击统计数据和近期的安全事件。
# 🛡️ 支持的攻击检测
| 攻击类型 | 状态 |
|---------|--------|
| SQL 注入 | ✅ |
| 跨站脚本攻击 (XSS) | ✅ |
| 命令注入 | ✅ |
| 目录遍历 | ✅ |
| 本地文件包含 (LFI) | ✅ |
| 速率限制 | ✅ |
# 📊 仪表板功能
仪表板提供了对应用程序安全性的实时可见性。
它包括:
- 请求总数
- 拦截的请求数
- 威胁等级指示器
- 攻击分布图
- 近期的安全事件
- 请求统计数据
- 交互式分析
# 🧪 测试
该应用程序已经过多种攻击场景的测试。
| 测试 | 结果 |
|------|--------|
| 正常请求 | ✅ 通过 |
| SQL 注入 | ✅ 已拦截 |
| XSS 攻击 | ✅ 已拦截 |
| 命令注入 | ✅ 已拦截 |
| 目录遍历 | ✅ 已拦截 |
| 本地文件包含 | ✅ 已拦截 |
| 速率限制 | ✅ 已拦截 |
测试使用了以下工具/方法进行:
- Web 浏览器
- Kali Linux
- 手动 Payload 注入
# 📸 截图
示例截图可在 **screenshots/** 目录中找到。
- 首页
- 请求检查
- 仪表板
- SQL 注入检测
- XSS 检测
- 命令注入检测
- 目录遍历检测
- 本地文件包含检测
- 速率限制
- Kali Linux 测试
# 🚀 安装
克隆代码仓库
```
git clone https://github.com/YOUR_USERNAME/SentinelShield.git
```
进入该项目
```
cd SentinelShield
```
安装依赖项
```
pip install -r requirements.txt
```
运行应用程序
```
python app.py
```
打开浏览器
```
http://127.0.0.1:5000
```
# 🔮 未来改进
- 基于机器学习的攻击检测
- 身份验证与基于角色的访问控制
- 电子邮件警报
- Geo-IP 追踪
- 威胁情报集成
- Docker 部署
- REST API 支持
- 云端部署
# 📄 许可证
该项目基于 MIT 许可证授权。
# 👨💻 作者
**Aarav Shah**
网络安全与 AI 爱好者
⭐ 如果您觉得这个项目有用,请考虑在 GitHub 上给它点个 Star。
标签:AppImage, CISA项目, DOE合作, Flask, PFX证书, Python, Web应用防火墙, 后端开发, 攻击检测, 无后门, 逆向工具