WAF vs防火墙

我正在阅读有关防火墙的知识,并且遇到了两个让我困惑的概念 – Web应用防火墙和“常规”防火墙。 我不完全确定这些差异是什么 – 他们听起来像是完成了同样的事情。 有谁知道区别?

谢谢!

一个“常规”的防火墙通常只能看OSI模型的第3层和第4层。 例如,要允许TCP端口80,只允许来自特定IP地址的UDP端口53,或拒绝TCP端口25。

对于HTTP请求,一旦“允许TCP端口80”障碍被清除,防火墙对通过该连接传递的内容不感兴趣。


Web应用程序防火墙几乎专门用于第7层,处理HTTP请求内容的安全性。

主要是,他们正在寻求阻止超出应用程序预期的请求,使用应用于传入HTTP请求的规则来防止跨站点脚本,SQL注入,目录遍历或蛮力身份validation尝试等攻击。 本质上,它们的全部目的是屏蔽Web服务器免受攻击者可能用来危害您的Web应用程序的各种操纵和恶意请求。

一个非常快速和肮脏的答案是,Web应用程序防火墙是专门devise用来保护Web应用程序事务的防火墙(设备和/或软件),例如HTTP(s)查询,数据库查询,以及可能与Web应用程序堆栈相关的其他stream量。

但是要详细阐述一下:

“标准”防火墙(即正常OSI第4层防火墙)基于协议信息(例如IP,TCP,UDP和ICMP)进行过滤。 您可以在防火墙中设置规则,以允许基于IP范围,TCP端口,ICMPtypes等。 这通常是您将find的最准系统的防火墙types。

相当大部分的防火墙(在撰写本文时)还包括OSI模型中较高的检测function – 这些可以和/或将检查穿过防火墙的实际协议stream量。 这个例子就是AIM,HTTP,SQL,Jabber等等。 有些人只会检查潜在的攻击 – 其他人则允许你更多地从粒度上定义该协议中消息的特定属性的允许/拒绝规则。 较高级别的检查和规则库的用处往往受到制造/模型的限制。

Web应用程序防火墙(或WAF)就像后者一样是一个防火墙 – 也就是说,它在OSI堆栈中的工作更高,但意味着对通信stream进行应用程序级别的检查,并专门针对Web应用程序业务空间。 大多数WAF(但不是全部)并不是要取代传统的防火墙,而是要加强它。 通常,WAF以两种不同的模式工作 – 被动检查和“主动”模式。 被动模式只是监听stream量,并可以警告是否发现任何已知的“不良”stream量。 主动模式可以有效地阻止“坏”的stream量发现,同时允许“良好”的stream量通过networking应用程序。 供应商通常也提供一个订阅服务,允许WAF保持已知漏洞的清单是最新的。

大多数WAF和标准防火墙可以做基本相同的事情 – 在两个networking之间创build一个边界,并根据一系列规则来允许或拒绝stream量。 主要区别在于WAF专门用于帮助保护Web应用程序,其中大部分不代替传统的防火墙。

我之前说过的大多数(但不是全部) – 有一个术语/stream行词/ marketspeak – 称为NG防火墙(或“下一代”防火墙)。 这些东西的目的是作为类固醇的防火墙。 他们做你的标准防火墙function,但也执行function,使许多单独的设备做 – 例如防火墙,病毒检测,networking应用程序防火墙,聊天/消息过滤,和其他应用程序协议的防火墙。 我没有testing任何YMMV; 我只是把它作为一个设备的例子,意味着要做到这两个function,并努力做到这一点。