随着WEB应用的广泛普及,WEB服务器凭借其强大的运算能力、处理性能以及所承载的较高价值,逐步成为主要的攻击目标。SQL注入、页面篡改、网页挂马等安全事件屡见不鲜。传统防火墙难以对应用层的攻击进行有效抵御,例如无法针对当前快速爆发与扩散的0DAY漏洞做出快速响应与对抗,而要从根本上解决此类漏洞的代码审计与代码修复往往需要较长周期。因此,保护Web应用安全的Web应用防火墙系统——WAF应运而生。
什么是WAF?
WAF是英文”Web Application Firewall”的缩写,中文含义为”Web应用防火墙”,也称为”网站应用级入侵防御系统”。WAF是集WEB防护、网页保护、负载均衡、应用交付于一身的WEB整体安全防护设备。
WAF需要部署在Web服务器的前端,串行接入,不仅对硬件性能要求较高,而且不能影响Web服务,因此HA功能、Bypass功能都是必备的。
WAF核心技术
WAF的核心技术在于入侵检测能力,尤其是针对Web服务入侵的检测能力。常见的实现形式包括代理服务、特征识别、算法识别、模式匹配。

代理服务
代理方式本身属于一种安全网关,基于会话的双向代理,切断了用户与服务器的直接连接,适用于各类加密协议,这也是Web的Cache应用中最为常用的技术。代理方式能有效阻止入侵者的直接进入,对DDOS攻击可以抑制,对非预期的”特殊”行为也有一定的抑制作用。
特征识别
识别出入侵者是防护它的前提。特征就是攻击者的”指纹”,如缓冲区溢出时的Shellcode,SQL注入中常见的”真表达(1=1)”。应用信息没有”标准”,但每个软件、行为都有自身的特有属性,病毒与蠕虫的识别就采用此方式,麻烦之处在于每种攻击都有自己的特征,数量相当庞大,多了也容易相似,误报的可能性也较高。虽然目前恶意代码的特征呈指数级增长,安全界声称要淘汰此项技术,但目前应用层的识别还没有特别理想的方式。
算法识别
特征识别存在缺陷,人们在探索新的方式。对攻击类型进行分类,同类的特征进行模式化,不再是单个特征的比对,算法识别有些类似模式识别,但对攻击方式依赖性很强,如SQL注入、DDOS、XSS等都开发了相应的识别算法。算法识别是进行语义理解,而非靠”外表”识别。
模式匹配
IDS中”经典”的技术,将攻击行为归纳成一定模式,匹配后能判定是入侵行为。协议模式是其中简单的,是按标准协议的规程来定义模式,行为模式则更为复杂。
最大挑战
WAF最大的挑战是识别率,这并非一个容易衡量的指标,因为漏网进入的入侵者,并非都大张旗鼓,比如给网页挂马,很难察觉进来的是哪一个,不知道自然也无法统计。对于已知的攻击方式,可以谈识别率;对未知的攻击方式,你也只能等它自己”跳”出来才知道。
WAF分类
WAF从形态上可划分为硬件WAF、WAF防护软件和云WAF。
1.硬件WAF
通常串行部署在Web服务器前端,用于检测、阻断异常流量。通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则判定为异常并进行请求阻断。
2.软件WAF
通常部署在需要防护的服务器上,通过监听端口或以Web容器扩展方式进行请求检测与阻断。
3.云WAF
云WAF,也称WEB应用防火墙的云模式,这种模式让用户无需在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,其主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截,否则将请求转发至真实服务器。
WAF作用

WAF的作用主要涵盖WEB防护和防止WEB信息泄露两大板块,具体如下:
一、Web防护
●网络层:DDOS攻击、Syn Flood、Ack Flood、Http/Https Flood(CC攻击)、慢速攻击。
●应用层:URL黑白名单、HTTP协议规范(包括特殊字符过滤、请求方式、内容传输方式,例如:multipart/form-data,text/xml,application/x-www-form-urlencoded)。
●注入攻击(form和URL参数,post和get):SQL注入防御、LDAP注入防御、命令注入防护(OS命令,webshell等)、XPath注入、Xml/Json注入、XSS攻击(form和URL参数,post和get,现阶段分为三类攻击:存储式(危害大,也是一种流行方式),反射式、基于Dom的XSS)。
●目录遍历(Path Traversal)。
●form表单数据验证和表单篡改和注入(表单验证银行卡、数据、日期等)。
●认证管理和会话劫持(cookie加密:防护会话劫持,包括cookie超时)。
●内容过滤(此处强调上传内容过滤post form和get参数,主要应用于论坛)。
●Web服务器漏洞探测(apache版本等隐藏,站点隐藏)。
●爬虫防护(基于SRC IP,周期判断访问数,爬虫白名单除外)。
●CSRF(Cross-site request forgery)(WAF采用token方式处理能够解决)。
●篡改(包括盗链)(WAF周期爬取服务器网页,进行对比验证,如发现篡改,Client访问WAF网页)。
●Web服务器漏洞扫描(模拟攻击,判断缺陷,自动配置对应规则)。
●cache加速(静态页面优化,PDF,图片等,需要周期映像)。
●错误码过滤(探测服务,及其目录结构)。
●站点转换(URL rewrite)。
●发现攻击锁定(发现攻击,锁定用户)。
●查杀毒。
●加密传输(http -> https转化,即client-waf之间通过https,waf与server之间http)。
●URL ACL(URL匹配一些规则)。
二、防止Web信息泄露
●银行卡(信用卡、借记卡)、社保卡、驾照等,采用覆盖和隐藏两种方式。
●敏感词过滤、Web中关键词(政治敏感词、技术关键词等)。
●防止文件泄露(word、pdf等扩展文件及其关键词),Web服务器上的文件。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2875.html
