前言:宁可一思进,莫要一思停
WAF介绍
是什么
WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。
国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品
WAF分类
- 硬件设备类
目前安全市场上,大多数的WAF都属于此类。它们以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护。相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等厂商生产的WAF都属于此类。 - 软件产品类
这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,因为它必须安装在Web应用服务器上,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、网站安全狗等。 - 基于云的WAF
随着云计算技术的快速发展,使得其于云的WAF实现成为可能。国内创新工场旗下的安全宝、360的网站宝是这类WAF的典型代表。它的优点是快速部署、零维护、成本低。对于中、小型的企业和个人站长是很有吸引力的。
常见WAF架构
WAF工作原理
- WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。
- WAF可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。一般针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。其防护重点是SQL注入
- Web应用防火墙的主要技术是对入侵的检测能力,尤其是对Web服务入侵的检测,Web防火墙最大的挑战是识别率,这并不是一个容易测量的指标,因为漏网进去的入侵者,并非都大肆张扬,比如给网页挂马,你很难察觉进来的是那一个,不知道当然也无法统计。对于已知的攻击方式,可以谈识别率;对未知的攻击方式,你也只好等他自己“跳”出来才知道。
- 现在市场上大多数的产品是基于规则的WAF。其原理是每一个会话都要经过一系列的测试,每一项测试都由一个过多个检测规则组成,如果测试没通过,请求就会被认为非法并拒绝。
waf界面(safedog为例)
可以看出waf产品操作简单容易上手
WAF不能干什么
- WAF不能过滤其他协议流量,如FTP、PoP3协议
- WAF不能实现传统防护墙功能,如地址映射
- WAF不能防止网络层的DDoS攻击
- 防病毒
硬件设备WAF的演变
IPS架构的特点:
优势:
建立在原IPS架构之上,部署简单
不改变数据包内容
性能较好
劣势:
误报及漏报率较高
难以解决HTTP慢攻击及分片攻击
难以实现复杂应用,如应用交付
反向代理特点:
优势:
单臂部署,不需要串接在网络中
实现应用交付
安全防护能力好
劣势:
会改变数据包内容
性能较差
需要改变网络配置,故障恢复慢。
透明代理特点:
优势:
半透明部署,不需要改变网络配置
实现应用交付
安全防护能力好
故障恢复快
劣势:
较少更改数据包内容
性能一般
流模式特点:
优势:
全透明部署,不改变网络配置/数据包内容
实现应用交付
安全防护能力好
故障恢复快
性能好
劣势:
对特殊构造攻击取决于WAF缓存大小
阿里云的WAF产品
如何使用该产品
- CNAME接入
把域名解析到WAF提供的CNAME地址上,并配置源站服务器IP,即可启用WAF。 - 透明接入
如果您的源站服务器部署在阿里云公网SLB上,那么除了使用CNAME接入,您还可以选择云原生的透明接入方式,实现WAF对网站的防护。在这种模式下,您无需修改域名DNS解析、设置源站保护,同时无需改变服务器获取真实源IP的方式,保护您SLB上的Web业务正常运转。
WAF套餐与版本
附·正向代理、反向代理、透明代理
正向代理
用户A——>代理服务器(已知)——>服务器B
这样做的意义
- 访问本无法访问的服务器B
- 做Cache
- 客户端访问授权
- 隐藏访问者的行踪
反向代理
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
用户A——>代理服务器(未知)——>服务器B
这样做的意义
- 保护和隐藏原始资源服务器
- 负载均衡
透明代理
透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。
用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
这样的意义
- 管理软件