WAF介绍

article/2025/9/15 0:25:46

一、WAF产生的背景:

        过去企业通常会采用防火墙,作为安全保障的第一道防线;当时的防火墙只是在第三层(网络层)有效的阻断一些数据包;而随着web应用的功能越来越丰富的时候,Web服务器因为其强大的计算能力,处理性能,蕴含较高的价值,成为主要的被攻击目标(第五层应用层)。而传统防火墙在阻止利用应用程序漏洞进行的攻击方面,却没有办法;在此背景下,waf(Web Application Firewall)应运而生。

      WAF称为web应用防火墙,是通过执行一系列针对HTTP,HTTPS的安全策略,来专门对web应用,提供保护的一款产品。WAF初期是基于规则防护的防护设备;基于规则的防护,可以提供各种web应用的安全规则,waf生产商去维护这个规则库,并实时为其更新,用户按照这些规则,可以对应用进行全方面的保护。

       但随着攻防双方的不断过招,攻击者也摸清了,这一套传统的防御体系,随着使用各种各样的绕过技巧,打破了这套防线,同上这套防护思路,还有一个天生的缺陷,就是难以拦截未知的攻击。因此技术的革新也是必然的。

      在这几年WAF领域出现了很多新的技术,譬如通过数据建模学习企业自身业务,从而阻拦与其业务特征不匹配的请求;或者使用智能语音分析引擎,从语音本质去了解。无论是用已知漏洞攻击利用程序,还是未知攻击,都可以精准的识别。

二、WAF的作用什么:

       waf是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

三、WAF的工作原理:

       WAF是Web应用防火墙(Web Application Firewall)的简称,对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为Web应用提供防护,也称作应用防火墙,是网络安全纵深防御体系里重要的一环。WAF属于检测型及纠正型防御控制措施。WAF分为硬件WAF、软件WAF(ModSecurity)和代码级WAF。

      WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。

      WAF工作在web服务器之前,对基于HTTP协议的通信进行检测和识别。通俗的说,WAF类似于地铁站的安检,对于HTTP请求进行快速安全检查,通过解析HTTP数据,在不同的字段分别在特征、规则等维度进行判断,判断的结果作为是否拦截的依据从而决定是否放行

      WAF 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。一般针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。其防护重点是SQL注入。

      Web防火墙产品部署在Web服务器的前面,串行接入,不仅在硬件性能上要求高,而且不能影响Web服务,所以HA功能、Bypass功能都是必须的,而且还要与负载均衡、Web Cache等Web服务器前的常见的产品协调部署。

       Web应用防火墙的主要技术是对入侵的检测能力,尤其是对Web服务入侵的检测,Web防火墙最大的挑战是识别率,这并不是一个容易测量的指标,因为漏网进去的入侵者,并非都大肆张扬,比如给网页挂马,你很难察觉进来的是那一个,不知道当然也无法统计。对于已知的攻击方式,可以谈识别率;对未知的攻击方式,你也只好等他自己“跳”出来才知道。

       现在市场上大多数的产品是基于规则的WAF。其原理是每一个会话都要经过一系列的测试,每一项测试都由一个过多个检测规则组成,如果测试没通过,请求就会被认为非法并拒绝。

       基于规则的WAF测试很容易构建并且能有效的防范已知安全问题。当我们要制定自定义防御策略时使用它会更加便捷。但是因为它们必须要首先确认每一个威胁的特点,所以要由一个强大的规则数据库支持。WAF生产商维护这个数据库,并且他们要提供自动更新的工具。

       这个方法不能有效保护自己开发的WEB应用或者零日漏洞(攻击者使用的没有公开的漏洞),这些威胁使用基于异常的WAF更加有效。

       异常保护的基本观念是建立一个保护层,这个保护层能够根据检测合法应用数据建立统计模型,以此模型为依据判别实际通信数据是否是攻击。理论上,一但构建成功,这个基于异常的系统应该能够探测出任何的异常情况。拥有了它,我们不再需要规则数据库而且零日攻击也不再成问题了。但基于异常保护的系统很难构建,所以并不常见。因为用户不了解它的工作原理也不相信它,所以它也就不如基于规则的WAF应用广范。

      Imperva公司的WAF产品在提供入侵防护的同时,还提供了另外一个安全防护技术,就是对Web应用网页的自动学习功能,由于不同的网站不可能一样,所以网站自身页面的特性没有办法提前定义,所以imperva采用设备自动预学习方式,从而总结出本网站的页面的特点。具体的做法是这样的:

      通过一段时间的用户访问,WAF记录了常用网页的访问模式,如一个网页中有几个输入点,输入的是什么类型的内容,通常情况的长度是多少…学习完毕后,定义出一个网页的正常使用模式,当今后有用户突破了这个模式,如一般的帐号输入不应该有特殊字符,而XML注入时需要有“<”之类的语言标记,WAF就会根据你预先定义的方式预警或阻断;再如密码长度一般不超过20位,在SQL注入时加入代码会很长,同样突破了网页访问的模式。

      网页自学习技术,从Web服务自身的业务特定角度入手,不符合我的常规就是异常的,也是入侵检测技术的一种,比起单纯的Web应用防火墙来,不仅给入侵者“下通缉令”,而且建立进入自家的内部“规矩”,这一种双向的控制,显然比单向的要好。

四、WAF有哪些应用功能:

1、审计设备:

对于系统自身安全相关的下列事件产生审计记录:

(1)管理员登陆后进行的操作行为;

(2) 对安全策略进行添加、修改、删除等操作行为;

(3) 对管理角色进行增加、删除和属性修改等操作行为;

(4) 对其他安全功能配置参数的设置或更新等行为。

2、访问控制设备:

    用来控制对Web应用的访问,既包括主动安全模式也包括被动安全模式。

3、架构/网络设计工具:

当运行在反向代理模式,他们被用来分配职能,集中控制,虚拟基础结构等。

4、Web应用加固工具:

     这些功能增强被保护Web应用的安全性,它不仅能够屏蔽WEB应用固有弱点,而且 能够保护WEB应用编程错误导致的安全隐患。

    需要指出的是,并非每种被称为Web应用防火墙的设备都同时具有以上四种功能。

    同时WEB应用防火墙还具有多面性的特点。比如从网络入侵检测的角度来看可以把WAF看成运行在HTTP层上的IDS设备;从防火墙角度来看,WAF是一种防火墙的功能模块;还有人把WAF看作“深度检测防火墙”的增强。(深度检测防火墙通常工作在的网络的第三层以及更高的层次,而Web应用防火墙则在第七层处理HTTP服务并且更好地支持它。)

五、WAF工作的特点:

1、异常检测协议:

Web应用防火墙会对HTTP的请求进行异常检测,拒绝不符合HTTP标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些Web应用防火墙还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。

2、输入增强的验证:

       增强输入验证,可以有效防止网页篡改、信息泄露、木马植入等恶意网络入侵行为。从而减小Web服务器被攻击的可能性。

3、及时补丁:

     修补Web安全漏洞,是Web应用开发者最头痛的问题,没人会知道下一秒有什么样的漏洞出现,会为Web应用带来什么样的危害。WAF可以为我们做这项工作了——只要有全面的漏洞信息WAF能在不到一个小时的时间内屏蔽掉这个漏洞。当然,这种屏蔽掉漏洞的方式不是非常完美的,并且没有安装对应的补丁本身就是一种安全威胁,但我们在没有选择的情况下,任何保护措施都比没有保护措施更好。

(附注:及时补丁的原理可以更好的适用于基于XML的应用中,因为这些应用的通信协议都具规范性。

4、基于规则的保护和基于异常的保护:

     基于规则的保护可以提供各种Web应用的安全规则,WAF生产商会维护这个规则库,并时时为其更新。用户可以按照这些规则对应用进行全方面检测。还有的产品可以基于合法应用数据建立模型,并以此为依据判断应用数据的异常。但这需要对用户企业的应用具有十分透彻的了解才可能做到,可现实中这是十分困难的一件事情。

5、状态管理:

      WAF能够判断用户是否是第一次访问并且将请求重定向到默认登录页面并且记录事件。通过检测用户的整个操作行为我们可以更容易识别攻击。状态管理模式还能检测出异常事件(比如登陆失败),并且在达到极限值时进行处理。这对暴力攻击的识别和响应是十分有利的。

6、其他防护技术:

      WAF还有一些安全增强的功能,可以用来解决WEB程序员过分信任输入数据带来的问题。比如:隐藏表单域保护、抗入侵规避技术、响应监视和信息泄露保护。

六、WAF的局限性:

      WAF功能有天然缺陷,他只对request和response感兴趣,却不重视Web应用本身。另外,WAF对注入类漏洞比如多阶注入是没什么办法的。


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

相关文章

sql注入绕过WAF小tips

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

WAF简介

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

细说——WAF

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

WAF基本原理与部署方式

WAF介绍 WAF是什么&#xff1f; WAF的全称是&#xff08;Web Application Firewall&#xff09;即Web应用防火墙&#xff0c;简称WAF。 国际上公认的一种说法是&#xff1a;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端口

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

SSH 基础用法

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

SSH介绍以及使用

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

SSH详细使用教程

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

SSH 公钥私钥

一、简介 一、SSH key简介 要了解SSH key简介&#xff0c;首先得熟悉SSH&#xff0c;SSH 密钥对可以让您方便的登录到 SSH 服务器&#xff0c;而无需输入密码。SSH 密钥对总是成双出现的&#xff0c;一把公钥&#xff0c;一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务…

最全SSH命令 - 11种用法

SSH命令 1.使用ssh连接远程主机2.ssh连接到其他端口3.使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作4.在远程主机运行一个图形界面的程序5.如何配置 SSH6.构建 ssh 密钥对7.查看是否已经添加了对应主机的密钥8.删除主机密钥9.绑定源地址10.对所有数据请求压缩1…

什么是SSH

一、什么是远程连接服务器 1、远程连接服务器通过文字或图形接口方式来远程登录系统&#xff0c;让你在远程终端前登录linux主机以取得可操作主机接口&#xff08;shell&#xff09;&#xff0c;而登录后的操作感觉就像是坐在系统前面一样。 2、远程连接服务器的功能 1&…

Ubuntu 怎么开启SSH

这里使用虚拟机演示&#xff0c;ubuntu版本 22.10 1、安装ubuntu时启用SSH 在安装ubuntu时会提示是否需要安装 OpenSSH server 如果在这里勾选安装后&#xff0c;则不需要在使用命令进行安装 OpenSSH server 2、使用命令安装启用 SSH 01、切换 root 用户&#xff0c;如果未设…

SSH是什么??

首先&#xff0c;SSH是strutsspringhibernate的一个集成框架&#xff0c;它不是一个框架&#xff0c;而是把多个框架紧密的结合在一起&#xff0c;用于构建灵活的多层Web应用程序。然后详细说一下组成SSH的这三个框架&#xff1a; Struts 1.什么是Struts&#xff1f;&#xff…

linux之ssh命令详解

ssh是什么呢&#xff1f;&#x1f449;百科上是这么说的 随便插张图 简单来说&#xff0c;在linux中SSH是非常常用的工具&#xff0c;通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上&#xff0c;也就是说&#xff0c;我们可以通过ssh来远程控制我们的电脑或者服务器…

什么是SSH 以及常见的ssh 功能

一、SSH SSH只是一种协议&#xff0c;存在多种实现&#xff0c;既有商业实现&#xff0c;也有开源实现。本文针对的实现是OpenSSH&#xff0c;它是自由软件&#xff0c;应用非常广泛。这里只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH&#xff0c;会用到另一…

ssh服务介绍

阅读目录 1.1 SSH服务协议说明1.2 SSH加密技术说明1.3 ssh知识要点&#xff1a;1.4 SSH服务软件详细说明1.5 ssh服务配置文件说明&#xff1a;1.6 ssh服务认证类型1.7 基于秘钥登录配置1.8 telnet服务简介1.9 进行免密码scp传输测试1.10 使用sftp进行基于密钥的文件传输1.11 ss…

SSH 详解(实践及应用)

目录 1.SSH 基本知识 2.SSH 客户端 2.1 安装 2.2 基本用法 2.3 命令行配置项 2.4 配置文件 3 SSH 密钥 3.1 密钥生成 3.2 公钥上传 4 SSH 代理 4.1 动态转发 4.2 本地转发 4.3 远程转发 4.4 实际运用 5 SCP命令 5.1 本地复制到远程 5.2 远程复制到本地 5.3 两…

H3C双向NAT典型组网配置案例

组网说明&#xff1a; 本案例采用H3C HCL模拟器来模拟实现双向NAT的组网&#xff0c;由于模拟器和本物理机的局限性&#xff0c;因此采用模拟器的S5820交换机开启WEB功能模拟成为WEB服务器。在该网络拓扑图中&#xff0c;内网和外网已经有了明确的标识&#xff0c;某局点申请了…

基于华三HCL模拟器IPSec VPN组网与配置

一、实验原理 IPsec在互联网中提供端到端的数据报通信安全&#xff0c;通过加密和认证方式保护IP数据报及其封装的数据。IPsec是一个框架协议&#xff0c;包括AH、ESP、SA、IKE等协议。IPsec可以采用直接传输和隧道封装两种模式工作&#xff0c;在通过互联网承载的站点间VPN中…