一、什么是Waf?
Waf的全拼为:Web Application Firewall,顾名思义Waf是一款专针对Web应用攻击的防护产品。当Web应用越来越丰富的同时,大部分交互都转移到了Web上,与此同时Web也成为了主要的攻击目标,此时Waf就成为了安全防护中的第一道防线,Waf在安全中的重要性不言而喻。
二、Waf形态分类
目前市面上的Waf的形态可以简单分类为三种,分别为:
硬件Web防火墙
Web防护软件
云Waf
硬件Waf通常的安装方式是将Waf串行部署在Web服务器前端,用于检测、阻断异常流量。
常规硬件Waf的实现方式是通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。
软件Waf则是安装在需要防护的服务器上,实现方式通常是Waf监听端口或以Web容器扩展方式进行请求检测和阻断。
云Waf是近年来随着云计算的推动衍生出来的新产品,云WAF,也称WEB应用防火墙的云模式,这种模式让用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。
三、优缺点总结
面对不同形态的Waf,那么作为网站运营方,该如何选择适合自己的Waf呢?不同形态的Waf各有各的长处,但也有各自的缺点。
硬件Waf之利(一):部署简易,即插即用
硬件Waf只需串联到交换机上,进行简单的配置后即可实现Web安全防护
硬件Waf之利(二):可承受较高的吞吐量
由于硬件防火墙基于硬件设备实现,一般情况下可承受较高的数据吞吐量
硬件Waf之利(三):防护范围大
由于硬件防火墙直接串联到了交换机,所以在同一个交换机下的所有服务器,都处于防火墙的防护范围之类
说完了优点,我们来说说弊端。
硬件Waf之弊(一):价格昂贵
目前安全行业中的硬件Waf,价格对于中小企业来说过于昂贵,动辄便是几十万甚至几百万
硬件Waf之弊(二):存在一定误杀
由于硬件Waf是通过攻击规则库对异常流量进行识别,所以在业务系统复杂的情况下,可能存在一定误杀导致正常功能被防火墙拦截导致影响正常业务
硬件Waf之弊(三):存在一定绕过几率
硬件防火墙对HTTP协议进行自行解析,可能存在与Web服务器对HTTP请求的理解不一致从而导致被绕过
以上客观描述了硬件防火墙有优缺点,欢迎补充。
我们再来看看软件Waf又有哪些优缺点。
软件Waf之利(一):开箱即用,廉价甚至免费
目前国内的软件Waf,如安全狗、网站安全卫士等皆有免费版,下载安装后简单配置即可使用。
软件Waf之利(二): 管理方便,界面友好
目前行业中的软件Waf提供友好的查看、管理界面,使得即使是非技术人员也能通过软件管理服务器的安安全状态
软件Waf之利(三):功能丰富
使用软件实现的Waf除了实现对Web应用的防护功能之外,还存在其他丰富的安全功能,如扫描恶意木马文件、防篡改、服务器优化、备份等等功能,这些功能对于不了解网站技术的人来说提供了便捷
软件Waf之弊(一):误杀&漏报特性
软件Waf对HTTP协议实现了自解析,无法和容器背后的Web应用保持对协议的理解一致,在误杀和漏报之间不能很好的平衡,解析太过细化又存在Waf可轻易被欺骗导致绕过的特点,防御太过严谨又可能会导致影响正常业务运行
软件Waf之弊(二):占用内存过多
由于软件Waf要实现对每个请求的解析、识别,可能会存在占用服务器内存过多的情况
软件Waf之弊(三):只适合中小型网站
由于软件Waf需要单台服务器部署,并且可能存在影响正常业务的风险和被绕过的风险,不适合大型的网络的安全防护使用
那么今年来的新产品,云Waf又表现如何呢?
云Waf之利(一):部署简单,维护成本低
这也是云Waf最有价值和受用户喜爱的一点,无需安装任何软件或者部署任何硬件设备,只需修改DNS即可将网站部署到云Waf的防护范围之内
云Waf之利(二):用户无需更新
云Waf的防护规则都处于云端,新漏洞爆发时,由云端负责规则的更新和维护,用户无需担心因为疏忽导致受到新型的漏洞攻击
云Waf之利(三):可充当CDN
云Waf在提供防护功能的同时,还同时具有CDN的功能,在进行防护的同时还可以提高网站访问的速率,CDN通过跨运营商的多线智能解析调度将静态资源动态负载到全国的云节点,用户访问某个资源时会被引导至最近的云端节点从而提高访问速度
以上优点,让部分用户对云Waf产生“钟爱之情”但是从安全的专业角度,云Waf同样存在一些严重的问题。
云Waf之弊(一):存在轻易被绕过的风险
云Waf的主要实现原理是通过将用户的DNS解析到云节点实现防护,这样一来,如果黑客通过相关手段获取了服务器的真实IP地址,然后强制解析域名,就可以轻松绕过云Waf对服务器发起攻击
云Waf之弊(二):可靠性低
云Waf处理一次请求,其中需要经过DNS解析、请求调度、流量过滤等环节,其中涉及协同关联工作,其中只要有一个环节出现问题,就会导致网站无法访问。必要时,只能手动切换为原DNS来保证业务正常运行,而域名解析需要一定时间,则会导致网站短时间无法正常访问
云Waf之弊(三):保密性低
网站访问数据对于一些企业、机构来说为保密数据,里面可能包含用户的隐私或者商业信息,这些数据自行管控会相对安全,但是如果使用Waf,所有的数据会记录到云端,这相当于数据被别人保管,可能存在一定的泄露风险
分析利弊后,我们发现云Waf目前只适用于安全需求较低的中小型企业或者个人网站,对于安全需求较高的网站,如政府、金融、运营商等,云Waf无法满足相关要求,所以广大网站管理者,需要根据自身实际情况来选择合适的安全产品和服务
四、Web防护之更好的选择RASP
RASP 英文为 Runtime application self-protection,它将保护程序像疫苗一样注入到应用程序和应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遇到特定漏洞和攻击时不需要人工干预就可以进行自动重新配置应对新的攻击。
这意味着,RASP 运行在程序执行期间,使程序能够自我监控和识别有害的输入和行为。
其实,RASP 不同于传统的安全技术仅在网络周边或者终端设备上进行保护,它能够让应用程序具备自我保护能力。而实时是 RASP 非常重要的特点,因为拥有应用程序的上下文,它不仅可以分析应用程序的行为也可以结合上下文对行为进行分析,而且这些能持续不断的进行分析,一旦发现有攻击行为能立刻进行响应和处理。
而WAF 无法检查应用程序的漏洞,更无法解决已知漏洞。它不了解应用程序,不能深入到数据流里探测系统特有的问题,比如 SQL 注入。每个数据库的 SQL 语言都有诸多不同,WAF 无法防范针对具体数据库的 SQL 注入之攻击行为。
实时应用程序自我保护(RASP)继承了 WAF 的大部分功能,使应用程序很好地保护自己。RASP 会监听每一个与应用程序交换的节点,覆盖所有应用程序的访问节点,包括:用户、数据库、网络和文件系统。
因为了解应用程序的上下文,RASP 完全清楚应用程序的输入输出,因此它可以根据具体的数据流定制合适的保护机制,从而可以达到非常精确的实时攻击识别和拦截。
RASP 在可疑行为进入应用程序时并不拦截,而是先对其进行标记,在输出时再检查是否为危险行为,从而尽量减少误报和漏报的概率。这对精确性要求极高的银行、金融体系的应用程序保护尤其重要,因为这些应用程序对性能和可用性要求非常高。
RASP的优点可总结为:
RASP之利(一):误报率低
不同于 WAF,RASP 不依赖于分析网络流量去寻找问题,除了发现漏洞或发现攻击行为,它通常不会发出任何声音。这样能极大地减少误报率。RASP 能非常精确地区分攻击和合法输入,而 WAF 很多时候无法做到,这大大减少了专门请人分析结果的成本,也不需要扫描修复的过程。
RASP之利(二):维护成本低
WAF 的安装过程非常复杂,需要非常精确的配置以尽可能广的覆盖应用程序。为了获得更好的效果,几乎每次 Web 应用程序发布新版时都需要对管理员进行「培训」并对 WAF 进行针对性的重新配置。但大多数企业都无法做得这么及时与完善,这就可能导致大量的误报与性能问题。与之相对,RASP 几乎可以做到开箱即用,只需要非常简单的配置就可以使用。这得益于RASP 与应用程序融为一体的特性,在应用程序内部监控实时数据。
RASP之利(三):极高的覆盖度和兼容性
RASP 安全系统可以应用到任何可注入的应用程序,能处理绝大多数的网络协议:HTTP、 HTTPS、AJAX、SQL 与 SOAP。而 WAF 通过监控网络流量提供保护,因此只支持 Web 应用程序(HTTP)。此外,WAF 需要特定的解析器、协议分析工具或其他组件来分析应用程序使用的其他网络协议,这会导致一些兼容性与性能问题。
RASP之利(四):更全面的保护
WAF 在分析与过滤用户输入并检测有害行为方面还是比较有效的,但是对应用程序的输出检查则毫无办法。RASP 不但能监控用户输入,也能监控应用程序组件的输出,这就使 RASP 具备了全面防护的能力。RASP 解决方案能够定位 WAF 通常无法检测到的严重问题——未处理的异常、会话劫持、权限提升和敏感数据披露等等。Gartner 分析师 Joseph 很清楚地描述了这一点。
RASP弊端(一):部署困难,需单个部署
RASP针对的是应用程序,每个应用都需要单独部署安装,不能像硬件防火墙只需要在入口部署即可,这个特性增加了部署的难度从而可能导致防范不全的风险
RASP弊端(二):可能影响服务器性能
对系统性能的影响,RASP 实时拦截,深入检测用户数据流,这是对精确度和误判率都有很大的帮助,但是对用户性能有一些影响,这些性能消耗也必然影响到用户的体验,这也是影响企业客户部署 RASP 的很大一方面原因。现在 RASP 的提供商在优化方面做了很大努力,大部分 RASP 对性能影响在5%左右
最后使用 RASP 并不是真正建立一个安全的应用,系统中存在的漏洞还是存在,应用了 RASP 后临时提供一个虚拟补丁修补上已知漏洞,当不用 RASP 后这些漏洞还是存在。另外 RASP 也不能修复所有的漏洞,漏洞时刻在更新。企业应该将 RASP 和扫描工具结合起来将更有价值。RASP 软件提供商也应该提供实时漏洞更新功能,实现真正零日攻击防御。
五、Web防护之未来畅想
传统的Waf目前大部分都是基于规则库来实现识别恶意攻击请求,即使是RASP技术,也利用了规则来实现,只不过RASP做了更多其他的尝试,尝试通过更多的维度来识别攻击。
关于WAF防护,应该做更多的技术尝试来实现防护。未来的防护应该可以研究以下几个技术方向:
1.机器学习
利用SVM、HMM、贝叶斯分类、HMM等算法进行大量样本训练,实现正常请求与攻击请求的识别,从而实现安全防护
2.词法分析
通常用户传入一般为正常数据,而攻击者为了实现攻击的目的则会使用各类攻击手法,此时请求语句中必定包含特定的攻击荷载,通过对用户请求的对应的解析编译,如果用户传入的数据都被解析至对应的层,如数据库层(SQL)、代码层(PHP/JAVA/.NET)、浏览器层(Javascript),则说明为恶意请求
3.行为识别
一般正常用户的行为是收束、统一并且一成不变的,而攻击者的行为则是一些稀有的行为,如执行命令、大量请求数据、下载敏感文件,此时我们可以通过监控一个请求进入容器到响应出去,中间都进行了哪些行为,然后根据白名单和黑名单的方式定义行为是否为恶意来识别攻击行为
4.大数据关联分析
在通常的防护体系中,一般都存在信息孤岛,各个维度的数据没有互相关联,我们可以通过构建一个关联分析系统,将Web应用日志、Web容器日志、数据库日志、代码执行链等各个层面的信息收集到一起进行关联分析从而实现恶意行为识别