摘要:研究和建立了一種可控型的蠕蟲網絡,設計了廣播網絡與樹狀網絡相結合的混合網絡結構,討論組網、通信和控制方案,并對性能作了分析,有助于對蠕蟲網絡的認識和防治。
關鍵詞:網絡安全; 蠕蟲; 網絡攻擊; 廣播網絡; 樹狀網絡
中圖分類號:TP390.5文獻標志碼:A
文章編號:1001-3695(2007)11-0164-03
隨著網絡應用的普及和深入,蠕蟲對網絡安全的威脅日益增加。特別是在高速網絡環境下,多樣化的傳播途徑和應用環境更使得蠕蟲爆發率大為提高,損失越來越大。例如2001年的Code Red v2、Nimda,2003年的SQL slammer、Sobig,2004年的Blaster蠕蟲、Nachi蠕蟲等,都對網絡造成重大危害。隨著網絡技術的發展,蠕蟲融合了病毒傳染、木馬控制、拒絕服務攻擊等能力,破壞能力日益增大,尤其是蠕蟲通過網絡通信聯合起來大量控制和消耗網絡資源,使整個Internet面臨著巨大的威脅。
蠕蟲網絡成為日益復雜的綜合系統。在這種趨勢下,首先研究蠕蟲網絡的各種結構,有助于理解和研究各種檢測及防御手段;其次,研究結構相似的良性蠕蟲網絡有助于利用良性蠕蟲網絡管理和預防惡意蠕蟲;最后,蠕蟲網絡的結構與應用網絡結構有很大的相似性,研究網絡的部署有助于研究各種應用系統網絡通信技術。本文旨在建立一種可控型蠕蟲網絡系統,該系統可以在用戶控制下完成傳播、通信和攻擊破壞。
1系統模型
本系統由蠕蟲終端、中間服務器和用戶管理中心三部分組成。其中:用戶管理中心負責整個蠕蟲網絡的指揮和調度工作;中間服務器為中轉站點,可以有多個,蠕蟲從這里獲取指令,執行相應動作;蠕蟲終端運行在多臺主機上,實施具體任務。
1.1網絡設計
從網絡結構上考慮,典型的蠕蟲網絡結構主要有樹狀結構和廣播結構兩種。樹狀結構是一種穩定的層次結構,方便上下層之間的通信。樹狀結構的一個典型例子是DNS結構,通過上下層間的逐層通信構成消息傳遞與控制的樹狀網絡。樹狀結構有良好的控制能力,每個葉節點均有確定的上層節點控制,下層節點向指定的上層節點匯報信息。廣播結構是一種松散的網絡結構,同一個廣播網絡內的節點通過向廣播地址發送消息來通信,通信效率較高,如大量應用于僵尸網絡的IRC通道即可以在IRC頻道里廣播消息。
為了兼顧通信效率和可控制性,在組網設計時采用了混合結構設計,如圖1所示。
可控型蠕蟲網絡結構由用戶管理中心、中間服務器、子網三級組成。其中用戶管理中心、中間服務器和子網之間通過樹狀結構實現層次控制,子網內通過廣播通信進行聯系。為實現子網與上層中間服務器的通信,在子網中選出子網服務器。
在網絡協議設計上,與網絡結構相適應,在子網內采用UDP廣播協議;在用戶管理中心、中間服務器、子網之間采用可靠的TCP協議。
由于蠕蟲子網是由同一個路由器下的主機組成,考慮到可控型蠕蟲網絡的通信應該是輕負載的網絡通信,通信可靠性可以通過重發數據來保證,UDP 協議顯然是一個合適的選擇。另一方面,在通用的以太網(Ethernet)構架下,計算機與計算機之間的數據交換都是通過交換機來完成的。如果一份數據需要被傳送給多個接收者,在使用TCP/IP連接的情況下,數據發送者需要向交換機發送多個同樣的拷貝,而交換機則負責將這多個拷貝分發給所有的接收者;在使用UDP 數據廣播的情況下,數據發送者只需要向交換機發送一個拷貝,交換機負責將這個信息制作多個拷貝發送給所有的機器。在這種情況下,使用TCP/IP連接會大大增加網絡的負擔。在一個普通局域網絡中,可以認為由于網絡狀況較差而造成數據丟失的可能性比較小,而利用UDP 數據廣播進行數據交換能夠大幅度減輕網絡的負擔,在子網內設計一個基于UDP 數據廣播的網絡通信協議是可行的。在用戶管理中心、中間服務器、子網之間,可能部署拓撲距離相距連接的網絡,有必要采用可靠的通信協議,故采用TCP協議。
為使得蠕蟲網絡更為隱蔽,子網服務器向中間服務器采用主動連接的方式,用戶管理中心也向中間服務器主動查詢,中間服務器被動地轉發信息與控制命令,增加了從蠕蟲終端追蹤用戶管理中心的難度。
1.2結構設計
典型網絡蠕蟲的結構通常包括傳播、攻擊、通信等功能模塊。考慮到蠕蟲網絡的擴展性,可控型蠕蟲網絡采用插件結構,在基本框架上提供各種功能的擴展,包括各種攻擊功能和不同的傳播方式的擴展。具體結構如圖2所示。其中:用戶管理負責收集信息和發布指令;中間服務器負責中轉通信;蠕蟲終端完成主要的傳播、隱藏和攻擊功能。在蠕蟲終端設計了五個模塊,即傳播模塊、攻擊模塊、通信模塊、隱藏模塊和控制模塊。控制模塊負責所有模塊的協調管理,同時負責處理蠕蟲終端要提交的信息以及用戶發布的指令;通信模塊承擔通信任務,包括實現具體的通信協議;其他模塊通過相應的插件接口由控制模塊統一調用完成相應的功能。
1.3主要算法
1.3.1組網
組網考慮蠕蟲網絡的建立過程以及網絡出現異常時的重組過程。蠕蟲網絡運行的環境下,任何蠕蟲終端節點可能由于用戶關機或蠕蟲被查殺等原因無法與其他節點連接,因此要求組網方式動態靈活,不因為某個特定節點無法連接造成網絡無法連接;同時蠕蟲網絡的組網方式也應該滿足可控的要求。組網主要采用隨機競爭的方式通過廣播通告完成。用UDP廣播建立子網的過程中,很可能碰到多個蠕蟲終端同時競爭服務器的情況。為解決這個問題,參考了以太網協議的CSMA/CD算法的基本思想,設計了一個隨機等待的時間段,同時采用發送服務器請求包的機制來模仿CSMA/CD算法中的碰撞檢測。這樣就使得多個蠕蟲終端可以順利地競爭出一個服務器。
組網過程按以下步驟實現:
a)終端節點運行后,開始監聽網絡中是否有子網服務器發出的子網服務器確認包。
b)如果收到確認包,則認為子網服務器已經存在。該終端節點將自己的信息發送給該服務器,使得自己成為該子網的一員,蠕蟲網絡組網完成。
c)如果沒有收到確認包,則隨機等待一段時間;如果收到確認包,則同步驟b),子網初始化過程完成。如果之后仍然沒有收到服務器確認包,則該終端發送服務器確認包,并自己承擔子網服務器的任務,進入到步驟e)。
d)在發送服務器確認包過程中,如果收到其他的服務器確認包,即出現服務器沖突的情況,則回到步驟a),重新開始初始化子網競爭過程。通過步驟c)中的隨機等待時間,避免服務器競爭的反復沖突。
e)子網服務器確認后選擇中間服務器連接,蠕蟲網絡組網完成。
網絡建立后,如果子網服務器由于某些原因無法與中間服務器連接,則放棄其子網服務器身份,停止發送服務器確認包。當其他蠕蟲終端節點收不到服務器確認包時,重新開始服務器競爭過程。同樣,如果子網服務器所在終端節點由于主機關機等原因停止運行,也重新開始服務器競爭過程。
為了提高可靠性,系統提供多個中間服務器,由子網服務器隨機選擇,建立可用連接,即通過該中間服務器轉發蠕蟲終端信息和接收用戶指令。直到該中間服務器無法連接時,重新選擇新的中間服務器。
1.3.2管理
整個蠕蟲網絡的管理由用戶管理中心通過采集各終端節點的信息實現。蠕蟲網絡形成穩定的網絡結構后,終端節點按該網絡結構逐層匯報自身消息。所有終端節點的消息將匯聚在中間服務器上,由不同的終端ID和子網ID區別。用戶管理中心遍歷所有的中間服務器,即可以獲取所有子網及相應終端節點的信息。
1.3.3控制
整個蠕蟲網絡的控制由用戶管理中心通過發布指令來實現。每個子網在匯報自身消息時包含子網ID,終端消息包含終端ID,通過指定ID可以選擇向指定的子網發布指令,也可以選擇向指定的一個和多個終端發布指令。指令中指定了接收指令的目標ID,發布到中間服務器上,子網服務器從中間服務器獲取指令,并廣播指令到蠕蟲子網。
2性能分析
蠕蟲網絡的應用場景要求其能夠快速組網、穩定通信、有效控制、盡可能流量隱蔽。因此主要從以下幾個方面對系統性能進行分析:
a)組網效率。
組網過程通過廣播通告競爭出子網服務器。樹狀網絡的效率是線性的,廣播網絡的效率是指數級的。分析如下:(a)點對點網絡,兩個節點一次通信需要時間T,則消息到達n個節點需要nT的時間;(b)對廣播網絡,一次廣播通信需要時間T,則消息到達n個節點只需要時間T,2T時間內消息即可到達節點n2。由以上分析可知,組網過程中只需要發送服務器通告包即可,組網效率很高。如果有新的終端出現在子網范圍內,只需要監聽服務器通告包,即可加入子網。
b)網絡可靠性。
設中間服務器到子網任意節點的單條鏈路可靠性為概率p,在同一子網內部的通信可以認為具有較高的可靠性,將該值簡化為1。子網節點數為n,如果不采用子網服務器,每個終端節點都直接與中間服務器通信,即采用樹狀網絡,n個節點都成功通信的概率為g(p)=pn。采用子網服務器廣播結構時,如果選中的第一個子網服務器成功通信,則整個子網可以成功通信,成功概率為p;如果選中的第一個子網服務器不成功,則重新開始選擇第二個子網服務器,成功概率為p(1-p);依此遞推,當選擇i個子網服務器才成功時,子網成功概率為p(1-p)(i-1)。總的成功概率為f(p)=p∑ni=1(1-p)(i-1)。考慮到子網結構,采用了重復嘗試的策略。為公平地比較,樹狀點對點網絡也應考慮重復嘗試的情況。但由于樹狀點對點網絡每次重復嘗試的情況相同,故重復之后仍具有相同的成功概率。兩種網絡的可靠性比較如圖3所示。
顯然,子網結構具有更高的網絡可靠性。
網絡可靠性也表現在,由于采用動態的子網服務器結構,不存在單點失效問題。
c)均衡性。
子網結構在各子網節點之間具有均衡性,能更充分地利用整個子網的資源;同時子網服務器動態競爭,增加了靈活度,使得很難追蹤服務器,從而破壞整個網絡。
(a)公平性。每個子網節點以相同的概率和相同的退避時間參與競爭,故節點間具有完全的公平。
(b)均衡性。當子網服務器出現連接故障時,重新競爭服務器。在這種情況下,工作穩定時間越長的子網服務器將承擔更長時間的子網服務器,從而保證整個網絡的穩定工作,即在終端節點穩定性和終端節點承擔的任務之間是均衡的。
d)控制能力。
廣播網絡的指令發布效率更高,消息在網絡中的傳遞是按指數規律的,同組網效率。
每個終端節點當且僅當收到來自用戶管理中心的指令時才會開始工作,具有良好的可控性。
e)網絡流量。
從通信流量分析,同一時間內,一個子網中僅有一個子網服務器與中間服務器通信。如果沒有子網服務器,每個蠕蟲終端與中間服務器直接通信,則中間服務器的連接數大大增加,接近于蠕蟲終端數。從中間服務器看,隨著連接數減少,網絡流量也大大減少;從子網看,由于僅有一個節點對子網外通信,子網出口的流量大大減少,同時子網內采用廣播協議,傳遞相同的信息,子網內的流量并沒有增加。
f)攻擊能力。
可控型蠕蟲網絡具有快速組網能力、可靠的網絡通信、快速的指令發布和控制性能力,可以有效地協同多個終端節點工作,從而可以方便地構造分布式攻擊,尤其是分布式拒絕服務攻擊。因此可控型蠕蟲網絡具有強大的攻擊能力。
蠕蟲網絡存在的問題主要包括兩方面:a)網絡防火墻及NAT技術對網絡通信形成很大的影響,同時也是蠕蟲網絡的重大障礙;b)本系統中間服務器是由子網服務器隨機選擇的,未考慮中間服務器的負載均衡和選擇策略,可能出現一個中間服務器承載了更多子網的情況,造成負載不均衡的情況,有待進一步改進。
3結束語
本文對可控型蠕蟲網絡進行了探索,構建了一個試驗蠕蟲網絡。結果表明,本系統具有如下特性:組網效率高、網絡可靠性和均衡性強、可控制能力好、通信隱蔽性好等,可以有效地實施可控型蠕蟲網絡的各種攻擊和控制功能。
進一步,筆者將從中間服務器負載均衡和選擇策略等方面完善該系統,使之適應大規模蠕蟲網絡的需求。
參考文獻:
[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]文偉平,卿斯漢,蔣建春,等. 網絡蠕蟲研究與進展[J]. 軟件學報, 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.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”