服務(wù)器遇到的CC攻擊有多少種?
一、 CC攻擊的原理:
CC攻擊的原理就是攻擊者控制某些主機(jī)不停地發(fā)大量數(shù)據(jù)包給對(duì)方服務(wù)器造成服務(wù)器資源耗盡,一直到宕機(jī)崩潰。CC主要是用來(lái)消耗服務(wù)器資源的,每個(gè)人都有這樣的體驗(yàn):當(dāng)一個(gè)網(wǎng)頁(yè)訪問(wèn)的人數(shù)特別多的時(shí)候,打開(kāi)網(wǎng)頁(yè)就慢了,CC就是模擬多個(gè)用戶(多少線程就是多少用戶)不停地進(jìn)行訪問(wèn)那些需要大量數(shù)據(jù)操作(就是需要大量CPU時(shí)間)的頁(yè)面,造成服務(wù)器資源的浪費(fèi),CPU長(zhǎng)時(shí)間處于100%,永遠(yuǎn)都有處理不完的連接直至就網(wǎng)絡(luò)擁塞,正常的訪問(wèn)被中止。
二、CC攻擊的種類(lèi):
CC攻擊的種類(lèi)有三種,直接攻擊,代理攻擊,僵尸網(wǎng)絡(luò)攻擊,直接攻擊主要針對(duì)有重要缺陷的 WEB 應(yīng)用程序,一般說(shuō)來(lái)是程序?qū)懙挠袉?wèn)題的時(shí)候才會(huì)出現(xiàn)這種情況,比較少見(jiàn)。僵尸網(wǎng)絡(luò)攻擊有點(diǎn)類(lèi)似于 DDOS 攻擊了,從 WEB 應(yīng)用程序?qū)用嫔弦呀?jīng)無(wú)法防御,所以代理攻擊是CC 攻擊者一般會(huì)操作一批代理服務(wù)器,比方說(shuō) 100 個(gè)代理,然后每個(gè)代理同時(shí)發(fā)出 10 個(gè)請(qǐng)求,這樣 WEB 服務(wù)器同時(shí)收到 1000 個(gè)并發(fā)請(qǐng)求的,并且在發(fā)出請(qǐng)求后,立刻斷掉與代理的連接,避免代理返回的數(shù)據(jù)將本身的帶寬堵死,而不能發(fā)動(dòng)再次請(qǐng)求,這時(shí) WEB 服務(wù)器會(huì)將響應(yīng)這些請(qǐng)求的進(jìn)程進(jìn)行隊(duì)列,數(shù)據(jù)庫(kù)服務(wù)器也同樣如此,這樣一來(lái),正常請(qǐng)求將會(huì)被排在很后被處理,就象本來(lái)你去食堂吃飯時(shí),一般只有不到十個(gè)人在排隊(duì),今天前面卻插了一千個(gè)人,那么輪到你的機(jī)會(huì)就很小很小了,這時(shí)就出現(xiàn)頁(yè)面打開(kāi)極其緩慢或者白屏。
三、CC攻擊與DDOS的區(qū)別
1) 什么是DDoS攻擊?
DDoS攻擊就是分布式的拒絕服務(wù)攻擊,DDoS攻擊手段是在傳統(tǒng)的DoS攻擊基礎(chǔ)之上產(chǎn)生的一類(lèi)攻擊方式。單一的DoS攻擊一般是采用一對(duì)一方式的,隨著計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)的發(fā)展,DoS攻擊的困難程度加大了。于是就產(chǎn)生了DDoS攻擊,它的原理就很簡(jiǎn)單:計(jì)算機(jī)與網(wǎng)絡(luò)的處理能力加大了10倍,用一臺(tái)攻擊機(jī)來(lái)攻擊不再能起作用,那么DDoS就是利用更多的傀儡機(jī)來(lái)發(fā)起進(jìn)攻,以比從前更大的規(guī)模來(lái)進(jìn)攻受害者。常用的DDoS軟件有:LOIC。
在這里補(bǔ)充兩點(diǎn):第一就是DDOS攻擊不僅能攻擊計(jì)算機(jī),還能攻擊路由器,因?yàn)槁酚善魇且慌_(tái)特殊類(lèi)型的計(jì)算機(jī);第二是網(wǎng)速?zèng)Q定攻擊的好和快,比如說(shuō),如果你一個(gè)被限制網(wǎng)速的環(huán)境下,它們的攻擊效果不是很明顯,但是快的網(wǎng)速相比之下更加具有攻擊效果。
2)什么是CC攻擊?
3)兩者區(qū)別
DDoS是針對(duì)IP的攻擊,而CC攻擊的是服務(wù)器資源。
四、CC攻擊的變異品種 慢速攻擊
1)什么是慢速攻擊
一說(shuō)起慢速攻擊,就要談?wù)勊某擅麣v史了。HTTP Post慢速DoS攻擊第一次在技術(shù)社區(qū)被正式披露是2012年的OWASP大會(huì)上,由Wong Onn Chee 和 Tom Brennan共同演示了使用這一技術(shù)攻擊的威力。
這個(gè)攻擊的基本原理如下:對(duì)任何一個(gè)開(kāi)放了HTTP訪問(wèn)的服務(wù)器HTTP服務(wù)器,先建立了一個(gè)連接,指定一個(gè)比較大的content-length,然后以非常低的速度發(fā)包,比如1-10s發(fā)一個(gè)字節(jié),然后維持住這個(gè)連接不斷開(kāi)。如果客戶端持續(xù)建立這樣的連接,那么服務(wù)器上可用的連接將一點(diǎn)一點(diǎn)被占滿,從而導(dǎo)致拒絕服務(wù)。
和CC攻擊一樣,只要Web服務(wù)器開(kāi)放了Web服務(wù),那么它就可以是一個(gè)靶子,HTTP協(xié)議在接收到request之前是不對(duì)請(qǐng)求內(nèi)容作校驗(yàn)的,所以即使你的Web應(yīng)用沒(méi)有可用的form表單,這個(gè)攻擊一樣有效。
在客戶端以單線程方式建立較大數(shù)量的無(wú)用連接,并保持持續(xù)發(fā)包的代價(jià)非常的低廉。實(shí)際試驗(yàn)中一臺(tái)普通PC可以建立的連接在3000個(gè)以上。這對(duì)一臺(tái)普通的Web server,將是致命的打擊。更不用說(shuō)結(jié)合肉雞群做分布式DoS了。
鑒于此攻擊簡(jiǎn)單的利用程度、拒絕服務(wù)的后果、帶有逃逸特性的攻擊方式,這類(lèi)攻擊一炮而紅,成為眾多攻擊者的研究和利用對(duì)象。
2)慢速攻擊的分類(lèi)發(fā)展到今天,慢速攻擊也多種多樣,其種類(lèi)可分為以下幾種:
Slow headers:Web應(yīng)用在處理HTTP請(qǐng)求之前都要先接收完所有的HTTP頭部,因?yàn)镠TTP頭部中包含了一些Web應(yīng)用可能用到的重要的信息。攻擊者利用這點(diǎn),發(fā)起一個(gè)HTTP請(qǐng)求,一直不停的發(fā)送HTTP頭部,消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見(jiàn),攻擊客戶端與服務(wù)器建立TCP連接后,每30秒才向服務(wù)器發(fā)送一個(gè)HTTP頭部,而Web服務(wù)器再?zèng)]接收到2個(gè)連續(xù)的\r\n時(shí),會(huì)認(rèn)為客戶端沒(méi)有發(fā)送完頭部,而持續(xù)的等等客戶端發(fā)送數(shù)據(jù)。
Slow body:攻擊者發(fā)送一個(gè)HTTP POST請(qǐng)求,該請(qǐng)求的Content-Length頭部值很大,使得Web服務(wù)器或代理認(rèn)為客戶端要發(fā)送很大的數(shù)據(jù)。服務(wù)器會(huì)保持連接準(zhǔn)備接收數(shù)據(jù),但攻擊客戶端每次只發(fā)送很少量的數(shù)據(jù),使該連接一直保持存活,消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見(jiàn),攻擊客戶端與服務(wù)器建立TCP連接后,發(fā)送了完整的HTTP頭部,POST方法帶有較大的Content-Length,然后每10s發(fā)送一次隨機(jī)的參數(shù)。服務(wù)器因?yàn)闆](méi)有接收到相應(yīng)Content-Length的body,而持續(xù)的等待客戶端發(fā)送數(shù)據(jù)。Slow read:客戶端與服務(wù)器建立連接并發(fā)送了一個(gè)HTTP請(qǐng)求,客戶端發(fā)送完整的請(qǐng)求給服務(wù)器端,然后一直保持這個(gè)連接,以很低的速度讀取Response,比如很長(zhǎng)一段時(shí)間客戶端不讀取任何數(shù)據(jù),通過(guò)發(fā)送Zero Window到服務(wù)器,讓服務(wù)器誤以為客戶端很忙,直到連接快超時(shí)前才讀取一個(gè)字節(jié),以消耗服務(wù)器的連接和內(nèi)存資源。抓包數(shù)據(jù)可見(jiàn),客戶端把數(shù)據(jù)發(fā)給服務(wù)器后,服務(wù)器發(fā)送響應(yīng)時(shí),收到了客戶端的ZeroWindow提示(表示自己沒(méi)有緩沖區(qū)用于接收數(shù)據(jù)),服務(wù)器不得不持續(xù)的向客戶端發(fā)出ZeroWindowProbe包,詢(xún)問(wèn)客戶端是否可以接收數(shù)據(jù)。使用較多的慢速攻擊工具有:Slowhttptest和Slowloris。