HTTP慢速攻擊是一種DoS攻擊的方式。HTTP請求底層使用TCP網絡連接進行會話,如果中間件對會話超時時間設置不合理,發送請求的時候采用慢速發HTTP請求就會占用一個連接會話,如果發送大量慢速的HTTP包就會導致拒絕服務攻擊DoS。
HTTP 慢速攻擊也叫 slow http attack,是一種 DoS 攻擊的方式。由于 HTTP 請求底層使用 TCP 網絡連接進行會話,因此如果中間件對會話超時時間設置不合理,并且 HTTP 在發送請求的時候采用慢速發 HTTP 請求,就會導致占用一個 HTTP 連接會話。如果發送大量慢速的 HTTP 包就會導致拒絕服務攻擊 DoS。
3 種攻擊方式
Slow headers(也稱 slowloris):Web 應用在處理 HTTP 請求之前都要先接收完所有的 HTTP 頭部,Web 服務器再沒接收到 2 個連續的rn 時,會認為客戶端沒有發送完頭部,而持續的等等客戶端發送數據,消耗服務器的連接和內存資源。
Slow body(也稱 Slow HTTP POST):攻擊者發送一個 HTTP POST 請求,該請求的 Content-Length 頭部值很大,使得 Web 服務器或代理認為客戶端要發送很大的數據。服務器會保持連接準備接收數據,但攻擊客戶端每次只發送很少量的數據,使該連接一直保持存活,消耗服務器的連接和內存資源。
Slow read(也稱 Slow Read attack):客戶端與服務器建立連接并發送了一個 HTTP 請求,客戶端發送完整的請求給服務器端,然后一直保持這個連接,以很低的速度讀取 Response,比如很長一段時間客戶端不讀取任何數據,通過發送 Zero Window 到服務器,讓服務器誤以為客戶端很忙,直到連接快超時前才讀取一個字節,以消耗服務器的連接和內存資源。
防御原理
針對 HTTP 慢速攻擊的特點,Anti-DDoS 設備對每秒鐘 HTTP 并發連接數進行檢查,當每秒鐘 HTTP 并發連接數超過設定值時,會觸發 HTTP 報文檢查,檢查出以下任意一種情況,都認定受到 HTTP 慢速連接攻擊,則將該源 IP 地址判定為攻擊源,加入動態黑名單,同時斷開此 IP 地址與 HTTP 服務器的連接。
連續多個 HTTP POST 報文的總長度都很大,但是其 HTTP 載荷長度都很小。
連續多個 HTTP GET/POST 報文的報文頭都沒有結束標識。