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