劉云+何翼
摘 要:SYN Flood是當(dāng)前最流行的拒絕服務(wù)(DoS)與分布式拒絕服務(wù)(DDoS)攻擊方式。從構(gòu)造一個(gè)SYN攻擊報(bào)文的角度分析,SYN Flood攻擊會引起網(wǎng)絡(luò)中基于IP地址、標(biāo)志位、端口號、序列號的統(tǒng)計(jì)特征異常,因此提出一種基于統(tǒng)計(jì)特征的SYN Flood攻擊檢測的方法。該方法首先從半連接隊(duì)列中獲取半連接信息,從全連接隊(duì)列中獲取IP地址存入BloomFilter中,再分別提取其統(tǒng)計(jì)特征,最后使用LMBP神經(jīng)網(wǎng)絡(luò)得到檢測結(jié)果。實(shí)驗(yàn)結(jié)果表明該算法與其他算法相比具有更好的檢測效果。
關(guān)鍵詞:SYNFlood檢測;統(tǒng)計(jì)特征;BloomFilter;LMBP神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A
Abstract:As the most popular attack method of denial of service (DoS) and distributed denial of service (DDoS),SYN Flood attack will cause some statistical properties abnormalities in the IP address,the TCP flag,the port number and the serial number from the perspective of constructing a SYN packet.Therefore,a SYN Flood attack detection method is proposed in this paper.Firstly,the method acquires half connection information from the half-connection queue,obtains IP addresses from the whole connection queue and puts them in Bloom Filter,then individually extracts statistical properties based on IP addresses,and finally determines whether SYN Flood attack happens by using LMBP neural networks.Experimental results show that the method could improve the effectiveness of detection.
Keywords:SYN flood detection;statistical properties;bloom filter;LMBP neural network
1 引言(Introduction)
SYN Flood是當(dāng)前最流行的拒絕服務(wù)(DoS)與分布式拒絕服務(wù)(DDoS)攻擊方式之一,也是一種非常流行的利用協(xié)議漏洞的資源匱乏型攻擊,它對網(wǎng)絡(luò)破壞力驚人[1]。因SYN Flood攻擊技術(shù)操作方便、容易達(dá)到目的、更難于防范和追查,越來越成為黑客最常使用的網(wǎng)絡(luò)攻擊方式之一[2]。它主要利用TCP協(xié)議三次握手缺陷和IP欺騙技術(shù),向目標(biāo)服務(wù)器發(fā)送大量帶有偽造IP地址的SYN報(bào)文,使目標(biāo)服務(wù)器的TCP半連接隊(duì)列被迅速占滿而不能及時(shí)釋放,造成無法建立正常的TCP連接,從而導(dǎo)致拒絕服務(wù)。
由于完整的TCP連接包括連接的建立和終止兩個(gè)過程,在這些過程中SYN報(bào)文、ACK報(bào)文、SYN/ACK報(bào)文、FIN報(bào)文、RST報(bào)文的數(shù)量具有一定對稱性。目前,針對SYN Flood攻擊的檢測技術(shù)主要根據(jù)這種對稱性是否被破壞,以判斷網(wǎng)絡(luò)中是否存在SYN Flood攻擊[3]。另外,提出一種基于重尾特性的SYN Flood檢測方法,該方法將SYN報(bào)文的比重與流量的重尾特性相結(jié)合提高檢測的正確率[4]。在攻擊者發(fā)動SYNFlood攻擊時(shí),如果有意傳送對等的SYN/ACK報(bào)文、ACK報(bào)文、RST報(bào)文、FIN報(bào)文、FIN/ACK報(bào)文,上述檢測方法將失去作用。
2 SYNFlood攻擊特征分析(SYN flood attack feature
analysis)
本文從構(gòu)造一個(gè)SYN攻擊報(bào)文的角度分析,SYN Flood攻擊會引起網(wǎng)絡(luò)中基于IP地址、標(biāo)志位、端口號、序列號的統(tǒng)計(jì)特征異常。據(jù)此,提出一種基于統(tǒng)計(jì)特征的SYN Flood攻擊檢測的方法。該方法首先從半連接隊(duì)列中獲取半連接信息,從全連接隊(duì)列中獲取IP地址存儲到BloomFilter中,再分別提取基于IP地址、標(biāo)志位、端口號、序列號的統(tǒng)計(jì)特征,最后使用LMBP算法得到檢測結(jié)果。
根據(jù)SYN Flood攻擊原理得知,攻擊端在發(fā)動攻擊使需要大量構(gòu)造SYN報(bào)文,而構(gòu)造一個(gè)完整的SYN攻擊報(bào)文不僅需要在網(wǎng)絡(luò)層偽造IP地址,而且在傳輸層偽造源端口號、目的端口號、序列號[5]。為了快速檢測出SYN Flood攻擊和新型防檢測的攻擊形式,本文將從IP地址、TCP半連接隊(duì)列、端口號、序列號、標(biāo)志位五個(gè)角度進(jìn)行特征分析。
(1)IP地址
數(shù)據(jù)顯示,在正常網(wǎng)絡(luò)中大約82.9%IP地址出現(xiàn)過;當(dāng)網(wǎng)絡(luò)中存在SYN Flood攻擊時(shí),只有0.6%—14%的IP地址是從前出現(xiàn)過。這是SYN Flood攻擊帶給IP地址的第一個(gè)統(tǒng)計(jì)特征。另外,當(dāng)SYN攻擊報(bào)文中IP地址為固定值時(shí),IP地址的統(tǒng)計(jì)特征將呈現(xiàn)聚集趨勢;當(dāng)SYN攻擊報(bào)文中IP地址為隨機(jī)值時(shí),這時(shí)IP地址的統(tǒng)計(jì)特征呈現(xiàn)發(fā)散趨勢。這是SYN Flood攻擊帶給IP地址的第二個(gè)統(tǒng)計(jì)特征。
(2)端口號
當(dāng)構(gòu)造SYN攻擊報(bào)文時(shí),源端口號/目的端口號為固定值時(shí),使得源端口號/目的端口號統(tǒng)計(jì)特征呈現(xiàn)聚集趨勢;當(dāng)構(gòu)造SYN攻擊報(bào)文時(shí),源端口號/目的端口號為隨機(jī)值時(shí),使得源端口號/目的端口號統(tǒng)計(jì)特征呈現(xiàn)發(fā)散趨勢。
(3)序列號
與端口號相似,當(dāng)構(gòu)造SYN攻擊報(bào)文時(shí),報(bào)文的序列號也存在固定值和隨機(jī)值,也會導(dǎo)致序列號的統(tǒng)計(jì)特征也呈現(xiàn)聚集或發(fā)散趨勢。
(4)標(biāo)志位
根據(jù)TCP/IP協(xié)議,與TCP連接相關(guān)的標(biāo)志位主要為ACK、RST、SYN、FIN。在TCP連接正常建立和終止過程中,網(wǎng)絡(luò)中這些標(biāo)志位的報(bào)文數(shù)量存在一定對稱性。然而,當(dāng)網(wǎng)絡(luò)中存在SYNFlood攻擊時(shí),這種數(shù)量上的對稱性將遭到破壞。
需要注意的是當(dāng)惡意攻擊者在大量發(fā)送SYN報(bào)文的同時(shí),向目標(biāo)服務(wù)器發(fā)送相應(yīng)數(shù)量的SYN/ACK報(bào)文、ACK報(bào)文、RST報(bào)文、FIN報(bào)文、FIN/ACK報(bào)文時(shí),會促使目前大多數(shù)SYN Flood檢測技術(shù)失去作用。針對這種新型防檢測的SYN Flood攻擊,需要嚴(yán)格按照報(bào)文的源地址和目的地址進(jìn)行報(bào)文統(tǒng)計(jì)分析。
(5)TCP半連接隊(duì)列
由SYN Flood攻擊原理可以看出,攻擊的最終目的是耗盡TCP半連接隊(duì)列,從而導(dǎo)致拒絕服務(wù)。因此,TCP半連接隊(duì)列是SYN Flood攻擊最根本目標(biāo),也能最直接、準(zhǔn)確反應(yīng)出SYN Flood攻擊的存在。
3 基于統(tǒng)計(jì)特征的檢測算法(Detection algorithm
based on statistical features)
該算法主要分為獲取TCP連接信息、提取統(tǒng)計(jì)特征、檢測攻擊三個(gè)部分。第一部分主要從半連接隊(duì)列和全連接隊(duì)列中獲取所需的連接信息。第二部分根據(jù)第一部分的連接信息,提取半連接隊(duì)列長度、IP地址、標(biāo)志位、源端口號、目的端口號、序列號的統(tǒng)計(jì)特征。第三部分,根據(jù)第二部分的統(tǒng)計(jì)特征,通過BP神經(jīng)網(wǎng)絡(luò)判斷網(wǎng)絡(luò)中是否存在SYN Flood攻擊。
3.1 獲取TCP連接信息
為了根據(jù)上述統(tǒng)計(jì)特征快速檢測到SYN Flood,需要從半連接隊(duì)列提取半連接信息,從全連接隊(duì)列中提取已經(jīng)建立連接的IP地址庫。本文分別采用以下兩種策略提取連接信息。
(1)基于集合方式提取半連接信息
為了避免頻繁訪問半連接隊(duì)列造成消耗過多的CPU和內(nèi)存資源,本文采用周期性提取半連接隊(duì)列中信息。同時(shí),為了方便對半連接隊(duì)列的快速處理,每間隔時(shí)間t將半連接隊(duì)列中狀態(tài)信息提取到狀態(tài)集合Sett中,其中集合定義如下:
4 實(shí)驗(yàn)與結(jié)果(Experiment and results)
為了最大限度模仿互聯(lián)網(wǎng)環(huán)境和檢測本文方法的有效性,選擇貴陽學(xué)院論壇作為實(shí)驗(yàn)對象,該論壇運(yùn)行于Linux服務(wù)器上,面向全校師生開放,具有很高的訪問量。
4.1 獲取樣本數(shù)據(jù)
由于BP神經(jīng)網(wǎng)絡(luò)在應(yīng)用于檢測之前必須學(xué)習(xí),因此需要采集一定數(shù)量的半連接信息和全連接信息用于訓(xùn)練模型。
(1)獲取半連接信息樣本
為了采集無SYN Flood攻擊的網(wǎng)絡(luò)流量數(shù)據(jù),收集了該論壇24小時(shí)的正常流量信息。在服務(wù)器上每間隔5分鐘從半連接隊(duì)列提取一次半連接信息存入MySQL數(shù)據(jù)庫中。這樣共采集到288條無SYN Flood攻擊的樣本數(shù)據(jù)。
為了獲取帶有SYN Flood攻擊的網(wǎng)絡(luò)流量數(shù)據(jù),首先分別采用固定和隨機(jī)的IP地址、端口、序列號組裝SYN攻擊報(bào)文,再采用不同的速率向服務(wù)器發(fā)送這些攻擊報(bào)文,最后在論壇服務(wù)器采集半連接信息。與采集無SYN Flood攻擊的流量一樣,在服務(wù)器上每間隔5分鐘從半連接隊(duì)列中提取一次半連接信息存入MySQL數(shù)據(jù)庫中,持續(xù)12小時(shí),共得到144條含SYN Flood攻擊的樣本數(shù)據(jù)。
(2)獲取全連接信息樣本
Netfilter是從Linux2.4版本之后提供的一個(gè)通用防火墻框架,該框架在報(bào)文流經(jīng)的幾個(gè)關(guān)鍵點(diǎn)定義了大量HOOK,以方便用戶注冊鉤子函數(shù),實(shí)現(xiàn)對報(bào)文的自定義處理。NF_IP_LOCAL_IN是Netfilter在報(bào)文流入防火墻網(wǎng)絡(luò)層處定義的HOOK。在NF_IP_LOCAL_IN處可以增加自定義處理,判斷報(bào)文的類型,若是ACK報(bào)文則提取IP地址存入BloomFilter中。為了保證全連接信息與半連接信息同步匹配,在采集半連接信息的同時(shí),將BloomFilter瞬時(shí)狀態(tài)存入的MySQL數(shù)據(jù)庫中。
4.2 實(shí)驗(yàn)結(jié)果與分析
本文選取2/3無SYN Flood攻擊的樣本和存在SYN Flood攻擊的樣本作為訓(xùn)練數(shù)據(jù),剩余的1/3樣本用于驗(yàn)證本文方法的有效性。訓(xùn)練中將LMBP神經(jīng)網(wǎng)絡(luò)的輸出resultt分為兩類:區(qū)間[0,0.5]為正常態(tài),即不存在SYN Flood攻擊;區(qū)間(0.5,1]為攻擊態(tài),即存在SYN Flood攻擊。
為了驗(yàn)證本文方法的有效性,本文選擇檢測的誤報(bào)率和漏報(bào)率作為評價(jià)標(biāo)準(zhǔn),并與基于TCP緩存的檢測方法[6]、基于狀態(tài)防火墻的檢測[7]、基于輕量級檢測和混合連接策略的SYN Flood防御方法[8],各種方法的檢測結(jié)果如表1所示。
通過表1可以看出,本文檢測方法相對于其他兩種方法無論是在誤報(bào)率還是在漏報(bào)率方面均有不同程度的降低。通過以上實(shí)驗(yàn)結(jié)果可以看出,本文提出的檢測方法相對于已有的SYN Flood攻擊檢測方法具有更好的檢測效果。
5 結(jié)論(Conclusion)
針對分布式SYN Flood攻擊會引起網(wǎng)絡(luò)中基于IP地址、標(biāo)志位、端口號、序列號的統(tǒng)計(jì)特征發(fā)生異常。本文提出一種基于統(tǒng)計(jì)特征的SYN Flood攻擊檢測的方法。該方法首先從半連接隊(duì)列和全連接隊(duì)列中獲取連接信息,再分別提取基于IP地址、標(biāo)志位、端口號、序列號的統(tǒng)計(jì)特征,最后使用LMBP算法得到檢測結(jié)果。實(shí)驗(yàn)結(jié)果表明該算法具有較好的檢測效果。下一步的工作是研究如何將此檢測方法與防御策略結(jié)合適用,以提高防御效果。
參考文獻(xiàn)(References)
[1] MING Yu.An Adaptive Method for Source-End Detection of Pulsing Dos Attacks[J].International Journal of Security and Its Applications,2013,7(5):279-288.
[2] MITKO B.Analysis of the SYN Flood Dos Attack[J].I.J.Computer Network and Information Security,2013,8(1):1-11.
[3] Behrouz A.Forouzan.TCP/IP Protocol Suite,F(xiàn)ourth Edition[M].Beijing:Tsinghua University Press,2014.
[4] 許曉東,楊海亮,朱士瑞.基于重尾特征的SYN洪流檢測方法[J].計(jì)算機(jī)工程,2008,34(22):179-181.
[5] 陶建喜,等.非對稱路由環(huán)境下SYN flood攻擊防御方法[J].通信學(xué)報(bào),2013,8(34):285-291.
[6] 胡鴻,袁津生,郭敏哲.基于TCP緩存的DDoS攻擊檢測算法[J].計(jì)算機(jī)工程,2009,35(16):112-114.
[7] 劉云.基于Linux平臺的新的SYN Flood防御模型研究[J].計(jì)算機(jī)科學(xué),2013,11A:210-213.
[8] 劉云.基于輕量級檢測和混合連接策略的SYN Flood防御方法[J].計(jì)算機(jī)應(yīng)用與軟件,2016,11(33):310-313.
作者簡介:
劉 云(1981-),女,碩士,副教授.研究領(lǐng)域;網(wǎng)絡(luò)安全.
何 翼(1981-),女,碩士,副教授.研究領(lǐng)域:無線傳感網(wǎng)絡(luò).