加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

WAF绕过的捷径与方法

发布时间:2019-02-20 06:39:24 所属栏目:建站 来源:qiaoy
导读:在企业架构中,安全体系同剥洋葱一般,由外及内是由一层层的安全产品和规范构成,越处于外层承重越大,WAF 属七层防护的第一道墙,随着互联网技术发展,业务对外提供服务的方式逐渐收拢,Web 接口与应用垄断流量,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) 透明连接模式:

WAF绕过的捷径与方法

(3) 反向代理模式:

WAF绕过的捷径与方法

当下云厂商最常用修改域名 CNAME 做多维安全防护的架构同硬件类部署方式在应用场景视角是一致的,不过云厂商的设备和网络资源丰富,人才资源配备到位,又有大厂品牌背书,只要有足够的用户均摊成本,这种架构算在成本、效率、安全不可能三角中属协调最优的解决方案。

(4) CNAME 架构:

对于此类前置串联架构的 ByPass 测试需找寻 WAF 与中间件、后端业务间的耦合性缺漏,比如:

  • 在使用了 SSL 套接字的会话中,协商加密算法属请求方可控,WAF 和后端业务在算法支持上可能存在差异的一个切入点,遍历后端业务支持但 WAF 不支持的加密算法,便可直接绕过 WAF 了,相关工具见 Github:https://github.com/LandGrey/abuse-ssl-bypass-waf

SSL Bypass

  • 针对 CNAME 方式接入 WAF 的系统,能否绕过的关键在于后端的业务配置是否严谨,如果后端业务未限制访问源,很容易通过域名解析历史和 [ 大规模的扫描 ] 定位到真实的 IP 地址,修改本地 HOST 便可以绕过 WAF 直接对后端系统进行攻击;
  • WAF 与中间件的耦合缺漏在后续的中间件层面做详细讲解,此处不做赘述。

还有另一类串联的部署方式,即 WAF 设备位置后移,嵌套到中间件上,这样 WAF 的损耗将分摊到业务机器,这样的捆绑意味着一荣俱荣,一损皆损,又因位置后移到了业务侧,策略下发和管理都极其复杂,且中间件种类繁多,规模一大,这种架构堪称灾难,而随着业务架构的逐渐优化,一般的互联网业务架构会前置越来越轻的转发层,将 WAF 嵌到转发层,或在转发层通过 openresty 等方式将请求过一遍旁挂的 WAF 集群,这属对业务链路侵入最轻的一种方式,很多互联网公司自建的 WAF 采用该架构。

(5) 中间件部署:

(6) OpenResty 部署:

对于此类嵌套于中间件的 WAF 架构测试需针对 WAF 模块的系统耗能和超时为切入点,当中间件或 WAF 模块达到一定的性能损耗指标,一般 WAF 系统会预留类似硬件设备断电 bypass 的功能来保障业务可用性的强指标,通过这种途径即可突破 WAF,比如:

  • 针对中间件本身的漏洞(例如: CVE-2018-1336 )/配置错误来触发 DOS,当系统能耗达到阈值,自动关闭 WAF 模块;
  • 针对 WAF 系统的正则策略进行攻击,通过 ReDoS:https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS

使策略检测超时,单条会话跳过 WAF 集群响应,直接通联后端业务。

(7) 旁路

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读