IPS(入侵防護(hù)系統(tǒng))與WAF(Web應(yīng)用防護(hù)系統(tǒng))的區(qū)別
IPS(入侵防護(hù)系統(tǒng))和WAF(Web應(yīng)用防護(hù)系統(tǒng))兩款產(chǎn)品有不同的使用場景,隨著Web應(yīng)用發(fā)展帶來的復(fù)雜度,對安全性要求也日趨增高,Waf的出現(xiàn)是順應(yīng)了市場和技術(shù)的需要。
Web應(yīng)用防護(hù)無疑是一個熱門話題。由于技術(shù)的發(fā)展成熟和人們對便利性的期望越來越高,Web應(yīng)用成為主流的業(yè)務(wù)系統(tǒng)載體。在Web上“安家”的關(guān)鍵業(yè)務(wù)系統(tǒng)中蘊(yùn)藏的數(shù)據(jù)價值引起攻擊者的青睞,網(wǎng)上流傳的Web漏洞挖掘和攻擊工具讓攻擊的門檻降低,也使得很多攻擊帶有盲目和隨機(jī)性。比如利用GoogleHacking原理的批量查找具有已知漏洞的應(yīng)用程序,還有SQL批量注入和掛馬等。但對于重要的Web應(yīng)用(比如運(yùn)營商或金融),始終有受利益驅(qū)動的黑客進(jìn)行持續(xù)的跟蹤。
如果說傳統(tǒng)的“大而全”安全防護(hù)產(chǎn)品能抵御大多數(shù)由工具產(chǎn)生的攻擊行為,那么對于有針對性的攻擊行為則力不從心。而WAF正是應(yīng)需求而生的一款高端專業(yè)安全產(chǎn)品,這也是市場需求細(xì)化的必然趨勢。但由于其部署和功能方面與IPS有類似,有人提出疑問,為什么不能用IPS,或者說WAF與IPS有什么異同?誰更適合保護(hù)Web服務(wù)器?
這些疑問其實(shí)是有道理的,差異化的產(chǎn)生在于高端需求是不同的,從而需要細(xì)化功能貼合具體需求和符合應(yīng)用現(xiàn)狀的產(chǎn)品,這也是用戶需求是隨著業(yè)務(wù)自身的發(fā)展所決定的。
保鏢和保安
為了更好的理解兩款產(chǎn)品差異性,我們先用這個保鏢(WAF)和保安(IPS)比喻來描述。
大樓保安需要對所有進(jìn)出大樓人員進(jìn)行檢查,一旦發(fā)現(xiàn)可疑人員則禁止他入內(nèi),但如果混進(jìn)“貌似忠良”的壞人去撬保險柜等破壞行為,大樓保安是無能為力的。
私人保鏢則是指高級別、更“貼身”的保護(hù)。他通常只保護(hù)特定的人員,所以事先需要理解被保護(hù)人的身份、習(xí)慣、喜好、作息、弱點(diǎn)等,因?yàn)楸槐Wo(hù)人的工作是需要去面對不同的人,去不同的場合,保鏢的職責(zé)不能因?yàn)槲kU就阻止、改變他的行為,只能去預(yù)見可能的風(fēng)險,然后量身定做合適的保護(hù)方案。
這兩種角色的區(qū)別在于保安保護(hù)的是整個大樓,他不需要也無法知道誰是最需要保護(hù)的人,保鏢則是明確了被保護(hù)對象名單,需要深刻理解被保護(hù)人的個性特點(diǎn)。
通過上面的比喻,大家應(yīng)該明白兩者的之所以會感覺相似是因?yàn)槁氊?zé)都是去保護(hù),但差異在于職能定位的不同。從技術(shù)原理上則會根據(jù)定位來實(shí)現(xiàn)。下面通過幾個層面來分析WAF和IPS的異同。
事件的時間軸
對于安全事件的發(fā)生,有三個時間點(diǎn):事前、事中、事后。傳統(tǒng)的IPS通常只對事中有效,也就是檢查和防護(hù)攻擊事件,其他兩個時間點(diǎn)是WAF獨(dú)有的。
事前是指能在事件發(fā)生之前通過主動掃描檢測Web服務(wù)器來發(fā)現(xiàn)漏洞,通過修復(fù)Web服務(wù)器漏洞或在前端的防護(hù)設(shè)備上添加防護(hù)規(guī)則等積極主動手段來預(yù)防事件發(fā)生。事后則是指即使Web服務(wù)器被攻擊了,也必須有網(wǎng)頁防篡改功能,讓攻擊者不能破壞網(wǎng)站數(shù)據(jù)。
為什么不能具備事中的100%防護(hù)能力?其實(shí)從以下幾個方面就知道對于事中只能做到相對最佳防護(hù)而不能絕對,因?yàn)椋?/p>
1. 軟件先天是有缺陷的,包括應(yīng)用到第三方的組件和函數(shù)庫無法控制其安全性;
2. 應(yīng)用程序在更新,業(yè)務(wù)是持續(xù)發(fā)展的、動態(tài)的,如果不持續(xù)監(jiān)控和調(diào)整安全策略,也是會有疏漏的;
3. 攻擊者永遠(yuǎn)在暗處,可以對業(yè)務(wù)系統(tǒng)跟蹤研究,查找漏洞和防護(hù)缺陷,用各種變形繁雜的手法來探測,并用于攻擊;
4. 任何防護(hù)設(shè)備都難以100%做到?jīng)]有任何缺陷,無論是各種算法還是規(guī)則,都是把攻擊影響降低到最小化。
所以需要用一個可閉環(huán)又可循環(huán)的方式去降低潛在的威脅,對于事中疏漏的攻擊,可用事前的預(yù)發(fā)現(xiàn)和事后的彌補(bǔ),形成環(huán)環(huán)相扣的動態(tài)安全防護(hù)。事前是用掃描方式主動檢查網(wǎng)站并把結(jié)果形成新的防護(hù)規(guī)則增加到事中的防護(hù)策略中,而事后的防篡改可以保證即使疏漏也讓攻擊的步伐止于此,不能進(jìn)一步修改和損壞網(wǎng)站文件,對于要信譽(yù)高和完整性的用戶來說,這是尤為重要的環(huán)節(jié)。
如果僅僅是對于事件的時間軸有區(qū)別,那么還是可以采用其他產(chǎn)品來進(jìn)行輔助,但關(guān)鍵的是事中的防護(hù)也是有深度的差異,那么下面我們來談?wù)剬τ谑轮械牟町悺?/p>
縱深度差異
事中,也就是實(shí)時防護(hù),兩者的區(qū)別在于一個是縱橫度,一個是深度。IPS凸顯的優(yōu)勢在于縱橫度,也就是對于網(wǎng)絡(luò)中的所有流量進(jìn)行監(jiān)管,它面對的是海量數(shù)據(jù),處理TCP/IP模型中網(wǎng)絡(luò)流量從物理層到應(yīng)用層是逐層遞交,IPS主要定位在分析傳輸層和網(wǎng)絡(luò)層的數(shù)據(jù),而再往上則是復(fù)雜的各種應(yīng)用層協(xié)議報文,WAF則僅提供對Web應(yīng)用流量全部層面的監(jiān)管。
監(jiān)管層面不同,如果面對同樣的攻擊,比如SQL注入,它們都是可以防護(hù)的,但防護(hù)的原理有區(qū)別,IPS基本是依靠靜態(tài)的簽名進(jìn)行識別,也就是攻擊特征,這只是一種被動安全模型。如下是一個Snort的告警規(guī)則:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:“SQL Injection - Paranoid”; flow:to_server,established;uricontent:“.asp”;pcre:“/(\%27)|(\‘)|(\-\-)|(%23)|(#)/i”; classtype:Web-application-attack; sid:9099; rev:5;
這里主要是檢查在SQL注入中提交的元字符,包括單引號( ' )和雙橫( -- ),從而避免注入'1 or 1=1—之類的攻擊發(fā)生,但同時又要考慮這些元字符轉(zhuǎn)換成Hex值來逃脫過濾檢查,于是又在規(guī)則里增加了其對應(yīng)的十六進(jìn)制編碼后的字符串。
當(dāng)然,要從簽名特征來識別攻擊要考慮的東西還很多,不僅元字符還有SQL關(guān)鍵字,包括:select insert update等,以及這些關(guān)鍵字的大小寫變形和拼接,利用注釋逃脫過濾,如下所示例:
使用大小寫混雜的字符:SeLecTfRom“
把空格符替換為TAB符或回車符:select[TAB]from
關(guān)鍵詞之間使用多個空格:select from
字符串的數(shù)值編碼:0x414141414141 或 0x41004100410041004100
插入被數(shù)據(jù)庫忽略的注釋串:sel/**/ectfr/**/om select/**/ from
使用數(shù)據(jù)庫支持的一些字符串轉(zhuǎn)換功能:char(65)或chr(65)
使用數(shù)據(jù)支持的字符串拼接操作:'sel'+'ect '+'fr'+'om’”、“‘sel'||'ect '||'fr'||'om'
可以設(shè)想一下,如果要檢測以上的變形字符后的攻擊則需要增加相應(yīng)的簽名特征,但更重要的是要充分考慮轉(zhuǎn)換編碼的種類,上面示例的snort的規(guī)則把可疑字符以及其轉(zhuǎn)換后的Hex值放入同一條規(guī)則里檢查,如果對于變形后繁多的攻擊種類,這是滯后的并且會造成簽名臃腫。
對于比較粗淺的攻擊方式兩者都能防護(hù),但市面上大多數(shù)IPS是無法對報文編碼做多重轉(zhuǎn)換的,所以這將導(dǎo)致攻擊者只需構(gòu)建諸如轉(zhuǎn)換編碼、拼接攻擊語句、大小寫變換等數(shù)據(jù)包就可繞過輸入檢查而直接提交給應(yīng)用程序。
而這恰恰又是WAF的優(yōu)勢,能對不同的編碼方式做強(qiáng)制多重轉(zhuǎn)換還原成攻擊明文,把變形后的字符組合后在分析。那為什么IPS不能做到這個程度?同樣還有對于HTTPS的加密和解密
產(chǎn)品架構(gòu)
大家知道IPS和WAF通常是串聯(lián)部署在Web服務(wù)器前端,對于服務(wù)器和客戶端都是透明的,不需要做任何配置,似乎都是一樣的組網(wǎng)方式,其實(shí)有很大差異。首先我們看看市面主流WAF支持的部署方式:
l 橋模式
l 路由模式
l 反向代理
l 旁路模式(非串聯(lián))
這兩者串聯(lián)部署在Web服務(wù)器前端時,市面上的大多數(shù)IPS均采用橋模式,而WAF是采用反向代理模式,IPS需要處理網(wǎng)絡(luò)中所有的流量,而WAF僅處理與Web應(yīng)用相關(guān)的協(xié)議,其他的給予轉(zhuǎn)發(fā),如下圖:
橋模式和反向代理模式的差異在于:橋模式是基于網(wǎng)絡(luò)層的包轉(zhuǎn)發(fā),基本都沒有協(xié)議棧,或只能簡單的模擬部分協(xié)議棧,分析網(wǎng)絡(luò)報文流量是基于單包的方式,所以要處理分片報文、數(shù)據(jù)流重組、亂序報文、報文重傳、丟包都不具備優(yōu)勢。同時網(wǎng)絡(luò)流量中包括的協(xié)議種類是非常多的,每種應(yīng)用層協(xié)議都有自身獨(dú)特的協(xié)議特征和格式要求,比如Ftp、SSH、Telnet、SMTP等,無法把各種應(yīng)用流量放到應(yīng)用層協(xié)議棧來處理。
WAF系統(tǒng)內(nèi)嵌的協(xié)議棧是經(jīng)過修改和優(yōu)化的,能完全支持Http應(yīng)用協(xié)議的處理,這意味著必須遵循RFC標(biāo)準(zhǔn)(Internet Requests For Comments)來處理Http報文,包括如下主要RFC:
l RFC 2616 HTTP協(xié)議語法的定義
l RFC 2396 URL語法的定義
l RFC 2109 Cookie是怎樣工作的
l RFC 1867 HTTP如何POST,以及POST的格式
RFC中對Http的request行長度、URL長度、協(xié)議名稱長度、頭部值長度等都是有嚴(yán)格要求的,以及傳輸順序和應(yīng)用格式,比如Html參數(shù)的要求、Cookie的版本和格式、文件上傳的編碼 multipart/form-data encoding等,這些應(yīng)用層內(nèi)容只能在具有完整應(yīng)用層協(xié)議棧的前提下才可正確識別和控制,對于不完整的丟包,重傳包以及偽造的畸形包都會通過協(xié)議校驗(yàn)機(jī)制來處理。
上一節(jié)提到的WAF對Https的加解密和多重編碼方式的解碼正是由于報文必須經(jīng)過應(yīng)用層協(xié)議棧處理。反之,IPS為什么做不到?是由于其自身的橋模式架構(gòu),把Http會話”打碎“成多個數(shù)據(jù)包在網(wǎng)絡(luò)層分析,而不能完整地從應(yīng)用層角度來處理和組合多個報文,并且應(yīng)用層協(xié)議繁多,全部去支持也是不現(xiàn)實(shí)的,產(chǎn)品的定位并不需要這樣。下一節(jié)的學(xué)習(xí)模式更是兩者的截然不同的防護(hù)機(jī)制,而這一機(jī)制也是有賴于WAF的產(chǎn)品架構(gòu)。
基于學(xué)習(xí)的主動模式
在前面談到IPS的安全模型是應(yīng)用了靜態(tài)簽名的被動模式,那么反之就是主動模式。WAF的防御模型是兩者都支持的,所謂主動模式在于WAF是一個有效驗(yàn)證輸入的設(shè)備,所有數(shù)據(jù)流都被校驗(yàn)后再轉(zhuǎn)發(fā)給服務(wù)器,能增加應(yīng)用層邏輯組合的規(guī)則,更重要的是具備對Web應(yīng)用程序的主動學(xué)習(xí)功能。
學(xué)習(xí)功能包括:
1. 監(jiān)控和學(xué)習(xí)進(jìn)出的Web流量,學(xué)習(xí)鏈接參數(shù)類型和長度、form參數(shù)類型和長度等;
2. 爬蟲功能,爬蟲主動去分析整個Web站點(diǎn),并建立正常狀態(tài)模型;
3. 掃描功能,主動去掃描并根據(jù)結(jié)果生成防護(hù)規(guī)則。
基于學(xué)習(xí)的主動模式目的是為了建立一個安全防護(hù)模型,一旦行為有差異則可以發(fā)現(xiàn),比如隱藏的表單、限制型的Listbox值是否被篡改、輸入的參數(shù)類型不合法等,這樣在面對多變的攻擊手法和未知的攻擊類型時能依靠安全防護(hù)模型動態(tài)調(diào)整防護(hù)策略。
結(jié)尾
WAF更多的特性,包括安全交付能力、基于cache的應(yīng)用加速、掛馬檢查、抗DDOS攻擊、符合PCIDSS的防泄密要求等都表明這是一款不僅能攻擊防護(hù),同時又必須在滿足客戶體驗(yàn)和機(jī)密數(shù)據(jù)防護(hù)的高度集成的專業(yè)產(chǎn)品,相比IPS而言,WAF真正理解WEB應(yīng)用交互行為。
【編輯推薦】
- 國內(nèi)外WAF需求特點(diǎn)和技術(shù)發(fā)展分析
- 綠盟科技WAF解讀OWASP TOP10安全威脅
- 綠盟科技獲2010中國IPS/IDS市場占有率領(lǐng)導(dǎo)者獎
- 利用IPS構(gòu)建企業(yè)Web安全防護(hù)網(wǎng)