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