什么是WAF,WAF可以防御哪些攻击?

时间:2021-3-19

什么是WAF?

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

WAF可以防御哪些攻击?

Web应用防火墙可以防止Web应用免受各种常见攻击,比如SQL注入,跨站脚本漏洞(XSS)等。WAF也能够监测并过滤掉某些可能让应用遭受DOS(拒绝服务)攻击的流量。WAF会在HTTP流量抵达应用服务器之前检测可疑访问,同时,它们也能防止从Web应用获取某些未经授权的数据。

其中几种比较常见的攻击类型如下:

1、跨站脚本漏洞(XSS)

攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入在Web页面里的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS大概分为两类:

反射型攻击。恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击。

存储型攻击。恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见的场景是在博客,论坛等社交网站上。

XSS攻击能够:

获取用户Cookie,将用户Cookie发送回黑客服务器。

获取用户的非公开数据,比如邮件、客户资料、联系人等。

2、SQL注入

通过在目标数据库执行可疑SQL代码,以达到控制Web应用数据库服务器或者获取非法数据的目的。SQL注入攻击可以用来未经授权访问用户的敏感数据,比如客户信息、个人数据、商业机密、知识产权等。

SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。比如查询?id=1,如果不对输入的id值1做检查,可以被注入?id=1 or 1=1从而得到所有数据。

SQL注入的产生原因通常表现在以下几方面:

不当的类型处理。

不安全的数据库配置。

不合理的查询集处理。

不当的错误处理。

转义字符处理不合适。

多个提交处理不当。

3、Cookie篡改

Cookie篡改是攻击者通过修改用户Cookie获得用户未授权信息,进而盗用身份的过程。攻击者可能使用此信息打开新账号或者获取用户已存在账号的访问权限。

很多Web应用都会使用Cookie保存用户的Session信息,当用户使用Cookie访问该应用时,Web应用能够识别用户身份,监控用户行为并提供个性化的服务。而如果Cookie的使用缺乏安全机制的话,也很容易被人篡改和盗用,并被攻击者用来获取用户的隐私信息。

4、未经验证的输入

Web应用往往会依据HTTP的输入来触发相应的执行逻辑。而攻击者则很容易对HTTP的任何部分做篡改,比如URL地址、URL请求参数、HTTP头、Cookies等,以达到攻破Web应用安全策略的目的。

5、网页信息检索(Web scraping)

通过一些工具来获取网页内容,并从中提炼出有用的网站数据信息。

WAF和DDos

DDos的全称是Distributed Denial of service。主要依靠一组计算机来发起对一个单一的目标系统的请求,从而造成目标系统资源耗尽而拒绝正常的请求。

根据OSI的7层网络模型,网络可以从上到下分为:

第七层:应用层,SMTP,HTTP,DNS等各种协议。

第六层:表示层,信息的语法语义以及他们的关联,如加密解密,压缩解压缩。

第五层:会话层,建立和维持连接,。

第四层:传输层,TCP,UDP。

第三层:网络层,IP和路由。

第二层:数据链路层,MAC地址。

第一层:物理层,基于光纤的信号。

从上图可以发现,数据的发送是从第七层发起,逐层往下传输,并最终回到第七层的。

根据OSI网络模型,最常见的DDos有三类,第三层(网络层)DDos、第四层(传输层)DDos和第七层(应用层)DDos。

第三层DDOs,基于IP的攻击。IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。利用IP报文分片后重组的重叠现象攻击服务器,进而引起服务器内核崩溃。

第四层DDos,基于TCP的攻击。SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。

第七层DDos,基于应用层的攻击。基于应用层的DDos攻击会更复杂,处理起来更棘手。这类攻击往往会模仿用户和Web应用之间的交互行为,增加判断的难度。

WAF主要处理第七层DDos攻击,它在处理第七层DDos攻击时会比其它防护手段更高效一些。WAF会对HTTP流量做详细的分析,这样WAF就能针对正常的访问请求进行建模,然后使用这些模型来区分正常的请求和攻击者使用机器人或者脚本触发的请求。

WAF和传统防火墙的区别

传统防火墙主要用来保护服务器之间传输的信息,而WAF则主要针对Web应用程序。网络防火墙和WAF工作在OSI7层网络模型的不同层,相互之间互补,往往能搭配使用。

网络防火墙工作在网络层和传输层,它们没有办法理解HTTP数据内容,而这个正式WAF所擅长的。网络防火墙一般只能决定用来响应HTTP请求的服务器端口是开还是关,没办法实施更高级的、和数据内容相关的安全防护。

总结

WAF是Web应用不可缺少的基础安全组件之一,能帮助我们预防一些常见的攻击手段。部署磐云后就能自动完成WAF的接入和使用,极大地降低了WAF的使用门槛。我们很难有理由在使用云服务时拒绝使用WAF服务。

参考:https://zhuanlan.zhihu.com/p/97396469