最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

緩慢的HTTP拒絕服務(wù)攻擊

2023-09-01 15:11 作者:青陽小棧  | 我要投稿

今天其他部門的研發(fā)找我說被客戶說有個漏洞,問修復(fù)建議。

對任何一個開放了http訪問的服務(wù)器,先建立一個連接,指定一個比較大的content-length,然后以非常低的速度發(fā)包,比如1-10s發(fā)一個字節(jié),然后維持這個連接不斷開。如果客戶端持續(xù)建立這樣的連接,那么服務(wù)器的可用連接將一點一點被占滿,從而導(dǎo)致拒絕服務(wù)。


和CC攻擊一樣,只要Web服務(wù)器開放了Web服務(wù),那么它就可以是一個靶子,HTTP協(xié)議在接收到request之前是不對請求內(nèi)容作校驗的,所以即使你的Web應(yīng)用沒有可用的form表單,這個攻擊一樣有效。


在客戶端以單線程方式建立較大數(shù)量的無用連接,并保持持續(xù)發(fā)包的代價非常的低廉。實際試驗中一臺普通PC可以建立的連接在3000個以上。這對一臺普通的Web server,將是致命的打擊。更不用說結(jié)合肉雞群做分布式DoS了。

對任何一個開放了HTTP訪問的服務(wù)器HTTP服務(wù)器,先建立了一個連接(三次握手),指定一個比較大的content-length,然后以非常低的速度發(fā)包,比如1-10s發(fā)一個字節(jié),然后維持住這個連接不斷開。如果客戶端持續(xù)建立這樣的連接,那么服務(wù)器上可用的連接將一點一點被占滿,從而導(dǎo)致拒絕服務(wù)。


慢速攻擊的分類:

Slow headers:Web應(yīng)用在處理HTTP請求之前都要先接收完所有的HTTP頭部,因為HTTP頭部中包含了一些Web應(yīng)用可能用到的重要的信息。攻擊者利用這點,發(fā)起一個HTTP請求,一直不停的發(fā)送HTTP頭部,消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見,攻擊客戶端與服務(wù)器建立TCP連接后,每30秒才向服務(wù)器發(fā)送一個HTTP頭部,而Web服務(wù)器再沒接收到2個連續(xù)的\r\n時,會認為客戶端沒有發(fā)送完頭部,而持續(xù)的等等客戶端發(fā)送數(shù)據(jù)。

Slow body:攻擊者發(fā)送一個HTTP POST請求,該請求的Content-Length頭部值很大,使得Web服務(wù)器或代理認為客戶端要發(fā)送很大的數(shù)據(jù)。服務(wù)器會保持連接準備接收數(shù)據(jù),但攻擊客戶端每次只發(fā)送很少量的數(shù)據(jù),使該連接一直保持存活,消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見,攻擊客戶端與服務(wù)器建立TCP連接后,發(fā)送了完整的HTTP頭部,POST方法帶有較大的Content-Length,然后每10s發(fā)送一次隨機的參數(shù)。服務(wù)器因為沒有接收到相應(yīng)Content-Length的body,而持續(xù)的等待客戶端發(fā)送數(shù)據(jù)。

Slow read:客戶端與服務(wù)器建立連接并發(fā)送了一個HTTP請求,客戶端發(fā)送完整的請求給服務(wù)器端,然后一直保持這個連接,以很低的速度讀取Response,比如很長一段時間客戶端不讀取任何數(shù)據(jù),通過發(fā)送Zero Window到服務(wù)器,讓服務(wù)器誤以為客戶端很忙,直到連接快超時前才讀取一個字節(jié),以消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見,客戶端把數(shù)據(jù)發(fā)給服務(wù)器后,服務(wù)器發(fā)送響應(yīng)時,收到了客戶端的ZeroWindow提示(表示自己沒有緩沖區(qū)用于接收數(shù)據(jù)),服務(wù)器不得不持續(xù)的向客戶端發(fā)出ZeroWindowProbe包,詢問客戶端是否可以接收數(shù)據(jù)。


測試工具:

SlowHttpTest


sudo apt-get install slowhttptest

Slow headers攻擊

slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://x.x.x.x -x 24 ?-p 3

Slow body攻擊

slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u https://x.x.x.x -x 10 -p 3

Slow read攻擊

slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://x.x.x.x -p 3


解決方案:

可以部署waf防護設(shè)備進行防護,也可以在本地進行緩解。

針對不同的Server其對慢速http拒絕服務(wù)攻擊防范方法也不同:

WebSphere

1、限制 HTTP 數(shù)據(jù)的大小
在WebSphere Application Server 中進行如下設(shè)置:

任何單個 HTTP 頭的默認最大大小為 32768 字節(jié)。可以將它設(shè)置為不同的值。

HTTP 頭的默認最大數(shù)量為 50??梢詫⑺O(shè)置為不同的限制值。

另一種常見的 DOS 攻擊是發(fā)送一個請求,這個請求會導(dǎo)致一個長期運行的 GET 請求。WebSphere Application Server Plug-in 中的 ServerIOTimeoutRetry 屬性可限制任何請求的重試數(shù)量。這可以降低這種長期運行的請求的影響。

設(shè)置限制任何請求正文的最大大小。

2、設(shè)置keepalive參數(shù)

打開ibm http server安裝目錄,打開文件夾conf,打開文件httpd.conf,查找KeepAlive值,改ON為OFF,其默認為ON。

這個值說明是否保持客戶與HTTP SERVER的連接,如果設(shè)置為ON,則請求數(shù)到達MaxKeepAliveRequests設(shè)定值時請求將排隊,導(dǎo)致響應(yīng)變慢。

詳見參考鏈接:

http://www.ibm.com/developerworks/cn/websphere/techjournal/1210_lansche/1210_lansche.html#new-step32

Weblogic

1、在配置管理界面中的協(xié)議->一般信息下設(shè)置 完成消息超時時間小于200
2、在配置管理界面中的協(xié)議->HTTP下設(shè)置 POST 超時、持續(xù)時間、最大 POST 大小為安全值范圍。

http://docs.oracle.com/cd/E12890_01/ales/docs32/integrateappenviron/configWLS.html#wp1101063

Nginx

1、通過調(diào)整$request_method,配置服務(wù)器接受http包的操作限制;
2、在保證業(yè)務(wù)不受影響的前提下,調(diào)整client_max_body_size,client_body_buffer_size,``client_header_buffer_size,large_client_header_buffersclient_body_timeout,``client_header_timeout的值,必要時可以適當?shù)脑黾樱?br>3、對于會話或者相同的ip地址,可以使用HttpLimitReqModule and HttpLimitZoneModule參數(shù)去限制請求量或者并發(fā)連接數(shù);
4、根據(jù)CPU和負載的大小,來配置worker_processes 和 worker_connections的值,公式是:max_clients = worker_processes * worker_connections。

Apache

建議使用mod_reqtimeout和mod_qos兩個模塊相互配合來防護。
1、mod_reqtimeout用于控制每個連接上請求發(fā)送的速率。配置例如:
#請求頭部分,設(shè)置超時時間初始為10秒,并在收到客戶端發(fā)送的數(shù)據(jù)后,每接收到500字節(jié)數(shù)據(jù)就將超時時間延長1秒,但最長不超過40秒??梢苑雷oslowloris型的慢速攻擊。

RequestReadTimeout header=10-40,minrate=500

#請求正文部分,設(shè)置超時時間初始為10秒,并在收到客戶端發(fā)送的數(shù)據(jù)后,每接收到500字節(jié)數(shù)據(jù)就將超時時間延長1秒,但最長不超過40秒。可以防護slow message body型的慢速攻擊。

RequestReadTimeout body=10-40,minrate=500

需注意,對于HTTPS站點,需要把初始超時時間上調(diào),比如調(diào)整到20秒。

示例:

LoadModule reqtimeout_module modules/mod_reqtimeout.so <IfModule reqtimeout_module> ? ? ? ?RequestReadTimeout header=10-40,minrate=500 body=10-40,minrate=500 </IfModule>

2、mod_qos用于控制并發(fā)連接數(shù)。配置例如:
當服務(wù)器并發(fā)連接數(shù)超過600時,關(guān)閉keepalive
QS_SrvMaxConnClose 600
限制每個源IP最大并發(fā)連接數(shù)為50
QS_SrvMaxConnPerIP 50
這兩個數(shù)值可以根據(jù)服務(wù)器的性能調(diào)整。
更多關(guān)于qos_module配置參考:

http://mod-qos.sourceforge.net/dos.html

示例:

LoadModule qos_module modules/mod_qos.so <IfModule qos_module> QS_SrvMaxConnClose 600 QS_SrvMaxConnPerIP 50 </IfModule>

IHS服務(wù)器

請您先安裝最新補丁包,然后啟用mod_reqtimeout模塊,在配置文件中加入:

LoadModule reqtimeout_module modules/mod_reqtimeout.so

為mod_reqtimeout模塊添加配置:

<IfModule mod_reqtimeout.c> RequestReadTimeout header=10-40,MinRate=500 body=10-40,MinRate=500

對于HTTPS站點,建議header=20-40,MinRate=500。
參見:

http://www-01.ibm.com/support/docview.wss?uid=swg21652165

F5負載均衡

F5負載均衡設(shè)備有相應(yīng)的防護模塊,如無購買可參考附件中的詳細配置過程。
關(guān)于F5的慢速攻擊防護配置,請參考以下鏈接:

https://support.f5.com/kb/en-us/solutions/public/10000/200/sol10260.html https://devcentral.f5.com/articles/mitigating-slow-http-post-ddos-attacks-with-irules-ndash-follow-up

IIS服務(wù)器

IIS可配置相關(guān)網(wǎng)站的Web.config如下:
1、WebLimits設(shè)置:

<configuration> ? ?<system.applicationHost> ? ? ? ?<webLimits connectionTimeout="00:00:30" ? ? ? ?headerWaitTimeout="00:00:10" ? ? ? ?dynamicIdleThreshold="150" ? ? ? ?minBytesPerSecond="512" ? ?/> ? ?</system.applicationHost> </configuration>

參考以下鏈接:

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/weblimits#configuration

2、headerLimits設(shè)置:

<configuration> <system.webServer> ?<security> ? <requestFiltering> ? ?<requestLimits> ? ? <headerLimits> ? ? <add header="Content-type" sizeLimit="100" /> ? ? </headerLimits> ? ?</requestLimits> ? </requestFiltering> ?</security> </system.webServer> </configuration>


緩慢的HTTP拒絕服務(wù)攻擊的評論 (共 條)

分享到微博請遵守國家法律
白水县| 彩票| 酒泉市| 扎兰屯市| 海晏县| 富锦市| 垣曲县| 拜泉县| 资中县| 治县。| 乌兰察布市| 抚松县| 读书| 平罗县| 香格里拉县| 黄平县| 浏阳市| 教育| 镇坪县| 桐柏县| 望奎县| 尤溪县| 赤壁市| 北票市| 庆城县| 涞源县| 越西县| 霍林郭勒市| 黔南| 炎陵县| 海门市| 大连市| 四子王旗| 麻栗坡县| 乌兰浩特市| 平邑县| 林西县| 道真| 白城市| 庆元县| 晋中市|