|
-I 0 IDS-evasive mode 0 (NULL方法)
如果想了解上面這些方法的技術(shù)細節(jié),可以參考A Look At Whisker's Anti-IDS Tactics。需要特別說明的是,rfp把whisker采用的anti-ids技術(shù)單獨放到了libwhisker(使用perl編寫的)庫中,為其它的程序采用這些技術(shù)提供了很大的便利。另外,nessus和babelweb等掃描工具都有自己的應(yīng)用層入侵檢測躲避技術(shù)。
現(xiàn)在,IDS開發(fā)人員對各種網(wǎng)絡(luò)協(xié)議有了更深入的理解,并且入侵檢測設(shè)備在對數(shù)據(jù)包的負載進行字符串匹配之前會進行必要的協(xié)議分析,因此現(xiàn)在的IDS已經(jīng)能夠很好地處理上述的欺騙技術(shù)了。但是多余的字符轉(zhuǎn)換又提高了入侵檢測系統(tǒng)的負載,有時是得不償失。為了減小這個負面影響,開發(fā)人員可以使入侵檢測系統(tǒng)只在特定的端口進行字符轉(zhuǎn)換。
2.多變shell代碼(polymorphic shell code)
多變shell代碼(polymorphic shell code)技術(shù)由K2開發(fā)的,設(shè)計思想來源于病毒逃避(virus evasion)技術(shù)。使用這種技術(shù)重新構(gòu)造的shell代碼更為危險,入侵檢測設(shè)備非常難以檢測到。這種技術(shù)只用于緩沖區(qū)溢出攻擊,對付基于特征碼的檢測系統(tǒng)非常有效,而對于智能化的或者基于協(xié)議分析的檢測系統(tǒng)的效果要差很多。為了便于討論,我們以SSH CRC32緩沖區(qū)為例。我們先看以下snort檢測規(guī)則:
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32
overflow /bin/sh"; flags:A+; content:"/bin/sh"; reference:bugtraq,2347;
reference:cve,CVE-2001-0144; classtype:shellcode-detect; sid:1324; rev:1;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32
overflow NOOP"; flags:A+; content:" 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90)
上面的第一條規(guī)則簡單地檢查從外部到$HOME_NET,目標(biāo)端口是22的數(shù)據(jù)包,搜索里面是否包含字符串/bin/sh。第二條規(guī)則是檢查是否包含x86空操作字符(0x90)。多變shell代碼(polymorphic shell code)使用很多方法逃避字符串匹配系統(tǒng)的檢測。首先(以x86架構(gòu)為例),使用其它的字符代替0x90執(zhí)行無操作(no-op)指令。對于X86架構(gòu),有55種替代方式,其它的要少一些。這些替代方式以一種偽隨機的方式結(jié)合到一塊,建立緩沖區(qū)溢出shell代碼包含無操作(no-op)指令的部分。除此之外,shell代碼本身也采用XOR機制編碼。通過這種方式建立的緩沖區(qū)溢出shell代碼被重組后不會包含以上的特征碼,從而能夠逃過字符串匹配檢測。
多變shell代碼檢測對基于特征碼檢測的IDS是一個很大的挑戰(zhàn)。Next Generation Security Technologie公司的技術(shù)白皮書Polymorphic Shellcodes vs. Application IDSs中提出了一些檢測多變shell代碼的設(shè)想。通過搜索無操作(no-op)字符的一個特定長度的正則表達式,可以實現(xiàn)對多變shell代碼的精確檢測。最近,Dragos Ruiu發(fā)布了一個用于檢測多變shell代碼的snort預(yù)處理插件spp_fnord,這個插件采用了和上面相似的檢測技術(shù)。這個預(yù)處理插件有端口和長度兩個配置選項。例如,如果某個人在配置時設(shè)置了80、21、23和53等端口,它就只對這幾個端口的數(shù)據(jù)流量進行多變shell代碼的檢測,而不會對其它端口(例如:22)進行檢測。
3.會話拼接(session splicing,叫會話分割更合適一些)
上面討論的這些方法都是屬于攻擊數(shù)據(jù)在一個數(shù)據(jù)包中的情況,沒有涉及攻擊數(shù)據(jù)和會話通過多個數(shù)據(jù)包投遞的情況。RFP在Whisker中實現(xiàn)了一種IDS逃避技術(shù)叫作會話拼接(session splicing),就是把會話數(shù)據(jù)放到多個數(shù)據(jù)包中發(fā)出,例如:
+-------------------------+ packet number content ---------------+--------- 1 G ---------------+--------- 2 E 本新聞共 4頁,當(dāng)前在第 2頁 1 2 3 4 |
|
【收藏】【打印】【進入論壇】 |
|
|
|
|
|
|
|