摘 要:本文提出了動態(tài)分層P2P網(wǎng)絡木馬技術并探討了它的通信負載均衡性。
關鍵詞:動態(tài)分層P2P網(wǎng)絡;木馬;通信負載
1 P2P網(wǎng)絡概述
1.1 P2P簡介
P2P(peer-to-peer)是一種對等網(wǎng)絡計算技術,它利用客戶端的處理能力,實現(xiàn)客戶端的點到點通信。在P2P網(wǎng)絡環(huán)境中,成千上萬臺彼此連接的計算機都處于對等地位,整個網(wǎng)絡一般不依賴于專用的集中服務器。網(wǎng)絡中的每一臺計算機既能充當網(wǎng)絡服務的請求者,又能對其他計算機的請求做出響應,提供資源與服務。
由于能夠極大緩解傳統(tǒng)架構中服務器端的壓力過大、單一失效點等問題,又能充分利用終端的豐富資源,所以P2P技術被廣泛應用于計算機網(wǎng)絡的各個應用領域,如分布式科學計算、文件共享、流媒體直播與點播、語音通信及在線游戲支撐平臺等方面。
1.2 P2P網(wǎng)絡通信原理
P2P網(wǎng)絡框架中的一臺主機稱之為一個節(jié)點,如果兩個節(jié)點互致對方的IP地址,則稱在這兩個節(jié)點之間存在一個連接。由于各節(jié)點的加入和退出網(wǎng)絡的時間都是動態(tài)的,為了實現(xiàn)P2P網(wǎng)絡,每個節(jié)點上需要保存一個與其有連接關系的節(jié)點的IP地址列表,稱為鄰居列表。同時,為了支持通信,每個節(jié)點還需要保存一個建立在IP地址列表基礎上的消息轉發(fā)目標表,稱為路由表。
P2P網(wǎng)絡中任意兩個節(jié)點之間可以通訊,通訊消息是沿著P2P網(wǎng)絡中的路徑,通過節(jié)點的轉發(fā),進行傳播的,節(jié)點與節(jié)點之間是平等關系。從其功能的角度來看,因為P2P網(wǎng)絡中各個節(jié)點是相同的,節(jié)點失效對整個系統(tǒng)的損壞程度低,所以各節(jié)點的重要性都是相同的;從它的性能角度來看,各個節(jié)點的工作負載也相當。
2 動態(tài)分層P2P網(wǎng)絡木馬技術的探討
木馬技術是一種網(wǎng)絡攻擊技術, 它通過各種隱蔽途徑將木馬植入目標機器,搜集其中信息,然后通過網(wǎng)絡將信息發(fā)送給攻擊者,并接收攻擊者的指令,完成其它各種可能對目標計算機有害的操作。
2.1 動態(tài)分層P2P網(wǎng)絡木馬技術的設計原理
根據(jù)P2P網(wǎng)絡的特點,首先引入sentok虛擬節(jié)點的概念。sentok是木馬攻擊者從P2P網(wǎng)絡所有k個servent節(jié)點里隨機選取的f個節(jié)點(這里f小于等于k),節(jié)點處于動態(tài)狀態(tài),每隔一段時間自動變換一批,應用于數(shù)據(jù)和指令的轉發(fā);sentok就是木馬攻擊者在P2P網(wǎng)絡中通信形成的邏輯控制關系,可看做一個虛擬的節(jié)點。sentok節(jié)點的動態(tài)變化最終達到所有servent節(jié)點的負載平衡,并增強木馬網(wǎng)絡通信的隱蔽性。
木馬攻擊者保存所有節(jié)點的列表,列表分為servent list和client list,servent節(jié)點只保留最新的sentok list和有限個數(shù)的servent list,client只保留有限個數(shù)的servent list。各列表都是在實時的更新狀態(tài),且與不斷變化的木馬P2P網(wǎng)絡保持聯(lián)系。
各個節(jié)點之間采用加密的通信方式,比如:Key i是節(jié)點i的密鑰,Port i則為節(jié)點i所用的木馬端口,凡是不常被使用的端口都可以用于節(jié)點的通信。
如果新節(jié)點被感染,感染源就會將自身的servent list 傳給新的節(jié)點。新節(jié)點一上線就會自動連接servent list的主機,如果該主機是servent,感染源就會將其加入自身的servent list中,如果列表超出了最大容量值,就會隨機的替換掉一個節(jié)點,并將更新后的列表數(shù)據(jù)發(fā)給主控攻擊端,木馬攻擊者隨后掌握了被感染的節(jié)點情況[1]。
2.2 servent負載仿真實驗
Opnet Modeler提供了三層建模機制,采用了層階式的模擬方式,最底層為進程(Process)模型,以狀態(tài)機來描述協(xié)議;其次為節(jié)點(Node)模型,由相應的協(xié)議模型構成,反映設備特性;最上層為網(wǎng)絡模型。三層模型和實際的協(xié)議、設備、網(wǎng)絡完全對應,全面反映了網(wǎng)絡的相關特性。
本文利用Opnet 工具分別定義了相關的數(shù)據(jù)包(contr)、鏈路(sentok)和節(jié)點(servent、bot),仿真了20個節(jié)點構成的動態(tài)分層P2P木馬網(wǎng)絡,以及在下層bot節(jié)點分布不均的情況下的通信狀況,網(wǎng)絡結構如圖1所示,仿真的時間設定為為8個小時。控制端為Contr節(jié)點,每隔60秒從5個servent節(jié)點中隨機產(chǎn)生2個sentok,并廣播給所有的servent節(jié)點。servent節(jié)點收到廣播后將2個sentok存入本節(jié)點中的sentok list中并轉發(fā)該信息數(shù)據(jù)包,一旦收到發(fā)往contr的信息包就轉發(fā)sentok。
仿真中定義了4種數(shù)據(jù)包在節(jié)點間進行通信,所有節(jié)點每10秒隨機產(chǎn)生一種類型的數(shù)據(jù)包:
(1)命令包。這是包裝控制端向被控端發(fā)送的命令,包括廣播命令和點對點命令。sentok收到命令包后,自動檢查目的地址的各字段,如果是本地地址就提取該命令并執(zhí)行;如果是廣播包就執(zhí)行命令同時轉發(fā)給其它相鄰的各節(jié)點;如果是其它地址就轉發(fā)給目標節(jié)點。(2)信息包。這是包裝被控端向控制端發(fā)送的數(shù)據(jù)信息。servent收到數(shù)據(jù)包轉發(fā)sentok節(jié)點,sentok節(jié)點收到數(shù)據(jù)包后轉發(fā)控制端。(3)連接包。它用于節(jié)點入網(wǎng)時,向servent節(jié)點發(fā)起請求連接的信息。(4)應答包。當servent接受連接請求后向目標源節(jié)點發(fā)送應答指令。
通過動態(tài)分層P2P網(wǎng)絡木馬通信仿真實驗,發(fā)現(xiàn)木馬通信在動態(tài)分層P2P網(wǎng)絡的servent節(jié)點上行負載具有更好的均衡性[2]。
3 結束語
本文簡單探討了動態(tài)分層P2P網(wǎng)絡木馬負載均衡性的特點,但本文停留在仿真研究階段,動態(tài)分層P2P木馬網(wǎng)絡的數(shù)學模型及具體實現(xiàn)還有待進一步研究。
[參考文獻]
[1]敬曉芳.特洛伊木馬攻擊技術與防范策略[J].北京:電腦編程技巧與維護,2008.16.
[2]李建定.木馬隱藏技術的分析與實現(xiàn)[D].北京大學,2008.