1 概述
WAF(Web Application Firewall)的中文名称叫做“Web应用防火墙”,利用国际上公认的一种说法,WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。通过从上面对WAF的定义中,我们可以很清晰的了解到,WAF是一种工作在应用层的、通过特定的安全策略来专门为Web应用提供安全防护的产品。
从产品形态上来划分,WAF主要分为以下三大类:
①硬件设备类
目前安全市场上,大多数的WAF都属于此类。它们以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护。相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等厂商生产的WAF都属于此类。
②软件产品类
这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,因为它必须安装在Web应用服务器上,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、网站安全狗等。
③基于云的WAF
随着云计算技术的快速发展,使得其于云的WAF实现成为可能。国内创新工场旗下的安全宝、360的网站宝是这类WAF的典型代表。它的优点是快速部署、零维护、成本低。对于中、小型的企业和个人站长是很有吸引力的。
2 常见场景及功能
WAF是一种基础的安全保护模块,通过特征提取和分块检索技术进行特征匹配,主要针对 HTTP 访问的 Web 程序保护。WAF部署在Web应用程序前面,在用户请求到达 Web 服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户请求有效且安全,对无效或有攻击行为的请求进行阻断或隔离。
2.1 基础防护
WAF提供的基础防护涵盖了SQL注入攻击、命令注入攻击、文件包含防护、SSI注入防护、LDAP注入防护、Webshell防护、XXS跨站脚本防护、网站扫描防护、路径遍历防护、盗链防护、信息泄露防护、Web应用程序漏洞、Web容器漏洞等14类攻击类型,保护站点免遭常见的各类攻击。
SQL注入攻击
SQL注入,就是指攻击者将恶意的字符串或者语句等信息作为参数输入,服务器在验证这个字段的时候,读取攻击者输入的数据,将其作为正常的值参与SQL语句的查询。
命令注入攻击
Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。
文件包含防护
通过传递本地或者远程的文件作为参数进行利用,可以读取敏感信息、执行命令、GetWebshell。
SSI注入防护
SSIInjection(Server-side Include)服务器端包含提供了一种对现有HTML文档增加动态内容的方法。根据查资料的理解这是http服务器提供支持的一个特性。
LDAP注入防护
LDAP注入攻击和SQL注入攻击相似,因此接下来的想法是利用用户引入的参数生成LDAP查询。一个安全的Web应用在构造和将查询发送给服务器前应该净化用户传入的参数。
Webshell防护
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。
XXS跨站脚本防护
跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
XXE注入攻击防护
XXE注入攻击,也就是XML外部实体注入攻击。漏洞是在对非安全的外部实体数据进行处理时引发的安全问题。在XML1.0标准里,XML文档结构里定义了实体(entity)这个概念。
网站扫描防护
通过工具自动扫描漏洞。
路径遍历防护
通过目录便利攻击可以获取系统文件及服务器的配置文件等等。
盗链防护
盗链是指服务提供商自己不提供服务的内容,通过技术手段直接在自己的网站上向最终用户提供其他服务提供商的服务内容,受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
信息泄露防护
信息防泄漏是以加密技术为核心,结合安全审计机制、严格管控机制掌握、控制内部文档操作,有效防止任何状态(使用、传输、存储)的内部资料和信息资产泄漏。
Web应用程序漏洞
现有Web应用程序在安全方面常见的十大漏洞分别是:非法输入、失效的访问控制、失效的账户和线程管理、跨站脚本攻击、缓存溢出问题、注入式攻击、异常错误处理、不安全的存储、程序拒绝服务攻击、不安全的配置管理等。
Web容器漏洞
2.2 高级防护
协议合规
为防止非法用户通过构造不合理的请求,对web服务器进行非合法探测或溢出攻击,WAF提供协议合规功能。根据用户实际配置的条件,WAF检查HTTP协议头部,对HTTP请求信息中的方法以及参数长度等信息进行检测。检测是否合规,对不符合的请求项进行拦截或预警。
加速网关
WAF支持对用户配置的请求URL、请求方法或请求文件类型加速放行,缓解数据请求量大时对waf性能造成的影响。
攻击溯源
客户端请求到达服务端的过程中,经过的代理会添加自己的ip到x-forword-ip请求头上。
盗链防护
盗链是指服务提供商自己不提供服务的内容,通过技术手段直接在自己的网站上向最终用户提供其他服务提供商的服务内容,受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
缓存加速
对于用户需要经常访问的资源,WAF提供缓存加速功能,即对指定类型的文件一段时间内进行缓存,再次收到客户端相同资源请求时WAF直接返回资源。
智能学习
攻击的特征有数万种但是正常请求的规律相对唯一,故WAF提供智能学习功能,即对保护站点访问流量进行学习,监控出正常的访问请求,建模生成白名单规则,当WAF检测到违反现有模型的行为时将进行阻断或预警。
访问控制
访问控制是针对部分URL只允许特定的IP进行访问,主要用于一些保护站点的管理页面,只能允许管理员的IP进行访问的场景,通俗讲就是对针对某些特定URL的黑、白名单控制的功能。
IP白名单
WAF可以设置IP白名单,对名单中的ip访问站点时不进行规则检测,以达到快速放行的目的。
流量控制
流量控制是指针对某些URL进行单IP的访问速度限制,主要用于单IP下载限流,防止某个IP在下载保护站点资源时占用所有下载资源,导致其它用户无法下载或者访问,从而保证保护站点资源的可持续性和稳定性。
页面压缩
WAF支持对请求资源进行压缩,减少网络数据传输量,加快传输速度。
信息脱敏
对保护站点中返回的敏感信息进行过滤隐藏,如手机号、身份证号、银行卡号等,还支持自定义敏感词。
CC防护
CC攻击即攻击者控制某些主机不停地发送大量数据包给对方服务器导致服务器资源耗尽,一直到宕机崩溃。WAF所做的防护是对单个连接请求的速率和连接数进行控制,达到减轻CC攻击效果。
CSRF防护
CSRF攻击即攻击者诱导他人点击带有特定请求的链接等,盗用他人的身份授权完成攻击请求;WAF中CSRF防护的校验方式有请求方法校验和Refer校验。
Cookie防护
Cookie防护功能对网络报文中传输的cookie信息进行保护,采用对cookie进行签名的方式防护cookie篡改和劫持。
水印防篡改
WAF支持针对静态页面的防篡改,根据网页生成水印信息,使水印与网页有高度的相关性。当对保护站点发起请求时,waf会根据保护站点返回的网页与水印进行校验,不一致时进行防护。
自定义规则
自定义规则属于其他防护,用户可以根据已知的威胁自定义防护规则,可通过添加或批量导入的方式配置自定义规则。