雷池 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 无法使用。