摘 要: 分析SYN flood attack攻擊原理,,并在此基礎(chǔ)上研究幾種典型的SYN flood 攻擊檢測方法,。對主要技術(shù)進(jìn)行分析和比較,這些技術(shù)均有各自的優(yōu)點(diǎn)和局限性,,多種方法有機(jī)融合互補(bǔ)將成為SYN flood 攻擊檢測研究的重點(diǎn),。
關(guān)鍵詞: SYN flood攻擊,;TCP協(xié)議;檢測
SYN flood攻擊是一種當(dāng)前流行的DoS與DDoS的方式之一,,主要是利用TCP協(xié)議的三次握手的缺陷,,造成服務(wù)器上TCP連接表溢出[1],而攻擊服務(wù)器響應(yīng)TCP連接請求的能力,。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攻擊檢測技術(shù)對網(wǎng)絡(luò)安全意義重大。
1 SYN flood 原理
TCP連接的建立是通過三次握手來初始化[4],。三次握手建立TCP連接如圖1所示,。
在TCP連接的三次握手中,若用戶向服務(wù)器發(fā)送了SYN報文后突然死機(jī)或掉線,,則服務(wù)器在發(fā)出SYN+ACK應(yīng)答報文后將無法收到客戶端的ACK報文,,導(dǎo)致第三次握手無法完成。這時,,服務(wù)器端的TCP/IP棧中會保留這個半連接狀態(tài),,然后再次發(fā)送SYN+ACK給客戶端,并等待一段時間后丟棄這個未完成的連接,。這段時間稱為SYN Timeout(一般約為30 s~2 min)[4],。但如有攻擊者大量模擬這種情況,產(chǎn)生大量的半連接,,服務(wù)器將為維護(hù)這些半連接而消耗大量的資源,,進(jìn)而導(dǎo)致服務(wù)器的TCP/IP堆棧溢出,使服務(wù)器無法響應(yīng)正常用戶的請求,。SYN flood攻擊就是利用這種行為發(fā)動攻擊,。
正常情況下,連接超時后,,服務(wù)器會清理出TCP連接表中已超時連接的相關(guān)信息,。但攻擊者不斷給服務(wù)器發(fā)送大量的欺騙的TCP連接請求,使TCP連接表一直處于被填滿狀態(tài),,導(dǎo)致服務(wù)器無法響應(yīng)大多數(shù)合法的連接請求,。
根據(jù)攻擊源的IP地址,,SYN flood攻擊可分為以下三種:(1)使用本機(jī)的IP發(fā)送SYN欺騙包;(2)假冒本網(wǎng)段中未在線的多臺主機(jī)IP發(fā)送SYN欺騙包,;(3)隨機(jī)產(chǎn)生偽造的IP地址發(fā)送SYN欺騙包,。為增加攻擊的力度、隱蔽性和效率,,使用隨機(jī)源地址進(jìn)行SYN flood攻擊是攻擊者常使用的方法[5],。
2 SYN flood攻擊的檢測技術(shù)
根據(jù)檢測的位置SYN flood攻擊檢測主要分為4種:被攻擊的服務(wù)器端、攻擊源端,、攻擊源和被攻擊服務(wù)器間以及正常的主機(jī)端,。最受關(guān)注的是服務(wù)器端的檢測和防護(hù)[6];
2.1 基于TCP協(xié)議SYN-FIN(RST)行為對特征的檢測
這種方法檢測的是連接終端主機(jī)的路由器端,,是基于TCP協(xié)議SYN-FIN(RST)包對特征和連續(xù)變化點(diǎn)的檢測[6],。首先收集IP數(shù)據(jù)包,然后分類數(shù)據(jù)包,。根據(jù)IP訪問包的TCP頭部來識別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)行為對。CUSUM算法公式如下:
此檢測方法與參考文獻(xiàn)[6]的檢測思想類似,,都是以TCP協(xié)議的SYN/ACK包數(shù)量為檢測基礎(chǔ),,均需對IP數(shù)據(jù)包進(jìn)行分類。優(yōu)點(diǎn)是兩個粒度檢測引擎采用不同的檢測機(jī)制,,檢測高效,、高速、虛警率低,。其缺點(diǎn)主要有:檢測效果會隨著攻擊組規(guī)模的增大而衰減,。當(dāng)網(wǎng)絡(luò)中攻擊流與網(wǎng)絡(luò)正常業(yè)務(wù)相差不大時,也不易檢測出來,。
的優(yōu)點(diǎn)是存儲保證數(shù)據(jù)的持久性和容錯性,。如系統(tǒng)出現(xiàn)任何故障,當(dāng)再次進(jìn)入系統(tǒng)時,,數(shù)據(jù)仍然存在,,可以直接恢復(fù)正常連接。檢查過程是主動的,,不依賴于其他網(wǎng)絡(luò)設(shè)備。不僅能檢測SYN flood攻擊,,還有一定的消除SYN flood攻擊的功能,。
3 現(xiàn)有技術(shù)比較
表3對上面介紹的SYN flood 攻擊檢測的防御所采用的方法進(jìn)行簡單總結(jié),。通過分析和比較已有的SYN flood 攻擊檢測和防御方法發(fā)現(xiàn),對于SYN flood 攻擊檢測和防御目前還沒有完美的解決方案,。常規(guī)的SYN flood防御方法因?qū)崿F(xiàn)容易,,已得到廣泛應(yīng)用,但防御力度不強(qiáng),,不能從根本上避免SYN flood 攻擊的發(fā)生,。SYN-cookie技術(shù)已得到廠商的支持, 已在一些防火墻中使用。輸入過濾器在理論上可以徹底避免SYN flood攻擊的發(fā)生,,但因其會使路由器處理數(shù)據(jù)量加大,,影響路由器的性能,實(shí)施難度較大,,還需進(jìn)一步研究,。
本文分析了TCP的三次握手協(xié)議,并針對SYN flood 攻擊的原理,,對其檢測方法進(jìn)行了探討,。未來的檢測和防御,應(yīng)趨向于如何綜合應(yīng)用上述幾種檢測方法,,取長補(bǔ)短,,以達(dá)到互相補(bǔ)充和彌補(bǔ),提高檢測精度和效率,。
參考文獻(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] 李海偉,,張大方,,劉俊,等.一種基于主動探測機(jī)制的SYNFlood攻擊檢測方法[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樹的檢測Syn Flood攻擊的方法[J].計(jì)算機(jī)工程,2004,,30(13):26-28.
[9] 林白,,李鷗,趙樺.基于源端網(wǎng)絡(luò)的SYN Flood攻擊雙粒度檢測[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.