WAF绕过的捷径与方法
副标题[/!--empirenews.page--]
在企业架构中,安全体系同剥洋葱一般,由外及内是由一层层的安全产品和规范构成,越处于外层承重越大,WAF 属七层防护的第一道墙,随着互联网技术发展,业务对外提供服务的方式逐渐收拢,Web 接口与应用垄断流量,WAF成了安全战场中被炮火攻击最惨烈的前线。 一、痼疾 虽然WAF 属于较成熟的安全产品,但不同公司,不同场景都可能衍生出不同的部署方式,一个关键原因就是安全、效率、成本的不可能三角,互联网公司中,效率代表产品的易用性和响应时间,往往很难有较大牺牲,成本和安全的组合形式决定了安全产品架构的不同,即便在倾向选择中安全成为首位,WAF 产品本身也有痼疾:HTTP 协议和业务场景的复杂性导致很难有统一的策略规范,加之 WAF 抽离于业务代码逻辑以外,这些耦合上的瑕疵很容易成为绕过 WAF 防护的突破口。 再者,不管是基于正则匹配还是机器学习,考量 WAF 的指标永远是相互矛盾的:误报率,漏报率。在安全和效率(业务)的博弈中,没有完美,只有适配,这也就决定了 WAF 的定位。 二、WAF 绕过 WAF 的痼疾在越来越复杂的系统对接中存在耦合缺漏,不同类型的漏洞,在 WAF 的 Bypass 测试中关注点自然也不同,本文尝试找寻一些规则对抗以外的捷径进行 bypass,通过以下几个维度进行尝试:
1. 架构层面 在千奇百怪的 WAF 架构中,始终脱胎换骨于两种基础的架构:串联和旁路。 (1) 串联 串联 WAF 一般权重较高,对攻击的请求和会话有优先于业务的一票否决权,是最为常见的 WAF 架构方式,不过串联接入业务意味着 WAF 系统会捆绑、分担业务指标,在日益追求高响应的复杂链路中强行增加了一个单点故障隐患,那考核运维健壮性的指标(可用性、响应耗时和故障率等)将是悬置 WAF 头顶的达摩克利斯之剑。 串联 WAF 根据产品形态又有多种变形,常见的区分方式看设备部署位置。 传统的硬件盒子设备一般放置在网关入口后,业务中间件之前,串联部署方式有透明模式、反向代理模式等,其前置于中间件,意味着 WAF 需预留很大一部分性能来处理 HTTP 拆解和封装的工作,尤其是当下 HTTPS 已成为普遍场景,设备处理性能急剧下降,使得此类架构的成本投入极大。 (2) 透明连接模式: (3) 反向代理模式: 当下云厂商最常用修改域名 CNAME 做多维安全防护的架构同硬件类部署方式在应用场景视角是一致的,不过云厂商的设备和网络资源丰富,人才资源配备到位,又有大厂品牌背书,只要有足够的用户均摊成本,这种架构算在成本、效率、安全不可能三角中属协调最优的解决方案。 (4) CNAME 架构: 对于此类前置串联架构的 ByPass 测试需找寻 WAF 与中间件、后端业务间的耦合性缺漏,比如:
SSL Bypass
还有另一类串联的部署方式,即 WAF 设备位置后移,嵌套到中间件上,这样 WAF 的损耗将分摊到业务机器,这样的捆绑意味着一荣俱荣,一损皆损,又因位置后移到了业务侧,策略下发和管理都极其复杂,且中间件种类繁多,规模一大,这种架构堪称灾难,而随着业务架构的逐渐优化,一般的互联网业务架构会前置越来越轻的转发层,将 WAF 嵌到转发层,或在转发层通过 openresty 等方式将请求过一遍旁挂的 WAF 集群,这属对业务链路侵入最轻的一种方式,很多互联网公司自建的 WAF 采用该架构。 (5) 中间件部署: (6) OpenResty 部署: 对于此类嵌套于中间件的 WAF 架构测试需针对 WAF 模块的系统耗能和超时为切入点,当中间件或 WAF 模块达到一定的性能损耗指标,一般 WAF 系统会预留类似硬件设备断电 bypass 的功能来保障业务可用性的强指标,通过这种途径即可突破 WAF,比如:
使策略检测超时,单条会话跳过 WAF 集群响应,直接通联后端业务。 (7) 旁路 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |