阿里云web防火墻配置防護(hù)CC 攻擊的方法
CC攻擊是網(wǎng)絡(luò)上很常見的一種大規(guī)模攻擊方案。流量超大,攻擊很猛,一般的網(wǎng)站根本無法抵御。
什么是 CC 攻擊
CC(Challenge Collapsar)該攻擊與我們常見的 DDOS(網(wǎng)絡(luò)層分布式拒絕服務(wù)攻擊)不同之處在于,CC 攻擊只會導(dǎo)致 WEB服務(wù)或者只是 WEB 服務(wù)中的某一接口或單一頁面無法服務(wù),相比網(wǎng)絡(luò)層的拒絕服務(wù)攻擊,其優(yōu)勢在于能夠使用相對較少的資源對更為精確的目標(biāo)進(jìn)行攻擊。
攻擊方式
主要的攻擊方式分為快速和慢速兩種:
快速 CC 攻擊是指快速請求服務(wù)器處理消耗較大的頁面或者接口,這種方式是通過大量占用服務(wù)器的 CPU、IO 等資源,致使服務(wù)器無法正常響應(yīng)其它用戶的請求。
慢速 CC 攻擊是指是通過與服務(wù)器建立連接后,以最慢的速度發(fā)送請求/讀取響應(yīng),通過占用服務(wù)器的進(jìn)程、線程、網(wǎng)絡(luò)套接字等資源,達(dá)到導(dǎo)致服務(wù)器無法繼續(xù)服務(wù)的目的,這種攻擊一般針對 Apache、httpd 這類 thread-base 架構(gòu)的服務(wù)器。
防護(hù)手段
點我領(lǐng)取阿里云2000元代金券,(阿里云優(yōu)惠券的作用:購買阿里云產(chǎn)品,最后支付結(jié)算的時候,阿里云優(yōu)惠券可抵扣一部分費用。
針對兩種不同類型的攻擊防護(hù)方式分別是:
快速攻擊: 限制單一源IP的請求速率、限制并發(fā)連接數(shù)
慢速攻擊: 限制單一請求的超時時間
Nginx 和 Apache 都有相應(yīng)的模塊來解決這類問題,只要配置得當(dāng)能夠抵擋住大多數(shù)的 CC 攻擊,以下我們以 Nginx 為例看看具體的配置。
限制單一源 IP 的請求速率,平均每秒不超過 1 個請求,并且突發(fā)不超過 5 個請求:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /limit_req/ {
limit_req zone=one burst=5;
}</code></pre>
}
限制并發(fā)連接數(shù),單一源 IP 最大并發(fā)數(shù)是 100,總的連接數(shù)不超過 1000:
http {
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_conn_zone $server_name zone=perserver:10m;
...
server {
...
limit_conn one 100;
limit_conn perserver 1000;
...</code></pre>
}
限制單個請求的超時時間:
http {
...
server {
...
client_header_timeout 60s; //等待客戶端發(fā)送請求頭的超時時間,將這個值改小可以應(yīng)對慢速發(fā)送請求頭的CC攻擊;
client_body_timeout 60s; //讀取客戶端發(fā)送請求體的超時時間,將這個值改小可以應(yīng)對慢速發(fā)送請求體的CC攻擊;
keepalive_timeout 75s; //與客戶端的連接超時時間,如果連接大量被占用,可以將其改小一些,釋放被占用的連接,減輕服務(wù)器壓力;
...</code></pre>
}
阿里云的Web應(yīng)用防火墻對網(wǎng)站或者APP的業(yè)務(wù)流量進(jìn)行惡意特征識別及防護(hù),將正常、安全的流量回源到服務(wù)器。避免網(wǎng)站服務(wù)器被惡意入侵,保障業(yè)務(wù)的核心數(shù)據(jù)安全,解決因惡意攻擊導(dǎo)致的服務(wù)器性能異常問題。
更多參閱阿里云web防火墻配置文檔
點我領(lǐng)取阿里云2000元代金券,(阿里云優(yōu)惠券的作用:購買阿里云產(chǎn)品,最后支付結(jié)算的時候,阿里云優(yōu)惠券可抵扣一部分費用。
CC防護(hù)攻擊緊急模式
當(dāng)網(wǎng)站遇到CC攻擊的時候,我們一般想到的是第一時間的恢復(fù)網(wǎng)站的業(yè)務(wù),但這個時候我們可以直接在web應(yīng)用防火墻上開啟CC防護(hù)攻擊緊急模式。開啟之后,能夠有效的對客戶端校驗。
image
這個模式有一個注意的點就是他這個模式只能對Web應(yīng)用、網(wǎng)站應(yīng)用及H5頁面有效。對于API以及Native的App會造成大量的誤殺,所以這兩個應(yīng)用場景下是不支持攻擊緊急模式的。這種情況,我們建議的方案是使用CC自定義防護(hù)進(jìn)行防御。
CC自定義防護(hù)
那么隨著自定義的一個防御怎么來配置呢?有兩個步驟,一是先要從攻擊的日志中分析找到攻擊的特征。然后使用工具或者對應(yīng)的功能對我們發(fā)現(xiàn)的特征進(jìn)行封禁,從而達(dá)到保護(hù)的目的。
特征分析
我們先來看一下CC攻擊有哪些特征,一般情況下面最主要最明顯的特征是某個URL的請求異常的集中。另外一方面,他請求的源IP異常的集中。第三點,他請求的Refer或者user-agent異常的集中。有了這幾個概念之后,我們就可以根據(jù)這幾個概念去分析日志,獲取對應(yīng)的特征。
我們可以以下面這個網(wǎng)站為例,可以看一下對應(yīng)的時間段。
image
從這個日志的一個趨勢來看,其實是被打得挺厲害的,峰值時間最高的時候有13萬的QPS。那我們怎么來對這種攻擊進(jìn)行分析呢?我們采用了SLS的日志服務(wù),快捷的自動化地進(jìn)行分析分析的過程。
request URL分析
image
我們通過對request URL進(jìn)行分析,可以看到他99%的請求全都請求了//index.php的路徑。這個請求占這么大的量絕對是有問題的,正常情況下面對比相同時間段,其實不會有這么大的量出現(xiàn)。那么我們要做的事情就是把惡意的請求給他分辨出來,然后把它攔截表對他進(jìn)行自定義的CC防護(hù)。
規(guī)則配置
image
配置規(guī)則的時候,對這個URL進(jìn)行完全匹配,然后配置我們檢測的周期是十秒或者五秒,然后對他進(jìn)行的檢測的次數(shù),在這個時間范圍內(nèi)他訪問的次數(shù)十次或5次。然后對應(yīng)的主端動作是可以是封禁,也可以是人機(jī)識別。最后是他封禁的時間,可以封禁他三十分鐘甚至更長。我的配置是采用封禁的策略,在十秒內(nèi)訪問五次就直接對他進(jìn)行封禁的一個動作,從而達(dá)到對網(wǎng)站業(yè)務(wù)的一個防護(hù)。
這里可以看到還有一個是人機(jī)識別的阻斷類型,人機(jī)識別它是對客戶端的請求進(jìn)行一個腳印的一個過程,它會返回給客戶端一串特殊的代碼,可以理解為JS的代碼,讓客戶端去執(zhí)行。
點我領(lǐng)取阿里云2000元代金券,(阿里云優(yōu)惠券的作用:購買阿里云產(chǎn)品,最后支付結(jié)算的時候,阿里云優(yōu)惠券可抵扣一部分費用。
如果能夠正常的執(zhí)行成功,那么說明這個客戶端是一個真實的客戶端。校驗成功過后,我們對他進(jìn)行加白,讓他能夠正常訪問。如果不能執(zhí)行,那么這個客戶端我們不認(rèn)為他是一個正常的客戶端,會把他拉黑一段時間。這個時間就是我們配置上配的那個時間。
需要注意,在WAF前面如果有高防或者CDN的場景下,我們不建議使用封禁的策略,建議使用人機(jī)識別的策略。
經(jīng)過這段配置,其實我們的網(wǎng)站業(yè)務(wù)能夠得到一定的緩解,如果不能緩解的話,可以根據(jù)我們上面配置的一個策略進(jìn)行調(diào)整。由松到緊配置僅一點達(dá)到緩解業(yè)務(wù)的一個效果。
IP分析
得到一定緩解之后,我們繼續(xù)分析一只去分析更加精確的攻擊特征加以保護(hù),提高我們防護(hù)的效果。
先看一下源IP分布沒有什么特征,沒有在幾個段里面,然后去查市里面。其實各個市都有,也沒有市和省的維度,那這兩個不能作為一個明顯的一個特征去做防護(hù)。
refer或者user-agent分析
那么第三個去通過refer或者user-agent去看,通過refer去看的時候,這邊就不說了,因為沒有特別明顯的特征,但是再去看user-agent的時候,發(fā)現(xiàn)99%的請求都是來自于microsoft和Firefox瀏覽器的請求。
這個訪問比例與我們請求的request,index.php的請求比例是非常接近的,然后我們拿著這個user-agent去對比前一天相同時間段的請求,是否有這個user-agent。
前一天的相同時間段下沒有出現(xiàn)過類似這樣的一個UA。那么我們認(rèn)為當(dāng)前時間段出現(xiàn)這個UA的請求是異常的,是惡意的。那么我們針對這個UA進(jìn)行防護(hù)的時候,我們使用WAF的精準(zhǔn)防護(hù),控制精準(zhǔn)的對這個UA進(jìn)行配置阻斷。
WAF的精準(zhǔn)防護(hù)配置
image
配置方式是為了更加準(zhǔn)確而使用兩個條件,一個是user-agent,讓它包含F(xiàn)irefox,另外一個是URL包含上述所說的index.php,同時滿足這兩個條件的,那我們同時對他進(jìn)行阻斷的操作。
通過這種方式能夠有效的將所有惡意的請求排除在外。真正回到原站的請求都是我們判斷是可信的一個請求,從而達(dá)到防護(hù)的效果。
更多參閱阿里云web防火墻配置文檔
點我領(lǐng)取阿里云2000元代金券,(阿里云優(yōu)惠券的作用:購買阿里云產(chǎn)品,最后支付結(jié)算的時候,阿里云優(yōu)惠券可抵扣一部分費用。
