雷池 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. 使用 setResponseStatus 函数设置响应状态码

    title: 使用 setResponseStatus 函数设置响应状态码 date: 2024/8/25 updated: 2024/8/25 author: cmdragon excerpt: 通 ...

  2. macOS 磁盘设备文件命名规则

    macOS 系统使用不同于 Linux 的磁盘设备命名规则.在 macOS 中,磁盘设备和分区被命名并通过 /dev 目录访问,类似于 Linux 和 UNIX 系统.但是,macOS的命名规则遵循特 ...

  3. 《linux实用指令积累》持续更新。。。

    一.远程服务器文件拷贝 1.1.scp scp /home/a.txt root@127.0.0.1:/home/ 1.2.sshpass(适用于脚本调用,直接指定密码) 1.2.1.安装sshpas ...

  4. 上架难、买量贵?即构 Web 端 1v1 方案全力加速泛娱乐出海

    1v1 视频社交以其功能简洁.互动性强.匹配效率高等特点,在陌生人社交玩法中饱受用户欢迎,平台仅需让两个用户通过匹配.选择等形式连通后,用户即可在房内进行 1v1 视频社交,且在社交的同时又极具私密性 ...

  5. 技术教程 —— 如何利用 SEI 实现音画同步?

    ​  摘要:利用 SEI 解决数据流录制回放过程中的音画不同步问题. 文|即构 Web SDK 开发团队 今年 6 月, ZEGO 即构科技推出了行业内首套数据流录制 PaaS 方案,打破传统录制服务 ...

  6. DTO转VO工具

    data工具,实现了对象拷贝 DTO -> VO 只需要实现一个类即可 data-utils data工具,实现了对象拷贝DTO -> VO 解决的问题 Mapstruct需要安插件!!! ...

  7. flink 大批量任务提交 yarn 失败问题

    问题现象 用户迁移到新集群后,反馈他们开发平台大量 flink 任务提交失败了,当时集群的 yarn 资源是足够的 排查过程 用户是在他们的开发平台上提交的,查看他们失败的任务,发现是他们提交端主动 ...

  8. ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发

    上一篇我们分析了argo-workflow 中的 archive,包括 流水线GC.流水线归档.日志归档等功能.本篇主要分析 Workflow 中的几种触发方式,包括手动触发.定时触发.Event 事 ...

  9. Response状态码

    1.数据是否正常 2.文件是否存在 3.地址自动跳转 4.服务提供错误 注:容错处理识别 •-1xx:指示信息-表示请求已接收,继续处理. •-2xx:成功-表示请求已经被成功接收.理解.接受. •- ...

  10. 【赵渝强老师】MongoDB管理用户的认证机制

    一.MongoDB用户认证机制简介 为了认证客户端,你必须要添加一个对应的用户到MongoDB.基本的步骤分为以下几步: 用户管理接口:db.createUser()方法可以创建一个用户,添加完成后可 ...