WAF的介绍

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

image-20211013192504092

WAF的工作原理

WAF的处理流程大致可分为四部分:预处理、规则检测、处理模块、日志记录。

预处理

预处理阶段首先在接收到数据请求流量时会先判断是否为HTTP/HTTPS请求,之后会查看此URL请求是否在白名单之内,如果该URL请求在白名单列表里,直接交给后端Web服务器进行响应处理,对于不在白名单之内的对数据包解析后进入到规则检测部分。

规则检测

每一种WAF产品都有自己独特的检测规则体系,解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为。

处理模块

针对不同的检测结果,处理模块会做出不同的安全防御动作,如果符合规则则交给后端Web服务器进行响应处理,对于不符合规则的请求会执行相关的阻断、记录、告警处理。

日志模块

WAF在处理的过程中也会将拦截处理的日志记录下来,方便用户在后续中可以进行日志查看分析。

WAF的防御思想

攻击的特点

  • 攻击二象性:已知攻击与未知攻击
  • 攻击的两个维度:形式与漏洞

核心原理

  • 运用‘黑’、‘白’思想
  • 特征匹配、漏洞签名
  • 对匹配结果进行响应(拦截、记录)

WAF的分类

云WAF

优点

  • 快速部署、零维护、低成本:无需安装任何软件或者部署任何硬件设备,只需修改DNS即可将网站部署到云WAF的防护范围之内。对中小型企业的网络管理员和个人站长有很大吸引力。
  • 用户无需更新:云WAF的防护规则都处于云端,新漏洞爆发时,由云端负责规则的更新和维护,用户无需担心因为疏忽导致受到新型的漏洞攻击。
  • 可充当CDN:云WAF在提供防护功能的同时,还同时具有CDN的功能,在进行防护的同时还可以提高网站访问的速率,CDN通过跨运营商的多线智能解析调度将静态资源动态负载到全国的云节点,用户访问某个资源时会被引导至最近的云端节点从而提高访问速度。

缺点

  • 存在轻易被绕过的风险:云WAF的主要实现原理是通过将用户的DNS解析到云节点实现防护,这样一来,如果黑客通过相关手段获取了服务器的真实IP地址,然后强制解析域名,就可以轻松绕过云WAF对服务器发起攻击。
  • 可靠性低:云WAF处理一次请求,其中需要经过DNS解析、请求调度、流量过滤等环节,其中涉及协同关联工作,其中只要有一个环节出现问题,就会导致网站无法访问。必要时,只能手动切换为原DNS来保证业务正常运行,而域名解析需要一定时间,则会导致网站短时间无法正常访问。
  • 保密性低:网站访问数据对于一些企业、机构来说为保密数据,里面可能包含用户的隐私或者商业信息,这些数据自行管控会相对安全,但是如果使用WAF,所有的数据会记录到云端,这相当于数据被别人保管,可能存在一定的泄露风险。

主流产品:阿里云盾、cloudflare、百度云加速、腾讯云安全、深信服云WAF、创宇盾、加速乐、安全宝

软件WAF

优点

  • 安装简单、使用方便、成本低:采用纯软件的方式实现

缺点

  • 安全性和可靠性低:软件WAF必须安装Web应用服务器上,所以,除了性能受到限制,还可能存在兼容性、安全性不足及升级成本较高等问题。

主流产品:网站安全狗、云锁、D盾、宝塔面板、ModSecurity、Naxsi、360网站卫士、360webscan

硬件WAF

优点

  • 可承受较高的吞吐量。
  • 性能好、功能全、支持多种部署方式
  • 即插即用:由于硬件防部署简易,硬件WAF只需串联到网络中,进行简单的配置后即可实现Web安全防护。
  • 防护范围大:由于硬件防火墙直接串联到了交换机,所以在同一个交换机下的所有服务器,都处于防火墙的防护范围之类。

缺点

  • 价格昂贵,动辄几十万。
  • 存在一定误杀:由于硬件WAF是通过攻击规则库对异常流量进行识别,所以在业务系统复杂的情况下,可能存在一定误杀导致正常功能被防火墙拦截导致影响正常业务。
  • 存在一定绕过机率:硬件防火墙对HTTP协议进行自行解析,可能存在与Web服务器对HTTP请求的理解不一致从而导致被绕过。

主流厂商:启明星辰、安恒、绿盟、天融信、飞塔

自定义WAF

我们在平时的渗透测试中,更多情况下会遇到的是网站开发人员自己写的防护规则。网站开发人员为了网站的安全,会在可能遭受攻击的地方增加一些安全防护代码,比如过滤敏感字符,对潜在的威胁的字符进行编码、转义等。

WAF的部署模式

基于DNS解析的云WAF

修改DNS,让域名解析到反向代理服务器。所有流量经过反向代理进行检测,检测无问题之后再转发给后端的Web服务器。

image-20211013200415493

串联模式

硬件防护设备串在网络链路中,所有的流量经过核心交换机引流到防护设备中,在防护设备中对请求进行检测,合法的请求会把流量发送给Web服务器。当发现攻击行为时,会阻断该请求,后端Web服务器无感知到任何请求。

反向代理模式

WAF作为反向代理服务器向后端服务器转发收到的HTTP请求,在转发的同时会对经过的HTTP请求做攻击检测。

但该模式会改变现有网络结构,用户真实IP会以HTTP Header传递给后端web服务器,需要提前配置好域名与目的服务器的转发规则,在站点和后端Web服务器较多的情况下,转发规则等配置较复杂。

image-20211013204206923

透明代理模式

WAF将客户端与web服务器之间TCP连接监控下来。在用户无感知的情况下代理了WEB客户端和服务器之间的会话,并基于桥模式进行转发。从WEB客户端的角度看,WEB客户端仍然是直接访问服务器。

从WAF工作转发原理看和透明网桥转发一样,因而称之为透明代理模式。该方式的特点是:对网络的改动最小,可以实现零配置部署。

image-20211013204502126

旁路模式

利用交换机的端口镜像功能,将业务流量转发一份给WAF,WAF只对业务流量进行监控和报警,不进行拦截阻断。对于WAF而言,流量只进不出。

该模式的特点是:在WAF出故障的情况下,不影响业务连续性。但是需要联动其他设备(如出口防火墙)来下发阻断策略。

image-20211013204644602

软件嵌入中间件 + 检测引擎模式

image-20211013204950399

WAF绕过的实现

WAF为什么会被绕过?

  • 鱼(安全)与 熊掌(业务性能)不可兼得
  • WAF为了考虑通用性的问题,无法100%覆盖某些语言、中间件、数据库的特性;
  • 硬件WAF自身往往存在漏洞

WAF绕过的角度

  • 资源限制 ———————(如通过超大数据包绕过WAF)
  • 架构 ———————(如通过DNS解析等寻找真实IP来绕过云WAF)
  • 规则缺陷/特性 ———————(如利用正则匹配缺陷、数据库特性、中间件特性等绕过WAF)
  • 协议 ———————(如针对HTTP_0.9版本下TCP长链接情况下的绕过)

之后的WAF Bypass也会从这几个角度分析,绕过各种WAF。

不同WAF拦截告警页面

不同的WAF产品会自定义不同的拦截警告页面,在日常渗透中我们也可以根据不同的拦截页面来辨别出网站使用了哪款WAF产品,从而有目的性的进行WAF绕过。

安全狗

旧版

image-20211013231932526

新版

image-20211013231857602

D盾

image-20211013232137219

西数WTS-WAF

img

云锁

img

宝塔网站防火墙

image-20211013232423393

安全宝

image-20211013234028253

护卫神

img

UPUPW

img

阿里云盾

img

CloudFlare

image-20211013232237378

创宇盾

img

玄武盾

image-20211013233123284

蓝盾

image-20211013234111708

DuEdge百度边缘网络计算

image-20211013233354082

腾讯云

img

百度云

img

华为云

img

360webscan

img

360安域

image-20211013234002168

参考资料