典型DDOS攻擊——HTTP URI CC攻擊及防禦探討

CC攻擊是一種應用層的ddos攻擊,它主要針對web服務器進行攻擊。由於現在的網站頁面基本都是動態網頁,在用戶向服務器請求一個頁面時,服務器需要完成動態頁面的解析、數據庫的訪問等一系列工作,需要佔用一定的資源。如果攻擊者同時向某一頁面發起大量請求就很可能導致服務器癱瘓。一個好的ddos攻擊應該是在攻擊別人的同時儘量少地佔用自己的資源,如果攻擊者和被攻擊者消耗差不多的資源,這種攻擊就不是一個好的ddos攻擊,所以cc攻擊時攻擊者往往會使用代理服務器或者被控制的肉雞進行攻擊,而且發送頁面請求後會立即斷開連接,不會接收服務器返回的數據。從某種意義上說,這種攻擊和synflood攻擊很類似,發送連接請求後就斷開,攻擊者只需要很少的耗費,但是服務器由於不能區分是否是正常的請求,所以需要繼續耗費大量資源對請求進行處理。

典型DDOS攻擊——HTTP URI CC攻擊及防禦探討

防禦CC攻擊的方法較多,但很多方法效果不理想,例如連接數限制,由於攻擊者往往都借用代理服務器或者肉雞進行攻擊,地址比較分散,如果限制單一地址的連接數,根本無法防禦攻擊,如果限制總連接數,往往又會導致正常用戶無法訪問。還有的方法是限制代理服務器發起的請求,一般代理服務器HTTP頭中會帶有X_FORWARDED_FOR字段,但是也有代理服務器不帶有此字段的情況,而且也有正常用戶是通過代理服務器訪問的,這種限制就拒絕了合法用戶的訪問。

從前面對CC攻擊原理的介紹可以看到,其特點和synflood攻擊類似,現今對synflood攻擊進行防禦的主流手段就是syn cookie,既然如此,對於CC攻擊也可以採取類似手段。在用戶首次請求一個URL時,服務器不返回真正的URL請求,而是返回一個重定向頁面,由於攻擊者不接受返回信息,所以如果是攻擊者,服務器響應就到此為止,只佔用服務器很少資源,如果是正常用戶,當用戶接收到重定向頁面後瀏覽器會自動重新跳轉到真正請求的URL上去,再次向服務器請求真正的URL,服務器再對此請求進行處理,整個過程對用戶而言是透明的,保證了合法用戶的正常訪問。

服務器如何區分收到的訪問請求是第一次請求還是再次請求,這就需要對重定向頁面進行設計,比較有效的一種方式是在返回的重定向頁面中加入獨一無二的cookie,用戶第二次訪問時,請求時會帶上這個cookie,服務器再根據一定的計算確定訪問請求是否為合法請求。由於攻擊程序在攻擊時也可以帶cookie,所以服務器端的cookie標誌必須經常變化,防止假冒,而且由於正常HTTP訪問時也會存在cookie,所以還要考慮不影響正常cookie的情況,防CC攻擊的cookie標誌應該有特殊格式。

典型DDOS攻擊——HTTP URI CC攻擊及防禦探討

上面主要介紹了服務器端如何防禦CC攻擊,如果需要在防火牆或者其它安全設備上實現,需要安全設備如防火牆等作為一個代理與客戶端進行交互,確認客戶端訪問為正常訪問時才向服務器進行請求,整個過程大致如下:

客戶端 安全設備 服務器

請求URL ----------------------------->

重新請求URL+cookie--------------->

請求URL-------------------------------->

由於CC攻擊一般只針對動態頁面,如asp、php、jsp、cgi等,對靜態html頁面進行攻擊並不能讓攻擊者達到目的,反而容易暴露自己身份,所以安全設備只需要針對性地對URL進行保護,不需要檢查所有HTTP請求。

典型DDOS攻擊——HTTP URI CC攻擊及防禦探討


分享到:


相關文章: