iT邦幫忙

1

應用層DDoS攻擊

  • 分享至 

  • xImage
  •  

前言

最近在工作上開始接觸到有關應用層DDoS的問題,對於還是菜鳥的我來說是一項全新的知識,因此想將學習的內容記錄下來,當作是一種自我學習。

如果內容有理解錯誤的地方或是哪裡需要補充的話,請各位IT邦的大神們多多指教喔!

什麼是應用層 DDoS 攻擊

DDoS 攻擊可以發生在 OSI 模型的各個層級,其中以網路層 (第三層) 和傳輸層 (第四層) 最為常見。但近年來,針對應用層 (第七層) 的 DDoS 攻擊逐年增長,也使得 DDoS 攻擊的複雜程度增加許多。

應用層 (第七層) DDoS 攻擊是一種針對 OSI 模型應用層的分散式阻斷服務攻擊。旨在通過消耗應用程式資源或干擾正常的用戶請求,使目標服務無法正常運作,讓用戶無法存取或使用該服務。

其原理是攻擊者利用網路應用程式協定的漏洞,或是操控分散於不同地方的多部電腦主機、IOT設備和其他網路資源作為攻擊流量來源,對目標發起大量看起來合法的請求,藉以壓垮目標網路或伺服器的資源、降低其效能或使其癱瘓。

由於攻擊者可能會透過模擬真實的用戶流量,很難去判斷其究竟是正常請求或是惡意流量,因此應用層的DDoS攻擊通常較難防禦。

常見的應用層攻擊類型

HTTP Flood 攻擊

HTTP 為瀏覽網站的網路協議,通常用於載入網頁或透過網路傳送表單內容。攻擊者主要是通過偽裝成正常的HTTP請求 (常見為 HTTP GET 或 HTTP POST),旨在使用HTTP請求讓目標伺服器達到飽和不堪負荷。

常見的HTTP Flood攻擊有兩種:

  1. HTTP GET : 透過多台設備向目標伺服器要求大量資料,例如圖片、影片和文字等靜態內容,藉此耗盡伺服器資源使其無法響應正常流量的請求。
  2. HTTP POST : POST 請求通常是在網站上提交表單或上傳文件等動作,都會與後端資料庫做連接。攻擊者可能發送大量的無效或惡意數據來佔用目標伺服器的處理能力和儲存資源,導致目標伺服器的容量飽和並發生阻斷服務。

為了實現最大效率,攻擊者通常會建立殭屍網路,透過惡意軟體感染大量電腦和 IOT 設備並同時對目標發起攻擊來增加攻擊的規模和效果,使 HTTP Flood 攻擊更具破壞性。

例如,一間租車公司同時有多位客戶來租車並要開車離開,員工要忙著確認租賃合約、車子狀況、客戶資訊等等,都確認無誤後,客戶才能開車離開,但租車公司的車道一次也只能讓一台車子離開,導致服務壅塞。

CC 攻擊 (Challenge Collapsar Attack)

與HTTP Flood 攻擊相似,同樣是針對Web應用程式製造大量偽裝的訪問請求,甚至有些網路上的資料會將兩者寫成相同的攻擊模式。但就我的理解來看,HTTP Flood 攻擊比較偏向消耗網路頻寬和伺服器的儲存資源;而CC 攻擊側重於模擬真實用戶的操作來消耗伺服器的計算資源。

像是粉絲搶演唱會門票一樣,時間一到開放購買,在同一時間湧入大量連線,導致網頁一直轉或是網頁當掉。

Slow Attack(慢速攻擊)

Slow attack是攻擊者利用通訊協定中的漏洞,對目標伺服器建立較緩慢的網路連線,並且刻意將回應時間拉長,長時間佔用伺服器的連線,以佔滿耗盡攻擊目標的系統資源造成網路癱瘓。

與HTTP Flood 攻擊和 CC 攻擊不同,Slow Attack 不需要大量的資源僅用一台電腦就可以發起攻擊,並且因為低速緩慢攻擊很難與正常流量區分開來,因此可能存在很長一段時間不被發現,同時阻止或減慢對真實使用者的服務。

發起低速緩慢攻擊的兩種常用工具是 Slowloris 和 R.U.D.Y.。

例如去便利商店買東西,結帳時用一圓硬幣一個一個拿給店員結帳;又例如打給客服專線詢問事情,但故意放慢說話速度來佔據電話線路,佔滿店員/客服的時間,使其無法服務其他客人。

放大攻擊

攻擊者藉著發送小型請求來導致大規模的回應,癱瘓目標受害者的網路與主機資源。

常見的放大攻擊有DNS放大攻擊(DNS Response Amplification Attack) 和 NTP 放大攻擊 (Network Time Protocol)

攻擊者透過操控殭屍網路,將封包中的Source IP 偽造成目標受害者的 IP,並向沒做好安全設定的 DNS server 或 NTP server 發送大量請求封包,DNS 或 NTP server 則會將大量的請求結果傳到目標受害者的 IP。

例如一個小屁孩打電話到餐廳將所有餐點都點了一份,並提供目標受害者的電話號碼,要求餐廳回電將所有訂單重複一遍。接著目標受害者就會接到來自餐廳的電話,提供給他不需要的大量訊息。

如何有效緩解與防禦應用層DDoS攻擊

第七層攻擊之所以難以防禦,是因為很難判別流量到底是否為惡意。

可以架設如 Load Balance 或使用 CDN 服務等等反向代理,透過 Reverse Proxy 的機制來防止源伺服器被攻擊。

或對網路請求發起挑戰,例如Javascrip Challenge或人機驗證 (Captcha),測試該使用者是否為真實用戶或是機器人。

而對於HTTP Flood攻擊,工程師可以使用WAF (Web Application Firewall) 辨識包在傳輸資訊內的Web應用程式內容,即時分析並透過不同的處理規則來緩解攻擊。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言