hetulpandya44/digi-save-waf

GitHub: hetulpandya44/digi-save-waf

基于 FastAPI 和 SQLite 的轻量级反向代理 WAF,在请求到达上游应用前检测并拦截十余种常见 Web 攻击,配备完整管理后台和演示靶场。

Stars: 0 | Forks: 0

# Digi Save WAF ![GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg) ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-Management%20%2B%20Proxy-009688?logo=fastapi&logoColor=white) ![SQLite](https://img.shields.io/badge/Database-SQLite-003B57?logo=sqlite&logoColor=white) ![Status](https://img.shields.io/badge/Status-Portfolio%20Ready-2ea44f) ## 作品集快照 - 项目类型:毕业设计级别的网络安全与全栈工程项目 - 核心理念:在易受攻击或生产环境的 Web 应用前部署 WAF 代理,并在请求到达真实服务器之前进行检测 - 主要技术栈:FastAPI, Python, SQLite, `httpx`, HTML/CSS/JS, Chart.js - 安全重点:SQLi、XSS、命令注入、路径遍历、敏感文件访问、SSRF、XXE、SSTI、扫描器检测、IP ACL、速率限制和质询门控 - 演示模型:包含一个故意存在漏洞的本地目标应用,用于安全演示 ## 为什么这个项目很重要 大多数学生的安全项目仅停留在检测或日志记录阶段。Digi Save WAF 则更进一步: - 作为真实的反向代理运行 - 将干净流量转发到上游活跃应用 - 在恶意请求到达目标前将其拦截 - 记录攻击事件以便分析 - 为管理员提供功能完善的仪表板、规则面板、受保护站点管理和安全设置 这使其成为一个极具分量的作品集项目,因为它结合了: - 网络安全概念 - 网络和反向代理设计 - 后端 API 工程 - 前端仪表板设计 - 身份验证与 MFA - 基于数据库的配置和日志记录 ## 核心特性 - 端口 `8085` 上的反向代理 WAF 引擎 - 端口 `8005` 上的管理服务器和后台 UI - 基于 SQLite 的配置、用户、规则和攻击日志 - 涵盖 12 种攻击类型的模块化检测引擎 - 针对每个站点的保护设置和路由 - 速率限制和 IP 允许/拦截规则 - 本地 CAPTCHA、认证门控和动态质询流程 - 采用 JWT、bcrypt 和 TOTP MFA 的管理员身份验证 - 端口 `8090` 上的演示目标应用,用于安全的本地测试 ## 威胁覆盖范围 | 攻击类型 | 覆盖范围 | |---|---| | SQL 注入 | 基于联合查询、布尔型、编码型以及可疑的查询模式 | | 跨站脚本攻击 (XSS) | Script 标签、内联事件处理程序和载荷片段 | | 命令注入 | Shell 分隔符、链式命令和危险命令模式 | | 路径遍历 | `../`、编码遍历以及 Windows/Linux 路径滥用 | | SSRF | 内部 IP、localhost 目标和元数据端点模式 | | XXE | 实体声明和 XML 滥用指示符 | | SSTI | 模板表达式载荷 | | 扫描器检测 | `sqlmap`、`nikto`、`nmap` 以及类似工具的指纹 | | 敏感文件访问 | `.env`、备份、配置文件导出以及暴露的文件 | | CRLF / LDAP / XPath | 针对请求滥用的特定载荷签名 | ## 架构 ``` flowchart LR User["Client / Browser"] Proxy["WAF Proxy Engine (:8085)"] Controls["Rate Limiting / IP ACL / Gates"] Detect["Detection Engine"] Upstream["Protected Upstream App"] Manager["Management Server (:8005)"] UI["Admin UI"] DB["SQLite"] User --> Proxy Proxy --> Controls Controls --> Detect Detect --> Upstream Proxy --> DB Manager --> DB UI --> Manager Proxy -. attack events .-> Manager ``` 更多细节:[架构](docs/ARCHITECTURE.md) ## 请求生命周期 ``` sequenceDiagram participant C as Client participant W as WAF Proxy participant S as SQLite participant D as Detection Engine participant U as Upstream App participant M as Management API C->>W: HTTP request W->>S: Load site config / policy / ACL W->>W: Rate limit + IP ACL + optional challenge gates W->>D: Inspect path, query, headers, body alt Attack detected D-->>W: Block decision W->>S: Save detect_log W->>M: Push dashboard event W-->>C: 403 block page else Clean request D-->>W: Safe W->>U: Forward request U-->>W: Response W-->>C: Response end ``` ## 公开仓库说明 在此公开仓库版本中,特意移除了视觉展示相关的素材。代码、架构、安装流程、演示指南和验证结果均被保留。 ## 验证结果 当前针对此作品集构建的本地验证包括: - 检测套件通过率:`39/39` - 直接访问 `8090` 端口上的易受攻击演示目标 - 访问 `8085` 端口上的干净 WAF 路由 - SQL 注入被拦截并返回 `403` - XSS 被拦截并返回 `403` - 敏感文件访问被拦截并返回 `403` 详细证据:[结果与验证](docs/RESULTS.md) ## 技术栈 | 层级 | 技术 | 用途 | |---|---|---| | 后端 | Python, FastAPI | 管理 API 和反向代理服务 | | 代理 | `httpx`, `StreamingResponse` | 将请求转发到上游应用 | | 检测 | 自定义 Python 模块 | 攻击检测与响应决策 | | 前端 | HTML, CSS, JavaScript | 管理仪表板和设置 UI | | 图表 | Chart.js | 仪表板可视化 | | 认证 | JWT, bcrypt, `pyotp`, `qrcode` | 登录、MFA、凭证保护 | | 数据库 | SQLite | 用户、站点、策略、日志、统计数据 | | 后台任务 | APScheduler | 清理和周期性任务 | ## 快速开始 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 启动管理服务器 ``` cd backend python main.py ``` 这将启动: - 管理 UI:`http://localhost:8005` - WAF 代理:`http://localhost:8085` ### 3. 启动演示目标 ``` cd demo_target python app.py ``` 这将在以下地址启动故意存在漏洞的示例站点: - `http://127.0.0.1:8090` ### 4. 默认管理员登录 | 用户名 | 密码 | |---|---| | `admin` | `admin123` | 在长期使用前,请从 `Settings -> Security` 中更改这些信息。 ## 安全演示流程 1. 直接在 `http://127.0.0.1:8090` 打开易受攻击的演示应用 2. 在 `http://localhost:8085` 打开受保护的路由 3. 直接针对 `8090` 触发演示攻击 4. 通过 `8085` 触发相同的攻击 5. 打开 `http://localhost:8005/logs` 查看被拦截的事件 完整演练:[演示指南](docs/DEMO.md) ## 仓库布局 ``` digi-save-waf/ ├── backend/ # FastAPI management server and WAF engine ├── demo_target/ # Intentionally vulnerable app for safe testing ├── frontend/ # Static admin UI ├── docs/ # Architecture, setup, results, and project notes ├── Dockerfile ├── compose.yaml ├── requirements.txt └── README.md ``` ## 文档地图 - [架构](docs/ARCHITECTURE.md) - [安装指南](docs/SETUP.md) - [演示指南](docs/DEMO.md) - [结果与验证](docs/RESULTS.md) - [案例研究](docs/CASE_STUDY.md) - [路线图](docs/ROADMAP.md) - [截图库](docs/SCREENSHOTS.md) - [学术文档包](docs/academic/README.md) - [安全政策](SECURITY.md) - [行为准则](CODE_OF_CONDUCT.md) ## 安全须知 `demo_target` 应用是故意设计为存在漏洞的,仅用于本地测试、课堂演示和经授权的研究。请勿将其公开部署。 ## 鸣谢 本仓库作为 Digi Save WAF 的作品集就绪学术项目发布。 更多细节:[鸣谢](ACKNOWLEDGEMENTS.md)
标签:AMSI绕过, AppImage, AV绕过, Chart.js, CISA项目, FastAPI, httpx, IP 地址批量处理, IP访问控制, MFA, Python, SQLite, SQL注入防御, SSRF防御, SSTI防御, WAF, Web安全, Web应用防火墙, XSS防御, XXE防御, 人机验证, 前端仪表盘, 反向代理, 后端工程, 命令注入防御, 多因素认证, 威胁检测, 安全运营, 安全防护, 安全项目, 扫描框架, 攻击拦截, 敏感文件访问控制, 无后门, 漏洞防御, 网络安全, 网络安全毕业设计, 蓝队分析, 请求拦截, 路径遍历防御, 运行时操纵, 逆向工具, 隐私保护