收稿日期:2014-04-08
基金項目:國家高技術研究發展計劃(863)(2012AA012502,2012AA012506);國家科技支撐計(2012BAH37B01)。
作者簡介:張信幸(1991-),女,貴州興義人,碩士研究生,主要研究方向: 網絡與信息安全;
方濱興(1960-),男,江西萬年人,博士,教授,博士生導師,中國工程院院士,主要研究方向: 并行計算、網絡安全、拓撲發現等;
蔣智超(1989-),男,山東濟南人,碩士研究生,主要研究方向: 網絡與信息安全。
摘要:Mainline DHT協議現在已經被大量BT客戶端廣泛使用,由于BT的用戶是非常龐大的,因此Mainline DHT的脆弱性可能對因特網用戶帶來很大的危害。本文利用Mainline DHT的脆弱性設計了一個DDos攻擊系統,在真實DHT網絡下攻擊了所部署的受害節點,并對不同時間點的攻擊效能以及攻擊持續性進行了評估和分析,發現這個脆弱性會對因特網造成很大的危害,應當對Mainline DHT協議進行安全性增強改進。
關鍵詞:BitTorrent; Mainline DHT; 脆弱性; DDos攻擊
中圖分類號:TP39308文獻標識碼:A文章編號:2095-2163(2014)03-0031-04
An Effective Way to Launch DDos Attack by the Vulnerability of Mainline DHT
ZHANG Xinxing1,FANG Binxing1,2,JIANG Zhichao1
(1 School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China;
2 Beijing University of Posts and Telecommunication, Beijing 100876, China)
Abstract:Mainline DHT protocol has been widely used by a large number of BitTorrent client, due to BT users is very large, so the vulnerability of the Mainline DHT may bring great harm to the Internet users. Based on the vulnerability of Mainline DHT, the paper designs a DDos attack system. After deploying the system and attacking a victim in real DHT network, the paper also evaluates and analyzes the perniciousness and the persistence of the DDos attack, therefore finds this vulnerability can cause great harm to the Internet. So the security enhancements of Mainline DHT should be improved.
Key words:BitTorrent; Mainline DHT; Vulnerability; DDos Attack
0引言
近年來,在各國版權和法律機構的壓力下,以著名的海盜灣為代表的很多BT下載網站關閉了各自的Tracker服務器,由此將不再有中心Tracker服務器提供下載列表,節點也不可能再連入BT網絡。但是BT提供了一種可選的方案,也就是連入DHT(Distribute hash table)網絡,這時的每個節點都相當于一個小型的Tracker服務器,可用來維護某些文件的下載列表。
DHT技術現在已經獲得廣泛使用,幾乎所有的BT客戶端軟件都支持這個協議,因此該技術對BT的發展起到了很重要的推動作用。但與此同時,還應看到因其需要消耗大量資源來維護路由表,同時也沒有對節點身份進行驗證,就會導致DHT網絡可能受到DDos攻擊。本文主要研究了如何利用Mainline DHT協議的脆弱性進行DDos攻擊,同時通過在Mainline DHT真實網絡下的實驗對攻擊的性能進行了評估。可以看到利用這種脆弱性發動的攻擊不僅僅對DHT網絡本身有害,同時也可以對因特網內的任意一個用戶發動攻擊。
1相關研究工作以及背景知識
1.1Mainline DHT協議
BitTorrent 使用了分布式哈希表(distributed sloppy hash table)的技術,用以實現在無tracker的torrent文件中peer的聯系信息存儲。此時,每個peer都是一個tracker。該協議是基于Kademila協議的,并且全部都使用著UDP報文。
在DHT中,每個節點都有一個全局的唯一標識節點id。節點id的產生是隨機的,且使用與BitTorrent的infohash相同的160-bit空間。“異或距離”用來比較兩個node_id或者node_id與infohash的接近程度。Nodes必須維護一個路由表,其中保存了部分其他Nodes的聯系信息。而當與自身節點更為接近時,路由表的信息則會更加詳細。
Mainline DHT協議包括4種RPC操作:
(1)ping主要用于探測一個節點是否在線;
(2)announce_peer用于通知一個節點儲存
(3)find_node使用160位的目標ID作為參數。接收者返回包含K個離目標ID最近節點的
(4)get_peers使用160位的infohash作為參數。接收者如果有這個infohash對應的peers下載列表,則直接返回相關的peers,否則返回本地路由表中距離infohash最近的K個節點。
當一個node想得到某個torrent文件的peers,首先使用異或距離來比較torrent文件的infohash和路由表中節點的node ID。接下來向路由表中node ID與infohash最接近的那些節點發送請求,得到當前正在下載此一torrent文件數據的peers的聯系信息。如果被請求的節點知道該torrent文件的peers,則peers的聯系信息將包含在回復中。否則,被請求的節點必須返回其路由表中更接近infohash的那些節點。當獲取得到peers列表后,客戶端就可以使用BT協議與peers通信,并進行文件的下載了。
1.2Mainline DHT安全性研究
分布式拒絕服務主要是利用木馬或病毒等攻擊方式,將多臺分散主機聯合起來,再對某個或某些目標發動攻擊,耗盡主機的資源。當然,聯合的主機越多,拒絕服務攻擊的效果就越好。
近年來,有關利用P2P網絡脆弱性發動DDos攻擊已開展了大量研究。文獻[1] 探討了P2P網絡中Napster等協議的安全性,并對DDos攻擊的攻擊防御方法進行了深入研究。文獻[2-3] 借助BT協議中與Tracker服務器交互部分的脆弱性而發動了DDos攻擊。但是由于近年來大部分Tracker服務器出于版權原因關掉,這種方式的危害性已經不大。文獻[4-5] 研究了基于Mainline DHT脆弱性發動DDos攻擊的方法。首先,在網絡上選擇非常熱門的幾個種子,其次在本地發動Sybil攻擊偽造大量node_id與熱門種子infohash接近的節點,這時就會有大量節點發送get_peers消息請求獲取peers 列表,因此只需要將攻擊的節點IP、端口寫入get_peers回復中的peers字段,就會有大量用戶對受害節點請求TCP連接,從而發動DDos攻擊。雖然如此,但這樣的方式卻僅能針對某一個熱門種子。通過文獻[6]即可看到,一個熱門電影的peers大小不過幾萬個,這樣的數字也并不足以產生很大的危害。基于以上研究,進一步地,本文設計的系統可以對多個種子的用戶列表同時進行污染,由此顯著提高了攻擊效率。第3期張信幸,等:一種利用Mainline DHT脆弱性發動DDos攻擊的方法智能計算機與應用第4卷
2系統設計與實現
2.1Mainline DHT脆弱性
Mainline DHT對節點node_id的選取并未做任何檢查,因此可將DHT節點的node_id設置為任意值;其次,可在本地服務器上產生多個node_id,并將其發布出去,這樣,外界就會將本系統視為多個DHT節點。一個DHT節點就是一個小型Tracker服務器,那么產生多個DHT節點,將這多個小型的Tracker服務器組合起來,就變成了一個大型的Tracker服務器。但對于node_id的選取,不能僅僅只是隨機產生,而是需要進行精心設計,否則搜索效率將會非常地低。Mainline DHT也沒有對節點node_id和IP以及端口做任何校驗,因此在DHT網絡發動Sybil攻擊顯然就極為容易了。
2.2攻擊原理
在本文的系統中,完成DDos攻擊主要有兩個步驟。首先,要產生大量Sybil節點,如此可使DHT網絡中盡可能多的節點知曉其存在后而向其發送get_peers請求;接下來,就可在get_peers回復中加入將要攻擊的節點,這里的受害節點可使用一臺預先部署的服務器進行測試;最后,大量的用戶就會向受害節點請求TCP連接,相應地就在受害服務器端記錄各項信息用于評估攻擊性能。
2.3系統設計
文中的系統主要由圖1所示的多個模塊組成,下面對各個模塊進行簡要介紹:
(1)base-mysql。這是mysql數據庫操作的基類,其中實現了mysql數據庫與C函數的接口函數,也就是將打開、插入、刪除、查詢等操作都進行了封裝。
(2)dht-mysql。base-mysql類的子類,在其基礎上實現了dht模塊與mysql的交互,而且將插入、刪除等操作的參數都設置為infohash。
(3)log。這個模塊用來管理配置文件和日志文件,其中配置文件的名字是dht.config。
(4)dht。這是程序最主要的模塊,主要提供了3個接口函數,分別是:dht_init(),dht_periodic(),dht_uninit()。其中,dht_init()用來初始化搜索模塊中的各數據結構,根據配置文件產生多個node_id,并開始第一步擴散;dht_periodic()是在epoll_wait()收到消息或者發生超時現象時調用的,可解析收到的消息類型,并按照前述的消息處理方式對消息進行處理;dht_uninit()是對本模塊進行一些釋放工作,在此過程中,首先會產生大量Sybil節點并向DHT網絡擴散,這樣就能夠收到大量get_peers請求,為此再構造get_peers回復,并在回復中包含全部的受害節點。
(5)dht-config。用來解析、讀取配置文件。
(6)dht-main。這是main函數所在的模塊,將其上所有模塊整合起來實現系統的整體功能。
圖1系統架構
Fig.1System architecture
對于受害節點模塊,則僅僅開啟對應的端口號,并記錄接收到的連接數以及占用的帶寬,當客戶端發送報文時,就將關閉連接。
3實驗結果與結論分析
3.1節點擴散模塊
由2.1節可知,系統節點的擴散效果對DDos的攻擊狀況將產生很大影響,而通過文中在不同網絡環境下的測試發現,對系統的擴散效果最具影響的因素就是IP類型。圖2描述了在國內三種不同網絡環境下,擴散系統在前140分鐘收到get_peers請求的測試結果,其中電信網絡和網通網絡使用的都是內網IP,而移動網絡使用的則是外網IP。可以看到在移動網絡環境下,擴散效果非常好,140分鐘內就收到了26萬個get_peers請求,而另外兩種環境請求數都在1萬以下。由此可知,外網IP對系統性能影響很大,這主要是由于針對通過DHT網絡學習到系統的那些節點,在外網IP環境下,能夠主動與這些節點連接,而內網IP則不行,NAT阻斷了很多連接請求。
圖2不同網絡下收到的get_peers請求數
Fig.2The number of get_peers requests in different network
3.2DDos攻擊的效能
文中在該部分進行了4次實驗,攻擊時間分別為10:00、16:00、22:00、04:00,每次攻擊持續1個小時,并且在已經部署的模擬受害節點上,持續監控6小時,受害節點總計監聽24小時。其后,統計了各個時間點受害節點上收到的TCP連接數。
圖3描述了從10:00到16:00的DDos攻擊情況。可以看到在10:00到11:00的攻擊持續時間中,收到的請求數從0快速增加到6萬以上,在11點系統的監聽程序死掉了,即進行了重啟。重啟后看到,盡管在12點已經停止了攻擊,但是系統仍然收到很多的新攻擊,在13點30左右甚至超過了之前11點的峰值。
圖310:00-16:00收到的攻擊連接數
Fig.3The number of attack connections
received in 10:00-16:00
圖4描述了16:00到22:00的攻擊情況,這里為受害模擬程序增加了重啟腳本,同時為了防止機器死掉,即將程序最大連接數限制為112 000萬。可以看到,在17點停止攻擊后,連接數仍然繼續增加,直到19點左右增加到設定的最大限制值。
圖416:00-22:00收到的攻擊連接數
Fig.4The number of attack connections
received in 16:00-22:00
圖5描述了22:00到04:00的攻擊情況。可以看到,攻擊延續了之前的連接,一直保持之前設定的最大連接數,直到3點時程序得到了重啟。
圖522:00-04:00收到的攻擊連接數
Fig.5The number of attack connections
received in 22:00-04:00
圖6描述了04:00到10:00的攻擊情況。可以看到,這個時間段的增加速度明顯沒有之前快。對比圖6與圖4可以得到,圖6中在攻擊后五小時才達到所設定的最大連接數,而圖4僅經過兩小時就已達到了這一數目。
由圖3~圖6可以看出,利用Mainline DHT脆弱性發動的DDos攻擊具有很強的可持續性,在攻擊結束后的6小時,新的連接仍然在不斷建立;其次,與文獻[5]及文獻[7] 相比,文獻中的DDos攻擊數都在25左右,而文中的DDos攻擊規模則在10萬以上,其攻擊威力明顯要強大了許多;最后,通過圖4和圖6的對比還可以看到16:00時的攻擊性能比04:00要提高了2倍,這說明白天的攻擊性能比晚上的要好一些。圖604:00-10:00收到的攻擊連接數
Fig.6The number of attack connections
received in 04:00-10:00
4結束語
本文給出了一種利用Mainline DHT脆弱性發動DDos攻擊的方法。由實驗結果可以看出,這種方法可以對因特網上的任意目標發動DDos攻擊,并造成很大的危害。通過文中的實驗可以得到以下結論:第一,利用Mainline DHT脆弱性發動DDos攻擊可以造成很大的危害性,對比文獻[5]和文獻[7] 中受害機上產生的25個左右的DDos TCP連接數,本文中的10萬以上的TCP連接數,顯然其危害要更大;第二,白天的攻擊效能要比晚上提高2倍左右;最后,這種攻擊方式的持續性非常強,在停止攻擊后的5小時仍然能接收到大量TCP連接。因此,Mainline DHT的脆弱性會對因特網造成很大危害,應當對其Mainline DHT協議進行安全性增強改進。
參考文獻:
[1]劉曉娟.基于P2P網絡的DDoS攻擊防御研究[D]. 北京:北京郵電大學,2009.
[2]JEROME H, COREY K, ZOU C C. A BitTorrent-driven distributed denial of service attack[C]// Security and privacy in communication networks and workshops International conference,2007:261-268.
[3]DEFRAWY K, GJOKA M, MARKOPOULOU A. BitTorrent: misusing BitTorrent to launch DDoS attacks[C]// SRUTI 2007: Proceedings of the 3rd USENIX Workshop on Steps to Reducing Unwanted Traffic on the Internet,2007:1–6.
[4]史建燾,張宏莉.一種DHT安全性優化策略[J].智能計算機與應用,2012,2(6):11-13.
[5]余杰.P2P網絡測量與安全關鍵技術研究[D].長沙:國防科學技術大學,2010.
[6]WOLCHOK S, HALDERMAN J A. Crawling BitTorrent DHTs for fun and profit[C]// Proceedings of the 4th USENIX Conference on Offensive Technologies., August 2010:1-8.
[7]SU Majing, ZHANG Hongli, FANG Bingxing, et al. DDoS vulnerability of BitTorrent peer exchange extension: analysis and defense[C]//IEEE Communication and Information Systems Security Symposium, 2012:1048-1052.