摘要:研究和建立了一種可控型的蠕蟲網(wǎng)絡(luò),設(shè)計了廣播網(wǎng)絡(luò)與樹狀網(wǎng)絡(luò)相結(jié)合的混合網(wǎng)絡(luò)結(jié)構(gòu),討論組網(wǎng)、通信和控制方案,并對性能作了分析,有助于對蠕蟲網(wǎng)絡(luò)的認(rèn)識和防治。
關(guān)鍵詞:網(wǎng)絡(luò)安全; 蠕蟲; 網(wǎng)絡(luò)攻擊; 廣播網(wǎng)絡(luò); 樹狀網(wǎng)絡(luò)
中圖分類號:TP390.5文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2007)11-0164-03
隨著網(wǎng)絡(luò)應(yīng)用的普及和深入,蠕蟲對網(wǎng)絡(luò)安全的威脅日益增加。特別是在高速網(wǎng)絡(luò)環(huán)境下,多樣化的傳播途徑和應(yīng)用環(huán)境更使得蠕蟲爆發(fā)率大為提高,損失越來越大。例如2001年的Code Red v2、Nimda,2003年的SQL slammer、Sobig,2004年的Blaster蠕蟲、Nachi蠕蟲等,都對網(wǎng)絡(luò)造成重大危害。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,蠕蟲融合了病毒傳染、木馬控制、拒絕服務(wù)攻擊等能力,破壞能力日益增大,尤其是蠕蟲通過網(wǎng)絡(luò)通信聯(lián)合起來大量控制和消耗網(wǎng)絡(luò)資源,使整個Internet面臨著巨大的威脅。
蠕蟲網(wǎng)絡(luò)成為日益復(fù)雜的綜合系統(tǒng)。在這種趨勢下,首先研究蠕蟲網(wǎng)絡(luò)的各種結(jié)構(gòu),有助于理解和研究各種檢測及防御手段;其次,研究結(jié)構(gòu)相似的良性蠕蟲網(wǎng)絡(luò)有助于利用良性蠕蟲網(wǎng)絡(luò)管理和預(yù)防惡意蠕蟲;最后,蠕蟲網(wǎng)絡(luò)的結(jié)構(gòu)與應(yīng)用網(wǎng)絡(luò)結(jié)構(gòu)有很大的相似性,研究網(wǎng)絡(luò)的部署有助于研究各種應(yīng)用系統(tǒng)網(wǎng)絡(luò)通信技術(shù)。本文旨在建立一種可控型蠕蟲網(wǎng)絡(luò)系統(tǒng),該系統(tǒng)可以在用戶控制下完成傳播、通信和攻擊破壞。
1系統(tǒng)模型
本系統(tǒng)由蠕蟲終端、中間服務(wù)器和用戶管理中心三部分組成。其中:用戶管理中心負(fù)責(zé)整個蠕蟲網(wǎng)絡(luò)的指揮和調(diào)度工作;中間服務(wù)器為中轉(zhuǎn)站點,可以有多個,蠕蟲從這里獲取指令,執(zhí)行相應(yīng)動作;蠕蟲終端運行在多臺主機(jī)上,實施具體任務(wù)。
1.1網(wǎng)絡(luò)設(shè)計
從網(wǎng)絡(luò)結(jié)構(gòu)上考慮,典型的蠕蟲網(wǎng)絡(luò)結(jié)構(gòu)主要有樹狀結(jié)構(gòu)和廣播結(jié)構(gòu)兩種。樹狀結(jié)構(gòu)是一種穩(wěn)定的層次結(jié)構(gòu),方便上下層之間的通信。樹狀結(jié)構(gòu)的一個典型例子是DNS結(jié)構(gòu),通過上下層間的逐層通信構(gòu)成消息傳遞與控制的樹狀網(wǎng)絡(luò)。樹狀結(jié)構(gòu)有良好的控制能力,每個葉節(jié)點均有確定的上層節(jié)點控制,下層節(jié)點向指定的上層節(jié)點匯報信息。廣播結(jié)構(gòu)是一種松散的網(wǎng)絡(luò)結(jié)構(gòu),同一個廣播網(wǎng)絡(luò)內(nèi)的節(jié)點通過向廣播地址發(fā)送消息來通信,通信效率較高,如大量應(yīng)用于僵尸網(wǎng)絡(luò)的IRC通道即可以在IRC頻道里廣播消息。
為了兼顧通信效率和可控制性,在組網(wǎng)設(shè)計時采用了混合結(jié)構(gòu)設(shè)計,如圖1所示。
可控型蠕蟲網(wǎng)絡(luò)結(jié)構(gòu)由用戶管理中心、中間服務(wù)器、子網(wǎng)三級組成。其中用戶管理中心、中間服務(wù)器和子網(wǎng)之間通過樹狀結(jié)構(gòu)實現(xiàn)層次控制,子網(wǎng)內(nèi)通過廣播通信進(jìn)行聯(lián)系。為實現(xiàn)子網(wǎng)與上層中間服務(wù)器的通信,在子網(wǎng)中選出子網(wǎng)服務(wù)器。
在網(wǎng)絡(luò)協(xié)議設(shè)計上,與網(wǎng)絡(luò)結(jié)構(gòu)相適應(yīng),在子網(wǎng)內(nèi)采用UDP廣播協(xié)議;在用戶管理中心、中間服務(wù)器、子網(wǎng)之間采用可靠的TCP協(xié)議。
由于蠕蟲子網(wǎng)是由同一個路由器下的主機(jī)組成,考慮到可控型蠕蟲網(wǎng)絡(luò)的通信應(yīng)該是輕負(fù)載的網(wǎng)絡(luò)通信,通信可靠性可以通過重發(fā)數(shù)據(jù)來保證,UDP 協(xié)議顯然是一個合適的選擇。另一方面,在通用的以太網(wǎng)(Ethernet)構(gòu)架下,計算機(jī)與計算機(jī)之間的數(shù)據(jù)交換都是通過交換機(jī)來完成的。如果一份數(shù)據(jù)需要被傳送給多個接收者,在使用TCP/IP連接的情況下,數(shù)據(jù)發(fā)送者需要向交換機(jī)發(fā)送多個同樣的拷貝,而交換機(jī)則負(fù)責(zé)將這多個拷貝分發(fā)給所有的接收者;在使用UDP 數(shù)據(jù)廣播的情況下,數(shù)據(jù)發(fā)送者只需要向交換機(jī)發(fā)送一個拷貝,交換機(jī)負(fù)責(zé)將這個信息制作多個拷貝發(fā)送給所有的機(jī)器。在這種情況下,使用TCP/IP連接會大大增加網(wǎng)絡(luò)的負(fù)擔(dān)。在一個普通局域網(wǎng)絡(luò)中,可以認(rèn)為由于網(wǎng)絡(luò)狀況較差而造成數(shù)據(jù)丟失的可能性比較小,而利用UDP 數(shù)據(jù)廣播進(jìn)行數(shù)據(jù)交換能夠大幅度減輕網(wǎng)絡(luò)的負(fù)擔(dān),在子網(wǎng)內(nèi)設(shè)計一個基于UDP 數(shù)據(jù)廣播的網(wǎng)絡(luò)通信協(xié)議是可行的。在用戶管理中心、中間服務(wù)器、子網(wǎng)之間,可能部署拓?fù)渚嚯x相距連接的網(wǎng)絡(luò),有必要采用可靠的通信協(xié)議,故采用TCP協(xié)議。
為使得蠕蟲網(wǎng)絡(luò)更為隱蔽,子網(wǎng)服務(wù)器向中間服務(wù)器采用主動連接的方式,用戶管理中心也向中間服務(wù)器主動查詢,中間服務(wù)器被動地轉(zhuǎn)發(fā)信息與控制命令,增加了從蠕蟲終端追蹤用戶管理中心的難度。
1.2結(jié)構(gòu)設(shè)計
典型網(wǎng)絡(luò)蠕蟲的結(jié)構(gòu)通常包括傳播、攻擊、通信等功能模塊。考慮到蠕蟲網(wǎng)絡(luò)的擴(kuò)展性,可控型蠕蟲網(wǎng)絡(luò)采用插件結(jié)構(gòu),在基本框架上提供各種功能的擴(kuò)展,包括各種攻擊功能和不同的傳播方式的擴(kuò)展。具體結(jié)構(gòu)如圖2所示。其中:用戶管理負(fù)責(zé)收集信息和發(fā)布指令;中間服務(wù)器負(fù)責(zé)中轉(zhuǎn)通信;蠕蟲終端完成主要的傳播、隱藏和攻擊功能。在蠕蟲終端設(shè)計了五個模塊,即傳播模塊、攻擊模塊、通信模塊、隱藏模塊和控制模塊。控制模塊負(fù)責(zé)所有模塊的協(xié)調(diào)管理,同時負(fù)責(zé)處理蠕蟲終端要提交的信息以及用戶發(fā)布的指令;通信模塊承擔(dān)通信任務(wù),包括實現(xiàn)具體的通信協(xié)議;其他模塊通過相應(yīng)的插件接口由控制模塊統(tǒng)一調(diào)用完成相應(yīng)的功能。
1.3主要算法
1.3.1組網(wǎng)
組網(wǎng)考慮蠕蟲網(wǎng)絡(luò)的建立過程以及網(wǎng)絡(luò)出現(xiàn)異常時的重組過程。蠕蟲網(wǎng)絡(luò)運行的環(huán)境下,任何蠕蟲終端節(jié)點可能由于用戶關(guān)機(jī)或蠕蟲被查殺等原因無法與其他節(jié)點連接,因此要求組網(wǎng)方式動態(tài)靈活,不因為某個特定節(jié)點無法連接造成網(wǎng)絡(luò)無法連接;同時蠕蟲網(wǎng)絡(luò)的組網(wǎng)方式也應(yīng)該滿足可控的要求。組網(wǎng)主要采用隨機(jī)競爭的方式通過廣播通告完成。用UDP廣播建立子網(wǎng)的過程中,很可能碰到多個蠕蟲終端同時競爭服務(wù)器的情況。為解決這個問題,參考了以太網(wǎng)協(xié)議的CSMA/CD算法的基本思想,設(shè)計了一個隨機(jī)等待的時間段,同時采用發(fā)送服務(wù)器請求包的機(jī)制來模仿CSMA/CD算法中的碰撞檢測。這樣就使得多個蠕蟲終端可以順利地競爭出一個服務(wù)器。
組網(wǎng)過程按以下步驟實現(xiàn):
a)終端節(jié)點運行后,開始監(jiān)聽網(wǎng)絡(luò)中是否有子網(wǎng)服務(wù)器發(fā)出的子網(wǎng)服務(wù)器確認(rèn)包。
b)如果收到確認(rèn)包,則認(rèn)為子網(wǎng)服務(wù)器已經(jīng)存在。該終端節(jié)點將自己的信息發(fā)送給該服務(wù)器,使得自己成為該子網(wǎng)的一員,蠕蟲網(wǎng)絡(luò)組網(wǎng)完成。
c)如果沒有收到確認(rèn)包,則隨機(jī)等待一段時間;如果收到確認(rèn)包,則同步驟b),子網(wǎng)初始化過程完成。如果之后仍然沒有收到服務(wù)器確認(rèn)包,則該終端發(fā)送服務(wù)器確認(rèn)包,并自己承擔(dān)子網(wǎng)服務(wù)器的任務(wù),進(jìn)入到步驟e)。
d)在發(fā)送服務(wù)器確認(rèn)包過程中,如果收到其他的服務(wù)器確認(rèn)包,即出現(xiàn)服務(wù)器沖突的情況,則回到步驟a),重新開始初始化子網(wǎng)競爭過程。通過步驟c)中的隨機(jī)等待時間,避免服務(wù)器競爭的反復(fù)沖突。
e)子網(wǎng)服務(wù)器確認(rèn)后選擇中間服務(wù)器連接,蠕蟲網(wǎng)絡(luò)組網(wǎng)完成。
網(wǎng)絡(luò)建立后,如果子網(wǎng)服務(wù)器由于某些原因無法與中間服務(wù)器連接,則放棄其子網(wǎng)服務(wù)器身份,停止發(fā)送服務(wù)器確認(rèn)包。當(dāng)其他蠕蟲終端節(jié)點收不到服務(wù)器確認(rèn)包時,重新開始服務(wù)器競爭過程。同樣,如果子網(wǎng)服務(wù)器所在終端節(jié)點由于主機(jī)關(guān)機(jī)等原因停止運行,也重新開始服務(wù)器競爭過程。
為了提高可靠性,系統(tǒng)提供多個中間服務(wù)器,由子網(wǎng)服務(wù)器隨機(jī)選擇,建立可用連接,即通過該中間服務(wù)器轉(zhuǎn)發(fā)蠕蟲終端信息和接收用戶指令。直到該中間服務(wù)器無法連接時,重新選擇新的中間服務(wù)器。
1.3.2管理
整個蠕蟲網(wǎng)絡(luò)的管理由用戶管理中心通過采集各終端節(jié)點的信息實現(xiàn)。蠕蟲網(wǎng)絡(luò)形成穩(wěn)定的網(wǎng)絡(luò)結(jié)構(gòu)后,終端節(jié)點按該網(wǎng)絡(luò)結(jié)構(gòu)逐層匯報自身消息。所有終端節(jié)點的消息將匯聚在中間服務(wù)器上,由不同的終端ID和子網(wǎng)ID區(qū)別。用戶管理中心遍歷所有的中間服務(wù)器,即可以獲取所有子網(wǎng)及相應(yīng)終端節(jié)點的信息。
1.3.3控制
整個蠕蟲網(wǎng)絡(luò)的控制由用戶管理中心通過發(fā)布指令來實現(xiàn)。每個子網(wǎng)在匯報自身消息時包含子網(wǎng)ID,終端消息包含終端ID,通過指定ID可以選擇向指定的子網(wǎng)發(fā)布指令,也可以選擇向指定的一個和多個終端發(fā)布指令。指令中指定了接收指令的目標(biāo)ID,發(fā)布到中間服務(wù)器上,子網(wǎng)服務(wù)器從中間服務(wù)器獲取指令,并廣播指令到蠕蟲子網(wǎng)。
2性能分析
蠕蟲網(wǎng)絡(luò)的應(yīng)用場景要求其能夠快速組網(wǎng)、穩(wěn)定通信、有效控制、盡可能流量隱蔽。因此主要從以下幾個方面對系統(tǒng)性能進(jìn)行分析:
a)組網(wǎng)效率。
組網(wǎng)過程通過廣播通告競爭出子網(wǎng)服務(wù)器。樹狀網(wǎng)絡(luò)的效率是線性的,廣播網(wǎng)絡(luò)的效率是指數(shù)級的。分析如下:(a)點對點網(wǎng)絡(luò),兩個節(jié)點一次通信需要時間T,則消息到達(dá)n個節(jié)點需要nT的時間;(b)對廣播網(wǎng)絡(luò),一次廣播通信需要時間T,則消息到達(dá)n個節(jié)點只需要時間T,2T時間內(nèi)消息即可到達(dá)節(jié)點n2。由以上分析可知,組網(wǎng)過程中只需要發(fā)送服務(wù)器通告包即可,組網(wǎng)效率很高。如果有新的終端出現(xiàn)在子網(wǎng)范圍內(nèi),只需要監(jiān)聽服務(wù)器通告包,即可加入子網(wǎng)。
b)網(wǎng)絡(luò)可靠性。
設(shè)中間服務(wù)器到子網(wǎng)任意節(jié)點的單條鏈路可靠性為概率p,在同一子網(wǎng)內(nèi)部的通信可以認(rèn)為具有較高的可靠性,將該值簡化為1。子網(wǎng)節(jié)點數(shù)為n,如果不采用子網(wǎng)服務(wù)器,每個終端節(jié)點都直接與中間服務(wù)器通信,即采用樹狀網(wǎng)絡(luò),n個節(jié)點都成功通信的概率為g(p)=pn。采用子網(wǎng)服務(wù)器廣播結(jié)構(gòu)時,如果選中的第一個子網(wǎng)服務(wù)器成功通信,則整個子網(wǎng)可以成功通信,成功概率為p;如果選中的第一個子網(wǎng)服務(wù)器不成功,則重新開始選擇第二個子網(wǎng)服務(wù)器,成功概率為p(1-p);依此遞推,當(dāng)選擇i個子網(wǎng)服務(wù)器才成功時,子網(wǎng)成功概率為p(1-p)(i-1)。總的成功概率為f(p)=p∑ni=1(1-p)(i-1)。考慮到子網(wǎng)結(jié)構(gòu),采用了重復(fù)嘗試的策略。為公平地比較,樹狀點對點網(wǎng)絡(luò)也應(yīng)考慮重復(fù)嘗試的情況。但由于樹狀點對點網(wǎng)絡(luò)每次重復(fù)嘗試的情況相同,故重復(fù)之后仍具有相同的成功概率。兩種網(wǎng)絡(luò)的可靠性比較如圖3所示。
顯然,子網(wǎng)結(jié)構(gòu)具有更高的網(wǎng)絡(luò)可靠性。
網(wǎng)絡(luò)可靠性也表現(xiàn)在,由于采用動態(tài)的子網(wǎng)服務(wù)器結(jié)構(gòu),不存在單點失效問題。
c)均衡性。
子網(wǎng)結(jié)構(gòu)在各子網(wǎng)節(jié)點之間具有均衡性,能更充分地利用整個子網(wǎng)的資源;同時子網(wǎng)服務(wù)器動態(tài)競爭,增加了靈活度,使得很難追蹤服務(wù)器,從而破壞整個網(wǎng)絡(luò)。
(a)公平性。每個子網(wǎng)節(jié)點以相同的概率和相同的退避時間參與競爭,故節(jié)點間具有完全的公平。
(b)均衡性。當(dāng)子網(wǎng)服務(wù)器出現(xiàn)連接故障時,重新競爭服務(wù)器。在這種情況下,工作穩(wěn)定時間越長的子網(wǎng)服務(wù)器將承擔(dān)更長時間的子網(wǎng)服務(wù)器,從而保證整個網(wǎng)絡(luò)的穩(wěn)定工作,即在終端節(jié)點穩(wěn)定性和終端節(jié)點承擔(dān)的任務(wù)之間是均衡的。
d)控制能力。
廣播網(wǎng)絡(luò)的指令發(fā)布效率更高,消息在網(wǎng)絡(luò)中的傳遞是按指數(shù)規(guī)律的,同組網(wǎng)效率。
每個終端節(jié)點當(dāng)且僅當(dāng)收到來自用戶管理中心的指令時才會開始工作,具有良好的可控性。
e)網(wǎng)絡(luò)流量。
從通信流量分析,同一時間內(nèi),一個子網(wǎng)中僅有一個子網(wǎng)服務(wù)器與中間服務(wù)器通信。如果沒有子網(wǎng)服務(wù)器,每個蠕蟲終端與中間服務(wù)器直接通信,則中間服務(wù)器的連接數(shù)大大增加,接近于蠕蟲終端數(shù)。從中間服務(wù)器看,隨著連接數(shù)減少,網(wǎng)絡(luò)流量也大大減少;從子網(wǎng)看,由于僅有一個節(jié)點對子網(wǎng)外通信,子網(wǎng)出口的流量大大減少,同時子網(wǎng)內(nèi)采用廣播協(xié)議,傳遞相同的信息,子網(wǎng)內(nèi)的流量并沒有增加。
f)攻擊能力。
可控型蠕蟲網(wǎng)絡(luò)具有快速組網(wǎng)能力、可靠的網(wǎng)絡(luò)通信、快速的指令發(fā)布和控制性能力,可以有效地協(xié)同多個終端節(jié)點工作,從而可以方便地構(gòu)造分布式攻擊,尤其是分布式拒絕服務(wù)攻擊。因此可控型蠕蟲網(wǎng)絡(luò)具有強(qiáng)大的攻擊能力。
蠕蟲網(wǎng)絡(luò)存在的問題主要包括兩方面:a)網(wǎng)絡(luò)防火墻及NAT技術(shù)對網(wǎng)絡(luò)通信形成很大的影響,同時也是蠕蟲網(wǎng)絡(luò)的重大障礙;b)本系統(tǒng)中間服務(wù)器是由子網(wǎng)服務(wù)器隨機(jī)選擇的,未考慮中間服務(wù)器的負(fù)載均衡和選擇策略,可能出現(xiàn)一個中間服務(wù)器承載了更多子網(wǎng)的情況,造成負(fù)載不均衡的情況,有待進(jìn)一步改進(jìn)。
3結(jié)束語
本文對可控型蠕蟲網(wǎng)絡(luò)進(jìn)行了探索,構(gòu)建了一個試驗蠕蟲網(wǎng)絡(luò)。結(jié)果表明,本系統(tǒng)具有如下特性:組網(wǎng)效率高、網(wǎng)絡(luò)可靠性和均衡性強(qiáng)、可控制能力好、通信隱蔽性好等,可以有效地實施可控型蠕蟲網(wǎng)絡(luò)的各種攻擊和控制功能。
進(jìn)一步,筆者將從中間服務(wù)器負(fù)載均衡和選擇策略等方面完善該系統(tǒng),使之適應(yīng)大規(guī)模蠕蟲網(wǎng)絡(luò)的需求。
參考文獻(xiàn):
[1]CERT/CC. CERT advisory CA-2001-23 continued threat of the “Code Red II” worm[EB/OL]. (2001-07-26).[2006-09-10].http://www.cert.org/advisories/CA-2001-23.html.
[2]MOORE D, PAXSON V, SAVAGE S. Inside the slammerworm[J]. IEEE Magazine on Security and Privacy, 2003,1(4):332-339.
[3]文偉平,卿斯?jié)h,蔣建春,等. 網(wǎng)絡(luò)蠕蟲研究與進(jìn)展[J]. 軟件學(xué)報, 2004,15(8):1208-1219.
[4]NAZARIO J, ANDERSON J, WASH R, et al.. The future of Internet worms [EB/OL]. (2001-07-12).http://www.blackhat.com/presenttions/JoseNazario/bh-usa-01-Joes-Nazario.pdf.
[5]STANIFORD S, PAXSON V, WEAVER N. How to own the Internet in your spare time[C]//Proc of the 11th USENIX Security Sympo ̄sium.Berkeley:USENIX Association, 2002:149-167.
[6]COHEN F B. Computer virusestheory and experiments [J]. Computers and Security, 1987,6(1):22-35.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”