该项目主要实现了对新版本waf进行质量测试和压力测试,根据统计数据评估新版waf具体情况。
- 目前测试环境请求数据单一,防护配置复杂度不够,造成测试覆盖度不够。由于线上请求数据复杂,每个域名的配置复杂并且多样性,往往测试后的版本部署线上发生异常。
- 压测数据单一,无法真正反映机器的性能
- 规则新增的时候,对规则测试的数据比较单一,可能会引起误拦、CPU打满的风险。
模拟线上请求流量,测试的waf配置和线上WAF配置一致。发布前对waf的全部域名进行测试,统计异常状态,判断系统是否正常。 当下发新规则前,需要先下发到测试平台,平台进行压测,判断是否误拦和CPU变化情况。
- 线上真实流量收集,还原并下发到测试服务器。
- 控制服务器发生测试指令。
- 压测机器控制模块根据具体模式压测机器进行流量回放测试。
- Waf控制模块根据具体模式选择对应的配置,启动waf。
- waf统计模块根据压测模式对日志、性能数据分析统计。
- 收集压测机器和waf统计模块的分析数据,发送到控制服务器上。
项目名实在是乱想的,第一个版本实现较为粗糙,立个flag,下一个版本尝试用go写写:)