緩慢的http拒絕服務攻擊是一種專門針對於web的應用層拒絕服務攻擊,攻擊者操縱網路上的肉雞,對目標web伺服器進行海量http request攻擊,直到伺服器頻寬被打滿,造成了拒絕服務。
慢速http拒絕服務攻擊經過不斷的演變和發展,主要有三種攻擊型別,分別是slow headers、slow body、slow read。以slow headers為例,web應用在處理http請求之前都要先接收完所有的http頭部,因為http頭部中包含了一些web應用可能用到的重要的資訊。攻擊者利用這點,發起乙個http請求,一直不停的傳送http頭部,消耗伺服器的連線和記憶體資源。抓包資料可見,攻擊客戶端與伺服器建立tcp連線後,每40秒才向伺服器傳送乙個http頭部,而web伺服器再沒接收到2個連續的\r\n時,會認為客戶端沒有傳送完頭部,而持續的等等客戶端傳送資料。如果惡意攻擊者客戶端持續建立這樣的連線,那麼伺服器上可用的連線將一點一點被佔滿,從而導致拒絕服務。這種攻擊型別稱為慢速http拒絕服務攻擊。
是以極低的速度往伺服器傳送http請求。由於web server對於併發的連線數都有一定的上限,因此若是惡意地占用住這些連線不釋放,那麼web server的所有連線都將被惡意連線占用,從而無法接受新的請求,導致拒絕服務。
要保持住這個連線,rsnake構造了乙個畸形的http請求,準確地說,是乙個不完整的http請求。
在正常的http包頭中,是以兩個clrf表示http headers部分結束的。
由於web server只收到了乙個\r\n,因此將認為http headers部分沒有結束,並保持此連線不釋放,繼續等待完整的請求。此時客戶端再傳送任意http頭,保持住連線即可。
x-a: b\r\n
當構造多個連線後,伺服器的連線數很快就會達到上限。
1 安裝openssl和libssl-dev
安裝libssl如果失敗,執行apt-get update,然後再執行sudo apt-get install libssl-dev
2 安裝slowhttptest
測試http緩慢攻擊可以這樣,把url換成自己的:
針對不同的server其對慢速http拒絕服務攻擊防範方法也不同,建議使用以下措施防範慢速http拒絕服務攻擊:
websphere
任何單個 http 頭的預設最大大小為 32768 位元組。可以將它設定為不同的值。
http 頭的預設最大數量為 50。可以將它設定為不同的限制值。
設定限制任何請求正文的最大大小。詳見參考鏈結。
開啟ibm http server安裝目錄,開啟資料夾conf,開啟檔案httpd.conf,查詢keepalive值,改on為off,其預設為on。
這個值說明是否保持客戶與http server的連線,如果設定為on,則請求數到達maxkeepaliverequests設定值時請求將排隊,導致響應變慢。
weblogic
1、在配置管理介面中的協議->一般資訊下設定 完成訊息超時時間小於400
2、在配置管理介面中的協議->http下設定 post 超時、持續時間、最大 post 大小為安全值範圍。
nginx
1、通過調整$request_method,配置伺服器接受http包的操作限制;
2、在保證業務不受影響的前提下,調整client_max_body_size, client_body_buffer_size, client_header_buffer_size,large_client_header_buffersclient_body_timeout, client_header_timeout的值,必要時可以適當的增加;
3、對於會話或者相同的ip位址,可以使用httplimitreqmodule and httplimitzonemodule引數去限制請求量或者併發連線數;
4、根據cpu和負載的大小,來配置worker_processes 和 worker_connections的值,公式是:max_clients = worker_processes * worker_connections。
apache
建議使用mod_reqtimeout和mod_qos兩個模組相互配合來防護。
1、mod_reqtimeout用於控制每個連線上請求傳送的速率。配置例如:
#請求頭部分,設定超時時間初始為10秒,並在收到客戶端傳送的資料後,每接收到500位元組資料就將超時時間延長1秒,但最長不超過40秒。可以防護slowloris型的慢速攻擊。
requestreadtimeout header=10-40,minrate=500
#請求正文部分,設定超時時間初始為10秒,並在收到客戶端傳送的資料後,每接收到500位元組資料就將超時時間延長1秒,但最長不超過40秒。可以防護slow message body型的慢速攻擊。
requestreadtimeout body=10-40,minrate=500
需注意,對於https站點,需要把初始超時時間上調,比如調整到20秒。
2、mod_qos用於控制併發連線數。配置例如:
當伺服器併發連線數超過600時,關閉keepalive
qs_srvmaxconnclose 600
限制每個源ip最大併發連線數為50
qs_srvmaxconnperip 50
這兩個數值可以根據伺服器的效能調整。
ihs伺服器
請您先安裝最新補丁包,然後啟用mod_reqtimeout模組,在配置檔案中加入:
loadmodule reqtimeout_module modules/mod_reqtimeout.so
為mod_reqtimeout模組新增配置:
requestreadtimeout header=10-40,minrate=500 body=10-40,minrate=500
對於https站點,建議header=20-40,minrate=500。
參見:f5負載均衡修復建議
緩慢的HTTP拒絕服務攻擊
slow http dos解決方案 解決方案 1 設定tomcat server.xml檔案 connectiontimeout 值,預設為20000ms,修改為8000ms tomcat 自身安全漏洞 2 設定ajax的全域性timeout時間 預設為30000ms ajaxsetup 3 if ...
拒絕服務攻擊
dos denial of service 指拒絕服務,是一種常用來使伺服器或網路癱瘓的網路攻擊手段。在平時更多提到的是分布式拒絕服務 ddos,distributed denial of service 攻擊,該攻擊是指利用足夠數量的傀儡計算機產生數量巨大的攻擊資料報,對網路上的一台或多台目標實施...
拒絕服務攻擊 DOS)
拒絕服務攻擊 dos dos是denial of service的簡稱,即拒絕服務,造成dos的攻擊行為被稱為dos攻擊,其目的是使計算機或網路無法提供正常的服務。最常見的dos攻擊有計算機網路頻寬攻擊和連通性攻擊。頻寬攻擊指以極大的通訊量衝擊網路,使得所有可用網路資源都被消耗殆盡,最後導致合法的使...