cc攻擊原理
CC(ChallengeCollapsar,挑戰黑洞)攻擊是DDoS攻擊的一種類型,使用代理服務器向受害服務器發送大量貌似合法的請求。CC根據其工具命名,攻擊者使用代理機制,利用眾多廣泛可用的免費代理服務器發動DDoS攻擊。許多免費代理服務器支持匿名模式,這使追蹤變得非常困難。
CC攻擊的原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來攻擊頁面的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候,打開網頁就慢了,CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數據操作(就是需要大量CPU時間)的頁面,造成服務器資源的浪費,CPU長時間處于100%,永遠都有處理不完的連接直至就網絡擁塞,正常的訪問被中止。
防CC攻擊
CC攻擊可以歸為DDoS攻擊的一種。他們之間的原理都是一樣的,即發送大量的請求數據來導致服務器拒絕服務,是一種連接攻擊。CC攻擊又可分為代理CC攻擊,和肉雞CC攻擊。代理CC攻擊是黑客借助代理服務器生成指向受害主機的合法網頁請求,實現DDoS,和偽裝就叫:cc(Challenge Collapsar)。而肉雞CC攻擊是黑客使用CC攻擊軟件,控制大量肉雞,發動攻擊,相比來后者比前者更難防御。因為肉雞可以模擬正常用戶訪問網站的請求。偽造成合法數據包。
一個靜態頁面不需要服務器多少資源,甚至可以說直接從內存中讀出來發給你就可以了,但是論壇之類的動態網站就不一樣了,我看一個帖子,系統需要到數據庫中判斷我是否有讀帖子的權限,如果有,就讀出帖子里面的內容,顯示出來——這里至少訪問了2次數據庫,如果數據庫的體積有200MB大小,系統很可能就要在這200MB大小的數據空間搜索一遍,這需要多少的CPU資源和時間?如果我是查找一個關鍵字,那么時間更加可觀,因為前面的搜索可以限定在一個很小的范圍內,比如用戶權限只查用戶表,帖子內容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會對所有的數據進行一次判斷,消耗的時間是相當的大。
CC攻擊就是充分利用了這個特點,模擬多個用戶(多少線程就是多少用戶)不停的進行訪問(訪問那些需要大量數據操作,就是需要大量CPU時間的頁面,比如asp/php/jsp/cgi)。很多朋友問到,為什么要使用代理呢?因為代理可以有效地隱藏自己的身份,也可以繞開所有的防火墻,因為基本上所有的防火墻都會檢測并發的TCP/IP連接數目,超過一定數目一定頻率就會被認為是Connection-Flood。當然也可以使用肉雞發動CC攻擊。肉雞的CC攻擊效果更可觀。致使服務器CPU100%,甚至死機的現象。
使用代理攻擊還能很好的保持連接,這里發送了數據,代理轉發給對方服務器,就可以馬上斷開,代理還會繼續保持著和對方連接(我知道的記錄是有人利用2000個代理產生了35萬并發連接)。
當然,CC也可以利用這里方法對FTP、游戲端口、聊天房間等進行攻擊,也可以實現TCP-FLOOD,這些都是經過測試有效的。
cc攻擊癥狀
CC攻擊有一定的隱蔽性,那如何確定服務器正在遭受或者曾經遭受CC攻擊呢?可以通過以下三個方法來確定。
1、命令行法
一般遭受CC攻擊時,Web服務器會出現80端口對外關閉的現象, 因為這個端口已經被大量的垃圾數據堵塞了正常的連接被中止了。可以通過在命令行下輸入命令netstat -an來查看,?“SYN_RECEIVED”是TCP連接狀態標志,意思是“正在處于連接的初始同步狀態 ”,表明無法建立握手應答處于等待狀態。這就是攻擊的特征,一般情況下這樣的記錄一般都會有很多條,表示來自不同的代理IP的攻擊。
2、批處理法
上述方法需要手工輸入命令且如果Web服務器IP連接太多看起來比較費勁,可以建立一個批處理文件,通過該腳本代碼確定是否存在CC攻擊。
腳本篩選出當前所有的到80端口的連接。當感覺服務器異常時就可以雙擊運行該批處理文件,然后在打開的log.log文件中查看所有的連接。如果同一個IP有比較多的到服務器的連接,那就基本可以確定該IP正在對服務器進行CC攻擊。
3、查看系統日志
Web日志一般在C:\WINDOWS\system32\LogFiles\HTTPERR目錄下,該目錄下用類似httperr1.log的日志文件,這個文件就是記錄Web訪問錯誤的記錄。管理員可以依據日志時間屬性選擇相應的日志打開進行分析是否Web被CC攻擊了。
默認情況下,Web日志記錄的項并不是很多,可以通過ⅡS進行設置,讓Web日志記錄更多的項以便進行安全分析。其操作步驟是:“開始→管理工具”打開“Internet信息服務器”,展開左側的項定位到到相應的Web站點,然后右鍵點擊選擇“屬性”打開站點屬性窗口,在“網站”選項卡下點擊“屬性”按鈕,在“日志記錄屬性”窗口的“高級”選項卡下可以勾選相應的“擴展屬性”,以便讓Web日志進行記錄。比如其中的“發送的字節數”、“接收的字節數”、“所用時間”這三項默認是沒有選中的,但在記錄判斷CC攻擊中是非常有用的,可以勾選。另外,如果你對安全的要求比較高,可以在“常規”選項卡下對“新日志計劃”進行設置,讓其“每小時”或者“每一天”進行記錄。為了便于日后進行分析時好確定時間可以勾選“文件命名和創建使用當地時間”。
cc防御方法
對于CC攻擊.其防御必須采用多種方法,而這些方法本質上也是在提高服務器的并發能力。
1、服務器垂直擴展和水平擴容
資金允許的情況下,這是最簡單的一種方法,本質上講,這個方法并不是針對CC攻擊的,而是提升服務本身處理并發的能力,但確實提升了對CC攻擊的承載能力。垂直擴展:是指增加每臺服務器的硬件能力,如升級CPU、增加內存、升級SSD固態硬盤等。水平擴容:是指通過增加提供服務的服務器來提升承載力。上述擴展和擴容可以在服務的各個層級進行,包括:應用服務器、數據庫服務器和緩存服務器等等。
2、數據緩存(內存級別,不要用文件)
對于服務中具備高度共性,多用戶可重用,或單用戶多次可重用的數據,一旦從數據庫中檢索出,或通過計算得出后,最好將其放在緩存中,后續請求均可直接從緩存中取得數據,減輕數據庫的檢索壓力和應用服務器的計算壓力,并且能夠快速返回結果并釋放進程,從而也能緩解服務器的內存壓力。要注意的是,緩存不要使用文件形式,可以使用redis、mem—cached等基于內存的nosql緩存服務,并且與應用服務器分離,單獨部署在局域網內。局域網內的網絡IO肯定比起磁盤IO要高。為了不使局域網成為瓶頸,千兆網絡也是有必要的。
3、頁面靜態化
與數據緩存一樣,頁面數據本質上也屬于數據,常見的手段是生成靜態化的html頁面文件,利用客戶端瀏覽器的緩存功能或者服務端的緩存服務,以及CDN節點的緩沖服務,均可以降低服務器端的數據檢索和計算壓力,快速響應結果并釋放連接進程。
4、用戶級別的調用頻率限制
不管服務是有登陸態還是沒登陸態,基于session等方式都可以為客戶端分配唯一的識別ID(后稱作SID),服務端可以將SID存到緩存中。當客戶端請求服務時,如果沒有帶SID(cookie中或請求參數中等),則由服務端快速分配一個并返回。可以的話,本次請求可以不返回數據,或者將分配SID獨立出業務服務。當客戶端請求時帶了合法SID(即SID能在服務端緩存中匹配到),便可以依據SID對客戶端進行頻率限制。而對于SID非法的請求,則直接拒絕服務。相比根據IP進行的頻率限制,根據SID的頻率限制更加精準可控,可大程度地避免誤殺情況。
5、IP限制
最后,IP限制依然可以結合上述規則一起使用,但是可以將其前置至)JCb層的防火墻或負載均衡器上去做,并且可以調大限制的閾值,防止惡意訪問穿透到應用服務器上,造成應用服務器壓力。
當前標題:什么是CC攻擊,如何防范?
新聞來源:http://m.newbst.com/news/274507.html
成都網站建設公司_創新互聯,為您提供響應式網站、品牌網站建設、外貿網站建設、網站營銷、用戶體驗、App設計
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯