CC攻擊概述及防范措施
CC攻擊概述及防范措施
以下是OMG小編為大家收集整理的文章,希望對(duì)大家有所幫助。
攻擊者借助代理服務(wù)器生成指向受害主機(jī)的合法請(qǐng)求,實(shí)現(xiàn)DDOS,和偽裝就叫:cc(ChallengeCollapsar)。
CC主要是用來(lái)攻擊頁(yè)面的。大家都有這樣的經(jīng)歷,就是在訪問(wèn)論壇時(shí),如果這個(gè)論壇比較大,訪問(wèn)的人比較多,打開頁(yè)面的速度會(huì)比較慢,訪問(wèn)的人越多,論壇的頁(yè)面越多,數(shù)據(jù)庫(kù)就越大,被訪問(wèn)的頻率也越高,占用的系統(tǒng)資源也就相當(dāng)可觀。
一個(gè)靜態(tài)頁(yè)面不需要服務(wù)器多少資源,甚至可以說(shuō)直接從內(nèi)存中讀出來(lái)發(fā)給你就可以了,但是論壇就不一樣了,我看一個(gè)帖子,系統(tǒng)需要到數(shù)據(jù)庫(kù)中判斷我是否有讀讀帖子的權(quán)限,如果有,就讀出帖子里面的內(nèi)容,顯示出來(lái)——這里至少訪問(wèn)了2次數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)的體積有200MB大小,系統(tǒng)很可能就要在這200MB大小的數(shù)據(jù)空間搜索一遍,這需要多少的cpu資源和時(shí)間?如果我是查找一個(gè)關(guān)鍵字,那么時(shí)間更加可觀,因?yàn)榍懊娴乃阉骺梢韵薅ㄔ谝粋€(gè)很小的范圍內(nèi),比如用戶權(quán)限只查用戶表,帖子內(nèi)容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會(huì)對(duì)所有的數(shù)據(jù)進(jìn)行一次判斷,消耗的時(shí)間是相當(dāng)?shù)拇蟆?/p>
CC就是充分利用了這個(gè)特點(diǎn),模擬多個(gè)用戶(多少線程就是多少用戶)不停的進(jìn)行訪問(wèn)(訪問(wèn)那些需要大量數(shù)據(jù)操作,就是需要大量CPU時(shí)間的頁(yè)面).這一點(diǎn)用一個(gè)一般的性能測(cè)試軟件就可以做到大量模擬用戶并發(fā)。
中文名 : CC攻擊
外文名: ChallengeCollapsar
簡(jiǎn) 稱: cc
模 式: 模擬多個(gè)用戶不停的進(jìn)行訪問(wèn)
假設(shè)服務(wù)器A對(duì)Search.asp的處理時(shí)間需要0.01S(多線程只是時(shí)間分割,對(duì)結(jié)論沒(méi)有影響),也就是說(shuō)他一秒可以保證100個(gè)用戶的Search請(qǐng)求,服務(wù)器允許的最大連接時(shí)間為60s,那么使用CC模擬120個(gè)用戶并發(fā)連接,那么經(jīng)過(guò) 1分鐘,服務(wù)器的被請(qǐng)求了7200次,處理了6000次,于是剩下了1200個(gè)并發(fā)連接沒(méi)有被處理.有的朋友會(huì)說(shuō):丟連接!丟連接!問(wèn)題是服務(wù)器是按先來(lái)后到的順序丟的,這1200個(gè)是在最后10秒的時(shí)候發(fā)起的,想丟?!還早,經(jīng)過(guò)計(jì)算,服務(wù)器滿負(fù)開始丟連接的時(shí)候,應(yīng)該是有7200個(gè)并發(fā)連接存在隊(duì)列, 然后服務(wù)器開始120個(gè)/秒的丟連接,發(fā)動(dòng)的連接也是120個(gè)/秒,服務(wù)器永遠(yuǎn)有處理不完的連接,服務(wù)器的CPU 100%并長(zhǎng)時(shí)間保持,然后丟連接的60秒服務(wù)器也判斷處理不過(guò)來(lái)了,新的連接也處理不了,這樣服務(wù)器達(dá)到了超級(jí)繁忙狀態(tài).
假設(shè)服務(wù)器處理Search只用了0.01S,也就是10毫秒(這個(gè)速度你可以去各個(gè)有開放時(shí)間顯示的論壇看看),使用的線程也只有120,很多服務(wù)器的丟連接時(shí)間遠(yuǎn)比60S長(zhǎng),使用線程遠(yuǎn)比120多,可以想象可怕了吧,而且客戶機(jī)只要發(fā)送了斷開,連接的保持是代理做的,而且當(dāng)服務(wù)器收到SQL請(qǐng)求,肯定會(huì)進(jìn)入隊(duì)列,不論連接是否已經(jīng)斷開,而且服務(wù)器是并發(fā)的,不是順序執(zhí)行,這樣使得更多的請(qǐng)求進(jìn)入內(nèi)存請(qǐng)求,對(duì)服務(wù)器負(fù)擔(dān)更大。
CC = Challenge Collapsar,意為“挑戰(zhàn)黑洞”,其前身名為Fatboy攻擊,是利用不斷對(duì)網(wǎng)站發(fā)送連接請(qǐng)求致使形成拒絕服務(wù)的目的。業(yè)界賦予這種攻擊名稱為CC(Challenge Collapsar,挑戰(zhàn)黑洞),是由于在DDOS攻擊發(fā)展前期,絕大部分都能被業(yè)界知名的“黑洞”(Collapsar)抗拒絕服務(wù)攻擊系統(tǒng)所防護(hù),于是在黑客們研究出一種新型的針對(duì)http的DDOS攻擊后,即命名Challenge Collapsar,聲稱黑洞設(shè)備無(wú)法防御,后來(lái)大家就延用CC這個(gè)名稱至今。有趣的是,黑洞(現(xiàn)改名為ADS)后來(lái)也能全面防御CC攻擊,但這個(gè)段子中的攻防較量仍然被傳為一段佳話。
CC攻擊是DDOS(分布式拒絕服務(wù))的一種,相比其它的DDOS攻擊CC似乎更有技術(shù)含量一些。這種攻擊你見(jiàn)不到真實(shí)源IP,見(jiàn)不到特別大的異常流量,但造成服務(wù)器無(wú)法進(jìn)行正常連接。最讓站長(zhǎng)們憂慮的是這種攻擊技術(shù)含量低,利用更換IP代理工具和一些IP代理一個(gè)初、中級(jí)的電腦水平的用戶就能夠?qū)嵤┕?。因此,大家有必要了解CC攻擊的原理及如果發(fā)現(xiàn)CC攻擊和對(duì)其的防范措施。
CC攻擊的原理就是攻擊者控制某些主機(jī)不停地發(fā)大量數(shù)據(jù)包給對(duì)方服務(wù)器造成服務(wù)器資源耗盡,一直到宕機(jī)崩潰。CC主要是用來(lái)攻擊頁(yè)面的,每個(gè)人都有這樣的體驗(yàn):當(dāng)一個(gè)網(wǎng)頁(yè)訪問(wèn)的人數(shù)特別多的時(shí)候,打開網(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攻擊可以歸為DDoS攻擊的一種。他們之間的原理都是一樣的,即發(fā)送大量的請(qǐng)求數(shù)據(jù)來(lái)導(dǎo)致服務(wù)器拒絕服務(wù),是一種連接攻擊。CC攻擊又可分為代理CC攻擊,和肉雞CC攻擊。代理CC攻擊是黑客借助代理服務(wù)器生成指向受害主機(jī)的合法網(wǎng)頁(yè)請(qǐng)求,實(shí)現(xiàn)DDoS,和偽裝就叫:cc(Challenge Collapsar)。而肉雞CC攻擊是黑客使用CC攻擊軟件,控制大量肉雞,發(fā)動(dòng)攻擊,相比來(lái)后者比前者更難防御。因?yàn)槿怆u可以模擬正常用戶訪問(wèn)網(wǎng)站的請(qǐng)求。偽造成合法數(shù)據(jù)包。
一個(gè)靜態(tài)頁(yè)面不需要服務(wù)器多少資源,甚至可以說(shuō)直接從內(nèi)存中讀出來(lái)發(fā)給你就可以了,但是論壇之類的動(dòng)態(tài)網(wǎng)站就不一樣了,我看一個(gè)帖子,系統(tǒng)需要到數(shù)據(jù)庫(kù)中判斷我是否有讀帖子的權(quán)限,如果有,就讀出帖子里面的內(nèi)容,顯示出來(lái)——這里至少訪問(wèn)了2次數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)的體積有200MB大小,系統(tǒng)很可能就要在這200MB大小的數(shù)據(jù)空間搜索一遍,這需要多少的CPU資源和時(shí)間?如果我是查找一個(gè)關(guān)鍵字,那么時(shí)間更加可觀,因?yàn)榍懊娴乃阉骺梢韵薅ㄔ谝粋€(gè)很小的范圍內(nèi),比如用戶權(quán)限只查用戶表,帖子內(nèi)容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會(huì)對(duì)所有的數(shù)據(jù)進(jìn)行一次判斷,消耗的時(shí)間是相當(dāng)?shù)拇蟆?/p>
CC攻擊就是充分利用了這個(gè)特點(diǎn),模擬多個(gè)用戶(多少線程就是多少用戶)不停的進(jìn)行訪問(wèn)(訪問(wèn)那些需要大量數(shù)據(jù)操作,就是需要大量CPU時(shí)間的頁(yè)面,比如asp/php/jsp/cgi)。很多朋友問(wèn)到,為什么要使用代理呢?因?yàn)榇砜梢杂行У仉[藏自己的身份,也可以繞開所有的防火墻,因?yàn)榛旧纤械姆阑饓Χ紩?huì)檢測(cè)并發(fā)的TCP/IP連接數(shù)目,超過(guò)一定數(shù)目一定頻率就會(huì)被認(rèn)為是Connection-Flood。當(dāng)然也可以使用肉雞發(fā)動(dòng)CC攻擊。肉雞的CC攻擊效果更可觀。致使服務(wù)器CPU%100,甚至死機(jī)的現(xiàn)象。
使用代理攻擊還能很好的保持連接,這里發(fā)送了數(shù)據(jù),代理轉(zhuǎn)發(fā)給對(duì)方服務(wù)器,就可以馬上斷開,代理還會(huì)繼續(xù)保持著和對(duì)方連接(我知道的記錄是有人利用2000個(gè)代理產(chǎn)生了35萬(wàn)并發(fā)連接)。
當(dāng)然,CC也可以利用這里方法對(duì)FTP、游戲端口、聊天房間等進(jìn)行攻擊,也可以實(shí)現(xiàn)TCP-FLOOD,這些都是經(jīng)過(guò)測(cè)試有效的。
防御CC攻擊可以通過(guò)多種方法,禁止網(wǎng)站代理訪問(wèn),盡量將網(wǎng)站做成靜態(tài)頁(yè)面,限制連接數(shù)量,修改最大超時(shí)時(shí)間等。
CC攻擊有一定的隱蔽性,那如何確定服務(wù)器正在遭受或者曾經(jīng)遭受CC攻擊呢?可以通過(guò)以下三個(gè)方法來(lái)確定。
命令行法
一般遭受CC攻擊時(shí),Web服務(wù)器會(huì)出現(xiàn)80端口對(duì)外關(guān)閉的現(xiàn)象, 因?yàn)檫@個(gè)端口已經(jīng)被大量的垃圾數(shù)據(jù)堵塞了正常的連接被中止了??梢酝ㄟ^(guò)在命令行下輸入命令netstat -an來(lái)查看, “SYN_RECEIVED”是TCP連接狀態(tài)標(biāo)志,意思是“正在處于連接的初始同步狀態(tài) ”,表明無(wú)法建立握手應(yīng)答處于等待狀態(tài)。這就是攻擊的特征,一般情況下這樣的記錄一般都會(huì)有很多條,表示來(lái)自不同的代理IP的攻擊。
批處理法
上述方法需要手工輸入命令且如果Web服務(wù)器IP連接太多看起來(lái)比較費(fèi)勁,可以建立一個(gè)批處理文件,通過(guò)該腳本代碼確定是否存在CC攻擊。打開記事本鍵入如下代碼保存為CC.bat:
@echo off
time /t >>log.log
netstat -n -p tcp |find ":80">>Log.log
notepad log.log
exit
上面的腳本的含義是篩選出當(dāng)前所有的到80端口的連接。當(dāng)感覺(jué)服務(wù)器異常是就可以雙擊運(yùn)行該批處理文件,然后在打開的log.log文件中查看所有的連接。如果同一個(gè)IP有比較多的到服務(wù)器的連接,那就基本可以確定該IP正在對(duì)服務(wù)器進(jìn)行CC攻擊
查看系統(tǒng)日志
Web日志一般在C:windowssystem32LogFilesHTTPERR目錄下,該目錄下用類似httperr1.log的日志文件,這個(gè)文件就是記錄Web訪問(wèn)錯(cuò)誤的記錄。管理員可以依據(jù)日志時(shí)間屬性選擇相應(yīng)的日志打開進(jìn)行分析是否Web被CC攻擊了。
默認(rèn)情況下,Web日志記錄的項(xiàng)并不是很多,可以通過(guò)ⅡS進(jìn)行設(shè)置,讓W(xué)eb日志記錄更多的項(xiàng)以便進(jìn)行安全分析。其操作步驟是:“開始→管理工具”打開“Internet信息服務(wù)器”,展開左側(cè)的項(xiàng)定位到到相應(yīng)的Web站點(diǎn),然后右鍵點(diǎn)擊選擇“屬性”打開站點(diǎn)屬性窗口,在“網(wǎng)站”選項(xiàng)卡下點(diǎn)擊“屬性”按鈕,在“日志記錄屬性”窗口的“高級(jí)”選項(xiàng)卡下可以勾選相應(yīng)的“擴(kuò)展屬性”,以便讓W(xué)eb日志進(jìn)行記錄。比如其中的“發(fā)送的字節(jié)數(shù)”、“接收的字節(jié)數(shù)”、“所用時(shí)間”這三項(xiàng)默認(rèn)是沒(méi)有選中的,但在記錄判斷CC攻擊中是非常有用的,可以勾選。另外,如果你對(duì)安全的要求比較高,可以在“常規(guī)”選項(xiàng)卡下對(duì)“新日志計(jì)劃”進(jìn)行設(shè)置,讓其“每小時(shí)”或者“每一天”進(jìn)行記錄。為了便于日后進(jìn)行分析時(shí)好確定時(shí)間可以勾選“文件命名和創(chuàng)建使用當(dāng)?shù)貢r(shí)間”。
取消域名綁定
一般cc攻擊都是針對(duì)網(wǎng)站的域名進(jìn)行攻擊,比如網(wǎng)站域名是“xxx”,那么攻擊者就在攻擊工具中設(shè)定攻擊對(duì)象為該域名然后實(shí)施攻擊。
對(duì)于這樣的攻擊措施是在ⅡS上取消這個(gè)域名的綁定,讓CC攻擊失去目標(biāo)。具體操作步驟是:打開“ⅡS管理器”定位到具體站點(diǎn)右鍵“屬性”打開該站點(diǎn)的屬性面板,點(diǎn)擊IP地址右側(cè)的“高級(jí)”按鈕,選擇該域名項(xiàng)進(jìn)行編輯,將“主機(jī)頭值”刪除或者改為其它的值(域名)。
實(shí)例模擬測(cè)試,取消域名綁定后Web服務(wù)器的CPU馬上恢復(fù)正常狀態(tài),通過(guò)IP進(jìn)行訪問(wèn)連接一切正常。但是不足之處也很明顯,取消或者更改域名對(duì)于別人的訪問(wèn)帶來(lái)了不便,另外,對(duì)于針對(duì)IP的CC攻擊它是無(wú)效的,就算更換域名攻擊者發(fā)現(xiàn)之后,他也會(huì)對(duì)新域名實(shí)施攻擊。
更改Web端口
一般情況下Web服務(wù)器通過(guò)80端口對(duì)外提供服務(wù),因此攻擊者實(shí)施攻擊就以默認(rèn)的80端口進(jìn)行攻擊,所以,我們可以修改Web端口達(dá)到防CC攻擊的目的。運(yùn)行ⅡS管理器,定位到相應(yīng)站點(diǎn),打開站點(diǎn)“屬性”面板,在“網(wǎng)站標(biāo)識(shí)”下有個(gè)TCP端口默認(rèn)為80,我們修改為其他的端口就可以了。
ⅡS屏蔽IP
我們通過(guò)命令或在查看日志發(fā)現(xiàn)了CC攻擊的源IP,就可以在ⅡS中設(shè)置屏蔽該IP對(duì)Web站點(diǎn)的訪問(wèn),從而達(dá)到防范ⅡS攻擊的目的。在相應(yīng)站點(diǎn)的“屬性”面板中,點(diǎn)擊“目錄安全性”選項(xiàng)卡,點(diǎn)擊“IP地址和域名現(xiàn)在”下的“編輯”按鈕打開設(shè)置對(duì)話框。在此窗口中我們可以設(shè)置“授權(quán)訪問(wèn)”也就是“白名單”,也可以設(shè)置“拒絕訪問(wèn)”即“黑名單”。比如我們可以將攻擊者的IP添加到“拒絕訪問(wèn)”列表中,就屏蔽了該IP對(duì)于Web的訪問(wèn)。
IPSec封鎖
IPSec是優(yōu)秀的系統(tǒng)防火墻,在排除其他還有別的類型的DDOS攻擊時(shí),針對(duì)CC攻擊可以用設(shè)置IP策略來(lái)對(duì)付攻擊。以219.128.*.43這個(gè)IP為例子,筆者實(shí)際操作對(duì)該IP的訪問(wèn)封鎖。
第一步:“開始→管理工具”,打開“本地安全設(shè)置”,右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“創(chuàng)建IP安全策略”,然后點(diǎn)擊“下一步”,輸入策略“名稱”和“描述”。然后默認(rèn)一路“下一步”創(chuàng)建了一個(gè)名為“封CC攻擊”的IPSec策略。
第二步:右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“管理IP篩選器表和篩選器操作”,在打開的窗口中點(diǎn)“添加”,在“IP 篩選器列表”窗口添人同第一步的名稱和描述信息。取消“使用添加向?qū)?rdquo;的勾選,然后點(diǎn)擊“添加”。在“IP 篩選器 屬性”窗口的“地址”選項(xiàng)下設(shè)置“源地址”為“192.168.1.6”,目標(biāo)地址為“我的IP地址”,取消對(duì)“鏡像”的勾選;點(diǎn)擊“協(xié)議”選項(xiàng)卡,設(shè)置“協(xié)議類型”為“TCP”,設(shè)置“協(xié)議端口”為“從任意端口”到“此端口80”最后確定退出。
第三步:在“新規(guī)則 屬性”窗口中點(diǎn)選剛才創(chuàng)建的“封CC攻擊”規(guī)則,點(diǎn)擊“篩選器操作”選項(xiàng)卡下的“添加”,點(diǎn)選“安全措施”下的“阻止”,在“常規(guī)”選項(xiàng)卡下為該篩選器命名為“阻止CC攻擊”然后確定退出。
第四步:點(diǎn)選剛才創(chuàng)建的“阻止CC攻擊”篩選器,一路“確定”退出IP策略編輯器,可以看到在組策略窗口的中創(chuàng)建成功一個(gè)名為“封CC攻擊”的策略,然后右鍵點(diǎn)擊該策略選擇“指派”。這樣就實(shí)現(xiàn)了對(duì)該IP的封鎖。
防火墻
除了利用上述方法外,還可以通過(guò)第三方的防火墻進(jìn)行防范,打開防護(hù)墻防火墻可以了,筆者以天鷹ddos防火墻為例進(jìn)行演示。安裝好天鷹ddos防火墻即可開啟防護(hù),傻瓜式配置界面,默認(rèn)參數(shù)即可防護(hù)網(wǎng)站,誤封較少,智能識(shí)別蜘蛛。