|
---------------+--------- 3 T ---------------+--------- 4 20 ---------------+--------- 5 / ---------------+--------- 6 H +---------------+---------+
通過這種方式,每次只投遞幾個字節(jié)的數(shù)據(jù),就可能避開字符串匹配入侵檢測系統(tǒng)的監(jiān)視。要監(jiān)視這種攻擊,需要入侵檢測系統(tǒng)或者能夠理解、監(jiān)視網(wǎng)絡(luò)會話(即使IDS有這種能力,攻擊者也可以通過其它的凡是避開監(jiān)視),或者采用其它的技術(shù)監(jiān)視這種攻擊。snort使用以下規(guī)則來監(jiān)視會話拼接:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-MISC whisker
space splice attack"; content:" 20 "; flags:A+; dsize:1;
reference:arachnids,296; classtype:attempted-recon; reference)
這條規(guī)則使snort檢測目標(biāo)為$HTTP_SERVERS 80端口的ACK報文的負(fù)載長度是否等于1以及是否包含空格(16進(jìn)制的20)。使用這條規(guī)則可以精確地檢測出whisker,但是攻擊者只要稍加修改就可以避開這個檢測。為了能夠檢測可能出現(xiàn)的會話拼接攻擊,可以對上面這條snort規(guī)則進(jìn)行擴(kuò)展,使其檢查負(fù)載很短的HTTP請求。但是,這樣做的副作用是提高了誤報警數(shù)量,而且在某些情況下攻擊者還是能夠避開監(jiān)視。為了真正有效地檢測這種攻擊,需要入侵檢測系統(tǒng)能夠完整地理解網(wǎng)絡(luò)會話,不過這是非常困難的。應(yīng)該注意的是目前大多數(shù)系統(tǒng)能夠重組會話,在所有的會話數(shù)據(jù)到達(dá)之前,它們會等待一些時間。而等待時間的長短與程序有關(guān)。例如,Apache/RedHat的會話超時時間是6分鐘,IIS/Win2K等待的時間非常長。因此,攻擊者完全可以每15分鐘發(fā)送一個字節(jié)的會話數(shù)據(jù),而IIS還會認(rèn)為是有效的會話。最新版本的snort能夠監(jiān)視長期的會話和網(wǎng)絡(luò)層欺騙,例如:小TTL值。
4.碎片攻擊
碎片攻擊和會話拼接(session splicing)有點類似。直到最近,很多入侵檢測系統(tǒng)在進(jìn)行字符串匹配之前不能準(zhǔn)確地重組碎片,F(xiàn)在這種情況有了改觀,所有的入侵檢測系統(tǒng)都能夠進(jìn)行某些重組。不過,還是有很多方法可以避開入侵檢測系統(tǒng)的監(jiān)視。碎片重組的問題是在進(jìn)行字符串匹配以前,入侵檢測系統(tǒng)必須在內(nèi)存中緩存所有的碎片,然后進(jìn)行重組。而且,他還需要直到、碎片在目的主機(jī)會如何重組。Thomas Ptacek and Timoth Newsham于1998年寫的Insertion,Evasion and Denial of Service: Eluding Network Intrusion Detection描述了許多基于網(wǎng)絡(luò)的碎片躲避和其它類型的躲避技術(shù)。碎片攻擊包括:碎片覆蓋、碎片重寫、碎片超時和針對網(wǎng)絡(luò)拓?fù)涞乃槠夹g(shù)(例如使用小的TTL)等。下面,我們將詳細(xì)討論。
4.1.碎片覆蓋
所謂碎片覆蓋就是發(fā)送碎片覆蓋先前碎片中的數(shù)據(jù)。例如:
碎片1 GET x.idd
碎片2 a.?(緩沖區(qū)溢出數(shù)據(jù))
第二個碎片的第一個字符覆蓋第一個碎片最后一個字符,這兩個碎片被重組之后就變成了GET x.ida?(緩沖區(qū)溢出數(shù)據(jù))。實際情況遠(yuǎn)非這么簡單,更詳細(xì)的細(xì)節(jié)請參考爛文IDS欺騙之Fragroute篇(上)。
4.2.碎片數(shù)據(jù)覆蓋
這種方法和上面的碎片覆蓋有些類似,只不過是覆蓋全部的碎片數(shù)據(jù),例如:
碎片1 GET x.id
碎片2 一些隨機(jī)的字符
碎片3 a.?(緩沖區(qū)溢出數(shù)據(jù))
這些碎片在經(jīng)過目標(biāo)系統(tǒng)的重組之后,碎片3將完全覆蓋碎片2,重組之后的數(shù)據(jù)變成GET x.ida?(緩沖區(qū)溢出數(shù)據(jù))。如果入侵檢測系統(tǒng)的重組方式和目標(biāo)系統(tǒng)不同,就無法重組出“GET x.ida?(緩沖區(qū)溢出數(shù)據(jù))”,因此就檢測不出這個攻擊。
4.3.碎片超時
這種攻擊依賴于入侵檢測系統(tǒng)在丟棄碎片之前會保存多少時間。大多數(shù)系統(tǒng)會在60秒之后將丟棄不完整的碎片流(從收到第一個碎片開始計時)。如果入侵檢測系統(tǒng)保存碎片的時間小于60秒,就會漏掉某些攻擊。例如: 本新聞共 4頁,當(dāng)前在第 3頁 1 2 3 4 |
|
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|