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