CC(Challenge Collapsar)攻擊是DDOS攻擊的一種,是指攻擊者借助代理服務器生成指向受害主機的合法請求,實現(xiàn)DDOS和偽裝。這種攻擊你見不到真實源IP,見不到特別大的異常流量,但會造成服務器無法進行正常連接。
CC攻擊與DDOS的區(qū)別
DDoS是針對IP的攻擊,而CC攻擊的是服務器資源。
CC攻擊的種類:
CC攻擊的種類有三種,直接攻擊、僵尸網(wǎng)絡攻擊、代理攻擊。
直接攻擊主要針對有重要缺陷的WEB應用程序,一般說來是程序?qū)懙挠袉栴}的時候才會出現(xiàn)這種情況,比較少見。
僵尸網(wǎng)絡攻擊有點類似于DDOS攻擊了,從WEB應用程序?qū)用嫔弦呀?jīng)無法防御。
代理攻擊是指CC攻擊者一般會操作一批代理服務器,比方說100個代理,然后每個代理同時發(fā)出10個請求,這樣WEB服務器同時收到1000個并發(fā)請求的,并且在發(fā)出請求后,立刻斷掉與代理的連接,避免代理返回的數(shù)據(jù)將本身的帶寬堵死,而不能發(fā)動再次請求,這時WEB服務器會將響應這些請求的進程進行隊列,數(shù)據(jù)庫服務器也同樣如此,這樣一來,正常請求將會被排在很后被處理,就像本來你去食堂吃飯時,一般只有不到十個人在排隊,今天前面卻插了一千個人,那么輪到你的機會就很小很小了,這時就出現(xiàn)頁面打開極其緩慢或者白屏。
CC攻擊的特點是什么?
模擬多個用戶不停的進行訪問,主要表現(xiàn)為以下兩種形式:
1、訪問有大量圖片或音視頻內(nèi)容的頁面。
這種是目前使用最普遍也是最簡單的攻擊方式。不需要去分析被攻擊網(wǎng)站的實際內(nèi)容,直接對某個頁面發(fā)起攻擊就能起作用。如果你的網(wǎng)頁其中一面有256Kbyte (包括所要打開的圖片等內(nèi)容),那么就需要1Mbit/s的帶寬2秒時間來打開。而客戶發(fā)送給服務器的請求包長最多就 1Kbyte,所以攻擊比例是256倍。
同時有100個客戶來點開這個頁面的話,就需要有100Mbit/s 的帶寬來支持?蛻舳寄茉2秒鐘內(nèi)打開這個網(wǎng)站。這100個客戶發(fā)起訪問所需的帶寬才100Kbyte X 8=0.8Mbit/s 。這樣看來1M不到的帶寬來攻擊網(wǎng)站,網(wǎng)站得準備有100M的帶寬來應付。
2、訪問那些需要大量數(shù)據(jù)操作,如搜索頁面,就是需要大量CPU時間的頁面。
這種就是占用完你的cpu,讓合法的請求埋沒大量的攻擊請求中。這是以前的高水平的黑客喜歡使用的方法。因為只需要很少的帶寬(小于1M)就可以讓你的100M甚至1G的帶寬的網(wǎng)站立即掛掉。
CC攻擊的原理是什么?
CC攻擊的原理就是攻擊者控制某些主機不停地發(fā)大量數(shù)據(jù)包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來攻擊頁面的,每個人都有這樣的體驗:當一個網(wǎng)頁訪問的人數(shù)特別多的時候,打開網(wǎng)頁就慢了,CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數(shù)據(jù)操作(就是需要大量CPU時間)的頁面,造成服務器資源的浪費,CPU長時間處于100%,永遠都有處理不完的連接直至就網(wǎng)絡擁塞,正常的訪問被中止。
也可以把它理解為是王者榮耀中的扁鵲英雄,敵人都會把他叫做“毒奶”,因為只要受到他的攻擊,就會持續(xù)掉血,嚴重的會直接“耗死”。
CC攻擊防御
攻擊靠演技,防護當然是靠火眼精睛叻。
防御思路
HTTP/CC 攻擊 防御主要通過緩存的方式進行,盡量由設備的緩存直接返回結(jié)果來保護后端業(yè)務。當高級攻擊者穿透緩存時,清洗設備會截獲 HTTP 請求做特殊處理。因為CC攻擊通過工具軟件發(fā)起,而普通用戶通過瀏覽器訪問,這其中就會有某些區(qū)別。想辦法對這二者作出判斷,選擇性的屏蔽來自機器的流量即可。
初級
普通瀏覽器發(fā)起請求時,除了要訪問的地址以外,Http頭中還會帶有Referer,UserAgent等多項信息。遇到攻擊時可以通過日志查看訪問信息,看攻擊的流量是否有明顯特征,比如固定的Referer或UserAgent,如果能找到特征,就可以直接屏蔽掉了。
中級
如果攻擊者偽造了Referer和UserAgent等信息,那就需要從其他地方入手。攻擊軟件一般來說功能都比較簡單,只有固定的發(fā)包功能,而瀏覽器會完整的支持Http協(xié)議,我們可以利用這一點來進行防御。
首先為每個訪問者定義一個字符串,保存在Cookies中作為Token,必須要帶有正確的Token才可以訪問后端服務。當用戶第一次訪問時,會檢測到用戶的Cookies里面并沒有這個Token,則返回一個302重定向,目標地址為當前頁面,同時在返回的Http頭中加入set cookies字段,對Cookies進行設置,使用戶帶有這個Token。
客戶端如果是一個正常的瀏覽器,那么就會支持http頭中的set cookie和302重定向指令,將帶上正確的Token再次訪問頁面,這時候后臺檢測到正確的Token,就會放行,這之后用戶的Http請求都會帶有這個Token,所以并不會受到阻攔。
客戶端如果是CC軟件,那么一般不會支持這些指令,那么就會一直被攔在最外層,并不會對服務器內(nèi)部造成壓力。
高級
高級一點的,還可以返回一個網(wǎng)頁,在頁面中嵌入java script來設置Cookies并跳轉(zhuǎn),這樣被偽造請求的可能性更小
Token生成算法:Token需要滿足以下幾點要求
每個IP地址的Token不同
無法偽造
一致性,即對相同的客戶端,每次生成的Token相同
Token隨IP地址變化是為了防止通過一臺機器獲取Token之后,再通過代理服務區(qū)進行攻擊。一致性則是為了避免在服務器端需要存儲已經(jīng)生成的Token。
推薦使用以下算法生成Token,其中Key為服務器獨有的保密字符串,這個算法生成的Token可以滿足以上這些
無視CC攻擊的防護方法是什么?
首先用戶可以自己解決,比如提高主機處理性能,增加更多帶寬,修改或者關(guān)閉在log里出現(xiàn)大量相同訪問文件的頁面,但這種處理效果很一般,有時沒什么效果;其次就是求助IDC服務商,這種也是大部分用戶會選擇的方法,比如網(wǎng)盾高防IP轉(zhuǎn)發(fā)服務不需要重新部署環(huán)境,轉(zhuǎn)移數(shù)據(jù),具備4Tbps高抗D+流量清洗功能,無視DDoS和CC攻擊,隱藏源服務器IP,只需要快速做下轉(zhuǎn)發(fā)設置,將攻擊流量過濾清洗攔截,只讓正常流量訪問到源服務器,保證網(wǎng)站快速訪問或服務器穩(wěn)定可用。