Sahithi-parimi/Sentinal-Shield
GitHub: Sahithi-parimi/Sentinal-Shield
基于 Flask 的轻量级 Web 应用防火墙与入侵检测教学系统,通过规则匹配检测常见 Web 攻击并提供实时监控仪表盘。
Stars: 0 | Forks: 0
# 🛡️ SentinelShield
### 高级入侵检测与 Web 应用防火墙
*实践工作文档项目*
## 📦 项目结构
```
sentinelshield/
├── app.py ← Flask entry point (run this)
├── simulate_cli.py ← CLI batch tester for practical sessions
├── requirements.txt
├── README.md
│
├── app/
│ ├── __init__.py
│ ├── waf.py ← WAF Engine (rule-based detection)
│ ├── logger.py ← Alert Logger (file + memory)
│ ├── rate_limiter.py ← Sliding-window IP rate limiter
│ ├── analyzer.py ← HTTP Request payload extractor
│ ├── dashboard.py ← In-memory dashboard aggregator
│ └── report_generator.py ← HTML & text report exporter
│
├── templates/
│ ├── base.html ← Shared layout
│ ├── index.html ← Home / Attack Simulator
│ ├── dashboard.html ← Live charts & stats
│ └── logs.html ← Filterable log viewer
│
├── static/
│ ├── css/main.css ← Dark-theme stylesheet
│ └── js/main.js ← Shared JS utilities
│
├── tests/
│ └── test_waf.py ← pytest test suite (40+ tests)
│
├── logs/ ← Auto-created; stores .log + alerts.json
└── reports/ ← Auto-created; stores generated reports
```
## 🚀 快速入门
### 1. 安装依赖
```
pip install -r requirements.txt
```
### 2. 运行 Web 服务器
```
python app.py
```
在浏览器中打开 **http://127.0.0.1:5000**。
### 3. 运行 CLI 模拟器(无需 Web 服务器)
```
python simulate_cli.py # Run all 14 built-in test cases
python simulate_cli.py --payload "' OR 1=1 --" # Test a custom payload
python simulate_cli.py --rules # Show all WAF rules
python simulate_cli.py --ratelimit # Demo rate limiting
```
### 4. 运行自动化测试套件
```
python -m pytest tests/test_waf.py -v
```
## 🔍 检测到的攻击类别
| ID | 类别 | 严重性 | 示例 |
|----|----------|----------|---------|
| SQL-001 | SQL_INJECTION | CRITICAL | `UNION SELECT`, `DROP TABLE` |
| SQL-002 | SQL_INJECTION | HIGH | `OR 1=1`, 布尔永真式 |
| XSS-001 | XSS | HIGH | `","method":"POST"}'
```
## 📋 实践环节工作流
1. **架构回顾** – 阅读此 README 和源文件。
2. **规则检查** – 运行 `python simulate_cli.py --rules` 查看所有签名。
3. **模拟攻击** – 使用 Web UI 模拟器或 CLI 工具。
4. **观察日志** – 访问 `/logs` 或打开 `logs/alerts.json`。
5. **仪表盘分析** – 访问 `/dashboard` 查看图表。
6. **速率限制演示** – 运行 `python simulate_cli.py --ratelimit`。
7. **自动化测试** – 运行 pytest 套件并记录通过/失败率。
8. **报告生成** – 使用 `app/report_generator.py` 或 `/api/stats`。
## 🧪 示例测试 Payload
```
# SQL Injection
' OR 1=1 --
1 UNION SELECT username,password FROM users--
'; DROP TABLE users; --
# XSS
">
标签:AMSI绕过, AppImage, CISA项目, DNS枚举, Flask, HTTP请求分析, Python, Sliding-window, SQL注入防护, WAF, Web安全, Web应用防火墙, XSS防护, 云计算, 入侵检测系统, 命令注入防护, 威胁检测, 安全仪表盘, 安全数据湖, 安全日志, 安全测试, 安全规则引擎, 攻击性安全, 攻击模拟, 无后门, 漏洞防御, 网络安全, 网络安全工具, 蓝队分析, 规则引擎, 逆向工具, 隐私保护, 驱动签名利用