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