盘点 2023 十大免费开源 WAF

news2024/9/22 11:38:30

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.coloradmin.cn/o/931756.html

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

相关文章

快速了解;Mybatis-Plus

一、Mybatis-Plus介绍 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高 效率而生。 官网:https://mybatis.plus/ 或 https://mp.baomidou.com/ 文档地址&…

arm体系结构:汇编指令

前言 本文主要介绍ARM RISC 32位体系结构下的相关知识,主要理解寄存器和相关指令,主要读懂汇编。ARM汇编指令集汇总 指令集介绍 ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄…

科大讯飞笔试编程第二题(处理Scanner不能先输入数字再输入字符串问题)

问题: 在使用scanner的时候如果先读取一个数字,在读取一行带有空格的字符串,势必会出错或者字符串读不到 public static void main(String[] args) {Scanner scanner new Scanner(System.in);int x scanner.nextInt();String s scanner.n…

RabbitMQ-常用命令

RabbitMQ常用命令 3.1 启动停止rabbitMQ命令 # 前台启动Erlang VM 和 RabbitMQ 当窗口关闭或者ctrlc时,使退出了。 rabbitmq-server# 使用系统命令启动 systemctl start rabbitmq-server# 后台启动 rabbitmq-server -detached# 停止rabbitMQ和Erlang VM rabbitmq-…

锁的相关策略

乐观锁vs悲观锁 指的不是具体的锁,是一个抽象的概念,描述的是锁的特性,描述的是一类锁 乐观锁 假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,就让返回用户错误的信息,让用户决定如何去做.(…

3dsMax软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 3dsMax是一款由Autodesk公司开发的著名的三维计算机图形软件,广泛应用于动画、游戏、建筑和产品设计等领域。它以强大的建模、动画、渲染和特效功能而闻名,为用户提供了一个完整的制作流程,从…

Java设计模式-职责链模式

1 概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同…

【JVM 内存结构丨栈】

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

Python 支付宝红包二维码制作步骤分享

<table><tr><td bgcolororange>本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰&#xff0c;更不会影响计算机信息系统的正常运行。不得将代码用于非法用途&#xff0c;如侵立删&#xff01; 支付宝红包二维码制作…

三方接口调用设计方案

在为第三方系统提供接口的时候&#xff0c;肯定要考虑接口数据的安全问题&#xff0c;比如数据是否被篡改&#xff0c;数据是否已经过时&#xff0c;数据是否可以重复提交等问题 在设计三方接口调用的方案时&#xff0c;需要考虑到安全性和可用性。以下是一种设计方案的概述&a…

go语言中的切片

切片底层 切片&#xff08;Slice&#xff09;是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活&#xff0c;支持自动扩容。 切片是一个引用类型&#xff0c;它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。 切片…

eclipse中怎么将空白字符显示出来、各种空白字符显示出来是什么样子

空白字符如space、Tab、Ideographic sapce&#xff08;表意空格&#xff0c;就是表意文字中使用的全角空格&#xff09;、回车、换行。 编程规范一般都会要求不用Tab。如果代码中哪个地方用了&#xff0c;但肉眼又看不出来&#xff0c;可以将空白字符暂时显示出来看看。 通过…

知虾shopee数据分析工具:shopee运营选品助手

在如今竞争激烈的电商领域&#xff0c;Shopee商家为了在市场中脱颖而出&#xff0c;必须精准地选品和定价&#xff0c;以满足消费者需求并提升销售。而知虾Shopee数据分析工具作为一款强大的商业助手&#xff0c;为商家提供了丰富的数据分析功能&#xff0c;从而帮助他们更好地…

3.Redis 单线程模型

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

Oracle数据库快速入门

前言&#xff1a; 我想现在很多人的入门数据库都是mysql&#xff0c;但是由于工作中会接触到Oracle数据库&#xff0c;如果你有MySQL的基础的话&#xff0c;这篇文章能让你很快掌握Oracle。 目录 1.体系结构 2.创建用户和表空间 2.1.创建表空间 2.2.创建用户 3.数据类型…

Python | assert关键字

Python断言assert是帮助代码流畅的调试工具。断言主要是假设程序员知道或总是希望是真的&#xff0c;因此将它们放在代码中&#xff0c;这样这些失败不会允许代码进一步执行。 简单地说&#xff0c;断言是一个布尔表达式&#xff0c;用来检查语句是True还是False。如果语句为T…

java八股文面试[多线程]——线程的生命周期

笔试题&#xff1a;画出线程的生命周期&#xff0c;各个状态的转换。 5.等待队列(本是Object里的方法&#xff0c;但影响了线程) 调用obj的wait(), notify()方法前&#xff0c;必须获得obj锁&#xff0c;也就是必须写在synchronized(obj) 代码段内。与等待队列相关的步骤和图 …

AI绘画StableDiffusion实操教程:斗破苍穹-小医仙

之前分享过StableDiffusion的入门到精通教程&#xff1a;AI绘画&#xff1a;Stable Diffusion 终极炼丹宝典&#xff1a;从入门到精通 但是还有人就问&#xff1a;安装是安装好了&#xff0c;可是为什么生成的图片和你生成的图片差距那么远呢&#xff1f; 怎么真实感和质感一…

小研究 - Java虚拟机内存管理(四)

Java 语言的面向对象&#xff0c;平台无关&#xff0c;安全&#xff0c;开发效率高等特点&#xff0c;使其在许多领域中得到了越来越广泛的应用。但是由于Java程序由于自身的局限性&#xff0c;使其无法应用于实时领域。由于垃圾收集器运行时将中断Java程序的运行&#xff0c;其…

电机控制::控制技术与控制要求

功能要求性能要求基本FOC基础控制&#xff08;刚性调参&#xff09;稳、准、快系统性能优化先进控制方案&#xff1a; 精准建模惯量辨识&#xff08;机械参数辨识&#xff1a;辨识 or 观测&#xff09;先进控制方案&#xff08;算法环节&#xff09;SMC、ADRC、自适应、扰动观测…