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