天天看點

CC攻擊與Web應用防火牆防護

攻擊者借助代理伺服器生成指向受害主機的合法請求,實作DDOS和僞裝,稱為:CC(ChallengeCollapsar)。

CC主要是用來攻擊頁面的。大家都有這樣的經曆,就是在通路論壇時,如果這個論壇比較大,通路的人比較多,打開頁面的速度會比較慢,通路的人越多,論壇的頁面越多,資料庫壓力就越大,被通路的頻率也越高,占用的系統資源也就相當可觀。

一個靜态頁面不需要占用伺服器多少資源,甚至可以說直接從記憶體中讀出來發給你就可以了,但是論壇就不一樣了,我看一個文章,系統需要到資料庫中判斷我是否有讀文章的權限,如果有,就讀出文章裡面的内容,顯示出來——這裡至少通路了2次資料庫,如果資料庫的資料容量有200MB大小,系統很可能就要在這200MB大小的資料空間搜尋一遍,這需要多少的CPU資源和時間?如果我要查找一個關鍵字,那麼時間更加可觀,因為前面的搜尋可以限定在一個很小的範圍内,比如使用者權限隻查使用者表,文章内容隻查文章表,而且查到就可以馬上停止查詢,而搜尋肯定會對所有的資料進行一次判斷,消耗的時間是相當的大。

CC就是充分利用了這個特點,模拟多個使用者(多少線程就是多少使用者)不停的進行通路(通路那些需要大量資料操作,需要大量CPU時間的頁面)。這一點用一個一般的性能測試軟體就可以做到大量模拟使用者并發。

CC攻擊有一定的隐蔽性,那如何确定伺服器正在遭受或者曾經遭受CC攻擊呢?可以通過以下兩個方法來确定。

一般遭受CC攻擊時,Web伺服器會出現80端口對外關閉的現象, 因為這個端口已經被大量的垃圾資料堵塞了正常的連接配接被中止了。可以通過在指令行下輸入指令netstat -an來檢視, “SYN_RECEIVED”是TCP連接配接狀态标志,意思是“正在處于連接配接的初始同步狀态 ”,表明無法建立握手應答處于等待狀态。這就是攻擊的特征,一般情況下這樣的記錄一般都會有很多條,表示來自不同的代理IP的攻擊。

此述方法需要手工輸入指令且如果Web伺服器IP連接配接太多看起來比較費勁,可以建立一個批處理檔案,通過該腳本代碼确定是否存在CC攻擊。打開記事本鍵入如下代碼儲存為CC.bat:

上面的腳本的含義是篩選出目前所有的到80端口的連接配接。當感覺伺服器異常時就可以輕按兩下運作該批處理檔案,然後在打開的log.log檔案中檢視所有的連接配接。如果同一個IP有比較多的到伺服器的連接配接,那就基本可以确定該IP正在對伺服器進行CC攻擊。

Web應用防火牆的架構圖:

CC攻擊與Web應用防火牆防護

低誤殺的防護算法

不再是對通路頻率過快的IP直接粗暴封禁,而是綜合URL請求、響應碼等分布特征判斷異常行為

惡意特征攻擊100%攔截

針對請求中的常見頭部字段,如IP、URL、User-Agent、Referer、參數中出現的惡意特征配置通路控制

專屬業務的定制規則

企業版可設定針對某具體URL業務的正常通路頻率規則

強大的威脅情報

可定制化提供對海量惡意IP黑名單、惡意爬蟲庫的封禁能力

可參照以下步驟,來配置CC安全防護模式:

登入到阿裡雲雲盾Web應用防火牆控制台,并前往 網站配置。

單擊目标域名操作列下的 防護配置。

在 CC安全防護 下,開啟防護并選擇相應防護模式。

CC攻擊與Web應用防火牆防護

模式選擇建議:

預設使用 正常 模式。此模式誤殺較少,隻針對特别異常的請求進行攔截。

當發現有正常模式無法攔截的CC攻擊時,您可以選擇 攻擊緊急 模式。此模式攔截CC攻擊效果較強,但可能會造成較多誤殺。

如果發現 攻擊緊急 模式仍然漏過較多攻擊,建議您檢查流量來源是否為WAF回源IP。如果發現有攻擊直接攻擊源站,您可以設定暫時隻允許WAF回源IP通路伺服器。

如果您希望有更好的防護效果,同時有更低的誤殺。您可以選擇Web應用防火牆企業版和旗艦版,自定義或讓安全專家為您定制針對性的防護算法。