由于WEB应用防火墙(WAF)的名字中有“防火墙”三个字,因此很多人都会将它与传统防火墙混淆。实际上,二者之间的有着很大的差别。传统防火墙专注在网络层面,提供IP、端口防护。而WAF是专门为保护基于Web的应用程序而设计的,它不像传统的防火墙基于互联网地址和端口号来监控和阻止数据包。WAF检查每一个传入的数据包的内容来检测SQL注入、跨站点脚本、会话劫持、篡改参数或URL等类型的攻击。
WAF与传统防火墙之间的区别
一、直观差异
WAF和传统防火墙位于网络上的不同位置。传统防火墙位于网络边缘,而WAF直接位于用户和Web服务器之间。
二、功能差异
传统防火墙保护网络外围并使用协议信息过滤流量。你可以根据IP范围、端口、ICMP(Internet控制消息协议)类型等设置允许通信的规则。它从打开连接到关闭都会监视活动。
优点:阻止未经授权的协议、端口和IP地址,提供VPN支持。
缺点:只有接受/拒绝规则,无法解密流量,在单独部署SSL、IDS和IPS时检查速度变慢,不擅长阻止“客户端”攻击,只能看到数据包头,从而容易受到SQL注入攻击。
WAF保护网站和API。它被配置为反向代理,并在所有HTTP(s)请求到达Web服务器之前检查它们。它通过验证码测试拦截或测试不规则流量,以确保流量来自人类而不是机器人。
优点:可定制的规则、条件过滤、限制上传大小、可以解密和检查SSL流量、可以集成IDS和IPS、可以查看数据包数据。
缺点:共享服务器可能导致再次感染,针对这点建议说使用独享服务器,在各个方面都是会有一定的安全性保障。
三、操作差异
传统防火墙防御用于抵御下类威胁:
1.未经授权的网络访问
2.中间人攻击
3.权限提升
4.网络层面的DDoS攻击
WAF用于抵御下类威胁:
1.SQL注入
2.跨站脚本(XSS)
3.跨站伪造
4.网站级别的 DDoS 攻击
5.目录遍历
四、算法差异
传统防火墙运行无状态/有状态检查算法、数据包过滤算法和代理算法。WAF运行基于签名的算法、启发式算法和异常检测算法。
传统防火墙的功能,主要是及时提醒和处理计算机运行中可能存在的安全风险和数据传输等问题,所以传统防火墙在应用层不起作用,它主要针对的是OIS模型的第三、四层,即网络层和传输层。因此,传统防火墙自然无法理解web应用程序的编程语言,比如HTML、SQL等等,也就无法理解http会话,从而无法应对SQL注入、跨站脚本、网页篡改等应用层的攻击。而Web应用防火墙是专门为保护基于WEB的应用程序而设计的,主要作用于OSI模型第七层的应用层,旨在填补传统防火墙无法解决的安全漏洞。因此,传统防火墙和WAF相互之间互补,往往能搭配使用。