服务公告

服务公告 > 技術文章 > 什麼是慢速連接攻擊

什麼是慢速連接攻擊

发布时间:2026-04-20 10:24

http慢速攻擊是利用http合法機制,在建立連接後,儘量長時間保持連接不釋放,達到對HTTP服務攻擊,攻擊者發送POST請求,自行構造報文向服務器提交數據,將報文長度設定一個很大的值,且在隨後每次發送中,每次只發送一個很小的報文,這樣導致服務器一直等待數據,連接始終一直被佔用。

如果攻擊者使用多執行緒或傀儡機子去做同樣操作,服務器WEB容器很快就被占滿TCP連接而不再接受新請求。 slowhttptest是一款進行慢攻擊的測試軟體,包含了幾種攻擊方式,像Slowloris、SlowHTTP POST、Slow Read attack等。 總而言之,該工具的原理就是設法讓服務器等待,當服務器在保持連接等待時,就消耗了資源。

1、最具代表性的是rsnake發明的Slowloris,又被稱為slow headers

HTTP協議規定,HTTP Request以\r\n\r\n(0d0a0d0a)結尾表示用戶端發送結束,服務端開始處理。 那麼,如果永遠不發送\r\n\r\n會如何? Slowloris就是利用這一點來做DDoS攻擊的。

攻擊者在HTTP請求頭中將Connection設定為Keep-Alive,要求Web Server保持TCP連接不要斷開,隨後緩慢地每隔幾分鐘發送一個key-value格式的數據到服務端,如a:b\r\n,導致服務端認為HTTP頭部沒有接收完成而一直等待。 如果攻擊者使用多執行緒或者傀儡機來做同樣的操作,服務器的Web容器很快就被攻擊者占滿了TCP連接而不再接受新的請求。

2、Slowloris的變種--Slow HTTP POST,也稱為Slow body

在POST提交管道中,允許在HTTP的頭中聲明content-length,也就是POST內容的長度。 在提交了頭以後,將後面的body部分卡住不發送,這時服務器在接受了POST長度以後,就會等待用戶端發送POST的內容,攻擊者保持連接並且以10S-100S一個位元組的速度去發送,就達到了消耗資源的效果,囙此不斷地新增這樣的連結,就會使得服務器的資源被消耗,最後可能宕機。

3、 Slow Read attack

採用調整TCP協議中的滑動窗口大小,來對服務器單次發送的數據大小進行控制,使得服務器需要對一個回應分成很多個包來發送。 要使這種攻擊效果更加明顯,請求的資源要儘量大。

用Wireshark抓包可以看出,當請求a.wmv資源(大小有9M多)時,用戶端windowssize被刻意設定為1152位元組。 用戶端緩衝區在被來自服務器的數據填滿後,發出了[TCP ZeroWindow]告警,迫使服務端等待。 受到以上各種慢速攻擊後,服務器再無法訪問。

解決辦法:

1.使用NGINX,因為其本身就對慢速攻擊有很好防護。

2.tomcat可通過運行模式NIO和connectionTimeout值進行緩解。

3.如果自身沒有處理能力的話,也是可以使用匯通國際的機器,有專業售後團隊7*24小時為您排憂解難。