2016-12-21
CC攻擊原理
CC主要是用來(lái)攻擊頁(yè)面的.大家都有這樣的經(jīng)歷,就是在訪(fǎng)問(wèn)論壇時(shí),如果這個(gè)論壇比較大,訪(fǎng)問(wèn)的人比較多,打開(kāi)頁(yè)面的速度會(huì)比較慢,一般來(lái)說(shuō),訪(fǎng)問(wèn)的人越多,論壇的頁(yè)面越多,數(shù)據(jù)庫(kù)就越大,被訪(fǎng)問(wèn)的頻率也越高,占用的系統(tǒng)資源也就相當(dāng)可觀,現(xiàn)在知道為什么很多空間服務(wù)商都說(shuō)大家不要上傳論壇,聊天室等東西了吧.
一個(gè)靜態(tài)頁(yè)面不需要服務(wù)器多少資源,甚至可以說(shuō)直接從內(nèi)存中讀出來(lái)發(fā)給你就可以了,但是論壇就不一樣了,我看一個(gè)帖子,系統(tǒng)需要到數(shù)據(jù)庫(kù)中判斷我是否有讀讀帖子的權(quán)限,如果有,就讀出帖子里面的內(nèi)容,顯示出來(lái)――這里至少訪(fǎng)問(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),比如用戶(hù)權(quán)限只查用戶(hù)表,帖子內(nèi)容只查帖子表,而且查到就可以馬上停止查詢(xún),而搜索肯定會(huì)對(duì)所有的數(shù)據(jù)進(jìn)行一次判斷,消耗的時(shí)間是相當(dāng)?shù)拇?
CC就是充分利用了這個(gè)特點(diǎn),模擬多個(gè)用戶(hù)(多少線(xiàn)程就是多少用戶(hù))不停的進(jìn)行訪(fǎng)問(wèn)(訪(fǎng)問(wèn)那些需要大量數(shù)據(jù)操作,就是需要大量CPU時(shí)間的頁(yè)面).
攻擊現(xiàn)象:
服務(wù)器的流量瞬間可達(dá)到幾十M以上,網(wǎng)站打不開(kāi)。重啟iis會(huì)發(fā)現(xiàn)流量馬上就降下來(lái)。查看IIS日志會(huì)發(fā)現(xiàn)很多不同的IP都反復(fù)訪(fǎng)問(wèn)一個(gè)相同的文件。查看C:WINDOWSsystem32LogFilesHTTPERR 會(huì)發(fā)現(xiàn)很多出錯(cuò)的IIS日志,如下:
2007-08-22 06:05:28 61.140.127.206 61905 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 221.8.137.99 3916 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
503 30 ConnLimit pool21
2007-08-22 06:05:28 220.187.143.183 4059 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 218.18.42.231 1791 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 125.109.129.32 3030 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 58.216.2.232 1224 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
503 30 ConnLimit pool21
...
可以看出很多不同的IP都在訪(fǎng)問(wèn)list.asp這個(gè)文件。以上現(xiàn)象就是CC攻擊的特征。根據(jù)發(fā)動(dòng)CC攻擊所使用的肉機(jī)數(shù)量,小的攻擊可以導(dǎo)致網(wǎng)站很慢或者不穩(wěn)定,大的攻擊可以讓網(wǎng)站一直都無(wú)法打開(kāi)。
因這類(lèi)攻擊,是模擬正常用戶(hù)不斷請(qǐng)求一個(gè)網(wǎng)頁(yè)。所以一般的防火墻很難防御。
下面新圖聞大連網(wǎng)絡(luò)公司根據(jù)實(shí)際工作經(jīng)驗(yàn),講一下不用防火墻 如何自動(dòng)對(duì)付CC攻擊問(wèn)題。
因?yàn)?STRONG>CC攻擊都是使用的肉機(jī)或代理來(lái)訪(fǎng)問(wèn)我們的服務(wù)器的,它跟synflood攻擊不一樣。synfoold一直是不斷變化的虛假I(mǎi)P,而CC攻擊的IP都是真實(shí)的IP而基本上不變化的,只要我們用安全策略把這些IP全部封掉就可以了。
看過(guò)有網(wǎng)友介紹的方法,不過(guò)是手工一條一條地封,而攻擊IP一般都是數(shù)千個(gè)不同的IP。用手工封IP的辦法太麻煩。下面新圖聞網(wǎng)絡(luò)公司告訴大家用程序來(lái)實(shí)現(xiàn)自動(dòng)封這些IP!
程序主要是讀取這個(gè)網(wǎng)站的iis日志,分析出其中的IP地址,用安全策略自動(dòng)封閉。VBS代碼如下:
’代碼開(kāi)始
Set fileobj=CreateObject("Scripting.FileSystemObject")
logfilepath="E:w3logW3SVC237ex070512old.log" ’注意指定受攻擊網(wǎng)站的日志路徑。
’如果是虛擬主機(jī),要查是哪個(gè)網(wǎng)站受攻擊,可以查看:C:WINDOWSsystem32LogFilesHTTPERR ,
根據(jù)錯(cuò)誤日志很容易分析出來(lái)。
writelog "netsh ipsec static add policy name=XBLUE"
writelog "netsh ipsec static add filterlist name=denyip"
overip=""
f_name=logfilepath
’指定日志文件
’程序功能:把logfiles中的IP提取成ipsec需要的過(guò)濾格式,導(dǎo)入ipsec中過(guò)濾。適合某個(gè)網(wǎng)站受大量CC攻擊的情況。
set fileobj88=CreateObject("Scripting.FileSystemObject")
Set MYFILE=fileobj88.OpenTextFile(f_name,1,false)
contentover=MYFILE.ReadAll()
contentip=lcase(contentover)
MYFILE.close
set fileobj88=nothing
on error resume next
myline=split(contentip,chr(13))
for i=0 to ubound(myline)-1
myline2=split(myline(i)," ")
newip=myline2(6)
’指定分離的標(biāo)識(shí)字符串!
if instr(overip,newip)=0 then ’去除重復(fù)的IP。
overip=overip&newip
dsafasf=split(newip,".")
if ubound(dsafasf)=3 then
writelog "netsh ipsec static add filter filterlist=denyip srcaddr="&newip&" dstaddr=Me
dstport=80 protocol=TCP"
end if
else
wscript.echo newip &" is exits!"
end if
next
writelog "netsh ipsec static add filteraction name=denyact action=block"
writelog "netsh ipsec static add rule name=kill3389 policy=XBLUE filterlist=denyip
filteraction=denyact"
writelog "netsh ipsec static set policy name=XBLUE assign=y"
Sub writelog(errmes) ’導(dǎo)出IPsec的策略文件為一個(gè)bat文件。
ipfilename="denyerrorip.bat"
Set logfile=fileobj.opentextfile(ipfilename,8,true)
logfile.writeline errmes
logfile.close
Set logfile=nothing
End Sub
’代碼結(jié)束
把上述代碼存為一個(gè).vbs文件,設(shè)置好其中日志的路徑。雙擊運(yùn)行即可,運(yùn)行完畢后生成一個(gè)denyerrorip.bat文件,這個(gè)是ipsec所需要的策略文件,直接雙擊運(yùn)行即可。 運(yùn)行完畢即可解決CC攻擊問(wèn)題。