張興銳 高小明 李家興
摘 要: 隨著網(wǎng)絡(luò)業(yè)務(wù)與用戶數(shù)不斷增多,網(wǎng)絡(luò)安全問題日益突出。DDoS攻擊作為一種嚴(yán)重威脅網(wǎng)絡(luò)安全的攻擊方式,給網(wǎng)絡(luò)帶來了極大的危害。本文對近年的DDoS攻擊檢測技術(shù)進行了收集比較,分析了各類檢測方法的運用場景和其各自的優(yōu)缺點。最后指出, DDoS攻擊防御不僅需要技術(shù)上的提升,也需要普通用戶提高網(wǎng)絡(luò)安全意識。
關(guān)鍵詞: DDoS攻擊檢測;基于位置檢測;時間序列;機器學(xué)習(xí)
1 引言
隨著計算機技術(shù)的持續(xù)發(fā)展,上網(wǎng)的用戶數(shù)量在不斷增多,網(wǎng)絡(luò)安全也越來越受到重視。分布式拒絕服務(wù)(DDoS)攻擊是當(dāng)前非常普遍且嚴(yán)重威脅網(wǎng)絡(luò)安全的一種攻擊方式,給人們和社會經(jīng)濟帶來了重大損失。據(jù) 統(tǒng)計,2000年2月,包括雅虎、CNN、亞馬遜、e-Bay、ZDNet等網(wǎng)站均遭受到了DDOS攻擊,并致使部分網(wǎng)站癱瘓。2018年2月,著名面向開源及軟件項目的托管平臺Github遭遇了可能是迄今為止最大的 DDoS 攻擊,最高訪問量為 1.35Tbps,導(dǎo)致其經(jīng)歷了兩次間歇性不可訪問。多次的攻擊事件表明,對DDoS攻擊的檢測和防御研究具有重要的理論意義和實際研究。
2 DDoS攻擊簡介
2.1 分布式拒絕服務(wù)攻擊
拒絕服務(wù)攻擊(DoS)也稱洪水攻擊,從廣義的角度上講,任何通過合法方式使目標(biāo)電腦的網(wǎng)絡(luò)或系統(tǒng)資源耗盡,從而無法向用戶提供正常服務(wù)的攻擊方式均屬于DoS攻擊范疇。DDoS攻擊是攻擊者利用大量傀儡計算機對攻擊目標(biāo)發(fā)動大量的正?;蚍钦U埱螅瑥亩谋M目標(biāo)主機資源,最后使受攻擊主機無法正常運行或提供服務(wù)。
2.2 DDoS攻擊分類
DDoS攻擊大體可分為兩類:資源耗盡型攻擊和帶寬攻擊。
2.2.1 資源耗盡型攻擊
資源耗盡型攻擊是利用協(xié)議和系統(tǒng)漏洞進行攻擊。常見的攻擊方式包括TCP SYN攻擊、PUSH ACK等。下面以SYN為例進行說明:攻擊者利用TCP的三次握手機制,向受害主機發(fā)送大量的TCP-SYN分組。受害主機收到請求后需要對各個SYN進行ACK應(yīng)答,但是攻擊者常常采用了偽源地址進行攻擊,所以受害主機的ACK分組自然得不到應(yīng)答,受害主機將保持這樣的半開狀態(tài)直到握手完成或者計時器超時為止(一般來說,這個超時設(shè)定時間是分鐘數(shù)量級別的,但隨著操作系統(tǒng)的不同而不同,大約在30秒到2分鐘),受害主機在未收到請求主機的ACK報文情況下會不斷的發(fā)送SYN-ACK給偽地址主機直到超時后才會丟棄本次連接。上述過程描述了單個攻擊報文到達(dá)時,受害主機通常會進行的操作,當(dāng)大量的攻擊報文同時到達(dá)時,受害主機就會因為維持了大量的半開連接而導(dǎo)致主機的CPU和內(nèi)存耗盡進而無法向正常用戶提供服務(wù)。
2.2.2 帶寬耗盡型攻擊
帶寬耗盡型攻擊又分為直接型洪流攻擊和反射性洪流攻擊。
直接洪流攻擊是攻擊者向受害主機發(fā)送大量的無用數(shù)據(jù)包(如TCP洪流攻擊、UDP風(fēng)暴攻擊和ICMP洪流攻擊)從而占用受害主機的大量網(wǎng)絡(luò)帶寬,進而讓受害者無法響應(yīng)合法的數(shù)據(jù)包。
反射攻擊是一種間接攻擊,攻擊者將攻擊分組的源地址設(shè)置為受害主機的地址,并將這些攻擊分組廣播到網(wǎng)絡(luò)中,由于網(wǎng)絡(luò)中的路由設(shè)備并不知道這些分組是經(jīng)過偽裝的攻擊分組,它們均將這些分組的響應(yīng)分組發(fā)往受害主機,大量的回應(yīng)消息會占用受害者的大量帶寬,從而使受害主機無法響應(yīng)正常用戶請求。這些網(wǎng)絡(luò)中的路由器被稱為反射節(jié)點。
3 DDoS檢測方法
3.1 按照檢測位置分類
在DDoS檢測防護方面,我們根據(jù)其部署的位置,分為基于源端網(wǎng)絡(luò)的檢測、基于中間網(wǎng)絡(luò)檢測和基于目的端網(wǎng)絡(luò)檢測。
3.1.1 基于源端網(wǎng)絡(luò)檢測
基于源端網(wǎng)絡(luò)的檢測是把DDoS檢測算法部署在發(fā)出攻擊數(shù)據(jù)包的主機附近。由于大部分DDoS攻擊中,攻擊者都會通過偽源IP進行攻擊,據(jù)此,文獻[1] 利用了Patricia樹的匯聚方法檢測DDoS攻擊。文獻[2]通過檢測所有進出本機的數(shù)據(jù)幀(去掉廣播和組播數(shù)據(jù)幀)相應(yīng)的源端IP和目的IP,如果兩者中沒有本機的IP地址,則說明存在偽源IP的數(shù)據(jù)包,那么該數(shù)據(jù)幀很有可能是偽造的DDoS攻擊流。文獻[3]利用布隆過濾器結(jié)構(gòu)對出入不同接口的數(shù)量進行簡單計算,然后用無參數(shù)Cumulative Sum方法進行檢測。
基于源端網(wǎng)絡(luò)的檢測是最為理想的一種檢測方法,其優(yōu)點主要有:1.可在源端一直攻擊數(shù)據(jù)包,有效地降低了因攻擊數(shù)據(jù)流而造成的網(wǎng)絡(luò)資源浪費。2.由于這類檢測方法部署在攻擊源網(wǎng)絡(luò),所以較容易地追蹤攻擊源,同時也能夠減少對于合法數(shù)據(jù)流的誤丟棄。
3.1.2 基于中間網(wǎng)絡(luò)的檢測
基于中間網(wǎng)絡(luò)的DDoS攻擊檢測是指將攻擊DDoS檢測算法部署在整個攻擊網(wǎng)絡(luò)的中間部分。文獻[4]首先對網(wǎng)絡(luò)中的路由器以時間△t對網(wǎng)絡(luò)流F進行采樣;然后分別計算出源地址、目的地址、目的端口均相同的數(shù)據(jù)包的時間序列。當(dāng)時間間隔足夠大時,計算自相關(guān)系數(shù) 其中ai為k個△t時間內(nèi)a的序列。a為a的數(shù)學(xué)期望;βk為自相關(guān)系數(shù)。當(dāng)計算得到自相關(guān)系數(shù)不為0時,可以認(rèn)為發(fā)生了DDoS。
3.1.3 目的端網(wǎng)絡(luò)檢測
基于目的端網(wǎng)絡(luò)檢測技術(shù)是把DDoS檢測算法部署在被攻擊者主機附近。文獻[5]提出了一種用于受害機所在網(wǎng)絡(luò)的DDoS預(yù)防方案。該方案表明可在每個可能遭受攻擊的服務(wù)器的上游路由器中設(shè)置流量閾值,將超過閾值的流量包進行丟棄或者路由到其他服務(wù)器。文獻[6]利用數(shù)據(jù)包從源端到達(dá)目的端所需要的跳數(shù)是固定的這一特征,建立一張源地址和跳數(shù)相對應(yīng)的表。由于偽造地址和正常源地址數(shù)據(jù)包包頭中的TTL值是不同的,所以通過查表可以找到經(jīng)過偽造的數(shù)據(jù)包。
基于目的端網(wǎng)絡(luò)的檢測方法是目前應(yīng)用最多的攻擊檢測方法。其優(yōu)點主要在于:檢測算法部署在被攻擊一側(cè),可以容易根據(jù)服務(wù)器性能異常降低或不正常的高流量等指標(biāo)確定是否發(fā)生了攻擊。
3.1.4 三種部署位置檢測各項指標(biāo)的比較
三種部署位置的比較如下表1:
表1 三種部署位置各項指標(biāo)比較
3.2按照檢測算法分類
3.2.1基于時間序列的檢測
傳統(tǒng)的檢測方法主要有特征匹配、源IP地址追蹤和計算TCP包的標(biāo)志位比率等方法等。但是這類方法沒有考慮時間因素與攻擊之間的關(guān)聯(lián)。文獻[7]利用自回歸模型分析網(wǎng)絡(luò)流量序列的變化,通過比較參考滑動窗口和測試滑動窗口的似然率變化來檢測不同時間點的攻擊流量。另外,在DDoS網(wǎng)絡(luò)攻擊中,由于流量常在某個時間段內(nèi)發(fā)生突變以至于超過某個限定值,所以閾值檢測是一種非常常用的方法,文獻[8]提出了一種指數(shù)加權(quán)移動平均算法EWMA,對網(wǎng)絡(luò)流量的歷史數(shù)據(jù)分配不同的權(quán)值,以表示近期數(shù)值影響較遠(yuǎn)期數(shù)值影響更大一些?;竟綖椋簊t=axt+(1-a)st-1,其中st表示第t期的流量平滑值,a表示平滑系數(shù),x表示第t的實際流量觀察值。相較于靜態(tài)閾值檢測,文獻[9]提供的方法不需要過多人為干預(yù),靈活性高。提出一種綜合反映DDoS攻擊特征的IP流特征的檢測算法(包括DDoS攻擊流的非對稱性、突發(fā)性、源IP地址分布和目標(biāo)IP地址集中性),其基本思想在于采用IP流特性觀察值來預(yù)測未來值,當(dāng)檢測到實際觀察值與預(yù)測值相差較遠(yuǎn)就認(rèn)為發(fā)生了DDoS攻擊。
3.2.2基于機器學(xué)習(xí)的檢測
隨著人工智能的火熱,機器學(xué)習(xí)引起了人們的廣泛關(guān)注。目前將機器學(xué)習(xí)運用到DDoS檢測中已取得不錯成果。文獻[10]通過提取網(wǎng)絡(luò)流量數(shù)據(jù)包的多個屬性(如IP協(xié)議字段、數(shù)據(jù)包的大?。?,依據(jù)這些屬性運用貝葉斯分類算法對這些數(shù)據(jù)包進行分類,在按照抽樣數(shù)據(jù)庫中的數(shù)據(jù)計算每一類數(shù)據(jù)包的分值,生成一張分值表,接著用這些分值表對正常庫和異常庫中的數(shù)據(jù)包進行打分,計算正常流量和異常流量的分值特征:均值和標(biāo)準(zhǔn)差。最后將所得分?jǐn)?shù)映射成09的危險等級。由于支持向量機具有良好的泛化性能,可以有效克服傳統(tǒng)學(xué)習(xí)機的“維數(shù)災(zāi)難”和“過學(xué)習(xí)”問題,因此可以將SVM運用到DDoS檢測中, 文獻[11]采用多類支持向量機進行攻擊識別,選取了單邊連接密度、IP流的平均長度、IP包的流入流出比、IP流長度的熵、協(xié)議熵和協(xié)議比例6個特征進行學(xué)習(xí),并將訓(xùn)練數(shù)據(jù)分成4類:正常,輕度,中度和重度,從而實現(xiàn)對攻擊的分類檢測。
4 結(jié)語
本文對DDoS近年來常用的DDoS檢測方法進行歸類整理。雖然這些方法能在一定程度上對DDoS進行檢測防范,但是DDoS攻擊仍網(wǎng)絡(luò)安全的難題,伴隨著DDoS攻擊流量愈發(fā)升高(當(dāng)前DDoS攻擊所造成的流量峰值已達(dá)到TB級別),對DDoS進行有效防范已是刻不容緩。對DDoS進行防御需要人們的共同努力,既需要普通用戶群提高自身安全意識,防止攻擊者利用網(wǎng)絡(luò)漏洞控制主機而變?yōu)椤翱軝C”,也需要網(wǎng)絡(luò)管理員進行網(wǎng)絡(luò)流量監(jiān)控分析??傊?,要對DDoS攻擊進行有效防范不僅需要檢測方式的不斷升級還需要各界人員付諸努力。
參考文獻
[1] 李霞, 謝康林, 白英彩. 基于速率限制的源端網(wǎng)絡(luò) DDoS 防御[J]. 微型電腦應(yīng)用, 2005, 21(8): 43-47.
[2] 鐘金. 基于源端的 DDoS 攻擊檢測與防御技術(shù)的研究[D]. 南京師范大學(xué), 2006.
[3] 王佳佳. 基于變點計算的源端 DDoS 攻擊檢測方法[J]. 泰州職業(yè)技術(shù)學(xué)院學(xué)報, 2013, 13(4): 64-67.
[4] 嚴(yán)芬,王佳佳,趙金鳳,殷新春.DDoS攻擊檢測綜述[J].計算機應(yīng)用研究,2008(04):966-969.
[5] Yau D K Y, Lui J C S, Liang F, et al. Defending against distributed denial-of-service attacks with max-min fair server-centric router throttles[J]. IEEE/ACM Transactions on Networking, 2005, 13(1): 29-42.
[6] Filtering H C. An Effective Defense Against Spoofed DDoS Traffic (Cheng Jin, Haining Wang, Haining Wang, Kang G. Shin)[J].
[7] 李更生. 基于時間序列分析的 Web 服務(wù)器 DDoS 攻擊檢測[J]. 計算機工程與應(yīng)用, 2007, 43(7): 135-138.
[8] 趙云成. 基于流量突變及數(shù)據(jù)挖掘的 DDOS 攻擊檢測與防范方法研究[D]. 吉林大學(xué), 2009.
[9] 程杰仁,殷建平,劉運,劉湘輝,蔡志平.基于攻擊特征的ARMA預(yù)測模型的DDoS攻擊檢測方法[J].計算機工程與科學(xué),2010,32(04):1-4+28.
[10] 羅建, 李艷梅. 基于 Bayes 分類器的 DoS/DDoS 攻擊防御技術(shù)[J]. 航空計算技術(shù), 2010, 40(2): 127-129.
[11] 徐圖, 羅瑜, 何大可. 多類支持向量機的 DDoS 攻擊檢測的方法[J]. 電子科技大學(xué)學(xué)報, 2008, 37(2): 274-277.
作者簡介:張興銳(1996-),男,漢族,重慶,本科。
高小明(1995-),男,漢族,重慶,本科。
李家興(1997-),男,漢族,重慶,本科。