- 資訊首頁(yè) > 互聯(lián)網(wǎng) > 經(jīng)驗分享 >
- 什么是慢速攻擊?如何防御慢速CC攻擊?
1)什么是慢速攻擊
一說(shuō)起慢速攻擊,就要談?wù)勊某擅麣v史了。HTTP Post慢速DoS攻擊第一次在技術(shù)社區被正式披露是2012年的OWASP大會(huì )上,由Wong Onn Chee 和 Tom Brennan共同演示了使用這一技術(shù)攻擊的威力。
這個(gè)攻擊的基本原理如下:對任何一個(gè)開(kāi)放了HTTP訪(fǎng)問(wèn)的服務(wù)器HTTP服務(wù)器,先建立了一個(gè)連接,指定一個(gè)比較大的content-length,然后以非常低的速度發(fā)包,比如1-10s發(fā)一個(gè)字節,然后維持住這個(gè)連接不斷開(kāi)。如果客戶(hù)端持續建立這樣的連接,那么服務(wù)器上可用的連接將一點(diǎn)一點(diǎn)被占滿(mǎn),從而導致拒絕服務(wù)。
和CC攻擊一樣,只要Web服務(wù)器開(kāi)放了Web服務(wù),那么它就可以是一個(gè)靶子,HTTP協(xié)議在接收到request之前是不對請求內容作校驗的,所以即使你的Web應用沒(méi)有可用的form表單,這個(gè)攻擊一樣有效。
在客戶(hù)端以單線(xiàn)程方式建立較大數量的無(wú)用連接,并保持持續發(fā)包的代價(jià)非常的低廉。實(shí)際試驗中一臺普通PC可以建立的連接在3000個(gè)以上。這對一臺普通的Web server,將是致命的打擊。更不用說(shuō)結合肉雞群做分布式DoS了。
鑒于此攻擊簡(jiǎn)單的利用程度、拒絕服務(wù)的后果、帶有逃逸特性的攻擊方式,這類(lèi)攻擊一炮而紅,成為眾多攻擊者的研究和利用對象。
2)慢速攻擊的分類(lèi)
發(fā)展到今天,慢速攻擊也多種多樣,其種類(lèi)可分為以下幾種:
Slow headers:Web應用在處理HTTP請求之前都要先接收完所有的HTTP頭部,因為HTTP頭部中包含了一些Web應用可能用到的重要的信息。攻擊者利用這點(diǎn),發(fā)起一個(gè)HTTP請求,一直不停的發(fā)送HTTP頭部,消耗服務(wù)器的連接和內存資源。抓包數據可見(jiàn),攻擊客戶(hù)端與服務(wù)器建立TCP連接后,每30秒才向服務(wù)器發(fā)送一個(gè)HTTP頭部,而Web服務(wù)器再沒(méi)接收到2個(gè)連續的rn時(shí),會(huì )認為客戶(hù)端沒(méi)有發(fā)送完頭部,而持續的等等客戶(hù)端發(fā)送數據。
Slow body:攻擊者發(fā)送一個(gè)HTTP POST請求,該請求的Content-Length頭部值很大,使得Web服務(wù)器或代理認為客戶(hù)端要發(fā)送很大的數據。服務(wù)器會(huì )保持連接準備接收數據,但攻擊客戶(hù)端每次只發(fā)送很少量的數據,使該連接一直保持存活,消耗服務(wù)器的連接和內存資源。抓包數據可見(jiàn),攻擊客戶(hù)端與服務(wù)器建立TCP連接后,發(fā)送了完整的HTTP頭部,POST方法帶有較大的Content-Length,然后每10s發(fā)送一次隨機的參數。服務(wù)器因為沒(méi)有接收到相應Content-Length的body,而持續的等待客戶(hù)端發(fā)送數據。Slow read:客戶(hù)端與服務(wù)器建立連接并發(fā)送了一個(gè)HTTP請求,客戶(hù)端發(fā)送完整的請求給服務(wù)器端,然后一直保持這個(gè)連接,以很低的速度讀取Response,比如很長(cháng)一段時(shí)間客戶(hù)端不讀取任何數據,通過(guò)發(fā)送Zero Window到服務(wù)器,讓服務(wù)器誤以為客戶(hù)端很忙,直到連接快超時(shí)前才讀取一個(gè)字節,以消耗服務(wù)器的連接和內存資源。抓包數據可見(jiàn),客戶(hù)端把數據發(fā)給服務(wù)器后,服務(wù)器發(fā)送響應時(shí),收到了客戶(hù)端的ZeroWindow提示(表示自己沒(méi)有緩沖區用于接收數據),服務(wù)器不得不持續的向客戶(hù)端發(fā)出ZeroWindowProbe包,詢(xún)問(wèn)客戶(hù)端是否可以接收數據。
使用較多的慢速攻擊 工具有:Slowhttptest和Slowloris。 3)哪些服務(wù)器易被慢速攻擊慢速攻擊主要利用的是thread-based架構的服務(wù)器的特性,這種服務(wù)器會(huì )為每個(gè)新連接打開(kāi)一個(gè)線(xiàn)程,它會(huì )等待接收完整個(gè)HTTP頭部才會(huì )釋放連接。比如Apache會(huì )有一個(gè)超時(shí)時(shí)間來(lái)等待這種不完全連接(默認是300s),但是一旦接收到客戶(hù)端發(fā)來(lái)的數據,這個(gè)超時(shí)時(shí)間會(huì )被重置。正是因為這樣,攻擊者可以很容易保持住一個(gè)連接,因為攻擊者只需要在即將超時(shí)之前發(fā)送一個(gè)字符,便可以延長(cháng)超時(shí)時(shí)間。而客戶(hù)端只需要很少的資源,便可以打開(kāi)多個(gè)連接,進(jìn)而占用服務(wù)器很多的資源。
經(jīng)驗證,Apache、httpd采用thread-based架構,很容易遭受慢速攻擊。而另外一種event-based架構的服務(wù)器,比如nginx和lighttpd則不容易遭受慢速攻擊。
4)如何防護慢速攻擊Apache服務(wù)器現在使用較多的有三種簡(jiǎn)單防護方式。
mod_reqtimeout:Apache2.2.15后,該模塊已經(jīng)被默認包含,用戶(hù)可配置從一個(gè)客戶(hù)端接收HTTP頭部和HTTPbody的超時(shí)時(shí)間和最小速率。如果一個(gè)客戶(hù)端不能在配置時(shí)間內發(fā)送完頭部或body數據,服務(wù)器會(huì )返回一個(gè)408REQUEST TIME OUT錯誤。配置文件如下:
< IfModule mod_reqtimeout.c >RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500 < /IfModule >
mod_qos:Apache的一個(gè)服務(wù)質(zhì)量控制模塊,用戶(hù)可配置各種不同粒度的HTTP請求閾值,配置文件如下:
< IfModule mod_qos.c > /# handle connections from up to 100000 different IPsQS_ClientEntries 100000 /# allow only 50 connections per IPQS_SrvMaxConnPerIP 50 /# limit maximum number of active TCP connections limited to 256MaxClients 256 /# disables keep-alive when 180 (70%) TCP connections are occupiedQS_SrvMaxConnClose 180 /# minimum request/response speed (deny slow clients blocking the server, keeping connections open without requesting anythingQS_SrvMinDataRate 1501200 < /IfModule >
mod_security:一個(gè)開(kāi)源的WAF模塊,有專(zhuān)門(mén)針對慢速攻擊防護的規則,配置如下:
SecRule RESPONSE_STATUS “@streq 408” “phase:5,t:none,nolog,pass, setvar:ip.slow_dos_counter= 1, expirevar:ip.slow_dos_counter=60, id:’1234123456′”
SecRule IP:SLOW_DOS_COUNTER “@gt 5” “phase:1,t:none,log,drop,
msg:’Client Connection Dropped due to high number of slow DoS alerts’, id:’1234123457′”
傳統的流量清洗設備針對CC攻擊,主要通過(guò)閾值的方式來(lái)進(jìn)行防護,某一個(gè)客戶(hù)在一定的周期內,請求訪(fǎng)問(wèn)量過(guò)大,超過(guò)了閾值,清洗設備通過(guò)返回驗證碼或者JS代碼的方式。這種防護方式的依據是,攻擊者們使用肉雞上的DDoS工具模擬大量http request,這種工具一般不會(huì )解析服務(wù)端返回數據,更不會(huì )解析JS之類(lèi)的代碼。因此當清洗設備截獲到HTTP請求時(shí),返回一段特殊java script代碼,正常用戶(hù)的瀏覽器會(huì )處理并正常跳轉不影響使用,而攻擊程序會(huì )攻擊到空處。
而對于慢速攻擊來(lái)說(shuō),通過(guò)返回驗證碼或者JS代碼的方式依然能達到部分效果。但是根據慢速攻擊的特征,可以輔助以下幾種防護方式:
1、周期內統計報文數量。一個(gè)TCP連接,HTTP請求的報文中,報文過(guò)多或者報文過(guò)少都是有問(wèn)題的,如果一個(gè)周期內報文數量非常少,那么它就可能是慢速攻擊;如果一個(gè)周期內報文數量非常多,那么它就可能是一個(gè)CC攻擊。
2、限制HTTP請求頭的最大許可時(shí)間。超過(guò)最大許可時(shí)間,如果數據還沒(méi)有傳輸完成,那么它就有可能是一個(gè)慢速攻擊。
如果你不懂技術(shù),可聯(lián)系主機吧幫忙防御,我們專(zhuān)業(yè)防御各類(lèi)CC攻擊,DDOS攻擊,安全可靠!
發(fā)布者:水橋丶帕露西
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站