HTTP/HTTPS 異常會話攻擊(CC攻擊)

1. HTTP Flood(Challenge Collapsar)

這是應用層最常見的攻擊形式。攻擊者利用大量代理服務器或殭屍主機向目標Web服務器發送大量的HTTP GET或POST請求。這些請求可以是正常的請求(如訪問首頁),也可以是針對特定重負載資源的請求(如搜索、數據庫查詢)。

  • Request Flood:直接發送大量請求,使Web服務器忙於處理連接請求而資源耗盡(如線程池耗盡)。
  • Download Flood:反覆下載大文件。
  • Database Attack:發送複雜的查詢請求,大量消耗數據庫CPU和IO資源。

2. HTTPS 攻擊

隨着HTTPS的普及,利用SSL/TLS協議進行的CC攻擊也日益增多。由於HTTPS握手過程涉及複雜的非對稱加密計算,服務器的CPU消耗遠大於客户端。攻擊者可以通過頻繁發起SSL握手請求或發送畸形的TLS報文,迅速耗盡服務器的計算資源(CPU)。這類攻擊不僅難以清洗(流量加密),而且對服務器的打擊更為精準。

DNS Query Flood

1. 域名解析攻擊

DDoS攻擊不僅可以針對Web服務器,還可以針對DNS服務器。DNS Query Flood是指攻擊者向目標域名的DNS服務器發送大量的解析請求(Query)。如果DNS服務器無法處理海量的請求,正常用户的域名解析將被延遲或失敗,導致無法訪問網站。

2. 隨機子域名攻擊(Random Subdomain Attack)

攻擊者不斷生成不存在的隨機子域名(如`abcd.example.com`, `1234.example.com`)向DNS服務器發起查詢。由於這些子域名在緩存中不存在,DNS服務器必須向上級(權威DNS或根DNS)進行遞歸查詢。大量遞歸請求不僅耗盡本地DNS資源,還會對整個DNS層級架構造成壓力。

API 攻擊

1. API Abuse(API濫用)

隨着微服務架構的流行,API成為了攻擊者的新目標。API攻擊不同於傳統的流量型DDoS,它更像是一種“邏輯層”的CC攻擊。攻擊者利用API接口的設計缺陷或缺乏認證保護,高頻調用某些敏感接口(如發送短信驗證碼、註冊、查詢用户信息等)。

  • 資源消耗:大量合法但惡意的調用耗盡後端計算資源。
  • 費用消耗:惡意調用第三方付費API(如短信網關),導致受害者產生鉅額賬單。

防禦策略

針對應用層攻擊,防禦策略需要更加精細化:

  • 人機驗證(Captcha):在關鍵頁面(如登錄、註冊、搜索)啓用驗證碼,區分人機。
  • 頻率限制(Rate Limiting):對單個IP或用户ID的請求頻率進行嚴格限制。
  • 行為分析:通過機器學習分析正常用户的訪問模式,識別異常的訪問行為(如請求間隔過於規律、User-Agent單一等)。
  • WAF(Web應用防火牆):部署WAF可以有效攔截常見的應用層攻擊特徵。

慢速攻擊(Slow Attack)

1. Slow Read Attack

攻擊者與目標建立正常的HTTP連接,但在讀取服務器響應時故意設置極小的TCP接收窗口(如1字節),迫使服務器長時間保持連接狀態並緩存響應數據。每個連接消耗少量服務器資源,但當成千上萬的慢速連接同時建立時,服務器的併發連接數和內存會被迅速耗盡。

2. R.U.D.Y (Are You Dead Yet)

R.U.D.Y攻擊針對HTTP POST請求。攻擊者聲明將提交一個非常大的POST Body(通過Content-Length頭部設置極大值),然後以極慢的速度逐字節發送數據。服務器必須保持連接,等待完整數據到達。這種攻擊流量極低(可能僅需數KB/s),卻能有效癱瘓目標Web應用。

WebSocket Flood

隨着實時通信應用(如在線聊天、遊戲、協同編輯)的普及,WebSocket協議成為新的攻擊面。攻擊者可以:

  • 連接耗盡:建立大量WebSocket長連接但不發送數據,耗盡服務器的連接池。
  • 消息洪水:通過已建立的WebSocket連接高頻發送大量消息,消耗服務器CPU和內存。
  • 大幀攻擊:發送超大的WebSocket幀,觸發服務器的內存分配和處理開銷。

總結

應用層攻擊(CC攻擊)更具隱蔽性和針對性,往往不需要巨大的帶寬,就能利用服務器端的邏輯缺陷或資源瓶頸造成拒絕服務。從HTTP Flood到Slow Attack再到WebSocket Flood,攻擊手段不斷演進。防禦CC攻擊需要結合多種手段,構建多層次的防禦體系。