摘 要: 分析SYN flood attack攻擊原理,并在此基礎(chǔ)上研究幾種典型的SYN flood 攻擊檢測(cè)方法。對(duì)主要技術(shù)進(jìn)行分析和比較,這些技術(shù)均有各自的優(yōu)點(diǎn)和局限性,多種方法有機(jī)融合互補(bǔ)將成為SYN flood 攻擊檢測(cè)研究的重點(diǎn)。
關(guān)鍵詞: SYN flood攻擊;TCP協(xié)議;檢測(cè)
SYN flood攻擊是一種當(dāng)前流行的DoS與DDoS的方式之一,主要是利用TCP協(xié)議的三次握手的缺陷,造成服務(wù)器上TCP連接表溢出[1],而攻擊服務(wù)器響應(yīng)TCP連接請(qǐng)求的能力。TCP是TCP/IP體系中的運(yùn)輸層協(xié)議,是面向連接的,其三次握手過程數(shù)據(jù)包都通過IP協(xié)議傳輸。而IP協(xié)議是一種不可靠、盡力而為的網(wǎng)絡(luò)協(xié)議,缺乏認(rèn)證和保密措施,因此為否認(rèn)、拒絕等欺瞞行為開了方便之門[2]。目前,DDos攻擊中約有90%是SYN flood攻擊[3],研究 SYN flood攻擊檢測(cè)技術(shù)對(duì)網(wǎng)絡(luò)安全意義重大。
1 SYN flood 原理
TCP連接的建立是通過三次握手來初始化[4]。三次握手建立TCP連接如圖1所示。
在TCP連接的三次握手中,若用戶向服務(wù)器發(fā)送了SYN報(bào)文后突然死機(jī)或掉線,則服務(wù)器在發(fā)出SYN+ACK應(yīng)答報(bào)文后將無法收到客戶端的ACK報(bào)文,導(dǎo)致第三次握手無法完成。這時(shí),服務(wù)器端的TCP/IP棧中會(huì)保留這個(gè)半連接狀態(tài),然后再次發(fā)送SYN+ACK給客戶端,并等待一段時(shí)間后丟棄這個(gè)未完成的連接。這段時(shí)間稱為SYN Timeout(一般約為30 s~2 min)[4]。但如有攻擊者大量模擬這種情況,產(chǎn)生大量的半連接,服務(wù)器將為維護(hù)這些半連接而消耗大量的資源,進(jìn)而導(dǎo)致服務(wù)器的TCP/IP堆棧溢出,使服務(wù)器無法響應(yīng)正常用戶的請(qǐng)求。SYN flood攻擊就是利用這種行為發(fā)動(dòng)攻擊。
正常情況下,連接超時(shí)后,服務(wù)器會(huì)清理出TCP連接表中已超時(shí)連接的相關(guān)信息。但攻擊者不斷給服務(wù)器發(fā)送大量的欺騙的TCP連接請(qǐng)求,使TCP連接表一直處于被填滿狀態(tài),導(dǎo)致服務(wù)器無法響應(yīng)大多數(shù)合法的連接請(qǐng)求。
根據(jù)攻擊源的IP地址,SYN flood攻擊可分為以下三種:(1)使用本機(jī)的IP發(fā)送SYN欺騙包;(2)假冒本網(wǎng)段中未在線的多臺(tái)主機(jī)IP發(fā)送SYN欺騙包;(3)隨機(jī)產(chǎn)生偽造的IP地址發(fā)送SYN欺騙包。為增加攻擊的力度、隱蔽性和效率,使用隨機(jī)源地址進(jìn)行SYN flood攻擊是攻擊者常使用的方法[5]。
2 SYN flood攻擊的檢測(cè)技術(shù)
根據(jù)檢測(cè)的位置SYN flood攻擊檢測(cè)主要分為4種:被攻擊的服務(wù)器端、攻擊源端、攻擊源和被攻擊服務(wù)器間以及正常的主機(jī)端。最受關(guān)注的是服務(wù)器端的檢測(cè)和防護(hù)[6];
2.1 基于TCP協(xié)議SYN-FIN(RST)行為對(duì)特征的檢測(cè)
這種方法檢測(cè)的是連接終端主機(jī)的路由器端,是基于TCP協(xié)議SYN-FIN(RST)包對(duì)特征和連續(xù)變化點(diǎn)的檢測(cè)[6]。首先收集IP數(shù)據(jù)包,然后分類數(shù)據(jù)包。根據(jù)IP訪問包的TCP頭部來識(shí)別TCP SYN、FIN和RST。關(guān)鍵是找出IP數(shù)據(jù)包片偏移中TCP數(shù)據(jù)位,計(jì)算依據(jù)公式為IPoffset=Hdr_LengthIP+TCPoffset。接著利用非參數(shù)的CUSUM(Cumulative Sum)算法分析SYN-FIN(RST)行為對(duì)。CUSUM算法公式如下:
此檢測(cè)方法與參考文獻(xiàn)[6]的檢測(cè)思想類似,都是以TCP協(xié)議的SYN/ACK包數(shù)量為檢測(cè)基礎(chǔ),均需對(duì)IP數(shù)據(jù)包進(jìn)行分類。優(yōu)點(diǎn)是兩個(gè)粒度檢測(cè)引擎采用不同的檢測(cè)機(jī)制,檢測(cè)高效、高速、虛警率低。其缺點(diǎn)主要有:檢測(cè)效果會(huì)隨著攻擊組規(guī)模的增大而衰減。當(dāng)網(wǎng)絡(luò)中攻擊流與網(wǎng)絡(luò)正常業(yè)務(wù)相差不大時(shí),也不易檢測(cè)出來。
的優(yōu)點(diǎn)是存儲(chǔ)保證數(shù)據(jù)的持久性和容錯(cuò)性。如系統(tǒng)出現(xiàn)任何故障,當(dāng)再次進(jìn)入系統(tǒng)時(shí),數(shù)據(jù)仍然存在,可以直接恢復(fù)正常連接。檢查過程是主動(dòng)的,不依賴于其他網(wǎng)絡(luò)設(shè)備。不僅能檢測(cè)SYN flood攻擊,還有一定的消除SYN flood攻擊的功能。
3 現(xiàn)有技術(shù)比較
表3對(duì)上面介紹的SYN flood 攻擊檢測(cè)的防御所采用的方法進(jìn)行簡(jiǎn)單總結(jié)。通過分析和比較已有的SYN flood 攻擊檢測(cè)和防御方法發(fā)現(xiàn),對(duì)于SYN flood 攻擊檢測(cè)和防御目前還沒有完美的解決方案。常規(guī)的SYN flood防御方法因?qū)崿F(xiàn)容易,已得到廣泛應(yīng)用,但防御力度不強(qiáng),不能從根本上避免SYN flood 攻擊的發(fā)生。SYN-cookie技術(shù)已得到廠商的支持, 已在一些防火墻中使用。輸入過濾器在理論上可以徹底避免SYN flood攻擊的發(fā)生,但因其會(huì)使路由器處理數(shù)據(jù)量加大,影響路由器的性能,實(shí)施難度較大,還需進(jìn)一步研究。
本文分析了TCP的三次握手協(xié)議,并針對(duì)SYN flood 攻擊的原理,對(duì)其檢測(cè)方法進(jìn)行了探討。未來的檢測(cè)和防御,應(yīng)趨向于如何綜合應(yīng)用上述幾種檢測(cè)方法,取長(zhǎng)補(bǔ)短,以達(dá)到互相補(bǔ)充和彌補(bǔ),提高檢測(cè)精度和效率。
參考文獻(xiàn)
[1] 黃發(fā)文,徐濟(jì)仁,陳家松.計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)初探[J].計(jì)算機(jī)應(yīng)用研究,2002,19(5):46-48.
[2] 賈春福,劉春波,高敏芬,等.計(jì)算機(jī)安全原理與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2008.7.
[3] 李海偉,張大方,劉俊,等.一種基于主動(dòng)探測(cè)機(jī)制的SYNFlood攻擊檢測(cè)方法[J].計(jì)算機(jī)科學(xué),2010,37(3):117-120.
[4] SYN Flood攻擊的基本原理及防御[EB/OL].http://www.bitscn.com/network/hack/200705/102673.html,2007.
[5] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2003.
[6] WANG H,ZHANG D,SHIN K G.Detecting SYN flood attacks[J/OL].Proceedings of the Annual Joint Conference of the IEEE Computer Society and Communications Society (INFOCOM),New York,NY,USA,2002,3:1530-1539.
[7] Xiao Bin,Chen Wei,He Yanxiang,et al.An active detecting method against SYN flood attack[J/OL].The 11th International Conference on Parallel and Distributed Systems (ICPADS′05),Volume I,709-715,F(xiàn)ukuoka,Japan,2005.07.
[8] 陳杰,薛質(zhì),單蓉勝.一種基于Patricia樹的檢測(cè)Syn Flood攻擊的方法[J].計(jì)算機(jī)工程,2004,30(13):26-28.
[9] 林白,李鷗,趙樺.基于源端網(wǎng)絡(luò)的SYN Flood攻擊雙粒度檢測(cè)[J].計(jì)算機(jī)工程,2005,31(10):132-134.
[10] 許曉東,楊海量,朱士瑞.基于重尾特性的SYN洪流檢瀏方法[J].計(jì)算機(jī)工程,2008,34(22):179-181.
[11] Ling Yun,Gu Ye,Wei Guiyi.Detect SYN flood attack in edge routers[J].International Journal of Security and its Applications,2009,3(1):32-45.