第一代各種Web應用防火墻的缺陷匯總 0x01 部署 a.偽透明模式:第一代的WAF大多只能支持200個Web以下,或者同一個D類子網(wǎng)內(nèi)的透明,。無法做到網(wǎng)線級別的透明。第一代多數(shù)為偽透明部署(需要設置IP地址,、端口,、域名等信息),無法做到自適應(接入即可防護),。 b.極少有支持路由模式的:第一代的WAF多數(shù)沒有這個功能,。路由模式可以只將HTTP流量給WAF檢測。比如出口是1000Mbps的,,而Web帶寬只有100Mbps,,如果不支持路由模式,就只能浪費的去使用1000Mbps的設備,。 c.雞肋的代理模式:這個幾乎都有的功能,,性能之差可想而知,一次請求要建2次連接,。并發(fā)數(shù)降低一半,,帶寬消耗增加一倍,非常不好,。 0x02 檢測手段 a.IPS修改而來:基本依賴字符串匹配與正則表達式,,修改國外SNORT的引擎而來,解碼不完善,、效率極低,。Unicode編碼的幾乎很少有支持的。數(shù)據(jù)包碎片很容易繞過檢測引擎,。 b.基于策略:國外廠商比較喜愛,,但配置及其復雜,網(wǎng)頁個數(shù)多的情況下,,性能呈幾何方式下降,。在一個超過30個網(wǎng)站的網(wǎng)絡里,幾乎不可用,。利用一些CMS的漏洞,,很容易繞過國外廠商此種WAF的檢測。 0x03規(guī)則 a.簡單的字符串過濾規(guī)則:比如把select,、insert等加為過濾關鍵字,,一旦遇到此種字符串就視為攻擊,誤報極為嚴重,。繞過方法也很簡單,,稍微大小寫變化即可,比如寫成:sEleCt,,INsErT,。有的甚至把一個短語寫好多種寫法,,比如and,規(guī)則寫6條AND/aND/AnD/And/anD/aNd,。如果一個短語很長,,這種規(guī)則如何匹配呢? b.規(guī)則過多:無用規(guī)則占多數(shù),,檢測速度極為緩慢,。如有的廠商采用美國開源的“SNORT”或者“MOD_SECURITY”規(guī)則,規(guī)則數(shù)量很多,,但誤報嚴重,,有的甚至為雞肋。國內(nèi)CMS的漏洞無法防御,。 0x04 性能,。 a.每秒處理HTTP請求數(shù):熟話說“外行看熱鬧,內(nèi)行看門道”,。很多人都認為吞吐量的大小是評價WAF性能的指標,,比如是200Mbps還是1000Mbps。在請求量低的情況下,,一個偽千兆口的“百兆WAF”一般都可以吞吐700Mbps的數(shù)據(jù)量,。實際上“每秒處理HTTP請求數(shù)”才是衡量WAF的關鍵指標。有的廠商,,甚至把每秒請求數(shù)在1萬的WAF當千兆的產(chǎn)品來慢,,實際其真正能力只在兩百兆左右。一個千兆的WAF,,每秒處理HTTP請求數(shù)量至少得在5萬以上,,才可能真正可以處理大量的請求。 b.客戶并發(fā)數(shù)低:很多WAF都是采用反向代理或者透明反向代理的工作方式,。這些方式下,,并發(fā)數(shù)都很難高于2萬,國外(俄羅斯)性能最好的反向代理服務器也只能達到2.5萬并發(fā),,所以采用反向代理的WAF并發(fā)數(shù)低就不足為奇了,。一旦并發(fā)超過2萬,網(wǎng)絡立即拒絕服務,。 |