入侵檢測(cè)系統(tǒng)(IDS)規(guī)避與對(duì)策
案例1:入侵檢測(cè)系統(tǒng)分片重組超時(shí)低于受害者分片重組的超時(shí)
攻擊情形:
假設(shè)重組的IDS的分片超時(shí)是15秒,系統(tǒng)監(jiān)測(cè)一些Linux主機(jī)有一個(gè)默認(rèn)的分片重組30秒超時(shí)。如下所示,第一次發(fā)送分片之后,攻擊者將發(fā)送一個(gè)15秒鐘延遲的第二塊分片(30秒內(nèi))。
請(qǐng)記住,這里的第二個(gè)分片被IDS認(rèn)可,由于超時(shí),IDS已經(jīng)丟掉了第一個(gè)分片。因此,受害者將重組分片,并會(huì)收到入侵檢測(cè)系統(tǒng)的攻擊,而不會(huì)產(chǎn)生任何干擾或警報(bào)。
案例2:入侵檢測(cè)系統(tǒng)分片重組超時(shí)高于操作系統(tǒng)分片重組的超時(shí)
攻擊情形:
默認(rèn)情況下,Snort可以有60秒的分片重組超時(shí)。相比之下,Linux/FreeBSD是30秒。這同樣可以規(guī)避。如下所示,假設(shè)攻擊者把攻擊的數(shù)據(jù)包分離為四個(gè)分片:1、2、3、4。
攻擊者發(fā)送一個(gè)虛假的有效載荷frag2和frag4(簡(jiǎn)稱2'和4'),由受害者和入侵檢測(cè)系統(tǒng)接收。攻擊者一直等待,直到受害者分片重組超時(shí)結(jié)束,并丟棄(在這種情況下市30秒)初始分片。
這次攻擊的優(yōu)點(diǎn)在于,受害者仍然沒有收到分片1,因此ICMP錯(cuò)誤信息將會(huì)被拋給受害者。然后,攻擊者發(fā)送的數(shù)據(jù)包(1,3)存在著合法的有效載荷。在此階段中,受害者僅僅收到1,3分片,而入侵檢測(cè)系統(tǒng)的收到的分片為1,2',3,4'。記住,2,4分片是攻擊者發(fā)送虛假的有效載荷。
基于TTL攻擊
這個(gè)攻擊需要攻擊者對(duì)受害者網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)有所了解。這個(gè)信息可以使用諸如路由跟蹤之類的工具進(jìn)行探測(cè)?;赥TL的攻擊如下所示:
攻擊者分解成3個(gè)分片進(jìn)行攻擊。攻擊者發(fā)送一個(gè)大型的TTL值1片段,這個(gè)被IDS和受害者雙方的驗(yàn)證認(rèn)可。但是,第二個(gè)分片(frag2')由攻擊者發(fā)送為TTL值1,同樣包含虛假的有效載荷。這個(gè)分片被IDS認(rèn)可,而路由器收到丟棄的TTL值現(xiàn)在將減少為零。
然后,攻擊者發(fā)送一個(gè)有效的TTL3分片。這使得IDS能夠執(zhí)行,而受害者的TCP分片(1,2',3)重組,仍在等候第三分片。攻擊者發(fā)送的最后一個(gè)有效載荷第三分片和受害者執(zhí)行的分片(1,2,3)進(jìn)行重組,并實(shí)施攻擊。在這個(gè)階段,IDS只有3個(gè)分片,因?yàn)樗缫崖男辛酥亟M,并且數(shù)據(jù)流已被刷新。
分片重疊攻擊
這個(gè)攻擊方式是基于對(duì)IP頭的分片偏移量進(jìn)行控制。分片偏移量告訴目的系統(tǒng)該分片位于大包的什么位置。在這種情況下,攻擊者為每個(gè)IP包創(chuàng)建了兩個(gè)或更多的分片。
第一個(gè)分片和最后分片的策略,如下圖解釋。
攻擊者進(jìn)行了4個(gè)分片的攻擊。攻擊者發(fā)送分片1,2和3,使這兩個(gè)操作系統(tǒng)接收?,F(xiàn)在,攻擊者發(fā)送分片2',3'和4。在這里,有效載荷的分片2'和3'與分片2和3不相同,但分片偏移量和IP頭長(zhǎng)度保持不變。
在這種情況下,一個(gè)操作系統(tǒng)做了一個(gè)分片重組策略,首先建立在第一個(gè)策略的基礎(chǔ)上,希望能夠重組最后的分片,將分片1,2',3',4和分片1,2,3,4重組一起。記住,在不同的操作系統(tǒng)中,所采用的分片重組策略也會(huì)有所不同。
IDS和IPS的規(guī)避對(duì)策
基于網(wǎng)絡(luò)的IDS和IPS在網(wǎng)絡(luò)中監(jiān)聽攻擊,然而基于主機(jī)的IDS和IPS程序則是運(yùn)行在可能遭受攻擊的終端系統(tǒng)上。例如,你可能在一個(gè)敏感的Web服務(wù)器、DNS服務(wù)器或郵件服務(wù)器上運(yùn)行一個(gè)基于主機(jī)的IDS或IPS代理。這些基于主機(jī)的技術(shù)運(yùn)行在終端主機(jī)上,如下圖所示,這種技術(shù)很少考慮規(guī)避策略。大多數(shù)IDS和IPS規(guī)避技術(shù)主要欺騙基于網(wǎng)絡(luò)的程序,這是因?yàn)榛诰W(wǎng)絡(luò)的程序不能理解在終端系統(tǒng)上出現(xiàn)的一系列包的整個(gè)前后關(guān)系。在一些FragRouter,F(xiàn)ragRoute和Nikto這些程序就采用了這個(gè)技術(shù)原理。運(yùn)行在終端系統(tǒng)上的基于主機(jī)的IDS和IPS強(qiáng)調(diào)了這一點(diǎn)。它們知道通信中更為完整的上下文信息,并且可以對(duì)終端系統(tǒng)上將發(fā)生什么做出可靠的判斷?;谥鳈C(jī)的IDS和IPS可以查看日志、系統(tǒng)配置和系統(tǒng)的行為,從而確定攻擊者真正做了什么,而不是試圖通過查看包來(lái)解釋目前正在發(fā)生的事情。
例如,在進(jìn)行實(shí)現(xiàn)的分片攻擊通過使用常見的重疊分片來(lái)試圖欺騙目標(biāo)中基于網(wǎng)絡(luò)的IDS和IPS系統(tǒng)。在包被目標(biāo)的TCP/IP棧重組之后,基于主機(jī)的IDS和IPS程序分析攻擊者在目標(biāo)系統(tǒng)上的蹤跡。類似地,許多應(yīng)用層規(guī)避技術(shù),對(duì)于基于主機(jī)的程序可以監(jiān)視終端系統(tǒng)中攻擊者所進(jìn)行的變化?;谥鳈C(jī)的防御程序,包括商業(yè)IDS和IPS產(chǎn)品,如思科安全代理(CSA)和McAfee的Entercept,進(jìn)行檢測(cè)的顆粒度可以比基于網(wǎng)絡(luò)的IDS和IPS產(chǎn)品的檢測(cè)顆粒度更細(xì)。
我再次提醒,基于主機(jī)的IDS或IPS僅能防御其所安裝的主機(jī),然而基于網(wǎng)絡(luò)的IDS或IPS可以對(duì)整個(gè)局域網(wǎng)進(jìn)行監(jiān)控。舉一個(gè)例子:基于主機(jī)的程序像是在特定的房子中尋找夜賊的警察,基于網(wǎng)絡(luò)的攻擊則像是為了尋找也賊在附近盤旋的警用直升機(jī)。當(dāng)然,夜賊可以通過偽裝來(lái)欺騙直升機(jī),但是房子中的警察可以注意到一些偷竊家里財(cái)物的人,甚至是偽裝的騙子。盡管如此,在每棟房子中安排一名警察的代價(jià)是極其昂貴的。正如在這個(gè)例子中所說的,與基于主機(jī)的IDS和IPS相比,基于網(wǎng)絡(luò)的IDS和IPS的部署代價(jià)更低。最后,一個(gè)好的IDS和IPS部署通??梢酝瑫r(shí)實(shí)現(xiàn)基于網(wǎng)絡(luò)和基于主機(jī)的程序。
尾聲
在執(zhí)行掃描時(shí),攻擊者使用各種技術(shù)來(lái)避開IDS和IPS的檢測(cè)??稍诰W(wǎng)絡(luò)層和應(yīng)用層實(shí)施規(guī)避技術(shù)。為了對(duì)付IDS和IPS規(guī)避技術(shù),需要及時(shí)更新IDS和IPS系統(tǒng),并同時(shí)實(shí)現(xiàn)基于網(wǎng)絡(luò)的和基于主機(jī)的IDS和IPS。最后,有疑問請(qǐng)寫信件發(fā)送至我的信箱(Hack01[at]Live.cn)。
# HACKER NETSPY [C.Z.Y]