Web应用防火墙云WAF详细介绍

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

一、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对注入类漏洞比如多阶注入是没什么办法的。

————————————————

(以上内容版权声明:本文为CSDN博主「白清羽」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/gufenchen/article/details/93485351)

原文地址:https://www.cnblogs.com/w520/p/12063693.html

时间: 2024-10-10 02:20:46

Web应用防火墙云WAF详细介绍的相关文章

Nginx使用Naxsi搭建Web应用防火墙(WAF),防xss、防注入×××

Naxsi是一个开放源代码.高效.低维护规则的Nginx web应用防火墙(Web Application Firewall)模块.Naxsi的主要目标是加固web应用程序,以抵御SQL注入.跨站脚本.跨域伪造请求.本地和远程文件包含漏洞.官网地址:https://github.com/nbs-system/naxsi Naxsi 不要求任何特定的依赖,它需要的 libpcre ,libssl ,zlib ,gzip 这些 Nginx 已经集成了. 下载Naxsi模块 [[email prote

WAF Web应用防火墙常见部署方式介绍

1.透明代理模式,该模式可以理解为交换机,经过的流量先被WAF处理,在到防火墙:2.反向代理,单臂模式,需要通过NAT Server将外部用户访问内网服务器的流量映射到WAF,然后在由WAF做处理后转发给服务器:反代单臂模式可支持VRRP协议,通过部署两台H3C SecPath WAF开启VRRP协议可实现双机HA模式:3.反向代理,双臂模式,WAF接口工作在三层模式,同样的方法,采用映方式将流量映射到WAF,然后在由WAF反向代理到WEB服务器:4.反向代理,链路模式牵引模式部署:该方式可旁路

华为防火墙NAT控制详细介绍

原文地址:https://blog.51cto.com/14400213/2446085

阿里云—Gartner 2018 亚太区WAF魔力象限唯一云WAF提供商

近日,Gartner发布亚太区2018年度Web应用防火墙(简称"WAF")魔力象限报告,阿里云WAF凭借成熟的产品能力和完善的服务体系成功入围,且是唯一一家进入该魔力象限的云WAF提供商. 报告指出,"从长期来看,Gartner预计云WAF将获得更大的发展势头,因为亚太地区越来越多的企业看到了云WAF服务自动弹性扩容以及快速与其他Web应用防护服务集成的能力优势." 目前,阿里云WAF服务节点在亚太地区已覆盖6个地域,10个数据中心节点,更支持与DDoS防护.An

技术分享:杂谈如何绕过WAF(Web应用防火墙)(转)

0×01开场白 这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家. 可能在大家眼中WAF(Web应用防火墙)就是"不要脸"的代名词.如果没有他,我们的"世界"可能会更加美好.但是事与愿违.没有它,你让各大网站怎么活.但是呢,我是站在你们的这一边的,所以,今天我们就来谈谈如何绕过WAF吧.之所以叫做"杂谈",是因为我在本次演讲里,会涉及到webkit.nginx&apache等.下面正式开始:) 0×02直视WAF: 作为

linux 防火墙详细介绍

1.其实匹配扩展中,还有需要加-m引用模块的显示扩展,默认是隐含扩展,不要使用 -m状态检测的包过滤-m state       --state {NEW,ESTATBLISHED,INVALID,RELATED}  指定检测那种状态-m multiport 指定多端口号      --sport      --dport      --ports-m iprange 指定IP段      --src-range ip-ip      --dst-range ip-ip-m connlimit

Java 并发专题 : Executor详细介绍 打造基于Executor的Web服务器

适配器模式,将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 应用场景:系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配.适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况. 代码实现: //Adapter.h #include "stdafx.h" #include <iostream> class Adaptee

WAF Web应用防火墙

WAF   Web应用防火墙 Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势.基于对Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护. F5的BIG-IP应用安全管理器(ASM)是一个先进的Web应用防火墙,可显著减少和控制数据.知识产权和

web.xml 详细介绍(转)

web.xml 详细介绍 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文. 3.容器将<context-param>转换为键值对,并交给servletContext. 4.容器创建<listener>中的类实例,创建监听器. 二  Load-on