六款免费 WAF 的测试报告 #296
safe1ine
started this conversation in
Show and tell
Replies: 3 comments
-
不建议使用“宝塔 WAF”这个名字,因为宝塔自己做了一个WAF,是可以独立部署的,但是同时在宝塔面板中有一个“Nginx防火墙”与“Apache防火墙”,在宝塔应用商店中有“Nginx免费防火墙” |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
原文:六款免费 WAF 的测试报告
最近赶上国内某重大网安活动,要给几个客户推荐一些免费好用的安全产品,WAF 是其中之一。
攻击防护是 WAF 最核心的能力,本文将介绍如何使用科学的方法测试 WAF 防护能力的有效性。
为了保证测试结果公平公正,本文中提到的所有靶机、测试工具、测试样本均为开源项目。
测试指标
测试结果以 4 个指标为主:
检测耗时用工具直接统计即可,其他这几个指标如何计算,可以对应到统计学中的预测分类概念:
这样就可以给出上面 3 个指标的计算公式:
为了减小随机性带来的综合影响,以减小误差,对于 ”检测耗时“ 我将会拆为 “90% 的平均耗时” 和 “99% 的平均耗时” 两个指标。
测试样本
数据来源:所有测试数据均来自于我自己的浏览器。
抓包方式:用 Burp 做代理,浏览器全局指向 Burp,导出 XML 文件后使用 Python 脚本处理成单个请求。
根据以往的经验,在互联网上暴露的服务,通常正常流量和攻击流量的比例是 100:1 左右,我们按这个方式对样本进行配比。
白样本:刷微博、刷知乎、刷B站、刷各种论坛,一共攒了 60707 个 HTTP 请求,总大小 2.7 GB(该过程浪费了我 5 个小时)。
黑样本:为了让测试效果更充分,我使用四个不同的方法采集了黑样本,一共 600 个 HTTP 请求(该过程浪费了我 5 个小时)。
测试方法
测试指标和测试样本明确之后,现在需要三个东西:WAF、接收流量的靶机,还有测试工具。
所有 WAF 均使用初始配置,不做任何调整。
靶机用 Nginx,无论收到什么请求,均直接返回 200,配置如下:
测试工具的需求如下:
找了两款开源 WAF 测试工具,看起来质量都不错,基本符合要求,把两款工具综合一下,再略加其他细节就能用,地址如下:
开始测试
雷池社区版
Coraza
ModSecurity
宝塔 WAF
nginx-lua-waf
SuperWAF
对比表格
> 雷池社区版的综合表现最好,误报和漏报都是最少的。
>
> Coraza 和 ModSecurity 作为国外的优秀 WAF 引擎项目,检出率很高,但对于国内的场景适配并不会,误报太高。
>
最后
为了保证公平公正,本文中所用到的测试工具和测试数据均已开源,可访问以下地址获取:
https://gitee.com/kxlxbb/testwaf
另外,不同的测试样本和测试方法可能会导致测试结果有比较大的差异,需要根据实际情况选择合适的测试样本和测试方法来进行测试。
本次测试的结果仅供参考,不作为评价产品、工具、算法、模型的唯一标准。
Beta Was this translation helpful? Give feedback.
All reactions