解析利用BitTorrent發起DDoS放大攻擊的原理

佚名發表於2015-09-07

DDos攻擊 BitTorrent 大流量攻擊

BitTorrent DDoS放大攻擊

據國外媒體稱,利用BitTorrent發動的新型分散式反射拒絕服務攻擊(DRDoS)可將流量平均放大50倍。如果使用BTSync(BitTorrent Sync),流量可放大至120倍。

BitTorrent(BT)反射式放大DDoS攻擊

分散式拒絕服務(DDoS)攻擊是網路犯罪的最常見手段,因其攻擊成本低、攻擊工具容易獲取,成為網際網路最為常見的攻擊形式。

而大流量攻擊中較為常見的是反射式放大攻擊,在前端時間,綠盟科技的技術專家介紹了 埠對映的放大攻擊形式,今天將介紹攻擊者是如何利用BitTorrent協議族中的協議反射和放大對端裝置的流量。這裡的協議主要是指微傳輸協議(uTP)、分散式雜湊表(DHT)、訊息流加密(MSE)和BitTorrent Sync(BTSync)。據稱在實驗室測試環境中,研究人員可將流量平均放大50倍,如果利用BTSync,可放大至120倍。

  1. 使用者先到web伺服器下載torrent種子檔案(HTTP或HTTPS協議)。
  2. Bt客戶端(peer)開啟下載的torrent檔案,解析出tracker等資訊。
  3. Bt客戶端(peer)到tracker伺服器請求種子資訊(可以從誰那裡下載所需要的檔案,給出一份下載地址列表);同時把自己的IP、埠等資訊上傳到tracker伺服器中(方便其它的peer找到你,從你這裡下載他需要的檔案片段,此時你這個peer充當的是伺服器的角色);
  4. Bt客戶端(peer)獲取到種子資訊之後,開始向其它的peer請求對應的檔案資訊,如下圖所示:

DDos攻擊 BitTorrent 大流量攻擊

結合上面的圖(該圖片引自網路),舉個例子說明這個過程:

  • 我的bt客戶端,向tracker伺服器傳送請求,想要獲取piece 1的內容;
  • Tracker伺服器告訴我的bt客戶端:peer1和peer4有你想要的檔案片段,你去他那裡下載吧;
  • 你的bt客戶端就會主動連線這兩個peer去獲取你想要的檔案。
  • 完成之後,你就儲存了0-4所有的片段。

再舉個例子:

  • 假設在你獲取完0-4所有片段之後,此時peer3想要請求片段3,他會首先向tracker伺服器請求:誰有piece 3,告訴我;
  • Tracker伺服器收到請求之後,告訴peer3:peer1、peer2、peer_nsfocus(假設你的peer就叫peer_nsfocus)有piece3;
  • Peer3收到之後,會向這三個peer請求piece3;

注: 如果你再下載完成之後,立刻關閉了你的bt客戶端,那麼peer3就只能去peer1和peer2去請求piece3了。如果大家都在下載完成之後就立刻關閉自己的客戶端,那麼種子數量就會非常少,整個下載速度就會很慢。所以BT社群建議的使用方式是,在自己下載完成之後,開著自己的bt客戶端,方便其它peer從你這裡獲取檔案,加快下載速度。

P2P檔案傳輸過程

兩個peer之間傳輸檔案的過程中有兩種方式:基於TCP和基於UTP的。

基於TCP傳輸

  1. 兩個peer之間先建立三次握手連線;
  2. 傳送bittorrent的handshake訊息;
  3. 之後傳輸資料。

DDos攻擊 BitTorrent 大流量攻擊

基於UTP傳輸

UTP協議:Micro Transport Protocol 或者µTP協議是一個基於UDP協議的開放式BT點對點檔案共享協議。它的目的是減輕延遲,並且解決傳統的基於TCP的BT協議所遇到的擁塞控制問題,提供可靠的有序的傳送。

DDos攻擊 BitTorrent 大流量攻擊

正常情況下,整個互動過程是這樣的:

  1. 客戶端(此處也就是YOU)傳送一個ST_SYN請求給伺服器(此處也就是PEER1);
  2. 服務端收到之後回覆一個ST_STATE,表示連線已經建立好了;
  3. 之後就是兩端的握手訊息(88 Byte);
  4. 之後就是互動資料。

DDos攻擊 BitTorrent 大流量攻擊

但由於從peer1返回的包(上面的虛線過程)並沒有被校驗,就成為被攻擊者利用的環節。

反射放大攻擊分析

反射原理如下圖:

  1. 由於UTP只需要兩次握手就可以建立連線,使得攻擊者可以很容易偽造源IP完成連線的建立。
  2. **由於**** peer1 ****並沒有檢查第**** 2 ****個包(**** ST_STATE ****)是否被**** attacke ****收到,而是直接相信該源**** IP */*是真實的,** 所以當attacker再次偽造源IP傳送handshake包的時候,peer1會立刻回應handshake包,而且超時之後還會重傳,增大了放大倍數。

DDos攻擊 BitTorrent 大流量攻擊

由於重現攻擊過程,需要更新時間戳等資訊,比較複雜,同時也考慮到安全性問題,這裡就不做展開討論了。

業界評價BT放大式攻擊

BitTorrent的發言人表示,公司已經”採取措施增強了這些協議以減輕該研究論文中列出的漏洞所帶來的影響。”然而,TorrentFreak網站表示,”uTorrent仍然不安全。”Adamsky表明,包括uTorrent在內的最流行的BitTorrent客戶端最易受到攻擊。

BitTorrent承認,鑑於基於UDP的協議的執行方式,這些攻擊將可能一直存在,並表明將很快完全防護這些漏洞,但具體方法尚未確定。Tenable Network Security的戰略分析師表示,利用BitTorrent反射DDoS攻擊的做法並非第一次了,但Adamsky研究的獨特之處在於揭示了研究人員在攻擊測試過程中所實現的流量放大倍數。

我們向Cris Thomas瞭解此類攻擊在現實世界到底會造成多大的影響。他表示,”目前並未大規模發現此類攻擊,因此不必太過擔憂。然而,如果攻擊者也看到了這篇論文,可能很快就會執行攻擊。”Malwarebytes的高階情報分析師也表示了擔憂,預言那些指令碼小子必將利用論文中描述的技術在某一時刻攻擊網路,並指出當該論文的研究付諸實踐時,DDoS攻擊將大量出現。”有效防禦這些攻擊極具挑戰性,”他們告訴SCMagazineUK。反射技術不僅放大了拒絕服務,同時也有效遮蔽了攻擊者的IP地址,使得攻擊源難以定位。雖然BitTorrent流量檢測和丟棄方案有助於緩解DRDoS攻擊,但會產生很大負載,因此並非理想方案。

在接受SCMagazineUK採訪時,OPSWAT軟體工程經理煞費苦心地指出,我們不應該認為分散式機制的本質是壞的或在安全性方面就一定比非分散式機制差。他說,”我討厭製造’反P2P’的恐慌情緒。雖然分散式架構可能會存在特定的安全問題,但非分散式架構也同樣如此。”Arbor Networks技術專家也表示,BitTorrent只是這類攻擊可利用的協議之一,DNS、NTP、SSDP、CHARGEN、SNMP以及Portmap都可用於發動此類攻擊。但利用BitTorrent的優勢在於,放大的反射型攻擊流量的源埠是動態的。

有人建議,BitTorrent可考慮改用三次握手協議如TCP,代替當前使用的二次握手協議。這可能會導致效能降低,但三次握手協議可檢測到偽造的源IP地址,因為這些地址無法回覆第一條握手訊息。他說,”這會降低攻擊過程中的流量放大倍數。”眾所周知,這正是BitTorrent目前在漏洞防護過程中透過增強協議要實現的目標。

BT放大式攻擊防護

如同上面所說,攻擊者基於BT的放射式放大攻擊不同於傳統的反射攻擊,因為它的埠是不固定的,所以封埠的策略不可行,只能靠識別應用層的特徵來過濾攻擊。防護方式建議從兩個方面進行:

  • 對於bittorrent客戶端,可以考慮改用原來的tcp方式,杜絕虛假源導致的放大攻擊。
  • 防護裝置對utp報文的payload做識別,utp前兩個位元組是有特徵的,第1個位元組代表版本號和型別,對於放大的報文,該欄位為0x01;第2個位元組 代表utp的擴充套件欄位,有3種取值:0x00、0x01、0x02,一般情況下該欄位為0x00. 可以根據這些特徵做限速等策略。

附錄:文中術語

  • Torrent檔案:儲存了相應的種子資訊、tracker伺服器資訊等;
  • Web伺服器:用來存放 .torrent檔案,共使用者去下載的。
  • Peer:代表每個bt客戶端(實際上每個peer既是伺服器又是客戶端)。
  • Tracker伺服器:記錄每個peer的資訊(IP、埠、已經下載的對應的段等資訊),用於幫助每個peer發現彼此;
  • Piece: 一個檔案通常會被分割成很多片段,這樣下載的時候可以同時向多個服務端請求資料,加快下載速度。

相關文章