解析利用BitTorrent發(fā)起DDoS放大攻擊的原理

2015-09-07 15:47:00 來源:綠盟科技 作者:佚名 人氣: 次閱讀 395 條評論

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

DDos攻擊 BitTorrent 大流量攻擊

BitTorrent DDoS放大攻擊

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

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

分布式拒絕服務(wù)(DDoS)攻擊是網(wǎng)絡(luò)犯罪的最常見手段,因其攻擊成本低、攻擊工具容易獲取,成為互聯(lián)網(wǎng)最為常見的攻擊形式。

而大流量攻擊中較為常見的是反射式放大攻擊,在前端時間,綠盟科技的技術(shù)專家介紹了 端口映射的放大攻擊形式,今天將介紹攻擊者是如何利用BitTorrent協(xié)議族中的協(xié)議反射和放大對端設(shè)備的流量。這里的協(xié)議主要是指微傳輸協(xié)議(uTP)、分布式哈希表(DHT)、消息流加密(MSE)和BitTorrent Sync(BTSync)。據(jù)稱在實(shí)驗(yàn)室測試環(huán)境中,研究人員可將流量平均放大50倍,如果利用BTSync,可放大至120倍。

  1. 用戶先到web服務(wù)器下載torrent種子文件(HTTP或HTTPS協(xié)議)。
  2. Bt客戶端(peer)打開下載的torrent文件,解析出tracker等信息。
  3. Bt客戶端(peer)到tracker服務(wù)器請求種子信息(可以從誰那里下載所需要的文件,給出一份下載地址列表);同時把自己的IP、端口等信息上傳到tracker服務(wù)器中(方便其它的peer找到你,從你這里下載他需要的文件片段,此時你這個peer充當(dāng)?shù)氖欠?wù)器的角色);
  4. Bt客戶端(peer)獲取到種子信息之后,開始向其它的peer請求對應(yīng)的文件信息,如下圖所示:

DDos攻擊 BitTorrent 大流量攻擊

結(jié)合上面的圖(該圖片引自網(wǎng)絡(luò)),舉個例子說明這個過程:

  • 我的bt客戶端,向tracker服務(wù)器發(fā)送請求,想要獲取piece 1的內(nèi)容;
  • Tracker服務(wù)器告訴我的bt客戶端:peer1和peer4有你想要的文件片段,你去他那里下載吧;
  • 你的bt客戶端就會主動連接這兩個peer去獲取你想要的文件。
  • 完成之后,你就保存了0-4所有的片段。

再舉個例子:

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

注: 如果你再下載完成之后,立刻關(guān)閉了你的bt客戶端,那么peer3就只能去peer1和peer2去請求piece3了。如果大家都在下載完成之后就立刻關(guān)閉自己的客戶端,那么種子數(shù)量就會非常少,整個下載速度就會很慢。所以BT社區(qū)建議的使用方式是,在自己下載完成之后,開著自己的bt客戶端,方便其它peer從你這里獲取文件,加快下載速度。

P2P文件傳輸過程

兩個peer之間傳輸文件的過程中有兩種方式:基于TCP和基于UTP的。

基于TCP傳輸

  1. 兩個peer之間先建立三次握手連接;
  2. 發(fā)送bittorrent的handshake消息;
  3. 之后傳輸數(shù)據(jù)。

DDos攻擊 BitTorrent 大流量攻擊

基于UTP傳輸

UTP協(xié)議:Micro Transport Protocol 或者µTP協(xié)議是一個基于UDP協(xié)議的開放式BT點(diǎn)對點(diǎn)文件共享協(xié)議。它的目的是減輕延遲,并且解決傳統(tǒng)的基于TCP的BT協(xié)議所遇到的擁塞控制問題,提供可靠的有序的傳送。

DDos攻擊 BitTorrent 大流量攻擊

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

  1. 客戶端(此處也就是YOU)發(fā)送一個ST_SYN請求給服務(wù)器(此處也就是PEER1);
  2. 服務(wù)端收到之后回復(fù)一個ST_STATE,表示連接已經(jīng)建立好了;
  3. 之后就是兩端的握手消息(88 Byte);
  4. 之后就是交互數(shù)據(jù)。

DDos攻擊 BitTorrent 大流量攻擊

但由于從peer1返回的包(上面的虛線過程)并沒有被校驗(yàn),就成為被攻擊者利用的環(huán)節(jié)。

反射放大攻擊分析

反射原理如下圖:

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

DDos攻擊 BitTorrent 大流量攻擊

由于重現(xiàn)攻擊過程,需要更新時間戳等信息,比較復(fù)雜,同時也考慮到安全性問題,這里就不做展開討論了。

業(yè)界評價BT放大式攻擊

BitTorrent的發(fā)言人表示,公司已經(jīng)”采取措施增強(qiáng)了這些協(xié)議以減輕該研究論文中列出的漏洞所帶來的影響。”然而,TorrentFreak網(wǎng)站表示,”uTorrent仍然不安全。”Adamsky表明,包括uTorrent在內(nèi)的最流行的BitTorrent客戶端最易受到攻擊。

BitTorrent承認(rèn),鑒于基于UDP的協(xié)議的運(yùn)行方式,這些攻擊將可能一直存在,并表明將很快完全防護(hù)這些漏洞,但具體方法尚未確定。Tenable Network Security的戰(zhàn)略分析師表示,利用BitTorrent反射DDoS攻擊的做法并非第一次了,但Adamsky研究的獨(dú)特之處在于揭示了研究人員在攻擊測試過程中所實(shí)現(xiàn)的流量放大倍數(shù)。

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

在接受SCMagazineUK采訪時,OPSWAT軟件工程經(jīng)理煞費(fèi)苦心地指出,我們不應(yīng)該認(rèn)為分布式機(jī)制的本質(zhì)是壞的或在安全性方面就一定比非分布式機(jī)制差。他說,”我討厭制造’反P2P’的恐慌情緒。雖然分布式架構(gòu)可能會存在特定的安全問題,但非分布式架構(gòu)也同樣如此。”Arbor Networks技術(shù)專家也表示,BitTorrent只是這類攻擊可利用的協(xié)議之一,DNS、NTP、SSDP、CHARGEN、SNMP以及Portmap都可用于發(fā)動此類攻擊。但利用BitTorrent的優(yōu)勢在于,放大的反射型攻擊流量的源端口是動態(tài)的。

有人建議,BitTorrent可考慮改用三次握手協(xié)議如TCP,代替當(dāng)前使用的二次握手協(xié)議。這可能會導(dǎo)致性能降低,但三次握手協(xié)議可檢測到偽造的源IP地址,因?yàn)檫@些地址無法回復(fù)第一條握手消息。他說,”這會降低攻擊過程中的流量放大倍數(shù)。”眾所周知,這正是BitTorrent目前在漏洞防護(hù)過程中通過增強(qiáng)協(xié)議要實(shí)現(xiàn)的目標(biāo)。

BT放大式攻擊防護(hù)

如同上面所說,攻擊者基于BT的放射式放大攻擊不同于傳統(tǒng)的反射攻擊,因?yàn)樗亩丝谑遣还潭ǖ?,所以封端口的策略不可行,只能靠識別應(yīng)用層的特征來過濾攻擊。防護(hù)方式建議從兩個方面進(jìn)行:

  • 對于bittorrent客戶端,可以考慮改用原來的tcp方式,杜絕虛假源導(dǎo)致的放大攻擊。
  • 防護(hù)設(shè)備對utp報文的payload做識別,utp前兩個字節(jié)是有特征的,第1個字節(jié)代表版本號和類型,對于放大的報文,該字段為0x01;第2個字節(jié) 代表utp的擴(kuò)展字段,有3種取值:0x00、0x01、0x02,一般情況下該字段為0x00. 可以根據(jù)這些特征做限速等策略。

附錄:文中術(shù)語

  • Torrent文件:保存了相應(yīng)的種子信息、tracker服務(wù)器信息等;
  • Web服務(wù)器:用來存放 .torrent文件,共用戶去下載的。
  • Peer:代表每個bt客戶端(實(shí)際上每個peer既是服務(wù)器又是客戶端)。
  • Tracker服務(wù)器:記錄每個peer的信息(IP、端口、已經(jīng)下載的對應(yīng)的段等信息),用于幫助每個peer發(fā)現(xiàn)彼此;
  • Piece: 一個文件通常會被分割成很多片段,這樣下載的時候可以同時向多個服務(wù)端請求數(shù)據(jù),加快下載速度。