背景
在所有服务都部署在云服务器的情况,企业在寻求一WAF防护方案,包括前期一些列商用、开源waf试用部署回退等操作,最后终于在雷池waf上得到了不影响业务的比较好的适配性。(肯定还有其他可行性方案,但是开源+适配,所有没有横向再对比的必要)
雷池一些简单介绍
个人理解,雷池WAF和一般的成熟商用的WAF如安恒、奇安信这类厂商的产品肯定是有区别的,后者这类WAF一般都是一套成熟的网站流量安全解决方案,而雷池WAF更像是台式电脑的CPU,他给你核心的算力,核心的实现,但是整体方案搭起来如何,完全看玩家个人手法。
规则
WAF的核心安全拦截率,肯定是基于规则,雷池的规则目前到社区版4.2.0,是在包含所有通用漏洞特征的前提,再逐步添加详细的漏洞规则,也就是对具体cve、exp的识别(听说后面可以自定义规则)。这在安全架构在初步搭建的场景,肯定是够用了。
黑名单
通用防护模块
具体到漏洞cve的检测(不全)
使用上的不便
因为是开源WAF,且仍在逐步迭代优化的过程,所以如果其他商用waf可以在waf前端运营界面进行一系列的安全操作,那雷池很多都是没有的。
1,有安全感知,但是无安全告警。在操作界面能看到全部触发规则的事件,更敏感的操作会拦截,普通的规则触发是观察状态(严格程度可以自己选择),但这些都只有在登陆雷池管理端才能看到,不登不看就是无事发生。
2,无汇总/分析的能力,类似报表视图都没有。只有简单的一个如下主页整体图表
3,很多你想要的数据,这台雷池waf都有,但是在前端你看不到(可以抓包或者查找数据库里的表)。简单举例:防护站点可自定义配置网站域名以及名称,域名可以批量添加,这就能解决假如一些列站点对应同一个A系统,你就可以建一个A系统,将域名全部添加上去,右上角有攻击量汇总;本是不错的功能,存在的问题在于:批量添加了域名后,点开看详细各域名路径的请求拦截数据,没有对域名进行分类,也就是你无论你添加多少网站,但是内部请求的根级路径就是路径,看不到是哪个域名的路径。但其实url-路径-请求/拦截量,在数据包里都有,以json的格式传输,只是没写这个前端功能。
4、在安全事件查看的功能点,没办法自动对ip,被攻击域名或者攻击类型进行聚合,只能借助搜索框,自行敲入你想要看的ip的全部安全事件,当然时间可以自定义。
开源解决方案
这篇帖子也不主要细谈雷池,前面提到了一些使用上的不便,但也说了雷池作为一个waf,我个人更认为它是开源网站流量安全防护方案的核心cpu。所以在有了核心cpu的情况下,所有不便以及我们想要拥有的功能,都需要自己另外搭建,这点不用担心,雷池的适配和兼容极高。
所以基于此,我简单介绍一下我们尝试的解决方案
首先,基于安全事件聚合汇总的思路,我们需要一个siem,借助如下的ELK技术架构,我们可以实现基于雷池waf的一个简单的SIEM
其次,基于这套体系,我们可以用elastalert或者其他工具,来对汇聚到es上的所有安全事件进行一个告警配置。(再往下,构建一个开源soc也不是不行)。
定义好rule之后,对一些高频高危的事件进行二次检测,符合规则则产生告警。这里我们用的企业微信机器人接口来实现自动通知:
最后
本文只是浅谈,并没有详细介绍使用体验和基于雷池的siem、告警、汇总分析的落地实现。给出了一个粗略的架构思路只为抛砖引路,如果有其他好的点子欢迎交流。个人认为雷池waf可玩性很高。