新的DDoS攻擊手法來襲:TCP反射攻擊技術分析

我們常聽說UDP反射攻擊,那你聽說過TCP反射攻擊嗎?

我們對TCP三次握手諳熟於心,但你確定服務器收到SYN包之後一定返回SYN/ACK嗎?

現網的DDoS對抗中,基於TCP協議的反射攻擊手法已經悄然興起,而且出現了多次手法變種,對DDoS防護方帶來嚴峻的挑戰。新場景下的技術對抗如約而至。

0×00 引言

今天分享的是一種新型的攻擊手法 ——TCP反射攻擊:黑客偽造目的服務器IP向公網的TCP服務器發起連接請求(SYN),以使得被攻擊服務器收到大量SYN/ACK報文,最終造成拒絕服務的手法。而由於這種反射攻擊存在協議棧行為,傳統的TCP防護算法難以湊效,這也使得這種攻擊手法有愈演愈烈之勢。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


經過我們團隊研究人員長期的跟蹤分析,發現這種攻擊手法出現了兩個新的特徵:

黑客逐漸趨向利用CDN廠商的服務器資源發起TCP發射攻擊,因為通過掃描CDN廠商網段,可以快速、高效地獲得豐富的TCP服務器資源;

TCP反射攻擊流量從SYN/ACK轉變成ACK,防護難度進一步增大。

0×01 TCP反射的新特徵研究

特徵一:黑客逐漸趨向於利用CDN廠商的服務器資源發起TCP發射攻擊

我們在整理分析現網的TCP反射攻擊時,發現會經常出現攻擊源幾乎全部來源海外CDN廠商的情況。如圖2、圖3所示,某次TCP反射攻擊事件中有99.88%的IP來源美國,而且88.39%屬於某個著名CDN廠商。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


顯而易見這是黑客開始傾向於掃描CDN廠商的IP網段,以獲取大批量反射源的思路。由於CDN廠商的IP資源主要用於為用戶提供加速服務,不可避免地會開放TCP端口,黑客便可以通過這種方式快速地獲取到有效的TCP反射源。例如筆者隨機探測一個CDN廠商的C段IP,結果為:整個C段所有IP全部均有開放TCP端口 。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


這種方法為黑客提供大量可用的TCP反射源,能夠讓攻擊者的資源實現最大化,而且TCP反射攻擊由於具備協議棧行為,傳統策略難以防護,所以不難推測後面這種攻擊手法將越來越盛行,為DDoS防護方帶來不小的挑戰。

特徵二:反射流量從SYN/ACK報文轉變為ACK報文,防護難度進一步增大

這裡給人的第一反應可能就是顛覆了我們TCP三次握手的印象,一個服務器(反射源)收到一個SYN請求,不應該是返回SYN/ACK嗎?怎麼會返回ACK包?為了解答這個問題,容筆者從黑客偽造SYN請求的過程說起…

首先如上文描述TCP反射的原理,黑客會控制肉雞偽造成被攻擊服務器的IP對公網的TCP服務器發起SYN請求,而公網TCP服務器的端口都是固定的,所以為了實現反射,SYN請求中的目的端口也同樣固定。與此同時,為了達到更好的攻擊效果,黑客需要使反射出來的報文的目的端口為被攻擊服務器的業務端口(繞過安全設備將非業務端口的流量直接攔截的策略),也就是說SYN請求報文中的源端口也是固定的。就是基於這些原因,攻擊者偽造SYN請求報文的五元組通常都會出現集聚 ,這個結論其實很重要,因為它就是引發服務器反彈ACK的前提條件。

舉例如圖5所示:黑客需要攻擊的服務器IP為183.*.*.45,其業務端口為80,而黑客掌握的TCP反射服務器的IP是104.*.*.35,開放的端口是8080,那麼攻擊時構造SYN包的五元組就會集聚在Protocol: TCP、DST_IP: 104.*.*.35、SRC_IP: 183.*.*.45、DST_PORT: 8080、SRC_PORT: 80。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


而我們都知道五元組決定了一個會話,所以當黑客短時時間構造大量相同五元組的SYN包發送到同一臺TCP服務器時,就會造成大量的“會話衝突”。也就是說從TCP服務器的角度來看,接收到第一個SYN包後,服務器返回SYN/ACK等待ACK以建立TCP連接,而此時又再接收到同一個會話的SYN。那TCP服務器會怎麼處理呢?再次返回SYN/ACK?RST?還是其他?

其實在這個情況下,TCP服務器具體怎麼處理決定因素在於SYN包的seq號和服務器的window size!假設第一個SYN包的seq號為SEQ1,TCP服務器的windows size為WND,而第二個SYN的seq號為SEQ2,那麼:

一、如果SEQ2==SEQ1,此時TCP服務器會認為這個是SYN包重傳,則再次返回SYN/ACK(其實是在重傳SYN/ACK),如圖6所示。這個攻擊場景從被攻擊服務器的視角來看,就是在短時間內接收到大量的SYN/ACK報文,造成拒絕服務,這也是現網最為常見的場景之一。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


二、如果SEQ2>SEQ1+WND或者SEQ2<seq1>


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


圖7 RFC: 793 page69

所以當黑客偽造SYN報文的SEQ隨機變化時,就很容易命中上述情況,TCP服務器就會返回ACK報文,如圖8、圖9所示。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


圖8 TCP反射,反彈ACK場景(SEQ2>SEQ1+WND)

新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


圖9 TCP反射,反彈ACK場景(SEQ2<seq1>

這個場景中,被攻擊服務器會接收到少量SYN/ACK以及大量的ACK報文,這是現網最越來越常見的場景。如圖10為現網中一次真實TCP反射攻擊的抓包採樣,表面上看跟普通的ACKFLOOD攻擊沒有太大區別,而實際上這些流量是具有協議棧行為,所以傳統策略難以有效防護。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


圖10 現網TCP反射攻擊採樣

三、如果SEQ1<seq2>


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


圖11 TCP反射,反彈RST場景

綜上所述,黑客為了實現TCP反射攻擊,而且儘可能繞過防護策略,所以偽造的SYN報文的五元組會出現集聚,造成嚴重的會話衝突。而不同的SEQ號會觸發TCP服務器不同的應答場景(情況彙總見圖12),所以現網中的TCP反射除了會出現大量的SYN/ACK流量以外,還有可能出現少量SYN/ACK+大量ACK的混合流量,而且後者的流量成份更為複雜,防護難度更大。


新的DDoS攻擊手法來襲:TCP反射攻擊技術分析


0×02 新型的 TCP 反射防護算法

筆者整理總結了TCP反射防護的主要難點:

1、TCP反射流量具有協議棧行為,傳統的防護算法難以識別和防護;

2、專業的抗D設備通常旁路部署,所以無法獲得服務器出流量,這也意味著無法通過雙向會話檢查的方式進行防護;

3、TCP反射通常為SYN/ACK和ACK的混合流量,而且在成份佔比和行為上跟正常業務流量幾乎沒有太大區別,所以傳統的成份分析、限速等方式也難以湊效。

/<seq2>

/<seq1>

/<seq1>


分享到:


相關文章: