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 "> # LFI ../../../../etc/passwd ..%2F..%2F..%2Fetc%2Fshadow /proc/self/environ # Command Injection ; ls -la / | whoami `id` $(cat /etc/passwd) # XXE ``` ## 📝 学生作业检查清单 - [ ] 运行 CLI 模拟器并记录所有 14 个测试结果 - [ ] 通过 Web UI 提交至少 5 个自定义攻击 payload - [ ] 在运行测试后截取仪表盘屏幕截图 - [ ] 导出 JSON 日志 (`/api/logs`) 并添加注释 - [ ] 运行 pytest 并记录测试结果 - [ ] 找出一个误报并解释其触发原因 - [ ] 提出一项规则改进并提供示例 regex *SentinelShield – 仅供教育目的。请勿用于您未获授权的系统。*
标签:AMSI绕过, AppImage, CISA项目, DNS枚举, Flask, HTTP请求分析, Python, Sliding-window, SQL注入防护, WAF, Web安全, Web应用防火墙, XSS防护, 云计算, 入侵检测系统, 命令注入防护, 威胁检测, 安全仪表盘, 安全数据湖, 安全日志, 安全测试, 安全规则引擎, 攻击性安全, 攻击模拟, 无后门, 漏洞防御, 网络安全, 网络安全工具, 蓝队分析, 规则引擎, 逆向工具, 隐私保护, 驱动签名利用