- 相關(guān)推薦
兩種基于HTTP的通用IDS躲避技術(shù)
I.介紹
自從Rain Forest Puppy(RFP)的網(wǎng)絡(luò)掃描器whisker首次公布于眾以來(lái)[1],HTTP IDS躲避技術(shù)已經(jīng)逐漸流行。原先許多的HTTP IDS技術(shù),都是從whisker的第一個(gè)版本出現(xiàn)的,包括簡(jiǎn)單的使用多個(gè)“/”的混淆目錄技術(shù),也包括更復(fù)雜的 - 在URL里插入“HTTP/1.0”以躲避那些搜索URL地址的IDS算法。
除了whisker中出現(xiàn)的躲避技術(shù),還有其他類型的HTTP混淆方法。其中的一個(gè)混淆URL的方法就是使用絕對(duì)URI與相對(duì)URI[2]。雖然這些方法很有趣,但是都不如whisker掃描中使用的方法常見(jiàn)。
下一個(gè)流行的躲避方法也是RFP發(fā)布的,利用了微軟互聯(lián)網(wǎng)信息服務(wù)器(IIS)的UTF-8 unicode解碼漏洞[3]。雖然是IIS的一個(gè)嚴(yán)重漏洞,它同時(shí)也給出了一個(gè)IDS未曾實(shí)現(xiàn)的URL編碼方法。目前為止,大部分IDS仍然只是關(guān)注以前whisker的ASCII編碼與目錄遍歷躲避技術(shù),對(duì)Unicode的UTF-8編碼卻沒(méi)有相應(yīng)的保護(hù)。Eric Hacker對(duì)這種類型的HTTP IDS躲避技術(shù),寫了一篇非常專業(yè)的文章[4]。本文也會(huì)對(duì)Hacker文中的一些觀點(diǎn)分析并解釋。我們將繼續(xù)Hacker的觀點(diǎn)并深入了解:這些編碼到底意味著什么,怎樣才能造出更奇怪的編碼。
本文介紹的其他種類的HTTP IDS躲避技術(shù),使用了HTTP協(xié)議的屬性。其中之一就是請(qǐng)求管道,以及使用內(nèi)容編碼頭并將HTTP請(qǐng)求的參數(shù)放置到請(qǐng)求負(fù)載中的技術(shù)。
II.IDS HTTP協(xié)議分析
為了能夠識(shí)別URL攻擊,IDS必須檢查HTTP的URL字段,看是否有惡意內(nèi)容。兩種最流行的IDS檢測(cè)方法 - 模式匹配和協(xié)議分析 - 都需要檢測(cè)URL中是否含有惡意內(nèi)容(通過(guò)某種形式的模式匹配或者HTTP協(xié)議分析)。
兩種方法的不同之處取決于你的目的,協(xié)議分析法只搜索HTTP流URL字段部分的惡意內(nèi)容,而模式匹配法的搜索范圍是整個(gè)數(shù)據(jù)包。
這兩種方法在處理惡意URL之前的行為是類似的。之后,協(xié)議分析法只需要對(duì)URL字段添加合適的解碼算法即可(它已經(jīng)有內(nèi)建的HTTP協(xié)議解碼引擎)。而模式匹配算法并不知道需要對(duì)包的哪一部分正常化,因此需要與某種形式的協(xié)議分析相結(jié)合,找到相應(yīng)的URL字段,才能使用相應(yīng)的解碼算法。某種形式的HTTP協(xié)議分析被添加到模式匹配法中,之后兩者又行為類似了。
由于這些IDS方法的類似性,本文討論的HTTP IDS躲避方法適用于各種類型的IDS。
第一種通用的IDS躲避方法是無(wú)效協(xié)議解析。舉個(gè)例子,如果HTTP URL沒(méi)有被正確發(fā)現(xiàn),那么惡意URL就不能被檢查出來(lái),原因是:IDS沒(méi)有發(fā)現(xiàn)URL,就不能對(duì)URL進(jìn)行解碼。
如果URL是正確的,IDS必須知道正確的解碼算法,否則,仍然不能得到正確的URL。這就是第二種IDS躲避技術(shù) - 無(wú)效協(xié)議字段解碼。
A. 無(wú)效協(xié)議解析
使用無(wú)效協(xié)議解析IDS躲避技術(shù),在RFP的whisker[1]和Bob Graham的SideStep[5]中給出了很多例子。這兩個(gè)程序的區(qū)別在于:whisker使用了有缺陷的IDS協(xié)議解析來(lái)躲避檢查,而SideStep使用正常的網(wǎng)絡(luò)層協(xié)議來(lái)躲避IDS的協(xié)議解碼器。
這種情況下,無(wú)效協(xié)議解析的躲避技術(shù),對(duì)于HTTP協(xié)議的兩個(gè)字段URL和URL參數(shù)是非常有效的。
例如:如果IDS的HTTP解碼器假設(shè)每個(gè)請(qǐng)求包只有一個(gè)URL,那么一個(gè)包里包含兩個(gè)URL,IDS就不能對(duì)第二個(gè)URL正確解析。這種技術(shù)在請(qǐng)求管道躲避技術(shù)中還會(huì)提到。
B.無(wú)效協(xié)議段解碼
無(wú)效協(xié)議段解碼可以測(cè)試IDS是否能夠處理特定協(xié)議段的各種類型的解碼。
如果是HTTP,主要的目標(biāo)就是URL字段。對(duì)于IDS,需要測(cè)試它與HTTP RFC編碼標(biāo)準(zhǔn)的符合程度,還要看是否能支持特定Web服務(wù)器的編碼類型(例如IIS)。如果IDS不能對(duì)某種URL編碼進(jìn)行正確解碼,攻擊者就能利用該編碼跳過(guò)對(duì)惡意URL的檢測(cè)。
[1] [2] [3] [4]
【兩種基于HTTP的通用IDS躲避技術(shù)】相關(guān)文章:
IDS04-29
躲避04-30
基于兩種反饋控制的過(guò)程質(zhì)量監(jiān)控04-29
基于步態(tài)的身份識(shí)別技術(shù)04-29
兩種發(fā)酵床養(yǎng)豬技術(shù)的比較04-27