专栏首页FreeBuf开源WAF测试评估方法

开源WAF测试评估方法

在这里讲一下开源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软/硬件环境

四. 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原创奖励计划,未经许可禁止转载

本文分享自微信公众号 - FreeBuf(freebuf),作者:煜阳yuyang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WAF产品经理眼中比较理想的WAF

    WAF简介 WAF(Web Application Firewall,简称:WAF),百度百科上的定义,Web应用防火墙是通过执行一系列针对HTTP/HTTPS...

    FB客服
  • 关于安全体系中WAF的探讨

    最近分享了我在WAF建设方面的一些经验,其中评论有一些让我有点意外,在这里引用一下:

    FB客服
  • 如何打造一款可靠的WAF(Web应用防火墙)

    之前写了一篇《WAF防御能力评测及工具》,是站在安全运维人员选型WAF产品的角度来考虑的(优先从测试角度考虑是前职业病,毕竟当过3年游戏测试?!)。本篇文章从W...

    FB客服
  • WAF的介绍与WAF绕过原理

    WAF 是什么?全称 Web Application Firewall (WEB 应用防护系统),与传统的 Firewall (防火墙) 不同,WAF 针对的是...

    天钧
  • 23种设计模式之原型模式

    通俗的讲,就是不再使用new 来创建对象, 而改用 clone 方法来得到新的对象

    烟草的香味
  • 精度是远远不够的:如何最好地评估一个分类器?

    分类模型(分类器)是一种有监督的机器学习模型,其中目标变量是离散的(即类别)。评估一个机器学习模型和建立模型一样重要。我们建立模型的目的是对全新的未见过的数据进...

    deephub
  • 1067: [SCOI2007]降雨量

    1067: [SCOI2007]降雨量 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2148  Solved...

    HansBug
  • Vue.js动态组件解析

    什么是动态组件绑定?简单的说,就是几个组件放在一个挂载点下,然后根据父组件的某个变量来决定显示哪个,或者都不显示。

    Dunizb
  • 【Mockplus教程】删除

    1 删除单个页面或分组 直接选中需要删除的页面或分组,在右键菜单中选择“删除”,或者使用Delete键删除; 2 删除多个页面或分组 在同一个分组下,按...

    奔跑的小鹿
  • 震惊!Bittrex下架82个币种,这些币即将归零!

    Bittrex,俗称B网,建立于2015年,是美国的一家交易所,Bittrex团队成员来自微软、亚马逊、Qualys和黑莓各大知名公司,在交易方面拥有超过50年...

    区块链领域

扫码关注云+社区

领取腾讯云代金券