1. 程式人生 > >p2p僵屍網路工作原理

p2p僵屍網路工作原理

 嚴格的說,本節所要討論的內容已經超出了本文主題範圍,但是因為P2P驅動的DDoS攻擊很容易與基於P2P的僵屍網路發起的DDoS攻擊混淆,所以在這裡簡要討論一下。前者是利用P2P協議本身的漏洞,作為發起攻擊的手段,而後者在本質上同其它僵屍網路的DDoS攻擊一樣,只是僵屍網路的控制使用了P2P協議。P2P驅動的DDoS攻擊大致可分為以下四類:

  ·INDEX 投毒

  很多P2P系統(不僅限於P2P檔案共享系統)包含INDEX,INDEX是檔案ID到檔案位置(IP+Port)的對映,檔案ID是檔名的hash值。欺騙主機把假冒的INDEX儲存到本地的索引中,其中IP地址和埠是攻擊目標的地址和埠。indexing 節點被投毒以後,當另一個節點搜尋一個特定檔案的位置時,它就會接收到一個來自被投毒節點的虛假的記錄,進而試圖從受害主機下載那個檔案。首先它先與受害主機建立一個TCP連線,連線建立後,下載節點會發送一個應用層協議的訊息,說明它希望下載的檔案。由於無法理解這個訊息,受害主機可能會忽略這個訊息也許會讓TCP連線掛在那裡,也許關閉連線,也可能崩潰。如果很多節點試圖從受害主機下載那個檔案,受害主機就遭受到TCP-connection攻擊。如果是每隔幾分鐘就自動索取檔案的話,攻擊的影響可能更嚴重。
·路由表投毒

  DHT-based P2P系統,節點具有ID,這些IDs 用來把節點組織到一個覆蓋範圍內,每個節點都有一組鄰居。在許多DHT系統中,節點有一個相對較小的鄰居集合。通常是 O(log N ), N 是全部節點的數量。

  節點的鄰居列表組成了路由表,列表中的每個條目包含鄰居的ID, IP地址和埠號。DHT中的查詢訊息包含一個key。 當一個節點接收(或生成)一個訊息,它用這個key從路由表中來選擇一個鄰居轉發這個訊息。鄰居的選擇依賴於DHT。當一個節點加入系統,它建立自己的路由表,並且不斷更新。當檢測到一個鄰居節點離開了系統,就刪除路由表該鄰居的條目。當發現一個新的節點(例如接收到一個查詢訊息),它可能增加這個節點到它自己的DHT的最高階並且實現協議的標準。

  當路由表被投毒以後,攻擊者的目標是欺騙其它的終端新增偽造的鄰居IP地址,這個地址是攻擊受害者的地址。根據DHT及其實現,可以用簡單的傳送宣告訊息來給路由表投毒。一旦接收到宣告,節點可能會選擇把這個偽造的IP地址放入路由表並轉發訊息到鄰居節點。

  當這個被投毒的節點需要通過DHT轉發訊息,會有很多節點被投毒,如果被投毒的節點很多,並且一個或多個偽造的IP地址被加入路由表。受害主機可能會接收到來自DHT的巨大訊息洪流,受害主機對這些訊息作出響應,也會阻塞它自己的上聯通道。

  ·分隔攻擊

  在新節點加入系統時, 必須和系統中現有節點進行聯絡以獲得相應的初始路由資訊。這時,新節點可能被分隔到一個不正確的P2P網路中。假定一組攻擊者節點已經構成了一個虛假網路,他們也執行和真實網路相同的協議,因此這個虛假網路從內部來說也是完全正確的。而且其中某些節點也可能是真實網路中的節點。這時如果新節點把這個虛假網路中的某個節點作為初始化節點,那麼他將落入到這個虛假網路中去,與真實網路分隔開來。

  ·Query Flood

  攻擊者傳送大量的虛假查詢請求,這些查詢請求會被P2P網路廣播變成更多的查詢請求,從而造成一定程度的擁塞。但是這種攻擊如果不利用僵屍網路協同發起,攻擊效果是非常有限的。

  3.7 基於HTTP協議的Botnet

  HTTP 協議是近年來除IRC 協議外的另一種流行的僵屍網路命令與控制協議,與IRC 協議相比,使用HTTP 協議構建僵屍網路命令與控制機制的優勢包括兩方面:

  ·僵屍網路更隱蔽,難以檢測

  由於IRC 協議已經是僵屍網路主流控制協議,安全業界更加關注監測IRC 通訊以檢測其中隱藏的僵屍網路活動,使用HTTP 協議構建控制通道則可以讓僵屍網路控制流量淹沒在大量的網際網路Web 通訊中,從而使得基於HTTP 協議的僵屍網路活動更難以被檢測;

  ·控制資訊可以繞過防火牆

  大多陣列織機構在閘道器上部署了防火牆,在很多情況下,防火牆過濾掉了非期望埠上的網路通訊,IRC 協議使用的埠通常也會被過濾,而使用HTTP 協議構建控制通道一般都可以繞過防火牆。

  ·程式碼個頭小,容易隱蔽

  這類Bot程式除了用於攻擊還使用者完成對網站的欺詐點選,如果控制協議採用別協議,勢必要用額外的程式碼實現,而採用HTTP 協議則不需要額外的程式碼。

  目前,已知的採用HTTP 協議構建命令與控制機制的殭屍程式有Bobax、Rustock、Clickbot等。例如,Bobax 殭屍程式,它首先會訪問類似“http://hostname/reg?u=ABCDEF01&v=114”的一個URL,向僵屍網路控制器傳送註冊請求,如果連線成功,則僵屍網路控制器將反饋這一請求,並在返回內容中包含當前攻擊者對僵屍網路發出的控制命令,Bobax 殭屍程式則從返回內容中解析出命令並進行執行,Bobax 殭屍程式接受的命令包括:upd(下載並執行更新程式)、exe(執行指定的程式)、scn(使用MS04-011 破解程式掃描並感染主機)、scs(停止擴散掃描)、prj(傳送垃圾郵件)、spd(報告網路連線速度)等
文章來自天跡社群,原文地址:http://www.99tianji.com/tianji31240.html