盘点 2023 十大免费开源 WAF

WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。

近几年经济增速开始放缓,科技企业的成本意识有所增强,安全支出更加理性,这使得国内的开源安全项目得到了一定发展,从 github waf 相关 topic 的活跃度来看,排名靠前的国产项目超过了海外项目。

在互联网上公开能找到资料的 WAF 项目少说也有几千个,但其中绝大部分偏实验 Demo 的性质,工程性不足,缺少部署案例,没有经历过大规模流量的验证,实际能称得上产品的项目不到百分之一。翻阅了大量资料,对这几十款 WAF 产品进行实际部署测试后,我选取了其中十个具有代表意义的项目,下文将逐一进行介绍。

评价 WAF 的常用指标

作为网站管理员,应该如何选择一款适合自己的 WAF,以下是几个最常关注的指标

  • 防护效果:主要是两个维度,能不能防住攻击,会不会影响普通用户

  • 技术先进性:防护引擎的技术竞争力,是否具备对抗高级攻击的能力

  • 项目质量:本文将以功能完整性、开源代码质量、文档完整性等角度作为评价依据

  • 社区认可度:反映了项目在用户社区中的声誉和影响力,本文将以 GitHub Star 数作为评价依据

  • 社区活跃度:是潜力的体现,活跃度越高发展越快,本文将以社区用户的参与度和作者维护项目的积极性作为评价依据

项目清单

先来看综合评分表

项目名称开发者综合评分
ModSecuritySpiderLabs⭐️⭐️⭐️⭐️⭐️
雷池社区版长亭科技⭐️⭐️⭐️⭐️
corazacoraza⭐️⭐️⭐️⭐️
南墙友安科技⭐️⭐️⭐️
JANUSECJANUSEC⭐️⭐️⭐️
VeryNginxloveshell⭐️⭐️
httpwaf闲人⭐️⭐️
锦衣盾jx-sec⭐️
NGX_WAFADD-SP⭐️
NAXSINBS SYSTEM⭐️

 

1.ModSecurity

主页:https://www.modsecurity.org/

ModSecurity 是老牌开源 WAF 引擎,使用群体广,早年只适用于 Apache,在 2.X 重构后目前也可以支持 IIS 和 Nginx。作为 WAF 引擎,相比一体化的 WAF 项目,需要二次开发才能试用,对使用者来说成本略高。ModSecurity 被不少其他开源 WAF 作为核心引擎所集成,在开源社区认可度高,实际防护以正则规则为主,覆盖相对全面,但容易被绕过,前段时间被母公司抛弃了,未来是否会继续维护下去暂未可知。

  • 防护效果:基础检测效果不错,但是规则对国内的环境不友好,容易误报

  • 技术先进性:虽然没有高级对抗能力,但在技术圈认可度高,被众多开源项目集成,生态即技术壁垒

  • 项目质量:无控制台,项目完全开源,文档丰富

  • 社区认可度:6400 star,是目前全球 star 数最高的 WAF 项目

  • 社区活跃度:持续有更新,近一年更新过 3 个版本

 

2.雷池社区版

主页:https://waf-ce.chaitin.cn/

雷池社区版是长亭科技根据企业版雷池 Web 应用防护系统提炼而来,核心检测能力由长亭首创的智能语义分析算法驱动。项目开源了语义分析算法的核心引擎和相关安全插件,控制台未开源。优点在于防护效果好,项目迭代快,界面清爽好用,缺点在于社区版相比企业版功能较少,但能满足 WAF 的基本需求。

  • 防护效果:对通用漏洞和非通用漏洞的防护效果都不错,误报少

  • 技术先进性:核心技术是语义分析算法,相比正则规则的可对抗性更高、性能更好

  • 项目质量:具备 WAF 各项基础能力,项目未完全开源,文档相对完善

  • 社区认可度:1500 star,装机量 4000+

  • 社区活跃度:持续有更新,近一年更新过 15 个版本

3.Coraza

主页:https://coraza.io/

Coraza 是一个开源、高性能的 WAF 引擎,使用 Go 语言编写,支持 ModSecurity SecLang 规则集,并且与 OWASP 核心规则集完全兼容,与 ModSecurity 一样不提供界面,只作为检测引擎,需要二次开发才能试用,有机会成为 ModSecurity 的替代品。

  • 防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报

  • 技术先进性:检测规则依赖 LibInjection、ModSecurity、OWASP 项目

  • 项目质量:无控制台,项目完全开源,文档丰富

  • 社区认可度:1200 Star

  • 社区活跃度:持续有更新,近一年更新过 4 个版本

4.VeryNginx

主页:GitHub - alexazhou/VeryNginx: A very powerful and friendly nginx base on lua-nginx-module( openresty ) which provide WAF, Control Panel, and Dashboards.

VeryNginx 是一款与 Nginx 深度集成的 WAF 扩展程序,相比其他 Nginx 扩展,VeryNginx 是为数不多提供了控制台的 WAF 项目。VeryNginx 没有提供核心检测引擎,规则部分依赖第三方库。VeryNginx 在 github 有 5900 star,是国产 WAF 项目中 star 数最高的项目,最大的问题是该项目年久失修,规则库也多年不更新,项目基本停止维护,非常可惜。

  • 防护效果:规则简单,具备基础防护能力,但有点过时,规则库 7 年未更新过

  • 技术先进性:检测规则以来第三方的 ngx_lua_waf 项目

  • 项目质量:具备 WAF 各项基础能力,项目完全开源,文档相对完善

  • 社区认可度:5900 Star

  • 社区活跃度:4 年未更新

5.NAXSI

主页:https://github.com/nbs-system/naxsi

NAXSI 是一款专为 Nginx 而生的 WAF 引擎,输出形态是 Nginx 动态扩展,编译后修改 Nginx 配置文件即可生效。NAXSI 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。检测能力依赖 LibInjection 项目,只支持 SQL 注入和 XSS 检测,不推荐在线上使用。

 

  • 防护效果:对通用漏洞的检出率比较高,但误报也高的离谱,仅支持 SQL 注入和 XSS 检测

  • 技术先进性:核心能力依赖了 LibInjection 项目

  • 项目质量:无控制台,项目完全开源,文档丰富

  • 社区认可度:4300 Star

  • 社区活跃度:偶尔有更新,基本不维护

 

6.NGX_WAF

主页:https://github.com/ADD-SPngx_waf

NGX_WAF 是一款国产的 Nginx 扩展类型的 WAF 引擎项目(这类的项目真多)。NGX_WAF 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。NGX_WAF 的核心能力基于 LibInjection 和 ModSecurity,和其他引用了第三方开源规则库的 WAF 项目相同,海外规则库对国内互联网环境适配性不太好,容易误报,缺少针对非通用性漏洞的规则。

  • 防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报

  • 技术先进性:检测规则依赖 LibInjection 和 ModSecurity 项目

  • 项目质量:无控制台,项目完全开源,文档较少

  • 社区认可度:1300 Star

  • 社区活跃度:偶尔有更新,近一年更新过 2 个版本

 

7.南墙

主页:https://waf.uusec.com/

南墙 WEB 应用防火墙(简称:uuWAF)是有安科技推出的一款全方位网站防护产品。通过有安科技专有的WEB入侵异常检测等技术,结合有安科技团队多年应用安全的攻防理论和应急响应实践经验积累的基础上自主研发而成,缺点在于不能升级,有新版本要铲掉重装。

  • 防护效果:对 SQL、XSS、RCE、LFI 这四种攻击检测效果不错,缺少对于非通用漏洞的防护规则

  • 技术先进性:具备基础的语义检测能力,支持通过机器学习对流量建模

  • 项目质量:具备 WAF 各项基础能力,项目不开源,文档相对完善

  • 社区认可度:198 Star

  • 社区活跃度:迭代较快,近一年更新过 7 个版本

8.JANUSEC

主页:https://www.janusec.com/

JANUSEC 是一个开源的 Web 应用安全网关软件,优势在于功能丰富,同时具备负载均衡、WAF、身份认证、证书管理、堡垒机等功能,缺点是 WAF 的安全防护能力比较弱,只能防护一些简单的攻击,适合对安全防护要求不高的站长。

  • 防护效果:WAF 防护功能比较弱,只有一些简单的正则规则

  • 技术先进性:以正则表达式为主,无其他防护引擎,对抗高强度攻击的能力不足

  • 项目质量:功能丰富,项目开源,文档丰富

  • 社区认可度:1000 Star

  • 社区活跃度:持续有更新,近一年更新过 4 个版本

9.HTTPWAF

主页:https://github.com/httpwaf/httpwaf2.0

HTTPWAF 官方号称是一款真正有 web 管理后台,并且永久免费的 web 应用防火墙,既支持直接部署在 WEB 服务器上,又可以独立部署保护后端服务器。在免费 WAF 界算是功能很丰富的项目,基础检测能力还可以,缺乏对抗高强度攻击的能力。作为免费产品,源码、文档、安装包均没有公开提供,要加微信获取。

  • 防护效果:基础防护能力还可以,缺少对非通用漏洞的检测规则

  • 技术先进性:资料很少,做不出判断

  • 项目质量:功能丰富,交互还不错,但是代码和文档都没有开放

  • 社区认可度:65 Star

  • 社区活跃度:没有太多社区化的内容

10.锦衣盾

主页:https://www.jxwaf.com/

锦衣盾(JXWAF)是一款基于 OpenResty 开发的下一代 Web 应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统 WAF 无法对业务安全进行防护的痛点。

  • 防护效果:基础防护能力较弱,对非通用漏洞的检测效果不太好,误报有点严重

  • 技术先进性:规则简单,对抗高强度攻击的能力不足

  • 项目质量:功能比较少,交互不太好用,项目开源,代码质量不高,文档基本完善

  • 社区认可度:965 Star

  • 社区活跃度:持续有更新,近一年更新过 1 个版本

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/53551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java+SpringBoot+vue前后端分离可盈保险合同管理系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

SpingMVC拦截器-用户登录权限控制分析

视频链接:08-SpringMVC拦截器-用户登录权限控制代码实现2_哔哩哔哩_bilibili 114 1、做了一个用户跟角色添加的相关操作 1.1 这个后台工程,没有进行相关操作也能够进行登录: 2、现在我做一个用户的权限控制,如果当前我没有进行操…

解决Springboot创建工程时,pom.xml文件中的插件spring-boot-maven-plugin报红

在初始创建工程完成之后&#xff0c;发现pom文件中有错误 spring-boot-maven-plugin这一行会报红 解决办法&#xff1a;在代码中添加版本信息 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-…

Mybatis的综合案例-学生信息查询系统 用于校验是否真正学习掌握了动态SQL

Mybatis的综合案例-学生信息查询系统 需求一&#xff1a;当用户输入的学生姓名不为空&#xff0c;则只根据学生信息进行查询; 当用户输入的学生姓名为空&#xff0c;且专业不为空&#xff0c;那么就根据学生专业进行学生的查询 需求二&#xff1a;查询所有id值小于5的学生信息…

git常用操作命令(不定时更新)

git常用操作命令 将某个分支的某次提交迁移到另外一个分支查询这次提交的ID号方法一方法二 切换到目标分支执行commitID合并指令 将某个分支的某次提交迁移到另外一个分支 查询这次提交的ID号 方法一 方法二 切换到目标分支 git checkout 目标分支名 执行commitID合并指令 gi…

Dataset类实践

Dataset类实践 蚂蚁蜜蜂分类数据集和下载链接https://download.pytorch.org/tutorial/hymenoptera_data.zip Dataset&#xff1a;提供一种方式去获取数据及其lable Q&#xff1a;如何获取每个数据及其lable 重写构造方法和获取标签方法 Q&#xff1a;告诉我们总共有多少数据 …

leetcode739. 每日温度 单调栈

自己思路&#xff1a; 想到用两个栈&#xff0c;一个维护元素、另一个维护下标。但是还是无法处理有重复元素的问题&#xff08;用哈希表来存储的时候&#xff09;。所以就看了答案的思路。 答案思路&#xff1a; 从前往后遍历&#xff0c;维护一个单调栈。栈存放数组的下标。…

WPF基础入门-Class7-WPF-MVVN框架

WPF基础入门 Class7-MVVN框架 使用框架可以省掉如Class6中的ViewModelBase.cs的OnPropertyChanged&#xff0c;亦方便命令传参 1、NuGet安装CommunityToolkit.Mvvm&#xff08;原Mircrosoft.Toolkit.Mvvm&#xff09;也可以安装MVVMLight等其他集成库 2、显示页面&#xff1…

小研究 - JVM 逃逸技术与 JRE 漏洞挖掘研究(五)

Java语言是最为流行的面向对象编程语言之一&#xff0c; Java运行时环境&#xff08;JRE&#xff09;拥有着非常大的用户群&#xff0c;其安全问题十分重要。近年来&#xff0c;由JRE漏洞引发的JVM逃逸攻击事件不断增多&#xff0c;对个人计算机安全造成了极大的威胁。研究JRE安…

Compose - 基本使用

一、概念 1.1 Compose优势 由一个个可以组合的Composable函数拼成界面&#xff0c;方便维护和复用。布局模型不允许多次测量&#xff0c;提升了性能。Compose可以和View互操作&#xff08;相互包含对方&#xff09;。 1.2 声明式UI APP展示的数据绝大多数不是静态数据而是会…

[论文分享]TSPTM-survey:时间序列预训练模型研究综述

目录 1 概要 1.1 贡献点 2 背景 2.1 时序挖掘(TSM)任务 2.2 时间序列的深度学习模型 2.3 预训练模型优势 3 TS-PTMS 概述 3.1 监督预训练 3.1.1 基于分类的预训练 3.1.1.1 通用编码器 3.1.1.2 对齐编码器 3.1.1.3 模型重编程 3.1.1.4 总结 3.1.2 基于预测的预训练…

MySQL数据库中间件Mycat介绍及下载安装(教程)

一&#xff0c;介绍 MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat&#xff0c;对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可&#xff0c;而具体底层用到几台数据库&#xff0c;每一台数据库服务器…

Linux TCP协议

传输层的协议主要有三个&#xff1a;TCP协议&#xff08;可靠&#xff09;、UDP协议&#xff08;不可靠&#xff09;和SCPT协议&#xff08;不可靠&#xff09;。 一、TCP协议的概念 TCP协议也称传输控制协议&#xff0c;是一种可靠的、面向连接的、基于字节流的传输层通信协…

缓存最佳实践

目录 前言 一、Cache Aside&#xff08;旁路缓存&#xff09;策略 二、不一致解决场景及解决方案 一、数据库主从不一致 二、缓存与数据库不一致 三、问题分析 三、缓存误用 一、多服务共用缓存实例 二、调用方缓存数据 三、缓存作为服务与服务之间传递数据的媒介 四…

二叉搜索树-----红黑树

✅<1>主页&#xff1a;我的代码爱吃辣&#x1f4c3;<2>知识讲解&#xff1a;数据结构——红黑树☂️<3>开发环境&#xff1a;Visual Studio 2022&#x1f4ac;<4>前言&#xff1a;红黑树也是一颗二叉搜索树&#xff0c;其作为map&#xff0c;set的底层…

[PyTorch][chapter 51][Auto-Encoder -1]

目录&#xff1a; 简介 损失函数 自动编码器的类型 一 AutoEncoder 简介&#xff1a; 自动编码器是一种神经网络&#xff0c;用于无监督学习任务.(没有标签或标记数据), 例如降维,特征提取和数据压缩. 主要任务&#xff1a; 1&#xff1a; 输入数据 …

功能强大的网站检测工具Web-Check

什么是 Web-Check &#xff1f; Web-Check是一款功能强大的一体化工具&#xff0c;用于查找有关网站/主机的信息。目前仪表版上可以显示&#xff1a;IP 信息、SSL 信息、DNS 记录、cookie、请求头、域信息、搜索爬虫规则、页面地图、服务器位置、开放端口、跟踪路由、DNS 安全扩…

设计模式之抽象工厂

文章目录 一、介绍二、基本组件三、演示案例1. 定义抽象工厂2. 定义抽象产品3. 定义具体工厂4. 定义具体产品5. 代码演示6. 代码改造 四、总结 一、介绍 抽象工厂模式(Abstract Factory Pattern)属于创建型设计模式。用于解决比工厂方法设计模式更加复杂的问题。 复杂到哪里了…

3.Redis 单线程模型

redis 单线程模型 redis 只使用一个线程来处理所有的命令请求&#xff0c;并不是说一个 redis 服务器进程内部真的就只有一个线程&#xff0c;其实也有多个线程&#xff0c;多个线程是再处理网络 IO。 那么在多线程中&#xff0c;针对类似于这样的场景两个线程尝试同时对一个…

【JVM 内存结构丨栈】

栈 -- 虚拟机栈 简介定义压栈出栈局部变量表操作数栈方法调用特点作用 本地方法栈&#xff08;C栈&#xff09;定义栈帧变化作用对比 主页传送门&#xff1a;&#x1f4c0; 传送 简介 栈是用于执行线程的内存区域&#xff0c;它包括局部变量和操作数栈。 Java 虚拟机栈会为每…