淺析如何防御CC攻擊
其實(shí)防御CC攻擊如同當(dāng)初防御DDOS攻擊本質(zhì)上是一樣的,這些攻擊都是以消耗服務(wù)器資源為目的的。DDOS攻擊的原理是針對TCP/IP協(xié)議的一項(xiàng)缺陷,當(dāng)時(shí)設(shè)計(jì)者以為互聯(lián)網(wǎng)使用者都是互聯(lián)網(wǎng)的良民,不過現(xiàn)在的互聯(lián)網(wǎng)環(huán)境可是要復(fù)雜的多。
兩臺機(jī)器通信要進(jìn)行一個(gè)所謂的三次握手,首先是客戶機(jī)發(fā)出一個(gè)請求 (SYN) ,服務(wù)器收到該請求后,填寫會話信息表 (TCB,保存在內(nèi)存中),并且向客戶機(jī)反饋一個(gè)回應(yīng)包 (SYN-ACK) ,此時(shí)連接處于 TIME_WAIT 狀態(tài),如果最終沒有收到客戶機(jī)的 ACK 信息包,會嘗試隔一段時(shí)間再發(fā)送一次回應(yīng)包 SYN-ACK,這樣經(jīng)過多次重試后,客戶機(jī)還沒有回應(yīng)的話,服務(wù)器才會關(guān)閉會話,并從 TCB 中刪除掉該會話。這個(gè)等待過程大約為 30 秒。當(dāng)攻擊者同時(shí)發(fā)起十萬計(jì)的請求時(shí) (SYN) 到服務(wù)器開放的端口,并且本身拒絕發(fā)送 SYN-ACK 回應(yīng)時(shí),服務(wù)器的的 TCB 將會很快超過負(fù)荷,并且攻擊者可以偽造包中的源 IP 地址,這樣攻擊者還不會被服務(wù)器返回的包堵住。可以看出這是 TCP/IP 協(xié)議中一個(gè)相當(dāng)嚴(yán)重的問題。通過防火墻策略審核過濾數(shù)據(jù)包,可以從一定程度上防止 DDOS 攻擊。
目前看來,CC攻擊主要針對 WEB 應(yīng)用程序比較消耗資源的地方進(jìn)行瘋狂請求,比如,論壇中的搜索功能,如果不加以限制,任由人搜索,普通配置的服務(wù)器在幾百個(gè)并發(fā)請求下,MYSQL 服務(wù)就掛掉了。
想要防御CC攻擊,就要知道它的的種類有三種,直接攻擊,代理攻擊,僵尸網(wǎng)絡(luò)攻擊。
直接攻擊主要針對有重要缺陷的 WEB 應(yīng)用程序,一般說來是程序?qū)懙挠袉栴}的時(shí)候才會出現(xiàn)這種情況,比較少見。僵尸網(wǎng)絡(luò)攻擊有點(diǎn)類似于 DDOS 攻擊了,從 WEB 應(yīng)用程序?qū)用嫔弦呀?jīng)無法防御,所以這兩種情況我們不進(jìn)行深入的探討。
這里要主要討論第二種,代理攻擊,CC 攻擊者一般會操作一批代理服務(wù)器,比方說 100 個(gè)代理,然后每個(gè)代理同時(shí)發(fā)出 10 個(gè)請求,這樣 WEB 服務(wù)器同時(shí)收到 1000 個(gè)并發(fā)請求的,并且在發(fā)出請求后,立刻斷掉與代理的連接,避免代理返回的數(shù)據(jù)將本身的帶寬堵死,而不能發(fā)動再次請求,這時(shí) WEB 服務(wù)器會將響應(yīng)這些請求的進(jìn)程進(jìn)行隊(duì)列,數(shù)據(jù)庫服務(wù)器也同樣如此,這樣一來,正常請求將會被排在很后被處理,就象本來你去食堂吃飯時(shí),一般只有不到十個(gè)人在排隊(duì),今天前面卻插了一千個(gè)人,那么輪到你的機(jī)會就很小很小了,這時(shí)就出現(xiàn)頁面打開極其緩慢或者白屏。
防御 CC 攻擊
Discuz!5.5 在以往抗 CC 的基礎(chǔ)上又加了兩種方法,可以根據(jù)實(shí)際遭受攻擊的情況,通過配置組合出適合的抵抗方法。限于篇幅,不詳細(xì)闡述對抗原理,現(xiàn)將配置方法做下簡要說明。
配置文件 config.inc.php
$attackevasive = 0; // 論壇防御級別,可防止大量的非正常請求造成的拒絕服務(wù)攻擊
// 防護(hù)大量正常請求造成的拒絕服務(wù)攻擊
// 0=關(guān)閉, 1=cookie 刷新限制, 2=限制代理訪問, 4=二次請求, 8=回答問題(第一次訪問時(shí)需要回答問題)
// 組合為: 1|2, 1|4, 2|8, 1|2|4...
正常情況下設(shè)置為 0,在遭到攻擊時(shí),分析其攻擊手法和規(guī)律,組合使用??梢試L試先設(shè)置為 2, 2|4, 1|2|4|, 1|2|4|8, 如果 1|2|4|8 還不行,我們認(rèn)為應(yīng)用程序?qū)用嫔弦呀?jīng)抵擋不住,可能主機(jī)遭受的攻擊來自于僵尸網(wǎng)絡(luò)的 DDOS 攻擊了,我們建議您從防火墻策略上入手。
【編輯推薦】