按 Enter 到主內容區
:::

TWCERT/CC台灣電腦網路危機處理暨協調中心|企業資安通報協處|資安情資分享|漏洞通報|資安聯盟|資安電子報

:::

Middlebox TCP反射放大DDoS攻擊趨勢與防護

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2022-11-18
  • 點閱次數:1776
Middlebox

1.簡介
2.Middlebox TCP 反射攻擊案例
3.Middlebox TCP 反射放大攻擊之防護建議
4.分析與建議


  • TCP Middlebox 反射攻擊利用防火牆及內容過濾機制的弱點,使其反射並放大 TCP 流量至受害目標,形成有力的 DDoS 攻擊。
  • 這種型態的攻擊手法降低了攻擊者實行 DDoS 的門檻,因為攻擊者只需付出相對低的成本,就能創造出巨大的攻擊流量。
  • 部份 Middlebox 的行為甚至會幫助攻擊者對受害目標行進行更深的 SYN, ACK, 或 PSH+ACK 泛洪 (flooding) 攻擊。
  • 目前 TCP Middlebox 反射攻擊技術仍持續演進,案例亦開始出現,應持續關注並對相關設備進行設定調整或緩解措施。
  • 若企業對Middlebox TCP反射放大攻擊有相關檢(複)測疑問,歡迎與TWCERT/CC聯繫。

1、簡介

(1)反射放大DDoS攻擊與其流程
  • 分散式阻斷服務(Distributed Denial-of-Service, DDoS)攻擊,為駭客發送大量的網路封包或服務請求,使得受害系統或主機因無法負荷頻寬或耗盡資源而癱瘓,無法提供正常服務。關於DDoS攻擊可參考另一篇 分散式阻斷服務攻擊(DDoS)趨勢與防護
  • DDoS攻擊主要可分為頻寬消耗及資源消耗兩種攻擊類型,一般新聞媒體所報導之巨大流量攻擊多屬於頻寬消耗類型,此類型攻擊者會透過傳送大量無效的服務請求給受害主機或伺服器,使得網路頻寬壅塞,導致一般使用者無法順利登入或連線,產生主機或伺服器癱瘓之後果。
  • 攻擊者通常會利用大量的殭屍電腦同時發出攻擊,而要產生如此大流量的攻擊,仍是一個難度很高的挑戰,於是出現了反射放大的攻擊技術,透過中介設備或服務將初始流量放大後送給受害者,其放大倍數從數倍到上百倍不等,也因此近年來屢屢刷新攻擊流量記錄,本文所探討的Middlebox反射放大攻擊即為此類的新型攻擊技術。
  • 放大攻擊式的DDoS是由攻擊者發送少量的資料,經由其他設備將資料數量放大後送給受害目標,攻擊者會將初始的攻擊封包(通常是某種服務的請求封包)中的來源 IP位址偽造成受害目標的 IP 位址,而後將該請求封包送給用於放大流量的服務或伺服器,使該服務再依據偽造的IP回應大量的資料給受害目標,如下圖所示。

Middlebox-01

圖1:傳統的反射放大攻擊

  • 通常反射放大攻擊只能利用UDP協定,不能利用 TCP協定來進行,這是因為TCP 通訊依賴三向交握以建立連線,但攻擊者需將來源IP改為受害者的IP,中介的服務/伺服器會在收到TCP建立連線請求(SYN 封包)後,將後續三向交握的回應(SYN-ACK 封包)傳送給受害者,而受害者也無法完成後續步驟,導致攻擊者無法再繼續發送請求封包。
  • 因此,目前對反射放大DDoS攻擊的防護機制除了較為一般性的防護規則外,其它特定的規則多是針對UDP來設計的。
(2)Middlebox 反射放大DDoS攻擊

  近期因Middlebox設備漏洞研究而興起的DDoS攻擊技術,由於國內企業採用了相當多的相關設備,故於本節介紹該攻擊技術概念。

A.Middlebox介紹

  網路通訊的設計原則之一是,由通訊雙方的終端設備來解析並處理封包,傳輸過程中所經過的網路設備僅負責將封包送往正確的目的地,不查看或修改封包內容。

  然而因應Internet的快速發展,為了解決網路擴展的瓶頸、提升傳輸效能、增加通訊安全等目標,網通業者在網路設備上引進流量操控的功能,用於檢查、過濾、更改封包,已不僅是轉發的功能,這種類型的網路設備稱為 Middlebox。

   常見的 Middlebox 設備有網路位址轉譯器 (Network Address Translation,NAT) 、內容過濾系統 (Content Filtering System)、入侵偵測/防護系統 (Intrusion Detection/Prevention System,IDS/IPS)、代理及反向代理 (Proxy/Reverse Proxy) 等。

B.執行 DPI 的Middlebox 特性

  部份類型的 Middlebox 對於封包的檢查與操作,為了執行深度封包檢測 (Deep Packet Inspection, DPI),除了作用於封包的各層標頭之外,還深入到載荷 (payload)層次,這類 Middlebox 通常是入侵檢測/防護以及內容過濾的資安系統,角色是流入內部網路封包的內容把關者。

  依據流入封包內容的不同,Middlebox 會採取不同的行為,從簡單的放行/丟棄,到內容竄改、趨勢統計分析、AI資訊預測、對外部通訊者發送回應資訊等等。這種 Middlebox通常只會檢視或操作單一方向的流量(由外向內),也就是非對稱路由 (Asymmetric Routing),而忽視TCP的有效性。

  舉例而言,一個未與內部伺服器完成 TCP 三向交握的外部終端對該伺服器發送了一個 HTTP GET請求,若位於Middlebox之前的防火牆因故未能阻擋該封包流入,那麼因Middlebox 內沒有連線的 state table,無法得知這是一個TCP狀態異常的封包,就不會警覺到異常,持續對該封包進行處理。

  雖然以上所舉的例子,在實務上因為防火牆不會讓未建立連線的 TCP 封包流入,所以幾乎不可能發生,但 Middlebox這種單向檢查的特性,讓人有了想像的空間,因而產生了 TCP Middlebox 反射放大攻擊的技術。

  Middlebox 反射攻擊的設計思維來自於設備不會確認TCP 三向交握的正確性,因此Middlebox 反射攻擊是一種TCP的反射式攻擊,這與前述章節所說明利用UDP的反射放大DDoS攻擊有所差別。

  • TCP的Middlebox 反射攻擊基於下列三項要素:

a.攻擊者將服務請求夾帶於 TCP 三向交握封包內(特別是TCP SYN);

b.Middlebox 無視 TCP 三向交握封包不應夾帶服務請求,仍然正常的進行後續處理流程;

c.後續處理流程中,Middlebox 在回應請求時,處理了被夾帶的服務請求內容,導致回應內容大增,形成放大攻擊。

Middlebox-02

圖2:利用Middlebox的TCP反射放大攻擊

  • 於前述章節中提到,傳統的反射放大攻擊之所以無法藉由 TCP 來進行,是因為攻擊者送出的服務請求必須仰賴正常的TCP 連線,而在偽造來源 IP 位址的前提下,TCP 連線是絕對無法被成功建立的,但在Middlebox的利用上,是在 TCP 三向交握內夾帶服務請求,放入了可被放大的資料。
  • 攻擊者要解決的另一個難題是:即使將服務請求作為載荷夾帶於 TCP 三向交握的封包內,伺服器仍然不會有任何回應。因作為採用 TCP 通訊的兩個終端,資料傳輸是在交握成功、連線建立之後才會進行的,這是 TCP 通訊的基本精神之一。
  • 因此攻擊者利用擁有DPI能力的 Middlebox。TCP協定雖未禁止 TCP 三向交握封包夾帶載荷,但實務上這種情況少之又少,所以Middlebox並未確認有夾帶載荷的TCP封包是否已成功建立連線,導致TCP 三向交握封包夾帶載荷並不正常,但Middlebox仍持續處理了攻擊者的服務請求,收下攻擊封包並剖析處理,滿足了第二個要素。
  • 最後,對於送出的、已偽造了來源IP位址的服務請求(夾帶於 TCP 三向交握封包中),攻擊者需要引起剖析者 (Middlebox) 的「激烈回應」,來達成Middlebox回應大量訊息的目標。只要夾帶對 Middlebox 而言會引起檢測反應的敏感關鍵字,Middlebox 就會回應相對大量的資料給受害目標;這些資料通常會是禁制、警告、或是法律資訊,以完整網頁的方式呈現。這樣就完成了第三個要素。

TOP

2、TCP Middlebox 反射攻擊案例

[國內案例]

    以下是一個位於國內的Middlebox 被用作 TCP 反射放大攻擊的例子。

  • 下圖顯示攻擊者發出一個TCP SYN封包,其中來源 IP 位址偽造成受害目標的 IP位址X.X.X.X,目的IP位址 Z.Z.Z.Z為某Middlebox保護的伺服器所分配到的對外IP位址。這個TCP SYN封包夾帶了載荷,內容是一個HTTP GET 請求,存取不存在的URL。

Middlebox-03

圖3:攻擊者發送一個帶有HTTP GET請求的TCP SYN 封包

  • Middlebox收到這個TCP SYN 封包之後,回應了一個 HTTP 狀態碼503(服務無法使用)的封包,其中夾帶一個網頁附帶許多錯誤資訊;整個封包大小為1302 bytes。此時並沒有正常的TCP連線被建立,但 Middlebox仍然回了一個 PSH, ACK 封包給受害目標。

Middlebox-04

圖4:Middlebox將回應反射給受害目標

  • 在這個案例,攻擊者送出143 bytes的資料,而 Middlebox 回應了1248 bytes 的資料給受害目標;單就payload而言,放大了8.7倍。事實上,攻擊的放大倍率仍可再提高,如在攻擊者送出的TCP SYN封包夾帶較多數量的資料;例如將夾帶的資料量改為100 bytes,那麼此例的放大倍率即超過12倍。

[國外Akamai案例]

    國外Akamai的研究報告“TCP Middlebox Reflection: Coming to a DDoS Near You”[1],描述了 TCP Middlebox 放大攻擊的實例。

    上節所提到的案例中,Middlebox未特別偵測流經的封包是TCP三向交握封包,而將其視為一般的封包以對夾帶的資料進行處理並回應。

    除了這種行為外,某些 Middlebox的奇特行為讓攻擊者能更有效率的進行攻擊,以奇特形容是因目前尚未能瞭解Middlebox進行如此不盡合理的處理緣由。此行為是,這些 Middlebox 在收到帶有載荷的 TCP SYN 封包後,會以另一個或多個帶有載荷的 TCP SYN 封包作為回應發送給受害目標。這造成了一個無窮循環的TCP反射放大攻擊,這不代表會是一個無窮大的流量,但可以更快速的提升放大倍率。

Middlebox-05

圖5:Middlebox 以 TCP SYN 作為回應並忽略送來的 RST 封包

    在上圖中,攻擊者偽造了來源 IP 位址 (X.X.X.X) 後,將帶有載荷、長度為 33 bytes的 TCP SYN 封包送往 Middlebox (IP 位址 Z.Z.Z.Z)。特別之處在於第二步:Middlebox 對受害目標發送了一個新的 TCP SYN 封包,長度為 856。受害目標收到這個帶有資料的 SYN 封包之後,回應了RST封包。然而 Middlebox 再送了另一個 SYN 封包,長度為1300;受害目標亦再回應一個 RST 封包。

    這個例子可以看出此 Middlebox 的兩個特殊行為:(1) 它對受害目標發送了多個帶有資料的 SYN 封包;(2) 它無視受害目標送來的 RST 封包。在 Akamai 的報告裡,提到某些 Middlebox 除了有如下圖所示的送出帶有資料的 SYN 封包給受害目標外,當它收到受害目標回應的 RST 後,會再次送出那個引起受害目標回送 RST 封包的SYN 封包,如此,不斷循環的形成無窮的TCP反射放大攻擊。

    下圖顯示了以上案例的進一步操作。在上個案例中,攻擊者預先得知欲攻擊對象所開啟的 TCP 監聽埠(此例埠號為45678),並在帶有載荷的SYN封包內,將來源 IP 位址偽造成X.X.X.X、來源埠號設定為45678、目的埠號設定為80,然後送給Middlebox (IP 位址 Z.Z.Z.Z)。

Middlebox-06

圖6:Middlebox 將放大封包反射至受害目標有開啟 TCP 服務的埠

    Middlebox 於是反射了兩個放大回應,以TCP SYN 封包發送給受害目標,目的埠號是45678。由於受害目標確實監聽了埠45678,所以回傳SYN-ACK給 Middlebox,而Middlebox不會完成此三向交握,造成TCP半開放狀態 (half-open state)。從後續的流量可看出,攻擊者隨後又對Middlebox的不同埠號發送了相同的SYN 封包,如此即形成受害目標端的資源消耗。

[更多的Middlebox反射放大攻擊方法]

    除了以「目前Middlebox的TCP反射放大攻擊發生於TCP三向交握」為前提來發動反射放大攻擊外,Maryland大學及Colorado Boulder大學的研究學者於 2021 年八月也提出其它基於Middlebox TCP反射放大的方法[2]。在這篇論文被公開不久之後,就出現實際應用於攻擊的案例。

    Kevin Bock et al. [2] 的論文裡,觀察到其他4種可以引起 Middlebox 放大回應的方式,下表顯示了5種用來引起Middlebox回應的方式,其中角括號括起者,表示攻擊者發送2顆sequence number相續的封包。表格中的PSH及PSH+ACK方式,以標準的TCP協定實作方式來說,應無法成立攻擊,然而Bock等人的實驗卻顯示仍有反射放大的現象,顯然全球仍存在許多未符合TCP協定標準實作的Middlebox設備。

表1:不同TCP類型封包引起的Middlebox回應統計

Middlebox-07

資料來源 : [2]

以下簡要描述這幾種方式。

  • <SYN; PSH+ACK> : 這個方法是指,攻擊者先對Middlebox送出一個正常、不帶任何載荷的TCP SYN 封包,其sequence number為s,而後立刻再向Middlebox送一個帶有HTTP GET請求的PSH+ACK封包,sequence number 為 s+1。這兩個封包的來源IP位址均被偽造成受害目標的IP位址。從Middlebox的角度來看,這樣的兩個封包如同三向交握發起後,缺少server端的SYN+ACK及client端的ACK,然後client直接發送TCP封包 (PSH+ACK)。但因為這個PSH+ACK的序號是正確的 (s+1),Middlebox仍會將之視為正常封包來處理。這種攻擊手法產生了最高比例的Middlebox回應,最高放大倍率達7455倍。
  • <SYN; PSH> : 這個方法與上一個方法類似,差別只在於所送出的第二個封包是PSH而不是PSH+ACK。對這個方法做出回應的Middlebox比例,與上一個方法差不多,但沒有很極端的放大比例。
  • PSH : 這個方法只單獨送出一個帶有敏感資訊的HTTP GET請求,以PSH方式送給Middlebox。對這種封包做出回應的Middlebox數量比預期多,但放大比率不高。
  • PSH+ACK : 與前一種方式的差別在於多設定了ACK旗標。所有對這個方式做出回應的Middlebox,也會對<SYN; PSH+ACK> 的方式做出回應,且回應的封包內容完全一樣。可以說 <SYN; PSH+ACK> 的方式涵蓋了 PSH+ACK 的方式。
  • SYN : 這種方式就是本文前半章節所描述的手法,將帶有敏感資訊的HTTP GET請求附於TCP SYN payload後發送給Middlebox。雖然Middlebox回應的比例不高,但其中有 Middlebox 發送的放大回應達 572 倍。

TOP

3、Middlebox TCP反射放大DDoS攻擊之防護建議

  Middlebox在網路架構中的角色定位即是分析防護機制,因此很難有完美的Middlebox TCP反射放大攻擊的防護方法,因為這涉及Middlebox設計通則 – 許多 Middlebox就是被設計作為只檢視特定方向的封包流,而忽略流經的封包是否屬於正常的TCP 連線。然而仍然有一些緩解手段,可以減輕或是避免某些Middlebox被利用的可能

A.從Middlebox本身調整緩解

  • 採用可檢視雙向流量的 Middlebox:部份作為內容過濾的Middlebox其功能整合在網路Gateway裡。這種Middlebox有能力判斷TCP連線狀態,而只處理或是將資訊注入到那些已建立有效TCP連線的封包裡。
  • 將要注入到封包內的警告或說明資訊,降到最低的大小:Middlebox 在攔截到敏感資訊的存取要求時,以完整網頁的形式注入了大量資料到回覆封包裡,造成很高的放大倍率。建議調整這種情況下的回覆資料量,或是將回覆的網頁實作在另一台網頁伺服器上,而Middlebox僅送出一個 HTTP redirect封包。
  • 只過濾向外的流量:部份Middlebox 的目的不在於保護內部網路資源,而在於限制內部網路設備對外部網路資源的存取。例如,某些管理政策嚴格的企業,禁止員工在公司內部網路瀏覽Internet上的特定資訊。這種情況下,Middlebox就無須對由外部網路流往內部網路的流量進行攔截並作出回應,以避免被外部攻擊者利用作為反射攻擊。
  • 不作任何的放大:只讓Middlebox回送一個RST來關閉連線也是一個簡潔有力的方式。

B.從防火牆進行緩解

上面幾點是針對Middlebox的緩解措施。如果IT或網管人員無法對Middlebox進行設定,就只能嘗試由防火牆的ACL來阻擋可疑封包:丟棄任何流入的、帶有載荷的 TCP SYN 封包。Akamai 提供了一個作為參考的防火牆ACL。

deny tcp any eq 80 host x.x.x.x match-all +syn -ack packet-length gt 100

[注意事項]

  • 攻擊者可能對任一埠發送帶有載荷的 TCP SYN 封包。上述防火牆ACL作為參考用途,只顯示作用於埠80的情況,可參考調整。
  • 攻擊者發送的TCP封包,不限定於 SYN。上述防火牆ACL作為參考用途,只顯示作用於 TCP SYN 封包的情況,可參考調整。
  • 攻擊者發送給的偽造封包不一定會大於100 bytes。正常不帶載荷的 TCP 封包,大小多為 60 bytes。上述防火牆ACL作為參考用途,只顯示了作用於封包大於 100 bytes 的情況,可參考調整。

TOP

4、分析與建議

  • 以往進行TCP Middlebox 反射放大攻擊的攻擊者,創建帶有觸發敏感資訊存取警示的 HTTP 請求,作為載荷夾帶於 TCP SYN包並送往 Middlebox。在這些 HTTP 請求標頭內包含了不存在,或是不被允許存取的域名。當這些封包被送往 Middlebox 後,一旦決定處理這些封包,Middlebox 通常會回覆帶有 HTTP 標頭的封包,甚至整個 HTML 頁面。

  • 這種回覆機制如同反射並放大攻擊者的封包給受害目標,某些 Middlebox 作出的回覆有著驚人的放大倍率。目前除了藉由TCP SYN封包來進行Middlebox反射放大攻擊外,已有研究人員提出了使用<SYN; PSH+ACK> 的新手法,使得防範Middlebox反射放大攻擊更為困難。

  • 為了防範 Middlebox 被利用作為反射放大攻擊的跳板,最好採用具有判斷TCP連線有效性的設備,並不要對帶有資料的TCP SYN封包進行內容處理。在攔截敏感資料的存取要求時,於回覆封包中所注入的警告或限制資料要盡可能的小。IT或網管人員也可在防火牆建立阻擋規則,將異常大小的 TCP SYN封包丟棄。

  • Middlebox的反射放大攻擊屬於新興的DDoS攻擊,也因Middlebox的設備角色,致使在防護難度更加提升,且攻擊手法持續演進,這類型攻擊是必須持續關注的。

  • 若企業對Middlebox TCP反射放大攻擊有相關檢(複)測疑問,歡迎與TWCERT/CC聯繫。

TOP

回頁首