最新情报 2024免费开源 WAF
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
近几年经济增速开始放缓,科技企业的成本意识有所增强,安全支出更加理性,这使得国内的开源安全项目得到了一定发展,从 github waf 相关 topic 的活跃度来看,排名靠前的国产项目超过了海外项目。
在互联网上公开能找到资料的 WAF 项目少说也有几千个,但其中绝大部分偏实验 Demo 的性质,工程性不足,缺少部署案例,没有经历过大规模流量的验证,实际能称得上产品的项目不到百分之一。翻阅了大量资料,对这几十款 WAF 产品进行实际部署测试后,我选取了其中十个具有代表意义的项目,下文将逐一进行介绍。
评价 WAF 的常用指标
作为网站管理员,应该如何选择一款适合自己的 WAF,以下是几个最常关注的指标
- 防护效果:主要是两个维度,能不能防住攻击,会不会影响普通用户
- 技术先进性:防护引擎的技术竞争力,是否具备对抗高级攻击的能力
- 项目质量:本文将以功能完整性、开源代码质量、文档完整性等角度作为评价依据
- 社区认可度:反映了项目在用户社区中的声誉和影响力,本文将以 GitHub Star 数作为评价依据
- 社区活跃度:是潜力的体现,活跃度越高发展越快,本文将以社区用户的参与度和作者维护项目的积极性作为评价依据
项目清单
先来看综合评分表
项目名称 | 开发者 | 综合评分 |
---|---|---|
ModSecurity | SpiderLabs | |
雷池社区版 | 长亭科技 | |
coraza | coraza | |
南墙 | 友安科技 | |
JANUSEC | JANUSEC | |
VeryNginx | loveshell | |
httpwaf | 闲人 | |
锦衣盾 | jx-sec | |
NGX_WAF | ADD-SP | |
NAXSI | NBS SYSTEM |
ModSecurity
主页:https://www.modsecurity.org/
ModSecurity 是老牌开源 WAF 引擎,使用群体广,早年只适用于 Apache,在 2.X 重构后目前也可以支持 IIS 和 Nginx。作为 WAF 引擎,相比一体化的 WAF 项目,需要二次开发才能试用,对使用者来说成本略高。ModSecurity 被不少其他开源 WAF 作为核心引擎所集成,在开源社区认可度高,实际防护以正则规则为主,覆盖相对全面,但容易被绕过,前段时间被母公司抛弃了,未来是否会继续维护下去暂未可知。
- 防护效果:基础检测效果不错,但是规则对国内的环境不友好,容易误报
- 技术先进性:虽然没有高级对抗能力,但在技术圈认可度高,被众多开源项目集成,生态即技术壁垒
- 项目质量:无控制台,项目完全开源,文档丰富
- 社区认可度:6400 star,是目前全球 star 数最高的 WAF 项目
- 社区活跃度:持续有更新,近一年更新过 3 个版本
雷池社区版
雷池社区版是长亭科技根据企业版雷池 Web 应用防护系统提炼而来,核心检测能力由长亭首创的智能语义分析算法驱动。项目开源了语义分析算法的核心引擎和相关安全插件,控制台未开源。优点在于防护效果好,项目迭代快,界面清爽好用,缺点在于社区版相比企业版功能较少,但能满足 WAF 的基本需求。
- 防护效果:对通用漏洞和非通用漏洞的防护效果都不错,误报少
- 技术先进性:核心技术是语义分析算法,相比正则规则的可对抗性更高、性能更好
- 项目质量:具备 WAF 各项基础能力,项目未完全开源,文档相对完善
- 社区认可度:12000 star,装机量 280000+
- 社区活跃度:持续有更新,近一年更新过 100 个版本
Coraza
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 个版本
南墙
南墙 WEB 应用防火墙(简称:uuWAF)是有安科技推出的一款全方位网站防护产品。通过有安科技专有的WEB入侵异常检测等技术,结合有安科技团队多年应用安全的攻防理论和应急响应实践经验积累的基础上自主研发而成,缺点在于不能升级,有新版本要铲掉重装。
- 防护效果:对 SQL、XSS、RCE、LFI 这四种攻击检测效果不错,缺少对于非通用漏洞的防护规则
- 技术先进性:具备基础的语义检测能力,支持通过机器学习对流量建模
- 项目质量:具备 WAF 各项基础能力,项目不开源,文档相对完善
- 社区认可度:198 Star
- 社区活跃度:迭代较快,近一年更新过 7 个版本
JANUSEC
JANUSEC 是一个开源的 Web 应用安全网关软件,优势在于功能丰富,同时具备负载均衡、WAF、身份认证、证书管理、堡垒机等功能,缺点是 WAF 的安全防护能力比较弱,只能防护一些简单的攻击,适合对安全防护要求不高的站长。
- 防护效果:WAF 防护功能比较弱,只有一些简单的正则规则
- 技术先进性:以正则表达式为主,无其他防护引擎,对抗高强度攻击的能力不足
- 项目质量:功能丰富,项目开源,文档丰富
- 社区认可度:1000 Star
- 社区活跃度:持续有更新,近一年更新过 4 个版本
HTTPWAF
主页:https://github.com/httpwaf/httpwaf2.0
HTTPWAF 官方号称是一款真正有 web 管理后台,并且永久免费的 web 应用防火墙,既支持直接部署在 WEB 服务器上,又可以独立部署保护后端服务器。在免费 WAF 界算是功能很丰富的项目,基础检测能力还可以,缺乏对抗高强度攻击的能力。作为免费产品,源码、文档、安装包均没有公开提供,要加微信获取。
- 防护效果:基础防护能力还可以,缺少对非通用漏洞的检测规则
- 技术先进性:资料很少,做不出判断
- 项目质量:功能丰富,交互还不错,但是代码和文档都没有开放
- 社区认可度:65 Star
- 社区活跃度:没有太多社区化的内容
锦衣盾
锦衣盾(JXWAF)是一款基于 OpenResty 开发的下一代 Web 应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统 WAF 无法对业务安全进行防护的痛点。
- 防护效果:基础防护能力较弱,对非通用漏洞的检测效果不太好,误报有点严重
- 技术先进性:规则简单,对抗高强度攻击的能力不足
- 项目质量:功能比较少,交互不太好用,项目开源,代码质量不高,文档基本完善
- 社区认可度:965 Star
- 社区活跃度:持续有更新,近一年更新过 1 个版本
最新情报 2024免费开源 WAF的更多相关文章
- PyCharm 3.0 发布,提供免费开源版本
PyCharm 发布最新的 3.0 版本,该版本新特性详见: http://www.jetbrains.com/pycharm/whatsnew/index.html 该版本最主要的是提供了免费开源的 ...
- 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享
起源 近年来随着国内的互联网经济的快速腾飞,诞生了很多开源软件创造的市场价值以及企业价值神话,特别是对于企业ERP领域,一直以来都是高昂的国内外产品充实,国内的中小成长型企业越来越需要一套好看又能打, ...
- 2025战略,中秋送福利!免费开源ERP Odoo Windows 一键傻瓜式安装版发布
概述 为了帮助更多的小白,能够快速的体验Odoo的强大功能,针对国内大多数小白用户无法快速直接体验Odoo的尴尬,开源智造呕心沥血,历经数百次的测试和整合终于赶在中秋节这天将Odoo所需要的复杂运行环 ...
- 全球排名第一的免费开源ERP Odoo 12产品发布会北京站开始报名
Odoo V12 产品(北京)发布会 暨企业数字化转型论坛 快速报名通道:http://odoochina.mikecrm.com/uG8nNu4 随着新版本Odoo 12的发布,开源智造(OSCG. ...
- Odoo免费开源企业信息化平台助力企业成功
企业信息化变革之路 信息孤岛的真实由来 打开百度App,看更多图片 左边为当下企业现状,右边为Odoo的整体 企业信息孤岛的严重性,来自于企业的自身高速发展,企业以销售为生命主题围绕着客户会搭建一系列 ...
- 开源WAF工具ModSecurity
0 前言 ModSecurity是一个开源的跨平台Web应用程序防火墙(WAF)引擎,用于Apache,IIS和Nginx,由Trustwave的SpiderLabs开发.作为WAF产品,ModSec ...
- 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib.在这个组件介绍系列中,只为简单的介绍组件的背景和简单的应用,读者在阅读时可以结合官 ...
- 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)
很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...
- 免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
在生活中有一种东西几乎已经快要成为我们的另一个电子”身份证“,那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) , ...
- Croppic – 免费开源的 jQuery 图片裁剪插件
Croppic 这款开源的 jQuery 图片裁剪插件能够满足网站开发人员各种不同的使用需要.只需要简单的上传图片,就可以实现你想要的图像缩放和裁剪功能.因为使用了 HTML5 FormData 对 ...
随机推荐
- 开发一个MutatingWebhook
介绍 Webhook就是一种HTTP回调,用于在某种情况下执行某些动作,Webhook不是K8S独有的,很多场景下都可以进行Webhook,比如在提交完代码后调用一个Webhook自动构建docker ...
- 移除 Parallels Access Sound 虚拟设备
在安装了 Parallels 之后,发现 Mac 没声音,打开声音设置一看音频输出设备被设为了 Parallels Access Sound.把输出设备调回 MacBook 扬声器就有声音了. 但是音 ...
- 探索一下 Enum 优化
探索一下 Enum 优化 SV.Enums主要是探索如何让 enum 更高效 其中涉及的优化手段并非完全自创 很多内容参考于以下项目 NetEscapades.EnumGenerators FastE ...
- NEWSTAR PWN WEEK1
ret2text 一个简单的栈溢出 栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变.这种问题是一种特定的缓冲区溢出漏洞,类似的还有 ...
- vue 报错 Component template should contain exactly one root element. If you are using v-if on multiple elements
vue 报错 Component template should contain exactly one root element. If you are using v-if on multiple ...
- Flask 从开发到部署
整理一下怎么开发flask程序应部署到生产环境中 1. 第一个flask 程序 myapp.py from flask import Flask app = Flask(__name__) @app. ...
- C++: 智能指针的自定义删除器 `Custom Deleter` 有什么用?
C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法.智能指针模板参数的第二个类型是删除器,一般是一个函数指针 ...
- c程序设计语言 by K&R(一)一些c语言基础知识
出自<c程序设计语言> by K&R: 一.导言 二.类型.运算符与表达式 三.控制流 1. 字符输入与输出 getchar() 和 putchar(),输入一个字符.输出一个字符 ...
- github代理加速
终端命令行 支持终端命令行 git clone , wget , curl 等工具下载.支持 raw.githubusercontent.com , gist.github.com , gist.gi ...
- 日志与追踪的完美融合:OpenTelemetry MDC 实践指南
前言 在前面两篇实战文章中: OpenTelemetry 实战:从零实现分布式链路追踪 OpenTelemetry 实战:从零实现应用指标监控 覆盖了可观测中的指标追踪和 metrics 监控,下面理 ...