prithakdas/sentinelshield-web-ids
GitHub: prithakdas/sentinelshield-web-ids
基于 Python/Flask 的轻量级 Web 入侵检测系统,通过规则匹配检测常见 Web 攻击并提供可视化监控面板。
Stars: 0 | Forks: 0
# SentinelShield – 高级入侵检测与 Web 防护系统
SentinelShield 是一个轻量级的 Web 入侵检测与监控系统,旨在分析传入的 HTTP 请求并检测常见的基于 Web 的攻击。
该系统检查请求 payload,使用基于规则的检测识别恶意模式,记录安全事件,并通过交互式仪表板可视化攻击统计数据。
## 🚀 功能特性
- 检测常见的 Web 攻击:
- SQL 注入 (SQL Injection)
- 跨站脚本攻击 (XSS)
- 目录遍历 (Directory Traversal)
- 本地文件包含 (LFI)
- 命令注入 (Command Injection)
- 请求检查与 payload 分析
- 使用 JSON 签名进行基于规则的攻击检测
- 请求分类(安全 / 恶意)
- 安全事件日志记录
- 速率限制保护
- 带有攻击统计数据的安全监控仪表板
- 使用 Chart.js 进行攻击分布可视化
## 🏗 系统架构
系统通过多个安全模块处理传入的请求:
客户端请求
↓
Flask Web 服务器
↓
请求检查模块
↓
攻击检测引擎
↓
请求分类
↓
日志系统
↓
安全仪表板
检测引擎使用存储在 JSON 规则文件中的预定义攻击模式分析请求 payload。
## 🧠 使用的技术
| 技术 | 用途 |
|------------|--------|
| Python | 后端编程 |
| Flask | Web 应用程序框架 |
| HTML | 界面结构 |
| CSS | UI 样式 |
| JavaScript | 客户端功能 |
| Chart.js | 仪表板可视化 |
| JSON | 攻击检测规则存储 |
## 📂 项目结构
```
SentinelShield/
│
├── logs/
│ └── waf.log
│
├── rules/
│ └── attack_rules.json
│
├── static/
│ ├── css/
│ │ └── style.css
│ └── js/
│ └── dashboard.js
│
├── templates/
│ ├── index.html
│ ├── result.html
│ └── dashboard.html
│
├── app.py
├── requirements.txt
└── README.md
```
## 🧪 攻击模拟示例
以下 payload 可用于测试检测系统。
| 攻击类型 | 示例 Payload |
|-------------|----------------|
| SQL 注入 | `' OR 1=1--` |
| 跨站脚本攻击 (XSS) | `` |
| 目录遍历 | `../../` |
| 本地文件包含 | `../../etc/passwd` |
| 命令注入 | `;cat /etc/passwd` |
## 📊 仪表板
SentinelShield 仪表板提供系统活动的可视化概览,包括:
- 总请求数
- 已拦截请求
- 攻击类型分布
- 速率限制事件
图表使用 **Chart.js** 生成,以帮助可视化安全活动。
## 📝 日志系统
所有检测到的攻击都记录在日志文件中:
```
logs/waf.log
```
每个条目包括:
- 时间戳
- IP 地址
- 请求 payload
- 检测到的攻击类型
示例:
```
[2026-03-14] ALERT | SQL Injection | IP: 127.0.0.1 | Payload: ' OR 1=1--
```
## ⚡ 速率限制
SentinelShield 包含基本的速率限制机制,以防止过度的请求尝试。
示例规则:
```
10 requests within 300 seconds
```
如果超出限制,系统将返回 **Too Many Requests**。
## ▶️ 如何运行项目
### 1. 克隆仓库
```
git clone https://github.com/yourusername/SentinelShield.git
```
### 2. 导航到项目文件夹
```
cd SentinelShield
```
### 3. 安装依赖
```
pip install flask
```
### 4. 运行应用程序
```
python app.py
```
### 5. 打开浏览器
```
http://127.0.0.1:5000
```
## 📈 结果
- 成功检测到多个模拟攻击 payload。
- 记录所有恶意请求以供监控。
- 通过仪表板显示攻击分布。
- 实施速率限制以防止请求滥用。
## 🎯 项目目的
该项目演示了如何使用 Python 和 Flask 实现基本的 Web 入侵检测技术。
它重点介绍了基于规则的检测、请求检查、日志记录和监控仪表板如何帮助识别可疑的 Web 活动。
## 👨💻 作者
**Prithak Das**
网络安全实习生 - Unified Mentor Private Limited
## 📜 许可证
本项目旨在用于**教育学习目的**。
标签:Chart.js, CISA项目, DOE合作, Flask, Homebrew安装, HTTP请求分析, PB级数据处理, Python, SQL注入检测, WAF, Web安全, XSS防御, 云计算, 入侵检测系统, 后端开发, 命令注入, 多模态安全, 安全仪表盘, 安全数据湖, 安全运维, 开源安全工具, 数据可视化, 无后门, 暴力破解防护, 本地文件包含, 网络安全, 网络安全监控, 蓝队分析, 规则引擎, 轻量级WAF, 逆向工具, 逆向工程平台, 防火墙, 隐私保护, 驱动开发