第一代各种Web应用防火墙的缺陷汇总 0x01部署 a.伪透明模式:第一代的WAF大多只能支持200个Web以下,或者同一个D类子网内的透明。无法做到网线级别的透明。第一代多数为伪透明部署(需要设置IP地址、端口、域名等信息),无法做到自适应(接入即可防护)。 b.极少有支持路由模式的:第一代的WAF多数没有这个功能。路由模式可以只将HTTP流量给WAF检测。比如出口是1000Mbps的,而Web带宽只有100Mbps,如果不支持路由模式,就只能浪费的去使用1000Mbps的设备。 c.鸡肋的代理模式:这个几乎都有的功能,性能之差可想而知,一次请求要建2次连接。并发数降低一半,带宽消耗增加一倍,非常不好。 0x02检测手段 a.IPS修改而来:基本依赖字符串匹配与正则表达式,修改国外SNORT的引擎而来,解码不完善、效率极低。Unicode编码的几乎很少有支持的。数据包碎片很容易绕过检测引擎。 b.基于策略:国外厂商比较喜爱,但配置及其复杂,网页个数多的情况下,性能呈几何方式下降。在一个超过30个网站的网络里,几乎不可用。利用一些CMS的漏洞,很容易绕过国外厂商此种WAF的检测。 0x03规则 a.简单的字符串过滤规则:比如把select、insert等加为过滤关键字,一旦遇到此种字符串就视为攻击,误报极为严重。绕过方法也很简单,稍微大小写变化即可,比如写成:sEleCt,INsErT。有的甚至把一个短语写好多种写法,比如and,规则写6条AND/aND/AnD/And/anD/aNd。如果一个短语很长,这种规则如何匹配呢? b.规则过多:无用规则占多数,检测速度极为缓慢。如有的厂商采用美国开源的“SNORT”或者“MOD_SECURITY”规则,规则数量很多,但误报严重,有的甚至为鸡肋。国内CMS的漏洞无法防御。 0x04性能。 a.每秒处理HTTP请求数:熟话说“外行看热闹,内行看门道”。很多人都认为吞吐量的大小是评价WAF性能的指标,比如是200Mbps还是1000Mbps。在请求量低的情况下,一个伪千兆口的“百兆WAF”一般都可以吞吐700Mbps的数据量。实际上“每秒处理HTTP请求数”才是衡量WAF的关键指标。有的厂商,甚至把每秒请求数在1万的WAF当千兆的产品来慢,实际其真正能力只在两百兆左右。一个千兆的WAF,每秒处理HTTP请求数量至少得在5万以上,才可能真正可以处理大量的请求。 b.客户并发数低:很多WAF都是采用反向代理或者透明反向代理的工作方式。这些方式下,并发数都很难高于2万,国外(俄罗斯)性能最好的反向代理服务器也只能达到2.5万并发,所以采用反向代理的WAF并发数低就不足为奇了。一旦并发超过2万,网络立即拒绝服务。 |