WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
近几年经济增速开始放缓,科技企业的成本意识有所增强,安全支出更加理性,这使得国内的开源安全项目得到了一定发展,从 github waf 相关 topic 的活跃度来看,排名靠前的国产项目超过了海外项目。
在互联网上公开能找到资料的 WAF 项目少说也有几千个,但其中绝大部分偏实验 Demo 的性质,工程性不足,缺少部署案例,没有经历过大规模流量的验证,实际能称得上产品的项目不到百分之一。翻阅了大量资料,对这几十款 WAF 产品进行实际部署测试后,我选取了其中十个具有代表意义的项目,下文将逐一进行介绍。
评价 WAF 的常用指标
作为网站管理员,应该如何选择一款适合自己的 WAF,以下是几个最常关注的指标
防护效果:主要是两个维度,能不能防住攻击,会不会影响普通用户
技术先进性:防护引擎的技术竞争力,是否具备对抗高级攻击的能力
项目质量:本文将以功能完整性、开源代码质量、文档完整性等角度作为评价依据
社区认可度:反映了项目在用户社区中的声誉和影响力,本文将以 GitHub Star 数作为评价依据
社区活跃度:是潜力的体现,活跃度越高发展越快,本文将以社区用户的参与度和作者维护项目的积极性作为评价依据
项目清单
先来看综合评分表
项目名称 | 开发者 | 综合评分 |
---|---|---|
ModSecurity | SpiderLabs | 5 |
雷池社区版 | 长亭科技 | 5 |
coraza | coraza | 4 |
南墙 | 友安科技 | 3 |
JANUSEC | JANUSEC | 3 |
VeryNginx | loveshell | 2 |
httpwaf | 闲人 | 2 |
锦衣盾 | jx-sec | 1 |
NGX_WAF | ADD-SP | 1 |
NAXSI | NBS SYSTEM | 1 |
ModSecurity
主页:https://www.modsecurity.org/
ModSecurity 是老牌开源 WAF 引擎,使用群体广,早年只适用于 Apache,在 2.X 重构后目前也可以支持 IIS 和 Nginx。作为 WAF 引擎,相比一体化的 WAF 项目,需要二次开发才能试用,对使用者来说成本略高。ModSecurity 被不少其他开源 WAF 作为核心引擎所集成,在开源社区认可度高,实际防护以正则规则为主,覆盖相对全面,但容易被绕过,前段时间被母公司抛弃了,未来是否会继续维护下去暂未可知。
防护效果:基础检测效果不错,但是规则对国内的环境不友好,容易误报
技术先进性:虽然没有高级对抗能力,但在技术圈认可度高,被众多开源项目集成,生态即技术壁垒
项目质量:无控制台,项目完全开源,文档丰富
社区认可度:6400 star,是目前全球 star 数最高的 WAF 项目
社区活跃度:持续有更新,近一年更新过 3 个版本
雷池社区版
主页:https://waf-ce.chaitin.cn/
雷池社区版是长亭科技根据企业版雷池 Web 应用防护系统提炼而来,核心检测能力由长亭首创的智能语义分析算法驱动。项目开源了语义分析算法的核心引擎和相关安全插件,控制台未开源。优点在于防护效果好,项目迭代快,界面清爽好用,缺点在于社区版相比企业版功能较少,但能满足 WAF 的基本需求。
防护效果:对通用漏洞和非通用漏洞的防护效果都不错,误报少
技术先进性:核心技术是语义分析算法,相比正则规则的可对抗性更高、性能更好
项目质量:具备 WAF 各项基础能力,项目未完全开源,文档相对完善
社区认可度:12000 star,装机量 280000+
社区活跃度:持续有更新,近一年更新过 100 个版本
Coraza
主页:https://coraza.io/
Coraza 是一个开源、高性能的 WAF 引擎,使用 Go 语言编写,支持 ModSecurity SecLang 规则集,并且与 OWASP 核心规则集完全兼容,与 ModSecurity 一样不提供界面,只作为检测引擎,需要二次开发才能试用,有机会成为 ModSecurity 的替代品。
防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报
技术先进性:检测规则依赖 LibInjection、ModSecurity、OWASP 项目
项目质量:无控制台,项目完全开源,文档丰富
社区认可度:1200 Star
社区活跃度:持续有更新,近一年更新过 4 个版本
VeryNginx
主页:https://github.com/alexazhou/VeryNginx
VeryNginx 是一款与 Nginx 深度集成的 WAF 扩展程序,相比其他 Nginx 扩展,VeryNginx 是为数不多提供了控制台的 WAF 项目。VeryNginx 没有提供核心检测引擎,规则部分依赖第三方库。VeryNginx 在 github 有 5900 star,是国产 WAF 项目中 star 数最高的项目,最大的问题是该项目年久失修,规则库也多年不更新,项目基本停止维护,非常可惜。
防护效果:规则简单,具备基础防护能力,但有点过时,规则库 7 年未更新过
技术先进性:检测规则以来第三方的 ngx_lua_waf 项目
项目质量:具备 WAF 各项基础能力,项目完全开源,文档相对完善
社区认可度:5900 Star
社区活跃度:4 年未更新
NAXSI
主页:https://github.com/nbs-system/naxsi
NAXSI 是一款专为 Nginx 而生的 WAF 引擎,输出形态是 Nginx 动态扩展,编译后修改 Nginx 配置文件即可生效。NAXSI 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。检测能力依赖 LibInjection 项目,只支持 SQL 注入和 XSS 检测,不推荐在线上使用。
防护效果:对通用漏洞的检出率比较高,但误报也高的离谱,仅支持 SQL 注入和 XSS 检测
技术先进性:核心能力依赖了 LibInjection 项目
项目质量:无控制台,项目完全开源,文档丰富
社区认可度:4300 Star
社区活跃度:偶尔有更新,基本不维护
NGX_WAF
主页:https://github.com/ADD-SP/ngx_waf
NGX_WAF 是一款国产的 Nginx 扩展类型的 WAF 引擎项目(这类的项目真多)。NGX_WAF 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。NGX_WAF 的核心能力基于 LibInjection 和 ModSecurity,和其他引用了第三方开源规则库的 WAF 项目相同,海外规则库对国内互联网环境适配性不太好,容易误报,缺少针对非通用性漏洞的规则。
防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报
-技术先进性:检测规则依赖 LibInjection 和 ModSecurity 项目
项目质量:无控制台,项目完全开源,文档较少
社区认可度:1300 Star
社区活跃度:偶尔有更新,近一年更新过 2 个版本
南墙
主页:https://waf.uusec.com/
南墙 WEB 应用防火墙(简称:uuWAF)是有安科技推出的一款全方位网站防护产品。通过有安科技专有的WEB入侵异常检测等技术,结合有安科技团队多年应用安全的攻防理论和应急响应实践经验积累的基础上自主研发而成,缺点在于不能升级,有新版本要铲掉重装。
防护效果:对 SQL、XSS、RCE、LFI 这四种攻击检测效果不错,缺少对于非通用漏洞的防护规则
技术先进性:具备基础的语义检测能力,支持通过机器学习对流量建模
项目质量:具备 WAF 各项基础能力,项目不开源,文档相对完善
社区认可度:198 Star
社区活跃度:迭代较快,近一年更新过 7 个版本
JANUSEC
主页:https://www.janusec.com/
JANUSEC 是一个开源的 Web 应用安全网关软件,优势在于功能丰富,同时具备负载均衡、WAF、身份认证、证书管理、堡垒机等功能,缺点是 WAF 的安全防护能力比较弱,只能防护一些简单的攻击,适合对安全防护要求不高的站长。
防护效果:WAF 防护功能比较弱,只有一些简单的正则规则
技术先进性:以正则表达式为主,无其他防护引擎,对抗高强度攻击的能力不足
项目质量:功能丰富,项目开源,文档丰富
社区认可度:1000 Star
社区活跃度:持续有更新,近一年更新过 4 个版本
HTTPWAF
主页:https://github.com/httpwaf/httpwaf2.0
HTTPWAF 官方号称是一款真正有 web 管理后台,并且永久免费的 web 应用防火墙,既支持直接部署在 WEB 服务器上,又可以独立部署保护后端服务器。在免费 WAF 界算是功能很丰富的项目,基础检测能力还可以,缺乏对抗高强度攻击的能力。作为免费产品,源码、文档、安装包均没有公开提供,要加微信获取。
防护效果:基础防护能力还可以,缺少对非通用漏洞的检测规则
技术先进性:资料很少,做不出判断
项目质量:功能丰富,交互还不错,但是代码和文档都没有开放
社区认可度:65 Star
社区活跃度:没有太多社区化的内容
锦衣盾
主页:https://www.jxwaf.com/
锦衣盾(JXWAF)是一款基于 OpenResty 开发的下一代 Web 应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统 WAF 无法对业务安全进行防护的痛点。
防护效果:基础防护能力较弱,对非通用漏洞的检测效果不太好,误报有点严重
技术先进性:规则简单,对抗高强度攻击的能力不足
项目质量:功能比较少,交互不太好用,项目开源,代码质量不高,文档基本完善
社区认可度:965 Star
社区活跃度:持续有更新,近一年更新过 1 个版本