本项目的目标是构建一个全面的Web应用防火墙(WAF),能够识别并阻止常见的Web攻击。同时,项目还包含一个自动化攻击测试系统,用于模拟各种攻击并验证WAF的防护能力。
主要功能模块
- WAF核心模块 (
waf_02.py
)
- DDoS攻击检测:通过监控来自单一IP地址的请求频率,识别并阻止DDoS攻击。
- 请求过滤:使用正则表达式匹配请求中的恶意模式,如SQL注入、XSS、目录遍历等,并采取适当的阻断措施。
- IP黑白名单:允许或阻止特定IP地址的访问,以增强系统的安全性。
- 日志记录:详细记录所有被阻止的请求和错误信息,方便后续分析和审计。
- 自动化攻击测试模块 (
AttackTest_03.py
)
- 多种攻击场景模拟:预定义多种常见Web攻击场景,如SQL注入、XSS攻击、目录遍历、CSRF攻击等。
- 持续压力测试:脚本在一个无限循环中运行,持续向WAF发送攻击请求,并实时监控WAF的响应情况。
- 错误与超时处理:内置了健全的错误处理机制,以确保测试过程的稳定性和连续性。
- SQL注入模拟模块 (
web_server_01.py
)
- 攻击日志记录:模拟SQL注入攻击,并将攻击者的IP、攻击路径和时间记录下来,用于后续分析。
- 攻击展示:通过简单的Web界面,展示所有记录的SQL注入攻击,帮助安全团队了解系统的攻击面。
项目结构
- config/: 存储配置文件,包括IP黑白名单、WAF参数设置等。
- parse/: 包含请求解析相关的代码,帮助提取和分析HTTP请求中的信息。
- detect/: 实现具体的攻击检测逻辑,匹配恶意请求的特征并返回检测结果。
- db/: 日志记录模块,将阻止的请求和错误信息写入日志文件或数据库。
- scripts/: 存放自动化攻击测试脚本和其他辅助工具,如
AttackTest_03.py
。
技术栈
- 编程语言: Python
- Web 框架: Flask
- 网络库:
socket
,requests
- 多线程:
threading
- 时间处理:
datetime
,time
项目亮点
- 多层次的安全防护:通过结合IP黑白名单、正则表达式检测和DDoS防护机制,提供了多层次的安全防护。
- 可扩展性:WAF的检测规则和攻击测试场景均可根据实际需求进行扩展和定制,适应不同的Web应用场景。
- 自动化测试:集成了持续的自动化攻击测试模块,能够在开发和部署阶段持续监控WAF的有效性,并及时发现潜在漏洞。