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