雷池 WAF 简介

雷池 WAF,英文名 “SafeLine”,由长亭科技出品的一款 Web 应用防火墙,可以保护 Web 服务不受黑客攻击,早年就以 ”智能语义分析技术“ 闻名于安全行业。

雷池社区版是长亭基于原有技术打造的一款开源 WAF,主打简单易用,我猜的不错的话长亭应该是想借这种产品形态来占领中小企业的安全市场。目前从官网的数据来看累计装机量已经超过了 25 万台服务器,GitHub 也有 12.4K Star,在 GitHu

b WAF 榜单上已经是全球开源排名第一的 WAF。

雷池 WAF 社区版: waf-ce.chaitin.cn/

安装测试

安装方法很简单,只需要一条命令:

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

安装完成后管理控制台开在 9443 端口,直接访问,登录后就能看到雷池 WAF 的界面。雷池的界面风格我从 1.0 开始就比较喜欢,不像很多安全产品那种浓浓的年代感。

然后就是配置需要防护的网站。我在雷池后面挂了一个 DVWA 靶场,跑了个 AWVS 扫了一遍,确实该防的都能防住。(PS:如果这都防不住的话就不用出来做 WAF 了)

SQL 注入、XSS 之类的攻击防护功能就不介绍了,这是 WAF 的基础能力,长亭的语义分析技术在这个方向上本来就很有优势。

官方还给了一个 WAF 防护效果的指标图,参考对象是 ModSecurity 和 CloudFlare,一家是全球最出名的开源 WAF,另一家是全球最大的云 WAF 厂商。从指标来看,数据虽然不是 100%,但也算漂亮。(PS:好奇为什么不拿国内的 WAF 厂商做对比)

此外,官方还温馨的提供了测试样本和测试工具,不信任这个结果的话也可以自己做测试。

防扫描、防爬虫

7.0 版本我比较感兴趣的是防 Bot 能力,功能配置比较简单,有几个选项:

用什么方式对客户端发起验证

要不要对请求做重放校验

要不要对 HTML 文件动态加密

要不要对 JS 文件动态混淆

要不要对图片自动打水印

开启验证以后,访问被 WAF 保护的网站,会先看到下面这个界面,估计雷池是在本地跑了一些验证逻辑来探测浏览器的合法性。

验证通过以后页面再刷新就没有这个蓝色页面了,看来雷池做了缓存记录(这个还挺好的,不会影响用户体验)。

官方的功能介绍写的花里胡哨,实际感受了一下,这两个功能最大的用处就是防扫描、防爬虫。

雷池的防 Bot 的主要能力是人机验证和动态防护和请求防重放:

人机验证:互联网上有来自真人用户的流量,但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量,开启雷池的人机验证功能后真人用户会被放行,恶意爬虫将会被阻断。

动态防护:在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,对 HTML 和 JavaScript 代码进行动态加密,确保每次访问时这些代码都以随机且独特的形态呈现。

请求防重放:自动化工具通常会使用抓包、录制等方式记录 HTTP 请求,略加修改后对 HTTP 请求进行再次发送,从而进行 ID 遍历,越权扫描等攻击行为,雷池请求防重放功能可有效应对此类攻击。

这种防护方式对于对扫描器、爬虫这类自动化发包程序确实有起效,通过人机验证让客户端必须依赖浏览器,从而大大降低了发包的效率,再对 HTML 动态加密,让扫描器无法识别网页的真正内容,也就没法判断是否存在漏洞特征,最终通过防重放,让扫描器和爬虫记录的 Cookie 无法使用。

居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录的更多相关文章

  1. 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题

    问题是这样的,最近部署一个项目,发现每次访问首页的时候老是报如下的错误: org.springframework.web.util.NestedServletException: Handler pr ...

  2. 今天发现之前瑞乐做的登录和注册居然都是用的get请求,瞬间出了一身冷汗.

    今天发现之前瑞乐做的登录和注册居然都是用的get请求,瞬间出了一身冷汗. 然后迅速的让晓勇改成post请求了. 不然我觉得凡是有点抓包能力的人抓到我们登录和注册这么涉及安全的东西居然用的是get请求, ...

  3. DevExpress各大版本支持的VS版本和支持的.net版本图

    如下图所示,绿色Yes代表支持,红色No代表不支持.对于有些人觉得装了dev后,vs工具箱没有,一般都是以下两大问题:1.要么你的Dev的版本不支持你当前的VS版本,没有很正常.2.要么你的项目的.n ...

  4. pycharm(社区版2019.1版本)打开README.md文件卡死解决办法

    现象:pycharm(社区版2019.1版本)打开README.md文件卡死 解决办法: 将插件Markdown support前的勾选√去掉,保存修改后重启pycharm即可

  5. ubuntu1804自带的vim和vi都是用什么版本?

    之前搜索vim一些命令时,经常看到有人说ubuntu自带的vim是是vim.tiny的,功能不全. 什么需要先卸载,再重装,真的是这样吗? 我查了一下,vim的版本号 vim --version vi ...

  6. TS 基础及在 Vue 中的实践:TypeScript 都发布 5.0 版本啦,现在不学更待何时!

    大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端.跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营. 微软于3月16日发布了 TypeScript 5.0 版本 ...

  7. Swift基础之UIImageView(都是2.2版本)

    //设置全局变量,将下面的替换即可     //var myImgView = UIImageView();     //系统生成的viewDidLoad()方法     override func ...

  8. 本地和svn都删除文件导致版本不同的问题

    想要删除一个项目中的文件,同是要删除svn上的文件. 自己操作 1.直接右键删除了本地项目中的一个目录的模块 2.右键删除了库中svn中的这个目录 3.同步本地和svn上的代码 4.问题出现了,本地和 ...

  9. Linux查看系统基本信息,版本信息(最全版)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_31278903/article/d ...

  10. Azure SQL 数据库最新版本现已提供预览版

     Tiffany Wissner  数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...

随机推荐

  1. k8s获取集群内所有在使用镜像

    kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' ' ' | sort ...

  2. JavaScript设计模式样例七 —— 原型模式

    原型模式(Prototype Pattern) 定义:用于创建重复的对象,同时又能保证性能.目的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.场景:在运行期建立和删除原型. let ...

  3. CD、VCD、DVD、BD 傻傻分不清楚?

    CD 激光唱片(Compact Disk, CD),于 1982 年面世,最初用于存储数字音频.容量约 700 MB(80 分钟音频). 激光唱片 | 维基百科 VCD 影音光盘(Video Comp ...

  4. Dockerfile介绍及常用保留指令

    从本文开始,咱们将介绍docker的另外一个技术点:dockerfile.我们来看看DockerFile相关的知识点,我们将怎么学习? 1:DockerFile是什么? 2:DockerFile构建过 ...

  5. C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  6. Serilog文档翻译系列(五) - 编写日志事件

    日志事件通过 Log 静态类或 ILogger 接口上的方法写入接收器.下面的示例将使用 Log 以便语法简洁,但下面显示的方法同样可用于接口. Log.Warning("Disk quot ...

  7. Windows远程设置''不可复制''的权限

    起因: 有一个技术部门的同事需要远程其他同学的电脑进行操作,但是不允许他复制目标电脑上的文件,避免造成资料外泄 解决办法: 组策略编辑器中,设置 计算机配置 -> 管理模板 -> wind ...

  8. ServiceMesh 2:控制面和数据面的职责(图文总结)

    ★ ServiceMesh系列 1 Service Mesh介绍 之前的章节我们详细介绍了ServiceMesh的基础知识. ServiceMesh 是最新一代的微服务架构,作为一个基础设施层,能够与 ...

  9. linux 内核中READ_ONCE宏定义

    在Linux内核编程中,READ_ONCE 宏用于确保从内存中读取一个变量的值时,编译器不会对这个读取操作进行优化,从而保证了读取操作的原子性.这个宏通常在需要防止编译器优化.多线程或中断上下文中使用 ...

  10. linux kernel 中tracing buffer

    Linux内核的tracing buffer是一种用于存储内核跟踪数据的特殊缓冲区.它用于记录内核中发生的事件和活动,以帮助开发人员进行性能分析和故障排查.该缓冲区可以在内核运行时启用,并且可以通过特 ...