WAF(Web应用层防火墙)了解学习

article/2025/9/15 20:12:57

WAF---Web应用层防火墙了解学习

  • WAF是什么
  • WAF预防的攻击类型
  • WAF部署方式
  • WAF安全模式
  • 开放Web应用安全项目(OWASP)
  • WAF和DDos
  • WAF测试
  • WAF和传统防火墙的区别
  • 总结


参考文档:

  • 安全文章相关
  • Web应用防火墙WAF简介

WAF是什么

WAF全称叫Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对web请求/响应进行防护。那么WAF有什么功能呢?

Web应用防火墙可以防止Web应用免受各种常见攻击,比如SQL注入,跨站脚本漏洞(XSS)等。WAF也能够监测并过滤掉某些可能让应用遭受DOS(拒绝服务)攻击的流量。WAF会在HTTP流量抵达应用服务器之前检测可疑访问,同时,它们也能防止从Web应用获取某些未经授权的数据。
在这里插入图片描述


WAF预防的攻击类型

开放Web应用安全项目(OWASP)所例举的攻击类型,都在WAF实施时考虑的范围内,其中几种比较常见的攻击类型如下:

1.1 跨站脚本漏洞(XSS)

攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入在Web页面里的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS大概分为两类:

  • 反射型攻击。恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击。
  • 存储型攻击。恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见的场景是在博客,论坛等社交网站上。

XSS攻击能够:

  • 获取用户Cookie,将用户Cookie发送回黑客服务器。
  • 获取用户的非公开数据,比如邮件、客户资料、联系人等。

1.2 SQL注入

通过在目标数据库执行可疑SQL代码,以达到控制Web应用数据库服务器或者获取非法数据的目的。SQL注入攻击可以用来未经授权访问用户的敏感数据,比如客户信息、个人数据、商业机密、知识产权等。

SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。比如查询?id=1,如果不对输入的id值1做检查,可以被注入?id=1 or 1=1从而得到所有数据。

SQL注入的产生原因通常表现在以下几方面:

  • 不当的类型处理。
  • 不安全的数据库配置。
  • 不合理的查询集处理。
  • 不当的错误处理。
  • 转义字符处理不合适。
  • 多个提交处理不当。

1.3 Cookie篡改

Cookie篡改是攻击者通过修改用户Cookie获得用户未授权信息,进而盗用身份的过程。攻击者可能使用此信息打开新账号或者获取用户已存在账号的访问权限。

很多Web应用都会使用Cookie保存用户的Session信息,当用户使用Cookie访问该应用时,Web应用能够识别用户身份,监控用户行为并提供个性化的服务。而如果Cookie的使用缺乏安全机制的话,也很容易被人篡改和盗用,并被攻击者用来获取用户的隐私信息。

1.4 未经验证的输入

Web应用往往会依据HTTP的输入来触发相应的执行逻辑。而攻击者则很容易对HTTP的任何部分做篡改,比如URL地址、URL请求参数、HTTP头、Cookies等,以达到攻破Web应用安全策略的目的。

1.5 第七层Dos攻击

我们将在下文中详细介绍WAF针对第七层(应用层)的Dos攻击防护。

1.6 网页信息检索(Web scraping)

通过一些工具来获取网页内容,并从中提炼出有用的网站数据信息。


WAF部署方式

WAF可以按照下面几种方式进行部署:

2.1 透明代理模式

WAF代理了WEB客户端和服务器之间的会话,并对客户端和server端都透明。从WEB客户端的角度看,WEB客户端仍然是直接访问服务器,感知不到WAF的存在。

这种部署模式的优点是对网络的改动最小,通过WAF的硬件Bypass功能在设备出现故障或者掉电时可以不影响原有网络流量,只是WAF自身功能失效。

缺点是网络的所有流量都经过WAF,对WAF的处理性能要求高。采用该工作模式无法实现负载均衡功能。

2.2 反向代理模式

反向代理模式是指将真实服务器的地址映射到反向代理服务器上,此时代理服务器对外就表现为一个真实服务器。当代理服务器收到HTTP的请求报文后,将该请求转发给其对应的真实服务器。后台服务器接收到请求后将响应先发送给WAF设备,由WAF设备再将应答发送给客户端。

这种部署模式需要对网络进行改动,配置相对复杂,除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实WEB服务器的地址和虚地址的映射关系。

优点则是可以在WAF上实现负载均衡。

2.3 路由代理模式

它与网桥透明代理的唯一区别就是该代理工作在路由转发模式而非网桥模式,其它工作原理都一样。由于工作在路由(网关)模式因此需要为WAF的转发接口配置IP地址以及路由。

这种部署模式需要对网络进行简单改动,要设置该设备内网口和外网口的IP地址以及对应的路由。工作在路由代理模式时,可以直接作为WEB服务器的网关,但是存在单点故障问题,同时也要负责转发所有的流量。该种工作模式也不支持服务器负载均衡功能。


WAF安全模式

WAF可以采用白名单和黑名单两种安全模式,也可以两者相结合。

在白名单安全模式下,所有不在名单中的请求类型都会被拒绝;而黑名单正好相反,只会拒绝在黑名单上的请求类型,其它通通放行。

对于新的、还不为开发人员所知晓的攻击类型,白名单可以很好地工作。

黑名单相对来说更容易实现,但问题是维护成本高,因为很多时候我们并不能够枚举所有的攻击类型。


开放Web应用安全项目(OWASP)

OWASP是一个开源的、非盈利的全球性安全组织,致力于Web应用的安全研究。其使命是使Web应用更加安全,使企业和组织能够对安全风险作出更清晰的决策。

OWASP曾经例举了10大常见攻击手段:

1)注入

攻击者把包含一段指令的数据发给应用,应用会当做指令执行。比如上面提到的SQL注入。

2)失效的身份认证和会话管理

应用程序没有能够提供正确的身份认证和会话管理功能,导致攻击者可以冒充他人身份。

3)跨站XSS

攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入Web页面里的Script代码会被执行,从而达到恶意攻击用户的目的。

4)不安全的对象直接引用

一个已经授权的用户通过更改访问时的一个参数,从而访问到原本其并没有得到授权的对象。比如修改URI里的购物车id参数访问他人的购物车。

5)伪造跨站请求(CSRF)

攻击者盗用了用户的身份,以合法用户的名义发送恶意请求。对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以用户的名义发送邮件、发消息。

假设站点A为存在CSRF漏洞的网站,站点B为攻击者构建的恶意网站,CSRF攻击示例如下:

  • 用户打开浏览器,访问站点A,输入用户名和密码登录A。
  • 登录成功后,站点A产生Cookie信息并返回给浏览器。
  • 与此同时,用户在同一浏览器中,打开一个TAB页访问站点B。
  • 站点B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问站点A。
  • 浏览器在接收到这些攻击性代码后,根据站点B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。站点A并不知道该请求其实是由B发起的,所以会根据用户的Cookie信息处理该请求,导致来自站点B的恶意代码被执行。

检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

6)安全配置问题

Web应用所在的服务器、平台、数据库、各种管理工具的配置或者账密泄露,导致相应设施暴露出安全风险。

比如:

  • 代码中存在账密信息,被反编译泄露。
  • 服务器上的目录列表未被禁用,导致攻击者可以找到服务器上的任何文件并下载。

7)限制URL访问失败

系统虽然明明对url的访问做了权限限制,但这种限制并没有生效。比如系统没有对用户的角色做检查,用户通过修改url能访问到其他用户或者管理员账户才能访问的url。

8)未验证的重定向和转发

先说下重定向和转发的区别。

  • 重定向(Redirect)。浏览器向服务器发送请求,服务器响应状态码302和新的location,浏览器发现状态码是302,会再向location发起一次http请求。所以浏览器发起了两次http请求,而且地址栏最后看到的也是新的location对应的url。
  • 转发(forward)。浏览器向服务器发送请求,服务器在内部完成转发路径的资源请求,并将请求结果返回给浏览器。浏览器只发起了一次http请求,而且地址栏看到的url地址没有改变。

对于重定向和转发来说,目的url请求中一般会带有参数,如果这些url参数未做验证,那么就很容易被攻击者利用。

9)使用已经被发现存在漏洞的组件

Web应用使用带有已知漏洞的组件,比如库文件、框架或者其它软件模块,可能会导致严重的安全问题。比如数据泄露、服务器被黑客接管等。

10)敏感信息暴露

用户敏感信息比如信用卡号、手机号、身份证号等数据,一旦被攻击者窃取或者篡改,会造成非常严重的后果。敏感数据需要特殊的保护,比如存储和传输过程中加密,以及在和浏览器进行交互时进行特殊的预防措施。

WAF以OWASP提出的各种安全隐患作为具体实施时需要考虑的准则。上面提到的这些安全问题,都在WAF的防范范围之内。


WAF和DDos

DDos的全称是Distributed Denial of service。主要依靠一组计算机来发起对一个单一的目标系统的请求,从而造成目标系统资源耗尽而拒绝正常的请求。

根据OSI的7层网络模型,网络可以从上到下分为:

  • 第七层:应用层,SMTP,HTTP,DNS等各种协议。
  • 第六层:表示层,信息的语法语义以及他们的关联,如加密解密,压缩解压缩。
  • 第五层:会话层,建立和维持连接,。
  • 第四层:传输层,TCP,UDP。
  • 第三层:网络层,IP和路由。
  • 第二层:数据链路层,MAC地址。
  • 第一层:物理层,基于光纤的信号。

img

从上图可以发现,数据的发送是从第七层发起,逐层往下传输,并最终回到第七层的。

根据OSI网络模型,最常见的DDos有三类,第三层(网络层)DDos、第四层(传输层)DDos和第七层(应用层)DDos。

  • 第三层DDOs,基于IP的攻击。IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。利用IP报文分片后重组的重叠现象攻击服务器,进而引起服务器内核崩溃。
  • 第四层DDos,基于TCP的攻击。SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。
  • 第七层DDos,基于应用层的攻击。基于应用层的DDos攻击会更复杂,处理起来更棘手。这类攻击往往会模仿用户和Web应用之间的交互行为,增加判断的难度。

WAF主要处理第七层DDos攻击,它在处理第七层DDos攻击时会比其它防护手段更高效一些。WAF会对HTTP流量做详细的分析,这样WAF就能针对正常的访问请求进行建模,然后使用这些模型来区分正常的请求和攻击者使用机器人或者脚本触发的请求。


WAF测试

针对WAF实施的测试需要一个严格的流程。我们需要知道WAF能够有效防止哪些真实的攻击,漏掉了哪些真实的攻击。同时,我们还需要知道哪些有效的访问也被拦截了。

在针对部署了WAF的Web应用做测试时,最好使用WAF测试框架,并根据下面的步骤来测试:

  1. 测试在没有部署WAF情况下web应用的表现。
  2. 看看在WAF启用默认配置的情况下,攻击能否成功。
  3. 修改WAF的配置,看一下能否拦截上面的攻击。

WAF测试工具不但需要能够触发各种攻击,而且能够产生合法的请求,这样才能检测WAF在预防攻击的情况下能够让合法请求顺利通行。


WAF和传统防火墙的区别

传统防火墙主要用来保护服务器之间传输的信息,而WAF则主要针对Web应用程序。网络防火墙和WAF工作在OSI7层网络模型的不同层,相互之间互补,往往能搭配使用。

网络防火墙工作在网络层和传输层,它们没有办法理解HTTP数据内容,而这个正式WAF所擅长的。网络防火墙一般只能决定用来响应HTTP请求的服务器端口是开还是关,没办法实施更高级的、和数据内容相关的安全防护。


总结

WAF是Web应用不可缺少的基础安全组件之一,能帮助我们预防一些常见的攻击手段。

所有的云服务厂商都提供了基于云服务的WAF,在云服务商的管理后台点击几下就能完成WAF的接入和使用,极大地降低了WAF的使用门槛。

我们很难有理由在使用这些云服务时拒绝使用WAF服务。


http://chatgpt.dhexx.cn/article/kp5jkCIF.shtml

相关文章

什么是 Web 应用防火墙(WAF)?

当下时候,网络攻击和针对网站的攻击与日俱增。同时,在我们的日常生活中,安全的重要性也迅速提升。因此,保证在线上世界的安全变得越来越重要。更重要的是,保护你的网站和所存储的数据的安全。所以,我们将介…

【网络安全】如何在Apache 安装开源 WAF

说明: 本文以Windows环境下的Apache安装mod_security为例, 介绍开源WAF产品的安装使用。 http://www.modsecurity.cn/ https://github.com/SpiderLabs/ModSecurity一、WAF基本介绍 WAF全称Web Application Firewall,即Web应用防火墙。Web应用…

WAF详解及WAF绕过

waf(web application firewall): 原理: web应用防火墙,一款集网站内容安全防护、网站资源安全防护及流量保护功能为一体的服务器工具。为用户提供实时网站安全防护,避免各类针对网站的攻击带来的危害。(核心…

waf入门

文章目录 waf入门什么是wafwaf一般都有哪些功能WAF部署模式WAF工作模式 规则引擎原理WAF动作WAF规则与报表WAF特征 waf入门 什么是waf Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称&…

WAF识别软件(WAFW00F)以及WAF绕过

责任声明: 本文章仅供学习交流使用,如有利用进行非法行为 上传者不承担任何责任,使用者后果自负 WAF防护分析 什么是WAF? Web应用防护系统分为两种:软件与硬件 安全公司内部的为硬件,个人或小企业为软件&…

IPS和WAF区别

写在前面: “前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。” 前言 - 床长人工智能教程 WAF与IPS的区别总结 谁是最佳选择? Web应用防护无疑是一个热门话题。…

waf详解

文章目录 一、waf分类二、waf的工作原理 前言: 在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则…

waf测试

waf简介 WAF防火墙其实就是Web Application Firewall,是一个web应用防护系统。企业等用户一般采用防火墙作为安全保障体系的第一道防线。WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对Web应用业务和逻辑的深刻理解,WAF对来自…

云WAF概述

云WAF(Web应用防火墙)是WAF的另一种表现形态,它将WAF的功能在云端进行实现。只需要把域名的解析权交给云WAF,它就可以利用DNS调度技术,改变网络流量的原始流向,将网络流量牵引到云端的WAF上,云端…

WAF的原理

一.WAF的原理 WAF是Web应用防火墙(Web Application Firewall)的简称,对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为Web应用提供防护&#xff0c…

WAF介绍

一、WAF产生的背景: 过去企业通常会采用防火墙,作为安全保障的第一道防线;当时的防火墙只是在第三层(网络层)有效的阻断一些数据包;而随着web应用的功能越来越丰富的时候,Web服务器因为其强大的…

sql注入绕过WAF小tips

目录 一. WAF分类 二. WAF工作原理 三. 攻击环境搭建 四. WAF绕过姿势 运算符绕过and、or限制 内联注释绕过order by 添加控制字符绕过union select 函数拆分获取数据库名 在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味…

WAF简介

今天继续给大家介绍渗透测试相关知识,本文主要内容是WAF简介。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透…

细说——WAF

目录 WAF是什么主流WAF有哪些?WAF的分类软件型WAF硬件型WAF基于云WAF开源型WAF网站内置的WAF IPS与IDS,防火墙与WAF之间的比较和差异防火墙功能IPS入侵防御系统IDS入侵检测系统WAF对比IPS与IDS防火墙与IPS / IDSWAF与IPS / IDS WAF检测手工检测工具检测W…

WAF基本原理与部署方式

WAF介绍 WAF是什么? WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。 国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 WAF…

Windows安装SSH

文章目录 1.微软官网安装教程1.打开powershell2.查看是否安装OpenSSH3.安装ssh客户端4.安装ssh服务端5.启动并配置 OpenSSH 服务器 2.自己安装配置1.下载安装包2.解压3.配置环境变量4.服务安装5.开放端口6.配置开机自启sshd服务7.启动ssh服务端8.测试ssh连接 1.微软官网安装教程…

Linux修改ssh端口

记录:340 场景:在CentOS 7.9操作系统上,修改默认的ssh端口。ssh默认22端口,在实际开展业务中的生产环境中,通常会修改为指定端口号,以满足规范。 版本: 操作系统:CentOS 7.9 1.修…

SSH 基础用法

1.查看网络环境是否通畅 修改主机名称:hostnamectl set-hostname xxxx 查看网络信息:ifconfig 或者用 ip a show xxxx(网卡配置文件名称) 测试网络连接 :ping xxx.xxx.xxx.xxx 输入对应的ip地址 2.使用方式 连接方式: ssh ro…

SSH介绍以及使用

什么是ssh? SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用…

SSH详细使用教程

SSH简介 SSH是一种网络协议,用于计算机之间的加密登录。 适用条件 客户端防火墙禁止80端口的出站流量,无法上网。ssh通过tcp 22端口传输数据,实现上网功能。 SSH常用命令 -C 对传输数据进行压缩,减小…