开源WAF测试评估方法
2020-01-31 10:00:27 Author: www.freebuf.com(查看原文) 阅读量:157 收藏

在这里讲一下开源WAF的测试评估方法,以成品文档为例。

一. 测试目的

当WEB应用越来越为丰富的同时,WEB 服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL注入、网页篡改、网页挂马等安全事件,频繁发生。2007年,国家计算机网络应急技术处理协调中心(简称CNCERT/CC)监测到中国大陆被篡改网站总数累积达61228个,比2006年增加了1.5倍。其中,中国大陆政府网站被篡改各月累计达4234个。

企业等用户一般采用防火墙作为安全保障体系的第一道防线。但是,在现实中,他们存在这样那样的问题,由此产生了WAF(Web应用防护系统)。Web应用防护系统(Web Application Firewall, 简称:WAF)代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的Web应用安全问题。与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。

由于公司曾接连发生入侵事件,搭建WAF阻挡黑客脚步势在必行。

二. 测试范围

本次测试包括以下几个方面:

模拟黑客攻击看是否阻断生效

模拟灾难发生(宕机或网络波动等)看是否切换备用WAF正常工作

模拟大流量并发看是否WAF能抗压正常工作

模拟误报信息看WAF是否支持调整策略

模拟紧急情况WAF是否能切换工作模式

三. 测试环境

3.1网络拓扑

3.2软/硬件环境

角色 设备 IP地址 安装模块
WAF Linux Centos 7 192.168.99.17 Nginx1.15.5
ModsecurityV3
Java1.8.0
Geoip
Elasticsearch
Logstash
Filebeat
Keepalive
Python2.7
192.168.99.18 Nginx1.15.5
ModsecurityV3
Java1.8.0
Geoip
Elasticsearch
Logstash
Filebeat
Keepalive
Python2.7
192.168.105.18 Elasticsearch
Logstash
Kibana
Java1.8.0
Geoip

四. WAF测试项对比

模拟黑客攻击看是否阻断生效

将WAF模式调整为阻断模式,模拟SQL注入,及时阻断,返回码403

测试通过

模拟灾难发生(宕机或网络波动等)看是否切换备用WAF正常工作

将主WAFnginx关闭,访问域名依然正常,备用WAF上有访问日志

测试通过

模拟大流量并发看是否WAF能抗压正常工作

测试组发送压力包,WAF工作正常,监控CPU不超过10%

测试通过

模拟误报信息看WAF是否支持调整策略

发送模拟包触发WAF规则,通过ELK观察包显示的触发规则文件修正规则,修正后重启nginx,修正生效,放行模拟包

测试通过

模拟紧急情况WAF是否能切换工作模式

将modsecurity模块关闭,访问域名依然正常,nginx有访问日志,modsecurity没有访问日志

测试通过

五. 应急措施

应急等级分为高中低三个等级

低级:

一般为测试数据阻断,返回码为403,手动分析数据包中传递参数是否合理,若合理则寻找对应规则文件进行正则匹配修改或整体规则注释;若不合理则沟通研发进行报文调整

中级:

一般为大量长期数据阻断,返回码为403,先手工切换WAF工作模式为仅检测(modsecurity.conf->SecRuleEngine DetectionOnly),观察数据包是否恢复正常,若恢复正常,后续按照低级应急方案处理,若依旧不正常,则按照高级应急方案处理

高级:

一般为中级应急方案无效,则手动切换nginx安全模块为关闭状态(nginx.conf->modsecurity off),保证数据正常的情况下再进一步排查问题

六. 测试结论

WAF部署简单方便,使用ELK分析WAF日志对于专业人员来说十分轻松,与此同时能防御多种多样的攻击,防御列表如下:

SQL注入(SQLi) PHP代码注入
跨站点脚本(XSS) HTTPoxy
本地文件包含(LFI) Shellshock
远程文件包含(RFI) 会话固定
远程执行代码(RCE) 扫描程序检测
Xml代码注入(XXE) 命令注入
拒绝服务攻击(DoS) java反序列化

使用此WAF的优点:

免费,节省开支

可控,可随时增加修改自定义策略

灵活,通过日志灵活判断是否为攻击

安全,可阻断大部分的攻击

范围,只要部署网络任意位置用nginx转发即可使用

高效,过滤恶意流量增强了后端nginx处理效率

性能,不占用过多性能完全依赖nginx处理数据

使用此WAF的缺点:

误报,存在一定几率误报需实时监控调整

经过测试分析,WAF可有效阻断大部分黑客攻击,对于0day有着一定的防御作用。由于部署模式为双机热备,极大程度保证了WAF的运行安全以及业务的稳定。并经过流量测试证明了WAF的稳定性。同时撰写了应急方案,一旦产生误报有及时的应急措施帮助业务恢复稳定。必要时可关闭防御保证业务的可持续性。

在安全防护体系中,waf作为安全前线的第一道防护,起到了缓解的作用,在实际场景中,可以阻断公司前段时间发生的安全问题像XXE攻击等,同时有助于公司通过安全等级保护,极大程度保护交易数据不被篡改,同时保护服务器免遭黑客干扰,所以部署WAF势在必行。

*本文原创作者:煜阳yuyang,本文属于FreeBuf原创奖励计划,未经许可禁止转载


文章来源: https://www.freebuf.com/articles/web/224473.html
如有侵权请联系:admin#unsafe.sh