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应用防火墙, 后端开发, 攻击检测, 无后门, 逆向工具