瓦房店胖芽装修公司

您好,歡迎進(jìn)入甘果云建站平臺-網(wǎng)站建設(shè)-網(wǎng)站制作公司官網(wǎng)!
24小時咨詢熱線:15621881778
全國咨詢熱線:4006301685
新聞資訊NEWS

堅持以“幫助中小企業(yè)實(shí)現(xiàn)網(wǎng)絡(luò)營銷化”為宗旨

DDoS攻擊——CC攻擊防護(hù)詳解

發(fā)布時間:2023-08-25人氣:172

HTTP 中文名稱為超文本傳輸協(xié)議,常被用于 Web 服務(wù)請求和響應(yīng)數(shù)據(jù)的傳輸。常見的 HTTP 請求有 GET 請求和 POST 請求兩種。通常,GET 請求用于從 Web 服務(wù)器獲取數(shù)據(jù)和資源,例如請求頁面、獲取圖片和文檔等;

POST 請求用于向 Web 服務(wù)器提交數(shù)據(jù)和資源,例如發(fā)送用戶名/密碼、上傳文件等。在處理這些 HTTP 請求的過程中,Web 服務(wù)器通常需要解析請求、處理和執(zhí)行服務(wù)端腳本、驗證用戶權(quán)限并多次訪問數(shù)據(jù)庫,這會消耗大量的計算資源和 IO 訪問資源。


CC攻擊原理


HTTP Flood 俗稱CC攻擊(Challenge Collapsar)是DDOS(分布式拒絕服務(wù))的一種,前身名為Fatboy攻擊,也是一種常見的網(wǎng)站攻擊方法。是針對 Web 服務(wù)在第七層協(xié)議發(fā)起的攻擊。攻擊者相較其他三層和四層,并不需要控制大量的肉雞,取而代之的是通過端口掃描程序在互聯(lián)網(wǎng)上尋找匿名的 HTTP 代理或者 SOCKS 代理,攻擊者通過匿名代理對攻擊目標(biāo)發(fā)起HTTP 請求。匿名代理服務(wù)器在互聯(lián)網(wǎng)上廣泛存在。因此攻擊容易發(fā)起而且可以保持長期高強(qiáng)度的持續(xù)攻擊,同樣可以隱藏攻擊者來源避免被追查。


HTTP/CC 攻擊的特點(diǎn):

HTTP/CC 攻擊的 ip 都是真實(shí)的,分散的

HTTP/CC 攻擊的數(shù)據(jù)包都是正常的數(shù)據(jù)包

HTTP/CC 攻擊的請求都是有效請求,且無法拒絕

HTTP/CC 攻擊的是網(wǎng)頁,服務(wù)器可以連接,ping 也沒問題,但是網(wǎng)頁就是訪問不了

如果 IIS 一開,服務(wù)器很快就死,容易丟包。

那如何造成更大的殺傷呢。Web 服務(wù)與 DNS 服務(wù)類似,也存在緩存機(jī)制。如果攻擊者的大量請求命中了服務(wù)器緩存,那么這種攻擊的主要作用僅體現(xiàn)在消耗網(wǎng)絡(luò)帶寬資源上,對于計算和 IO 資源的消耗是非常有限的。因此,高效的 HTTP/CC 攻擊 應(yīng)不斷發(fā)出針對不同資源和頁面的 HTTP 請求,并盡可能請求無法被緩存的資源( 如關(guān)鍵詞搜索結(jié)果、用戶相關(guān)資料等 ),這樣才能更好的加重服務(wù)器的負(fù)擔(dān),達(dá)到理想的攻擊效果。當(dāng)然 HTTP/CC 攻擊 也會引起嚴(yán)重的連鎖反應(yīng),不僅僅是直接導(dǎo)致被攻擊的 Web 前端響應(yīng)緩慢,還間接攻擊到后端的 Java 等業(yè)務(wù)層邏輯以及更后端的數(shù)據(jù)庫服務(wù),增大它們的壓力,HTTP/CC 攻擊 產(chǎn)生的海量日志數(shù)據(jù)甚至?xí)θ罩敬鎯Ψ?wù)器都帶來影響。


如果 Web 服務(wù)器支持 HTTPS,那么進(jìn)行 HTTPS 洪水攻擊是更為有效的一種攻擊方式。原因有二:

其一,在進(jìn)行 HTTPS 通信時,Web 服務(wù)器需要消耗更多的資源用來認(rèn)證和加解密。

其二,目前一部分防護(hù)設(shè)備無法對 HTTPS 通信數(shù)據(jù)流進(jìn)行處理,會導(dǎo)致攻擊流量繞過防護(hù)設(shè)備,直接對 Web 服務(wù)器造成攻擊。

CC攻擊防御

攻擊靠演技,防護(hù)當(dāng)然是靠火眼精睛叻。

防御思路

HTTP/CC 攻擊 防御主要通過緩存的方式進(jìn)行,盡量由設(shè)備的緩存直接返回結(jié)果來保護(hù)后端業(yè)務(wù)。當(dāng)***攻擊者穿透緩存時,清洗設(shè)備會截獲 HTTP 請求做特殊處理。因為CC攻擊通過工具軟件發(fā)起,而普通用戶通過瀏覽器訪問,這其中就會有某些區(qū)別。想辦法對這二者作出判斷,選擇性的屏蔽來自機(jī)器的流量即可。

初級

普通瀏覽器發(fā)起請求時,除了要訪問的地址以外,Http頭中還會帶有Referer,UserAgent等多項信息。遇到攻擊時可以通過日志查看訪問信息,看攻擊的流量是否有明顯特征,比如固定的Referer或UserAgent,如果能找到特征,就可以直接屏蔽掉了。

中級

如果攻擊者偽造了Referer和UserAgent等信息,那就需要從其他地方入手。攻擊軟件一般來說功能都比較簡單,只有固定的發(fā)包功能,而瀏覽器會完整的支持Http協(xié)議,我們可以利用這一點(diǎn)來進(jìn)行防御。

首先為每個訪問者定義一個字符串,保存在Cookies中作為Token,必須要帶有正確的Token才可以訪問后端服務(wù)。當(dāng)用戶***次訪問時,會檢測到用戶的Cookies里面并沒有這個Token,則返回一個302重定向,目標(biāo)地址為當(dāng)前頁面,同時在返回的Http頭中加入set cookies字段,對Cookies進(jìn)行設(shè)置,使用戶帶有這個Token。

客戶端如果是一個正常的瀏覽器,那么就會支持http頭中的set cookie和302重定向指令,將帶上正確的Token再次訪問頁面,這時候后臺檢測到正確的Token,就會放行,這之后用戶的Http請求都會帶有這個Token,所以并不會受到阻攔。

客戶端如果是CC軟件,那么一般不會支持這些指令,那么就會一直被攔在最外層,并不會對服務(wù)器內(nèi)部造成壓力。

***

***一點(diǎn)的,還可以返回一個網(wǎng)頁,在頁面中嵌入JavaScript來設(shè)置Cookies并跳轉(zhuǎn),這樣被偽造請求的可能性更小

Token生成算法:Token需要滿足以下幾點(diǎn)要求

每個IP地址的Token不同

無法偽造

一致性,即對相同的客戶端,每次生成的Token相同

Token隨IP地址變化是為了防止通過一臺機(jī)器獲取Token之后,再通過代理服務(wù)區(qū)進(jìn)行攻擊。一致性則是為了避免在服務(wù)器端需要存儲已經(jīng)生成的Token。

推薦使用以下算法生成Token,其中Key為服務(wù)器獨(dú)有的保密字符串,這個算法生成的Token可以滿足以上這些要求:

Token = Hash( UserAgent + client_ip + key )

總結(jié):

早期的方法是對源 IP 的 HTTP 請求頻率設(shè)定閾值,高于既定閾值的 IP 地址加入黑名單。這種方法過于簡單,容易帶來誤殺,并且無法屏蔽來自代理服務(wù)器的攻擊,因此逐漸廢止,取而代之的是基于 JavaScript 跳轉(zhuǎn)的人機(jī)識別方案。

HTTP Flood 是由程序模擬 HTTP 請求,一般來說不會解析服務(wù)端返回數(shù)據(jù),更不會解析 JS之類代碼。因此當(dāng)清洗設(shè)備截獲? HTTP 請求時,返回一段特殊 JavaScript 代碼,正常用戶的瀏覽器會處理并正常跳轉(zhuǎn)不影響使用,而攻擊程序會攻擊到空處。 由于 HTTP/CC 攻擊 的偽裝方式千變?nèi)f化,很少有策略或者硬件防護(hù)能做到***清洗,所以,針對 HTTP/CC 攻擊,我們大多時候需要具備一定技術(shù)的網(wǎng)絡(luò)維護(hù)人員進(jìn)行見招拆招。

簡易CC攻擊防御方法

1. 利用Session做訪問計數(shù)器:

利用Session針對每個IP做頁面訪問計數(shù)器或文件下載計數(shù)器,防止用戶對某個頁面頻繁刷新導(dǎo)致數(shù)據(jù)庫頻繁讀取或頻繁下載某個文件而產(chǎn)生大額流量。(文件下載不要直接使用下載地址,才能在服務(wù)端代碼中做CC攻擊的過濾處理)

2. 把網(wǎng)站做成靜態(tài)頁面:

大量事實(shí)證明,把網(wǎng)站盡可能做成靜態(tài)頁面,不僅能大大提高抗攻擊能力,而且還給駭客入侵帶來不少麻煩,至少到現(xiàn)在為止關(guān)于HTML的溢出還沒出現(xiàn),看看吧!新浪、搜狐、網(wǎng)易等門戶網(wǎng)站主要都是靜態(tài)頁面,若你非需要動態(tài)腳本調(diào)用,那就把它弄到另外一臺單獨(dú)主機(jī)去,免的遭受攻擊時連累主服務(wù)器。

3. 增強(qiáng)操作系統(tǒng)的TCP/IP棧

Win2000和Win2003作為服務(wù)器操作系統(tǒng),本身就具備一定的抵抗DDOS攻擊的能力,只是默認(rèn)狀態(tài)下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包,若沒有開啟則僅能抵御數(shù)百個,具體怎么開啟,自己去看微軟的文章吧!《強(qiáng)化 TCP/IP 堆棧安全》。也許有的人會問,那我用的是Linux和FreeBSD怎么辦?很簡單,按照這篇文章去做吧!《SYN Cookies》。

4. 在存在多站的服務(wù)器上,嚴(yán)格限制每一個站允許的IP連接數(shù)和CPU使用時間

這是一個很有效的方法。CC的防御要從代碼做起,其實(shí)一個好的頁面代碼都應(yīng)該注意這些東西,還有SQL注入,不光是一個入侵工具,更是一個DDOS缺口,大家都應(yīng)該在代碼中注意。舉個例子吧,某服務(wù)器,開動了5000線的CC攻擊,沒有一點(diǎn)反應(yīng),因為它所有的訪問數(shù)據(jù)庫請求都必須一個隨機(jī)參數(shù)在Session里面,全是靜態(tài)頁面,沒有效果。突然發(fā)現(xiàn)它有一個請求會和外面的服務(wù)器聯(lián)系獲得,需要較長的時間,而且沒有什么認(rèn)證,開800線攻擊,服務(wù)器馬上滿負(fù)荷了。代碼層的防御需要從點(diǎn)點(diǎn)滴滴做起,一個腳本代碼的錯誤,可能帶來的是整個站的影響,甚至是整個服務(wù)器的影響!

5. 服務(wù)器前端加CDN中轉(zhuǎn)

(免費(fèi)的有百度云加速、360網(wǎng)站衛(wèi)士、加速樂、安全寶等),如果資金充裕的話,可以購買高防的盾機(jī),用于隱藏服務(wù)器真實(shí)IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址。此外,服務(wù)器上部署的其他域名也不能使用真實(shí)IP解析,全部都使用CDN來解析。

另外,防止服務(wù)器對外傳送信息泄漏IP地址,最常見的情況是,服務(wù)器不要使用發(fā)送郵件功能,因為郵件頭會泄漏服務(wù)器的IP地址。如果非要發(fā)送郵件,可以通過第三方代理(例如sendcloud)發(fā)送,這樣對外顯示的IP是代理的IP地址。

總之,只要服務(wù)器的真實(shí)IP不泄露,10G以下小流量DDOS的預(yù)防花不了多少錢,免費(fèi)的CDN就可以應(yīng)付得了。如果攻擊流量超過20G,那么免費(fèi)的CDN可能就頂不住了,需要購買一個高防的盾機(jī)來應(yīng)付了,而服務(wù)器的真實(shí)IP同樣需要隱藏

簡易CC攻擊防御策略

確定Web服務(wù)器正在或者曾經(jīng)遭受CC攻擊,那如何進(jìn)行有效的防范呢?

(1).取消域名綁定

  一般cc攻擊都是針對網(wǎng)站的域名進(jìn)行攻擊,比如我們的網(wǎng)站域名是“www.abc.com”,那么攻擊者就在攻擊工具中設(shè)定攻擊對象為該域名然后實(shí)施攻擊。 對于這樣的攻擊我們的措施是取消這個域名的綁定,讓CC攻擊失去目標(biāo)。

(2).域名欺騙解析

  如果發(fā)現(xiàn)針對域名的CC攻擊,我們可以把被攻擊的域名解析到127.0.0.1這個地址上。我們知道127.0.0.1是本地回環(huán)IP是用來進(jìn)行網(wǎng)絡(luò)測試的,如果把被攻擊的域名解析到這個IP上,就可以實(shí)現(xiàn)攻擊者自己攻擊自己的目的,這樣他再多的肉雞或者代理也會宕機(jī),讓其自作自受。

(3).更改Web端口

  一般情況下Web服務(wù)器通過80端口對外提供服務(wù),因此攻擊者實(shí)施攻擊就以默認(rèn)的80端口進(jìn)行攻擊,所以,我們可以修改Web端口達(dá)到防CC攻擊的目的。運(yùn)行IIS管理器,定位到相應(yīng)站點(diǎn),打開站點(diǎn)“屬性”面板,在“網(wǎng)站標(biāo)識”下有個TCP端口默認(rèn)為80,我們修改為其他的端口就可以了。

(4).屏蔽IP

  我們通過命令或在查看日志發(fā)現(xiàn)了CC攻擊的源IP,就可以在防火墻中設(shè)置屏蔽該IP對Web站點(diǎn)的訪問,從而達(dá)到防范攻擊的目的


你覺得這篇文章怎么樣?

0 0

網(wǎng)友評論

管理員

該內(nèi)容暫無評論

IANA網(wǎng)友
甘果云建站平臺-網(wǎng)站建設(shè)-網(wǎng)站制作公司掃一掃咨詢微信客服
在線客服
服務(wù)熱線

服務(wù)熱線

4006301685

微信咨詢
甘果云建站平臺-網(wǎng)站建設(shè)-網(wǎng)站制作公司
返回頂部