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