慢速攻擊(如Slowloris)的核心特征在于極低的請求速率而非高頻訪問,其目的是通過長期占用服務(wù)器連接資源而非快速耗盡帶寬。具體頻率因攻擊類型而異,但通常遠低于正常用戶行為,以下是詳細分析:
1. 慢速攻擊的頻率特征
- 整體邏輯:攻擊者會建立大量連接,但每個連接以極低速發(fā)送/接收數(shù)據(jù)(如幾分鐘甚至幾十分鐘完成一個請求),而非追求單位時間內(nèi)的請求次數(shù)。
- 典型速率示例:
- 數(shù)據(jù)發(fā)送速率:每1~10秒發(fā)送1字節(jié)(即每分鐘僅發(fā)送6~60字節(jié))。
- 請求完成時間:單個HTTP請求可能持續(xù)數(shù)分鐘至數(shù)十分鐘,遠超過正常請求的毫秒級耗時。
2. 分類型攻擊頻率說明
攻擊類型 | 頻率特征 | 技術(shù)實現(xiàn) |
---|---|---|
Slow Headers | 持續(xù)發(fā)送不完整的HTTP頭部,間隔數(shù)秒發(fā)送一個頭部字段,每分鐘僅發(fā)送幾KB數(shù)據(jù)。 | 通過不發(fā)送結(jié)束符\r\n\r\n ,使服務(wù)器等待頭部完成,占用連接池。 |
Slow Body | 聲明發(fā)送大體積數(shù)據(jù)(如Content-Length: 1000000 ),但每分鐘僅發(fā)送幾十字節(jié)。 | 服務(wù)器因等待未傳輸完的Body而長時間維持連接。 |
Slow Read | 客戶端接收數(shù)據(jù)時每秒僅讀取幾字節(jié),如每分鐘讀取100~300字節(jié)。 | 通過設(shè)置極小的TCP窗口大小,迫使服務(wù)器緩慢傳輸資源。 |
3. 防護關(guān)鍵:識別低頻異常連接
- 超時設(shè)置:配置中間件參數(shù)(如Nginx的
client_header_timeout
≤ 20秒,client_body_timeout
≤ 30秒),中斷超時未完成的連接。 - 速率監(jiān)控:檢測同一IP的低數(shù)據(jù)傳輸速率連接(如10秒內(nèi)傳輸<10字節(jié))并自動封禁。
- 連接數(shù)限制:限制單IP并發(fā)連接數(shù)(如≤50),防止連接池被占滿。

總結(jié)
慢速攻擊的“頻率”無法用“每分鐘多少次”量化,因其本質(zhì)是低速率長期占用連接而非高頻請求。防御需聚焦于:
- 縮短超時時間(秒級中斷慢連接);
- 監(jiān)控單連接數(shù)據(jù)速率(識別字節(jié)/分鐘的異常低速);
- 限制并發(fā)連接數(shù)(防資源耗盡)。