本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種基于用戶認證的cc防護方法。
背景技術(shù):
當今社會由于網(wǎng)絡(luò)的發(fā)展,信息的傳播方式也千變?nèi)f化,層出不窮,信息的傳播速度更是有了長足的進步;在這樣的網(wǎng)絡(luò)環(huán)境下,針對web服務(wù)器的攻擊方式和手段也越來越多。
cc(challengecollapsar,挑戰(zhàn)黑洞)攻擊是一種針對應(yīng)用層web服務(wù)的攻擊方法,其原理與ddos(分布式拒絕服務(wù))在本質(zhì)上相同,都是以發(fā)送大量請求耗盡服務(wù)器資源來達到拒絕服務(wù)的效果。cc攻擊的目標一般選擇那些需要進行大量數(shù)據(jù)操作,消耗系統(tǒng)資源較大的頁面。攻擊者通過頻繁訪問這些頁面,使服務(wù)器不能及時處理導(dǎo)致請求積累,資源無法釋放,進而造成數(shù)據(jù)庫連接請求過多,數(shù)據(jù)庫阻塞,最后造成網(wǎng)頁不能正常訪問。
通過對現(xiàn)有cc防護策略的研究發(fā)現(xiàn),目前所采用的cc防護策略大部分都是以控制訪問頻率的方式實現(xiàn),檢測單個ip在一定時間內(nèi)的訪問頻率,若超過設(shè)定的頻率閾值,則將訪問認定為攻擊行為,拒絕該ip之后的訪問請求。這種策略可以在一定程度上抵御cc攻擊,然而統(tǒng)計每一個ip的訪問頻率無疑會給服務(wù)器帶來相當?shù)馁Y源消耗,甚至有可能影響到正常用戶的請求,降低了用戶體驗,也給頁面的運維帶來了負擔。
技術(shù)實現(xiàn)要素:
本發(fā)明克服了現(xiàn)有技術(shù)的不足,提供一種基于用戶認證的cc防護方法,旨在提升網(wǎng)站的安全性,增強服務(wù)器抵御cc攻擊的能力。
考慮到現(xiàn)有技術(shù)的上述問題,根據(jù)本發(fā)明公開的一個方面,本發(fā)明采用以下技術(shù)方案:
一種基于用戶認證的cc防護方法,包括:
步驟1:設(shè)置用于對web服務(wù)器的請求進行過濾的cc防火墻;
步驟2:設(shè)定qps閾值范圍,當服務(wù)器的qps超過設(shè)定閾值時,認為發(fā)生了cc攻擊,啟用防護策略;
步驟3:qps超過閾值之后,防火墻查看ip黑白名單,放行白名單內(nèi)ip發(fā)出的請求,攔截黑名單內(nèi)ip的請求,其他請求重定向至用戶認證頁面,用戶需要在規(guī)定時間內(nèi)完成驗證碼認證;
步驟4:若用戶在規(guī)定時間內(nèi)完成了認證,放行此次請求,服務(wù)器響應(yīng)請求并將此用戶ip加入白名單列表,在白名單的存活時間內(nèi)處于白名單內(nèi)的用戶訪問無需再進行用戶認證;
步驟5:若用戶未能在規(guī)定的時間內(nèi)完成認證或認證失敗,拒絕此次請求并對該用戶ip進行一次計數(shù),連續(xù)計數(shù)超過設(shè)定值的ip加入黑名單列表,在黑名單的存活時間內(nèi),處于黑名單內(nèi)ip發(fā)出的所有請求都會被拒絕;
步驟6:一定時間周期內(nèi)清空黑白名單。
為了更好地實現(xiàn)本發(fā)明,進一步的技術(shù)方案是:
根據(jù)本發(fā)明的一個實施方案,所述步驟1,在服務(wù)器前端搭建防火墻,防火墻通過反向代理或透明代理設(shè)置,使用戶的訪問請求通過防火墻再到服務(wù)器,防火墻記錄當前服務(wù)器的qps狀態(tài)作為判斷是否發(fā)生攻擊行為的依據(jù)。
根據(jù)本發(fā)明的另一個實施方案,所述步驟6,當防火墻qps低于告警線范圍時,關(guān)閉cc防護策略,清空黑白名單列表。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果之一是:
本發(fā)明的一種基于用戶認證的cc防護方法,對于超過負載時黑白名單外的所有請求會重定向請求至認證頁面,可視為一個“負載均衡策略”,在很大程度上幫助服務(wù)器減輕了負擔;認證服務(wù)器不僅承擔分流作用,同時起到驗證請求是否為正常用戶的作用;認證方式采取“一次認證,短期有效”,避免進行重復(fù)認證造成的資源損耗,同時也可避免造成不良的用戶體驗;黑白名單定時清空,可避免ip變動造成的誤封,同時避免名單條目過多造成過濾緩慢;本發(fā)明解決了現(xiàn)有cc防護策略的不足,提升了網(wǎng)站的安全性,增強了服務(wù)器抵御cc攻擊的能力。
附圖說明
為了更清楚的說明本申請文件實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)的描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅是對本申請文件中一些實施例的參考,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的情況下,還可以根據(jù)這些附圖得到其它的附圖。
圖1為根據(jù)本發(fā)明一個實施例的流程示意圖。
具體實施方式
下面結(jié)合實施例對本發(fā)明作進一步地詳細說明,但本發(fā)明的實施方式不限于此。
一種基于用戶認證的cc防護方法,包括:
步驟1具體包括:在服務(wù)器前端搭建防火墻,防火墻通過反向代理或透明代理設(shè)置使用戶的訪問請求通過防火墻再到微博服務(wù)器,防火墻記錄當前服務(wù)器的qps狀態(tài)作為判斷是否發(fā)生攻擊行為的依據(jù);
步驟2具體包括:統(tǒng)計頁面正常訪問時的qps值,選取合理的qps范圍作為閾值,設(shè)置告警線和攔截線,當服務(wù)器qps值高于攔截線時,可認為服務(wù)器有受到cc攻擊的風險,防火墻啟用防護策略;
步驟3具體包括:防護策略開啟之后,防火墻記錄每一條訪問請求的源ip地址,遍歷黑白名單列表判斷ip是否存在于黑白名單內(nèi),若處于白名單內(nèi),對請求不作處理,放行訪問服務(wù)器,若處于黑名單內(nèi),防火墻通過反向代理將請求轉(zhuǎn)發(fā)至認證服務(wù)器,認證頁面要求用戶輸入驗證碼,開始計時并等待用戶響應(yīng);
步驟4具體包括:用戶在規(guī)定的時間內(nèi)輸入正確驗證碼完成認證,將用戶請求直接轉(zhuǎn)發(fā)至服務(wù)器進行處理并將用戶ip加入白名單,清空對該ip的計數(shù),用戶可得到正常響應(yīng),白名單有效期內(nèi)對該用戶之后發(fā)出的請求無需再進行認證;
步驟5具體包括:用戶在規(guī)定時間內(nèi)未能完成認證或驗證碼輸入錯誤,提示“超時,認證失敗”,拒絕本次請求,返回錯誤碼并對請求源ip地址計數(shù),若同一ip連續(xù)n(n的值由維護人員定義)次認證失敗,將ip加入黑名單列表,黑名單有效期內(nèi)拒絕該ip發(fā)出的所有請求;
步驟6具體包括:當防火墻qps低于告警線范圍時,關(guān)閉cc防護策略,清空黑白名單列表;
上述策略采用了驗證碼和訪問黑白名單相結(jié)合的防護模式,業(yè)務(wù)服務(wù)器前端部署有防火墻和認證服務(wù)器進行訪問控制,減輕服務(wù)器負擔,用戶完成認證一次之后在白名單有效期內(nèi)無需再次認證,避免了重復(fù)輸入驗證碼帶來的不良用戶體驗,黑白名單的存在可提高攔截效率,避免同一ip請求的反復(fù)判斷處理,黑白名單的定時處理可以減少ip的誤報,在盡可能減小服務(wù)器性能的同時實現(xiàn)對cc攻擊的有效防護。
如圖1所示,本發(fā)明提供的是一種基于認證的cc攻擊防護方案,包括如下步驟:
在網(wǎng)站服務(wù)器正常工作的狀態(tài)下,其服務(wù)器的負載應(yīng)該處于某一正常范圍內(nèi),負載與用戶發(fā)起的請求數(shù)量成正相關(guān)。
cc攻擊是通過控制或模擬大量正常用戶向網(wǎng)頁發(fā)出大量請求,使網(wǎng)頁查詢請求大量堆積,阻塞數(shù)據(jù)庫,導(dǎo)致網(wǎng)頁不能正常打開。本發(fā)明實施實例需要首先檢測服務(wù)器的負載狀態(tài),得到負載的正常波動范圍;當負載超出這個臨界值之后,網(wǎng)頁訪問就會被堵塞,影響用戶正常使用。
網(wǎng)頁負載超過臨界值,一方面原因可能是確實發(fā)生了cc攻擊,也可能是過多的正常用戶訪問網(wǎng)頁導(dǎo)致。本發(fā)明不關(guān)心造成負載過大的原因,目的只為了保證網(wǎng)頁的正常運行,因此不會對每個請求是否為攻擊行為進行判定,只需根據(jù)網(wǎng)頁的負載狀態(tài)判斷是否開啟防護策略,保證用戶的正常訪問即可。
開啟防護后,所有的請求都會先經(jīng)過防火墻;此時防火墻會從云服務(wù)器獲取黑白名單,不再對請求進行完整分析,僅通過黑白名單包含的ip對所有訪問進行第一次過濾,若請求源ip地址屬于白名單,則直接放行,若屬于黑名單,則直接丟棄;一定程度減小了服務(wù)器負載。
對于初次訪問的ip地址,它們尚未被黑白名單記錄,如果由于未被記錄在白名單中而被拒絕請求,則會對這些ip地址的用戶造成嚴重影響,導(dǎo)致其無法訪問服務(wù)器;因此不能單純依賴黑白名單對請求進行過濾。當負載超過臨界值后,除了對黑白名單內(nèi)的ip請求進行快速處理以外,其余所有的請求都需要完成認證,確認請求是來源于正常用戶,而非模擬用戶的攻擊請求。
具體的,這些未知請求會被防火墻重定向至一個固定的靜態(tài)認證頁面,需要用戶回答問題的答案,并等待用戶的響應(yīng);由于靜態(tài)頁面并不會向服務(wù)器請求資源,不會給服務(wù)器帶來太大的性能損耗。如果規(guī)定時間內(nèi),用戶正確回答了頁面的問題,則請求將重定向至服務(wù)器,用戶可以正常訪問,并清空之前記錄的回答錯誤次數(shù);經(jīng)過認證的用戶ip將會進入白名單,在有效期內(nèi)不需再經(jīng)過驗證,避免頻繁驗證帶來令人不快的用戶體驗;規(guī)定時間內(nèi)未收到用戶回應(yīng)或回答錯誤次數(shù)超過限制,丟棄請求并將ip加入黑名單,黑名單有效期內(nèi)該ip發(fā)起的請求均會被丟棄。
通過以上策略,期望能降低服務(wù)器的負載,防火墻每隔一定的時間間隔會統(tǒng)計自身當前負載情況,若處于服務(wù)器負載范圍內(nèi),表明負載已經(jīng)降到服務(wù)器可以承受的范圍內(nèi),此時可關(guān)閉防護,保證所有請求能得到響應(yīng)。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同相似部分相互參見即可。
在本說明書中所談到的“一個實施例”、“另一個實施例”、“實施例”、等,指的是結(jié)合該實施例描述的具體特征、結(jié)構(gòu)或者特點包括在本申請概括性描述的至少一個實施例中。在說明書中多個地方出現(xiàn)同種表述不是一定指的是同一個實施例。進一步來說,結(jié)合任一實施例描述一個具體特征、結(jié)構(gòu)或者特點時,所要主張的是結(jié)合其他實施例來實現(xiàn)這種特征、結(jié)構(gòu)或者特點也落在本發(fā)明的范圍內(nèi)。
盡管這里參照本發(fā)明的多個解釋性實施例對本發(fā)明進行了描述,但是,應(yīng)該理解,本領(lǐng)域技術(shù)人員可以設(shè)計出很多其他的修改和實施方式,這些修改和實施方式將落在本申請公開的原則范圍和精神之內(nèi)。更具體地說,在本申請公開和權(quán)利要求的范圍內(nèi),可以對主題組合布局的組成部件和/或布局進行多種變型和改進。除了對組成部件和/或布局進行的變型和改進外,對于本領(lǐng)域技術(shù)人員來說,其他的用途也將是明顯的。