昨天在机房可能是第一次接触到 WAF 设备,不是很懂,问了下主要是为了网页防篡改。回来后找些资料赶紧学习下。WAF,全称为:Web Application Firewall,即 Web 应用防火墙。对此,维基百科是这么解释的:Web应用程序防火墙过滤,监视和阻止与Web应用程序之间的HTTP流量。WAF与常规防火墙的区别在于,WAF能够过滤特定Web应用程序的内容,而常规防火墙则充当服务器之间的安全门。通过检查HTTP流量,它可以防止源自Web应用程序安全漏洞的攻击,例如SQL注入、跨站点脚本,文件包含和安全性错误配置。

Web 防火墙(WAF)

  WAF的出现是由于传统防火墙无法对应用层的攻击进行有效抵抗,并且IPS也无法从根本上防护应用层的攻击。因此出现了保护Web应用安全的Web应用防火墙系统(简称“WAF”)。WAF是一种基础的安全保护模块,通过特征提取和分块检索技术进行特征匹配,主要针对 HTTP 访问的 Web 程序保护。WAF部署在Web应用程序前面,在用户请求到达 Web 服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户请求有效且安全,对无效或有攻击行为的请求进行阻断或隔离。

  WAF主要提供对Web应用层数据的解析,对不同的编码方式做强制多重转换还原为攻击明文,把变形后的字符组合后再分析,能够较好的抵御来自Web层的组合攻击主要抵御算法为基于上下文的语义分析。

  WAF是随着目前Web一个用的日益流行,实现Web应用防护的一类新型安全产品,它与传统的IPS在某些防护效果上有功能重叠的部分(例如防止SQL注入攻击),但两款产品在工作原理、市场定位、功能特点、部署模式等方面存在显著差异。可以说,WAF防火墙是对运营Web应用的具备一定防护能力的网络环境的Web攻击防护能力的必要增强。IPS和IDS是该网络环境必备的基础设备。

  Web防火墙,主要是对Web特有入侵方式的加强防护,如DDOS防护、SQL注入、XML注入、XSS等。由于是应用层而非网络层的入侵,从技术角度都应该称为Web IPS,而不是Web防火墙。这里之所以叫做Web防火墙,是因为大家比较好理解,业界流行的称呼而已。由于重点是防SQL注入,也有人称为SQL防火墙。

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

Web 防火墙(WAF)

  Web防火墙的主要技术的对入侵的检测能力,尤其是对Web服务入侵的检测,不同的厂家技术差别很大,不能以厂家特征库大小来衡量,主要的还是看测试效果,从厂家技术特点来说,有下面几种方式:

  代理服务:代理方式本身就是一种安全网关,基于会话的双向代理,中断了用户与服务器的直接连接,适用于各种加密协议,这也是Web的Cache应用中最常用的技术。代理方式防止了入侵者的直接进入,对DDOS攻击可以抑制,对非预料的“特别”行为也有所抑制。Netcontinuum(梭子鱼)公司的WAF就是这种技术的代表。

  特征识别:识别出入侵者是防护他的前提。特征就是攻击者的“指纹”,如缓冲区溢出时的Shellcode,SQL注入中常见的“真表达(1=1)”…应用信息没有“标准”,但每个软件、行为都有自己的特有属性,病毒与蠕虫的识别就采用此方式,麻烦的就是每种攻击都自己的特征,数量比较庞大,多了也容易相象,误报的可能性也大。虽然目前恶意代码的特征指数型地增长,安全界声言要淘汰此项技术,但目前应用层的识别还没有特别好的方式。

  算法识别:特征识别有缺点,人们在寻求新的方式。对攻击类型进行归类,相同类的特征进行模式化,不再是单个特征的比较,算法识别有些类似模式识别,但对攻击方式依赖性很强,如SQL注入、DDOS、XSS等都开发了相应的识别算法。算法识别是进行语义理解,而不是靠“长相”识别。

  模式匹配:是IDS中“古老”的技术,把攻击行为归纳成一定模式,匹配后能确定是入侵行为,当然模式的定义有很深的学问,各厂家都隐秘为“专利”。协议模式是其中简单的,是按标准协议的规程来定义模式;行为模式就复杂一些,

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

Web 防火墙(WAF)

WAF与网络防火墙的区别

  网络防火墙作为访问控制设备,主要工作在OSI模型三、四层,基于IP报文进行检测。只是对端口做限制,对TCP协议做封堵。其产品设计无需理解HTTP会话,也就决定了无法理解Web应用程序语言如HTML、SQL语言。因此,它不可能对HTTP通讯进行输入验证或攻击规则分析。针对Web网站的恶意攻击绝大部分都将封装为HTTP请求,从80或443端口顺利通过防火墙检测。

  一些定位比较综合、提供丰富功能的防火墙,也具备一定程度的应用层防御能力,如能根据TCP会话异常性及攻击特征阻止网络层的攻击,通过IP分拆和组合也能判断是否有攻击隐藏在多个数据包中,但从根本上说他仍然无法理解HTTP会话,难以应对如SQL注入、跨站脚本、cookie窃取、网页篡改等应用层攻击。

  Web应用防火墙能在应用层理解分析HTTP会话,因此能有效的防止各类应用层攻击,同时他向下兼容,具备网络防火墙的功能。

  传统防火墙可保护服务器之间的信息流,而Web应用程序防火墙则能够过滤特定Web应用程序的流量。网络防火墙和Web应用程序防火墙是互补的,可以协同工作。

  传统的安全方法包括网络防火墙,入侵检测系统(IDS)和入侵防御系统(IPS)。它们可有效阻止开放系统互连(OSI)模型下端(L3-L4)周边的不良L3-L4流量。传统防火墙无法检测Web应用程序中的攻击,因为它们不了解在OSI模型的第7层发生的超文本传输​​协议(HTTP)。它们还仅允许从HTTP服务器发送和接收请求的网页的端口打开或关闭。这就是为什么Web应用程序防火墙可以有效防止SQL注入,会话劫持和跨站点脚本(XSS)等攻击。