第一代各種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萬,網絡立即拒絕服務。
|