读WAF与IPS的区别总结之摘抄
一、參考鏈接
? ? ? ??http://https://www.cnblogs.com/milantgh/p/3603127.html
? ? ? ? 1.1 內(nèi)容
? ? ? ? ? ? ? ?對(duì)于安全事件的發(fā)生,有三個(gè)時(shí)間點(diǎn):事前、事中、事后。傳統(tǒng)的IPS通常只對(duì)事中有效,也就是檢查和防護(hù)攻擊事件,其他兩個(gè)時(shí)間點(diǎn)是WAF獨(dú)有的。(這里用一下鏈接中的圖,謝謝)
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?這里舉事中來(lái)說(shuō),事中,也就是實(shí)時(shí)防護(hù),兩者的區(qū)別在于一個(gè)是縱橫度,一個(gè)是深度。IPS凸顯的優(yōu)勢(shì)在于縱橫度,也就是對(duì)于網(wǎng)絡(luò)中的所有流量進(jìn)行監(jiān)控,它面對(duì)的是海量數(shù)據(jù),下圖的TCP/IP模型中網(wǎng)絡(luò)流量從物理層到應(yīng)用層是逐層遞交,IPS主要定位在分析傳輸層和網(wǎng)絡(luò)層的數(shù)據(jù),而再往上則是負(fù)責(zé)的各種應(yīng)用層協(xié)議報(bào)文,WAF則僅提供對(duì)Web應(yīng)用流量全部層面的監(jiān)管。(再次用一下圖,謝謝)
? ? ? ? ? ? ??
? ? ? ? ? ? ? 監(jiān)管的層面不同,如果面對(duì)同樣的攻擊,比如SQL注入,它們都是可以防護(hù)的,但防護(hù)的原理有區(qū)別,IPS基本是依靠靜態(tài)的簽名進(jìn)行識(shí)別,也就是攻擊特征,這只是一種被動(dòng)安全模型。如下是一個(gè)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注入中提交的元字符,包括單引號(hào)(')和雙橫(-),從而避免注入'1 or 1=1-- 之類的攻擊發(fā)生,同時(shí)又要考慮這些元字符轉(zhuǎn)換成hex值來(lái)逃脫過(guò)濾檢查,于是又在規(guī)則里增加了其對(duì)應(yīng)的十六進(jìn)制編碼后的字符串。? ? ? ? ? ? ? ? ?當(dāng)然,要從簽名特征來(lái)識(shí)別攻擊要考慮的東西還很多,不僅元字符還有SQL關(guān)鍵字,包括:select insert update等,以及這些關(guān)鍵字的大小寫(xiě)變形和拼接,利用注釋逃脫過(guò)濾,如下示例:
? ? ? ? ? ? ? ? ?使用大小寫(xiě)混雜的字符:SeLecT fRom"
? ? ? ? ? ? ? ? ?把空格符替換為T(mén)AB符或回車符:select[TAB]from
? ? ? ? ? ? ? ? ?關(guān)鍵詞之間使用多個(gè)空格:select from
? ? ? ? ? ? ? ? ?字符串的數(shù)值編碼:0x414141414141或0x41004100410041004100
? ? ? ? ? ? ? ? ?插入被數(shù)據(jù)庫(kù)忽略的注釋串:sel/**/ect fr/**/om select/**/ from
? ? ? ? ? ? ? ? ?使用數(shù)據(jù)庫(kù)支持的一些字符串轉(zhuǎn)換功能:char(65) 或chr(65)
? ? ? ? ? ? ? ? ?使用數(shù)據(jù)支持的字符串拼接操作:'sel'+'ect'+'fr'+'om'"、"'sel'||'ect\||'fr'||'om'可以設(shè)想一下,如果要檢測(cè)以上的變形字符后的攻擊則需要增加相應(yīng)的簽名特征,但更重要的是要充分考慮轉(zhuǎn)換編碼的種類,上面示例的snort的規(guī)則把可疑字符以及其轉(zhuǎn)換后的Hex值放入同一條規(guī)則里檢查,如果對(duì)于變形后繁多的攻擊種類,這是滯后的并且會(huì)造成臃腫。
? ? ? ? ? ? ? ? ?對(duì)于比較粗淺的攻擊方式兩者都能防護(hù),但市面上大多數(shù)IPS是無(wú)法對(duì)報(bào)文編碼做多重轉(zhuǎn)換的,所以這將導(dǎo)致攻擊者只需構(gòu)建諸如轉(zhuǎn)換編碼、拼接攻擊語(yǔ)句、大小寫(xiě)變換等數(shù)據(jù)包就可繞過(guò)輸入檢查而直接提交給應(yīng)用程序。而這恰恰是WAF的優(yōu)勢(shì),能對(duì)不同的編碼方式做強(qiáng)制多重轉(zhuǎn)換還原成攻擊明文,把變形后的字符組合后再分析。
? ? ? ? ? ? ? ? ?IPS和WAF通常是串聯(lián)部署在Web服務(wù)器前端,對(duì)于服務(wù)器和客戶端都是透明的,不需要做任何配置,似乎都是一樣的組網(wǎng)方式,其實(shí)有很大差異。首先我們看看市面主流WAF支持的部署方式:?
? ? ? ? ? ? ? ? ?a.橋模式? ? ? ? b.路由模式? ? ? ? ?c.反向代理? ? ? ? ?4.旁路模式(非串聯(lián))
? ? ? ? ? ? ? ? ?這兩者串聯(lián)部署在Web服務(wù)器前端時(shí),市面上的大多數(shù)IPS均采用橋模式,而WAF是采用反向代理模式,IPS需要處理網(wǎng)絡(luò)中所有的流量,而WAF僅處理與Web應(yīng)用相關(guān)的協(xié)議,其他的給予轉(zhuǎn)發(fā),如下圖:
? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ?橋模式和反向代理模式的差異在于:橋模式是基于網(wǎng)絡(luò)層的包轉(zhuǎn)發(fā),基本都沒(méi)有協(xié)議棧,或只能簡(jiǎn)單的模擬部分協(xié)議棧,分析網(wǎng)絡(luò)報(bào)文流量是基于單包的方式,所以要處理分片報(bào)文、數(shù)據(jù)流重組、亂序報(bào)文、報(bào)文重傳、丟包都不具備優(yōu)勢(shì)。同時(shí)網(wǎng)絡(luò)流量中包括的協(xié)議種類是非常多的,每種應(yīng)用層協(xié)議都有自身獨(dú)特的協(xié)議特征和格式要求,比如Ftp、SSH、Telnet、SMTP等,無(wú)法把各種應(yīng)用流量放到應(yīng)用層協(xié)議棧來(lái)處理。
? ? ? ? ? ? ? ? ? ?綠盟科技WAF系統(tǒng)內(nèi)嵌的協(xié)議棧是經(jīng)過(guò)修改和優(yōu)化的,能完全支持Http應(yīng)用協(xié)議的處理,這意味著必須遵循RFC標(biāo)準(zhǔn)來(lái)處理Http報(bào)文,包括如下主要RFC:
? ? ? ? ? ? ? ? ? ?a.RFC 2616 HTTP協(xié)議語(yǔ)法的定義? ? ? ? b.RFC 2396 URL語(yǔ)法的定義? ? ? ? ?c.RFC 2109 Cookie是怎樣工作的? ? ?d.RFC 1867 HTTP如何POST,以及POST的格式
? ? ? ? ? ? ? ? ? ?RFC中對(duì)http的request行長(zhǎng)度、URL長(zhǎng)度、協(xié)議名稱長(zhǎng)度、頭部值長(zhǎng)度等都是有嚴(yán)格要求的,以及傳輸順序和應(yīng)用格式,比如html參數(shù)的要求、Cookie的版本和格式、文件上傳的編碼 multipart/form-data encoding等,這些應(yīng)用層內(nèi)容只能在具有完整應(yīng)用層協(xié)議棧的前提下才可正確識(shí)別和控制,對(duì)于不完整的丟包,重傳包以及偽造的畸形包都會(huì)通過(guò)協(xié)議校驗(yàn)機(jī)制來(lái)處理。
? ? ? ? ? ? ? ? ? ?WAF對(duì)https的加解密和多重編碼方式的解碼正是由于報(bào)文必須經(jīng)過(guò)應(yīng)用層協(xié)議處理。IPS由于其自身的橋模式架構(gòu),把HTTP會(huì)話"打碎"成多個(gè)數(shù)據(jù)包在網(wǎng)絡(luò)層分析,而不能完整地從應(yīng)用層角度來(lái)處理和組合多個(gè)報(bào)文,并且應(yīng)用層協(xié)議繁多,全部去支持也是不現(xiàn)實(shí)的,產(chǎn)品的定位并不需要這樣。
? ? ? ? ? ? ? ? ? ? 在前面談到IPS的安全模式是應(yīng)用了靜態(tài)簽名的被動(dòng)模式,那么反之就是主動(dòng)模式。WAF的防御模式是兩者都支持的,所謂主動(dòng)模式在于WAF是一個(gè)有效驗(yàn)證輸入的設(shè)備,所有數(shù)據(jù)流都被校驗(yàn)后再轉(zhuǎn)發(fā)給服務(wù)器,能增加應(yīng)用層邏輯組合的規(guī)則,更重要的是具備對(duì)Web應(yīng)用程序的主動(dòng)學(xué)習(xí)功能。
? ? ? ? ? ? ? ? ? ? 學(xué)習(xí)功能包括:
? ? ? ? ? ? ? ? ? ? a)監(jiān)控和學(xué)習(xí)進(jìn)出的Web流量,學(xué)習(xí)鏈接參數(shù)類型和長(zhǎng)度、form參數(shù)類型和長(zhǎng)度等;
? ? ? ? ? ? ? ? ? ? b)爬蟲(chóng)功能,爬蟲(chóng)主動(dòng)去分析整個(gè)Web站點(diǎn),并建立正常狀態(tài)模型;
? ? ? ? ? ? ? ? ? ? c)掃描功能,主動(dòng)去掃描并根據(jù)結(jié)果生成防護(hù)規(guī)則。
? ? ? ? ? ? ? ? ? ? 基于學(xué)習(xí)的主動(dòng)模式目的是為了建立一個(gè)安全防護(hù)模型,一旦行為有差異則可以發(fā)現(xiàn),比如隱藏的表單、限制型的Listbox值是否被篡改、輸入的參數(shù)類型不合法等,這樣在面對(duì)多變的攻擊手法和未知的攻擊類型時(shí)能依靠安全防護(hù)模型動(dòng)態(tài)調(diào)整防護(hù)策略。
? ? ? ? ? ? ? ? ? ? WAF更多的特性,包括安全交付能力、基于cache的應(yīng)用加速、掛馬檢查、防DDOS攻擊、符合PCIDSS的防泄密要求等都表明這是一款不僅能攻擊防護(hù),同時(shí)又必須在滿足客戶體驗(yàn)和機(jī)密數(shù)據(jù)防護(hù)的高度集成的專業(yè)產(chǎn)品。
? ? ? ? ? ? ? ? ? ?
? ? ? ? ??
總結(jié)
以上是生活随笔為你收集整理的读WAF与IPS的区别总结之摘抄的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: waf知识的积累
- 下一篇: 摘录HTTP头部信息的注释