摘要:近幾年來網(wǎng)絡(luò)蠕蟲對因特網(wǎng)造成了嚴(yán)重威脅。由于蠕蟲能在短時(shí)間內(nèi)感染成千上萬臺(tái)主機(jī),因此必須使用快速自動(dòng)化的檢測防御技術(shù)。文章首先分析了典型的蠕蟲特征,接著提出了一種有效的蠕蟲檢測方案,最后對該方案進(jìn)行了分析和評(píng)價(jià)。
關(guān)鍵詞:蠕蟲檢測;行為特征;蜜罐;EWAS
0 引言
“計(jì)算機(jī)蠕蟲”一詞最早見于1975年John Brunner的科幻小說“The Shockwave Rider”。而真正意義上的蠕蟲程序是Bob Thomas于1971編寫的空中管制權(quán)變更通知程序。二十世紀(jì)八十年代,John Shock和Jon Hepps編寫蠕蟲程序以期望利用空閑資源進(jìn)行工作。經(jīng)過實(shí)踐,他們發(fā)現(xiàn)利用網(wǎng)絡(luò)傳播的這些自制的蠕蟲可以嚴(yán)重地耗費(fèi)主機(jī)資源和網(wǎng)絡(luò)資源。至此蠕蟲的研究工作不再公開,直至1988年莫里斯蠕蟲(MorrisWorm)的出現(xiàn)。
Moms Worm是因特網(wǎng)上最早出現(xiàn)的蠕蟲,使網(wǎng)絡(luò)癱瘓了五天。2001年6月Code Red的爆發(fā)使人們真正認(rèn)識(shí)到了蠕蟲快速傳播的危害。截止到2001年7月19日,有超過359,000臺(tái)連到因特網(wǎng)的計(jì)算機(jī)在14小時(shí)內(nèi)被“紅色代碼”(CRv2)蠕蟲感染。這個(gè)蠕蟲造成的損失,包括后續(xù)的“紅色代碼”造成的危害,估計(jì)為26億美元。2001年9月18日的尼姆達(dá)(Nimda)蠕蟲是第一個(gè)利用多種漏洞進(jìn)行傳播的蠕蟲。2003年1月,W32.SQLExp蠕蟲采用了更加先進(jìn)的傳播策略,在全球范圍內(nèi)快速傳播,使人工干預(yù)和防衛(wèi)無濟(jì)于事。2004年3月20日的Witty蠕蟲被人們看作是智慧蠕蟲,與其它蠕蟲不同的是該蠕蟲功能良好,沒有明顯缺陷。它在網(wǎng)絡(luò)漏洞發(fā)布后的48小時(shí)內(nèi)就被釋放到網(wǎng)上。
蠕蟲嚴(yán)重占用主機(jī)資源和網(wǎng)絡(luò)資源,造成了嚴(yán)重的經(jīng)濟(jì)損失,引起了人們的普遍關(guān)注。計(jì)算機(jī)蠕蟲是利用常見服務(wù)的安全漏洞或策略缺陷通過網(wǎng)絡(luò)進(jìn)行自傳播的程序。這個(gè)概念有下面幾層含義:①蠕蟲是一個(gè)程序;②使用網(wǎng)絡(luò)傳播,而不注重在本機(jī)傳播,具有傳染性;③關(guān)注常見服務(wù),因?yàn)檫@可以加快傳播;④利用安全漏洞或策略缺陷進(jìn)行傳播。
1 蠕蟲的傳播過程
這一部分,我們將以Code RedⅡ蠕蟲為例來討論蠕蟲的傳播過程及關(guān)鍵技術(shù)。Code RedⅡ蠕蟲利用的是Microsoft'sIIs Web Servers的緩沖區(qū)溢出漏洞。這一漏洞可以使入侵者利用IIS Server的特權(quán)在本地執(zhí)行任意命令。蠕蟲感染一臺(tái)主機(jī)后,該系統(tǒng)就成為新的感染源。Code Red II蠕蟲在感染該系統(tǒng)時(shí)執(zhí)行下列主要功能:
(1)檢測本地系統(tǒng)的語言選項(xiàng)是否為中文。后續(xù)的一些功能根據(jù)語言選項(xiàng)的不同而不同。
(2)檢測是否第一次執(zhí)行蠕蟲代碼,如果是則啟動(dòng)傳播機(jī)制。
(3)檢測系統(tǒng)是否第一次被感染,如果是則創(chuàng)建防止被重新感染的標(biāo)志。
(4)為傳播蠕蟲開啟數(shù)百個(gè)并行進(jìn)程。
(5)復(fù)制進(jìn)程重新啟動(dòng)感染過程。
(6)重新引導(dǎo)系統(tǒng)。如果語言選項(xiàng)為中文,則在此之前休眠1至2天。
蠕蟲獲取本地系統(tǒng)地址、網(wǎng)絡(luò)掩碼等信息,開啟數(shù)百個(gè)并行線程進(jìn)行目標(biāo)探測和蠕蟲傳播:
(1)如果系統(tǒng)時(shí)間在2002年10月1日前,則進(jìn)行傳播。否則重新引導(dǎo)系統(tǒng),清除內(nèi)存中的蠕蟲;
(2)按照下列地址選擇策略快速探測目標(biāo)系統(tǒng):
(a)使用1/7的時(shí)間探測為非本地網(wǎng)絡(luò)地址;
(b)使用3/7的時(shí)間探測掩碼為,8的IP地址(如果被感染系統(tǒng)的IP地址為10.9.8.7,則從10.開始進(jìn)行探測);
(c)使用3/7的時(shí)間探測掩碼為/16的IP地址(即,從10.9.開始進(jìn)行探測)。
這種地址選擇策略基于這樣一種假設(shè):同在一個(gè)網(wǎng)絡(luò)中的主機(jī)使用相同應(yīng)用的概率大于不在同一個(gè)網(wǎng)絡(luò)中的主機(jī),因此對掩碼/8,/16的地址空間的探測時(shí)間更多一些。
Code Red II蠕蟲找到后門主機(jī)以后,就在本地系統(tǒng)安裝木馬:
(1)復(fù)制cmd.exe到msadc、scripts目錄并更名為root.exe;
(2)木馬化C:和D:上的explore.exe。這樣一旦系統(tǒng)執(zhí)行了該木馬程序,黑客就可以遠(yuǎn)程訪問該系統(tǒng)和執(zhí)行程序。
由此我們看到一個(gè)蠕蟲的攻擊過程通常包含感染階段、傳播階段和執(zhí)行負(fù)載三個(gè)階段。
1.1感染階段
這個(gè)階段,蠕蟲已入侵到本地系統(tǒng),它為了利用網(wǎng)絡(luò)資源進(jìn)行自治傳播必須修改一些系統(tǒng)配置、運(yùn)行程序,為后續(xù)階段做準(zhǔn)備,如生成多個(gè)線程以備快速探測新的目標(biāo)之需,設(shè)置互斥標(biāo)志防止系統(tǒng)被再次感染而影響傳播速度等。通過這個(gè)階段的工作,蠕蟲將所入侵的系統(tǒng)變?yōu)橐粋€(gè)新的感染源。以后這個(gè)感染源就可以去感染其它系統(tǒng)以擴(kuò)大感染范圍。
1.2傳播階段
在這個(gè)階段蠕蟲會(huì)采用多種技術(shù)感染更多的系統(tǒng)。該階段通常包含下列過程:
(1)目標(biāo)探測
在蠕蟲感染系統(tǒng)前,它必須首先發(fā)現(xiàn)目標(biāo)。有許多技術(shù)可以幫助蠕蟲發(fā)現(xiàn)和利用新目標(biāo):掃描(外部目標(biāo)列表、預(yù)生成的目標(biāo)列表、內(nèi)部目標(biāo)列表)和被動(dòng)監(jiān)視。蠕蟲也可以混合使用這些技術(shù)。如果防御系統(tǒng)能夠抵御一種策略,則它可以阻止采用這種目標(biāo)發(fā)現(xiàn)策略的這一類蠕蟲的傳播。掃描需要探測一個(gè)地址空間,識(shí)別出有漏洞的系統(tǒng),它是一種主動(dòng)的目標(biāo)發(fā)現(xiàn)技術(shù)。由于這一方法的簡單性,因此它是常見的傳播策略。目標(biāo)地址選擇策略對蠕蟲在網(wǎng)上傳播的整體速率有著重要的影響。常用的地址選擇策略有:完全隨機(jī)、優(yōu)先選擇本地地址、順序掃描。被動(dòng)監(jiān)視網(wǎng)絡(luò)活動(dòng),并從中獲取地址信息的蠕蟲并不主動(dòng)搜尋受害系統(tǒng)。它們要么等待潛在的受害系統(tǒng)與之發(fā)生聯(lián)系,要么依賴用戶的行為發(fā)現(xiàn)新的目標(biāo)。盡管這會(huì)導(dǎo)致蠕蟲傳播很慢,但它們能夠依靠正常通信發(fā)現(xiàn)新的目標(biāo),在目標(biāo)發(fā)現(xiàn)期間不產(chǎn)生異常數(shù)據(jù)流模式,因此它們的行蹤是隱秘的。
掃描特別異常的行為。如產(chǎn)生大量的無效的IP數(shù)據(jù)報(bào)文,利用這一特點(diǎn)可以進(jìn)行有效檢測。
(2)利用漏洞感染目標(biāo)系統(tǒng)
利用常見服務(wù)的漏洞獲取特權(quán),這樣可以在目標(biāo)系統(tǒng)做更多的事情。比如Code Red Ⅱ在感染系統(tǒng)時(shí)利用IIS服務(wù)的緩沖區(qū)溢出漏洞獲取特權(quán),然后在系統(tǒng)安裝后門。由于蠕蟲漏洞利用的模式相同,因此可針對這—特點(diǎn)進(jìn)行檢測。
(3)運(yùn)輸蠕蟲代碼
蠕蟲必須將自身從一個(gè)系統(tǒng)傳播到另一個(gè)系統(tǒng),從而控制大量的系統(tǒng)。一些蠕蟲,如沖擊波蠕蟲(Blaster),需要第二個(gè)通信通道完成感染,被感染的系統(tǒng)使用TFTP回連到感染源以下載蠕蟲實(shí)體,完成蠕蟲代碼的運(yùn)輸。而有些蠕蟲在利用漏洞入侵系統(tǒng)時(shí)將蠕蟲代碼放在同一個(gè)報(bào)文中進(jìn)行運(yùn)輸。還有一些蠕蟲將蠕蟲代碼作為正常通信的一部分進(jìn)行發(fā)送,或者附在正常信息后或者替換正常信息,其傳播行為并不顯現(xiàn)異常。蠕蟲在運(yùn)輸代碼時(shí)可以是一對多,一個(gè)站點(diǎn)在被感染后向多個(gè)站點(diǎn)提供一個(gè)蠕蟲或模塊;或是多對多的,多個(gè)副本傳播惡意代碼;或者使用混合的方法。通常,如果限制因素是執(zhí)行分發(fā)所用的時(shí)間,則多對多的分發(fā)速度會(huì)快些。蠕蟲在復(fù)制自身代碼運(yùn)輸時(shí)具有相同的通信模式,因此可利用這一特點(diǎn)進(jìn)行檢測。
1.3執(zhí)行負(fù)載階段
負(fù)載,就是蠕蟲傳輸?shù)呐c傳播例程或傳播功能無關(guān)的代碼,通常是完成攻擊者意圖的代碼。常見的負(fù)載有采集敏感數(shù)據(jù),如Siream蠕蟲;毀壞數(shù)據(jù),如Klez蠕蟲;遠(yuǎn)程控制系統(tǒng),如Code Red II;拒絕服務(wù)攻擊,如Code Red I。在這個(gè)階段蠕蟲表現(xiàn)出一定的攻擊性,我們可以采用多種入侵檢測手段予以檢測,如網(wǎng)絡(luò)防火墻、入侵檢測系統(tǒng)、個(gè)人防火墻等等。
2 網(wǎng)絡(luò)蠕蟲檢測系統(tǒng)
因特網(wǎng)的開放環(huán)境為蠕蟲的快速傳播提供了便利條件。蠕蟲最具威脅性的特點(diǎn)是傳播速度很高。許多事件和研究表明一個(gè)具有良好工程的蠕蟲能在幾分鐘內(nèi)感染90%以上的因特網(wǎng)弱點(diǎn)系統(tǒng),嚴(yán)重?cái)_亂網(wǎng)絡(luò)正常秩序。這樣快速的傳播能力需要自動(dòng)化的檢測響應(yīng)機(jī)制來進(jìn)行有效防御。
我們研制的網(wǎng)絡(luò)蠕蟲檢測系統(tǒng)EWAS,可以針對本地網(wǎng)絡(luò)傳播蠕蟲,快速有效地檢測蠕蟲入侵,了解本地蠕蟲感染情況,為蠕蟲防范提供有利保障。
2.1系統(tǒng)結(jié)構(gòu)
EWAS由檢測控制臺(tái)和網(wǎng)絡(luò)蠕蟲檢測器兩部分組成。檢測控制臺(tái)負(fù)責(zé)管理檢測器的運(yùn)行和實(shí)時(shí)給出可疑蠕蟲活動(dòng)狀況。檢測器負(fù)責(zé)采集本地網(wǎng)絡(luò)數(shù)據(jù)流,重組連接報(bào)文,如果發(fā)現(xiàn)類似蠕蟲的通信模式則向檢測控制臺(tái)發(fā)送報(bào)警信息。檢測器分為蜜罐檢測器和非蜜罐檢測器兩類。蜜罐檢測器模擬本地網(wǎng)絡(luò)中未分配的IP地址,并在此基礎(chǔ)上檢測和分析蠕蟲活動(dòng)、抽取未知蠕蟲的特征。圖1所示為本系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D。
2.2檢測算法
本地網(wǎng)絡(luò)中的蠕蟲活動(dòng)存在下列特點(diǎn):
(1)連接模式的相似性。連接模式的相似性說明了一個(gè)事實(shí):目標(biāo)系統(tǒng)存在漏洞,目標(biāo)系統(tǒng)被感染,然后又利用同樣的方法感染新的目標(biāo)系統(tǒng),即,蠕蟲從一個(gè)節(jié)點(diǎn)傳播到另一個(gè)節(jié)點(diǎn)時(shí)具有相似的行為。這是因?yàn)槿湎x包含用于攻擊弱點(diǎn)服務(wù)的特定模塊。當(dāng)蠕蟲試圖利用同樣的漏洞攻擊不同的系統(tǒng)時(shí)就會(huì)出現(xiàn)這一特征,特別是當(dāng)網(wǎng)絡(luò)中所有的主機(jī)運(yùn)行相同版本的服務(wù)時(shí)。即使蠕蟲包含不同的漏洞利用模塊,它們的數(shù)量也是有限的。
(2)連接模式的因果關(guān)系。連接模式的因果關(guān)系意味著某個(gè)連接模式或事件依賴于另一個(gè)或前面的事件。很明顯,如果一個(gè)節(jié)點(diǎn)開始以感染方式動(dòng)作,則它必須首先被感染。一個(gè)重要的情形是某個(gè)連接的目的節(jié)點(diǎn)在一段時(shí)間后與另一個(gè)節(jié)點(diǎn)進(jìn)行了類似的連接。
(3)無效的連接。分兩種情況:①目標(biāo)系統(tǒng)在線,如果蠕蟲漏洞利用的數(shù)據(jù)包為TCP/UDP,而目標(biāo)系統(tǒng)沒有開放這些服務(wù),在網(wǎng)絡(luò)上可以看到目的端口不可達(dá)的ICMP報(bào)文。②目標(biāo)系統(tǒng)不在線,蠕蟲探測不成功。當(dāng)蠕蟲成功地攻破了主機(jī),試圖探測新的弱點(diǎn)系統(tǒng)時(shí)就會(huì)出現(xiàn)無效連接。這是因?yàn)槿湎x在發(fā)現(xiàn)弱點(diǎn)服務(wù)時(shí),通常會(huì)隨機(jī)選擇IP地址。如果隨機(jī)選擇的地址或服務(wù)端口不存在,就會(huì)出現(xiàn)無效的連接。
(4)蠕蟲在探測和攻擊新的目標(biāo)系統(tǒng)時(shí),會(huì)出現(xiàn)一對多的通信模式。
根據(jù)蠕蟲在本地網(wǎng)絡(luò)的行為特點(diǎn),EWAS采用特征分析與異常分析相結(jié)合的蠕蟲判定方法以降低漏警率和誤警率。
(1)特征匹配方法。這種檢測方法可以對付已知的蠕蟲。特征匹配方法既快速高效,又能保證一定的成功率,但是該方法無法對付新的蠕蟲。
(2)如果一個(gè)節(jié)點(diǎn)在△t時(shí)間內(nèi)與多于n個(gè)節(jié)點(diǎn)進(jìn)行了通信,并且它們的通信模式相同,則認(rèn)為該節(jié)點(diǎn)具有“花束”狀通信模式。采集和分析目的不可達(dá)報(bào)文,如果某個(gè)本地節(jié)點(diǎn)具有“花束”狀通信模式則認(rèn)為該節(jié)點(diǎn)已被蠕蟲感染。這種檢測方法可以快速檢測到進(jìn)行隨機(jī)IP地址掃描的蠕蟲。
(3)因果連接模式判定方法。連接是一個(gè)通信元組(時(shí)戳,協(xié)議+源IP,源端口,目的IP,目的端口,數(shù)據(jù)),表示在某個(gè)時(shí)間,從某個(gè)源IP到某個(gè)目的IP的特定目的端口已成功建立了一個(gè)通信連接,數(shù)據(jù)僅包含報(bào)文的頭,個(gè)字節(jié)(,是可配置的),不包含所有交換的數(shù)據(jù)。一個(gè)通信鏈表示從一個(gè)主機(jī)到另一個(gè)主機(jī)先后連續(xù)建立的幾個(gè)通信連接。從一個(gè)主機(jī)外出的連接僅在之前有另一個(gè)主機(jī)打開了到此主機(jī)的連接時(shí)才會(huì)成為通信鏈的一個(gè)元素。當(dāng)一個(gè)通信鏈具有一定數(shù)量的相同通信連接模式,則認(rèn)為這是一個(gè)蠕蟲模式。
(4)蜜罐檢測方法。利用蜜罐,模擬本地網(wǎng)絡(luò)中未分配的IP地址,欺騙蠕蟲,使其誤以為找到了弱點(diǎn)系統(tǒng)。通過蜜罐系統(tǒng)可以分析蠕蟲行為,采集未知蠕蟲的攻擊特征。
3 結(jié)束語
通過實(shí)踐檢測,EWAS具有以下幾個(gè)優(yōu)點(diǎn):
(1)實(shí)時(shí)采集網(wǎng)絡(luò)數(shù)據(jù)流;
(2)實(shí)時(shí)分析網(wǎng)絡(luò)報(bào)文,檢測蠕蟲活動(dòng);
(3)實(shí)時(shí)給出蠕蟲報(bào)警信息;
(4)采用旁路工作方式,不影響原有的網(wǎng)絡(luò)應(yīng)用
(5)使用蜜罐模擬本地網(wǎng)絡(luò)未分配的IP地址,欺騙蠕蟲,捕獲到蜜罐的可疑訪問;
(6)控制中心可對蠕蟲檢測分析引擎進(jìn)行遠(yuǎn)程管理;
(7)在蠕蟲掃描階段就發(fā)現(xiàn)蠕蟲活動(dòng)。
EWAS綜合利用多種方法進(jìn)行檢測,可在蠕蟲傳播的早期檢測出蠕蟲。該系統(tǒng)采用特征分析和異常分析相結(jié)合的方法以降低漏警率和誤警率;在給出報(bào)警信息的同時(shí)給出該信息的可信度;利用可信度告知用戶該事件分析的準(zhǔn)確度。