摘要:TCP/IP協(xié)議是目前使用最廣泛的網(wǎng)絡(luò)互連協(xié)議,但是由于TCP三次握手中不安全性,使得Internet具有先天性的不足。隨著近幾年Internet的迅猛發(fā)展,隨之而來(lái)的網(wǎng)絡(luò)安全事件開(kāi)始頻繁發(fā)生,各種攻擊手段層出不窮。以SYN Flood為代表的DDoS攻擊方式,是近年來(lái)出現(xiàn)的一種全新的極具破壞力的拒絕服務(wù)攻擊方式。本文首先介紹了DoS的定義,目前的拒絕服務(wù)攻擊的原理和特點(diǎn),重點(diǎn)對(duì)SYN Flood攻擊方法的檢測(cè)和防范進(jìn)行了分析。
關(guān)鍵詞:TCP/IP協(xié)議;拒絕服務(wù)攻擊;分布式拒絕服務(wù)攻擊;SYN Flood
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)06-10ppp-0c
1 研究背景
Internet可以說(shuō)是人類在二十世紀(jì)最偉大的成就之一,它在迅速發(fā)展的同時(shí)也在越來(lái)越深刻地影響著人們的生活。然而與其飛速發(fā)展相伴的是日益增長(zhǎng)的對(duì)網(wǎng)上站點(diǎn)的安全威脅。許多統(tǒng)計(jì)數(shù)據(jù)都可以表明,當(dāng)今網(wǎng)上“黑客”數(shù)量與安全相關(guān)的事件數(shù)的增長(zhǎng)是相當(dāng)驚人的。對(duì)網(wǎng)上眾多的站點(diǎn)而言,在面臨的諸多安全威脅中,網(wǎng)絡(luò)遠(yuǎn)程攻擊是最主要的方式。尤其是對(duì)于政府、商業(yè)、大學(xué)的重要站點(diǎn),防范網(wǎng)絡(luò)遠(yuǎn)程攻擊更是一項(xiàng)經(jīng)常性的任務(wù)。
2 拒絕服務(wù)攻擊
拒絕服務(wù)攻擊是多種網(wǎng)絡(luò)攻擊的其中一種,主要是通過(guò)消耗系統(tǒng)有限的不可恢復(fù)的資源從而使合法用戶的服務(wù)性能降低或受到拒絕。它分拒絕服務(wù)DoS攻擊和分布式拒絕服務(wù)DDoS攻擊兩大類,后者比前者更復(fù)雜,攻擊更有效。拒絕服務(wù)攻擊的工具和方法很多,并且不斷地涌現(xiàn)。
DoS(Denial of Service)是一種特別的攻擊方法,它不同與以往攻擊方法,攻擊目標(biāo)和結(jié)果是使目標(biāo)主機(jī)或網(wǎng)絡(luò)不能提供正常的服務(wù)。攻擊者不需要獲得系統(tǒng)的帳戶或管理員權(quán)限,不需要知道軟件或系統(tǒng)的漏洞(bug),而且在現(xiàn)在的網(wǎng)絡(luò)環(huán)境下,很難跟蹤和發(fā)現(xiàn)攻擊者,也沒(méi)有有效的手段檢測(cè)和防御,攻擊方法簡(jiǎn)單,攻擊效果明顯。
分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊是由DoS發(fā)展而來(lái)的。傳統(tǒng)的DoS攻擊是攻擊者和被攻擊者是一對(duì)一的關(guān)系,而DDoS是在分布式環(huán)境下,在一定時(shí)間內(nèi)通過(guò)許多臺(tái)機(jī)器向某一目標(biāo)主機(jī)或網(wǎng)絡(luò)發(fā)送過(guò)載的攻擊包使系統(tǒng)失去反應(yīng),從而不能提供正常的服務(wù)。這種攻擊被證實(shí)是非常有效的,而且難以檢測(cè)和防御,是一種危害很大的攻擊手段。以SYN Flood為代表的DDoS攻擊方式已經(jīng)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的保密性、完整性、可用性提出來(lái)了嚴(yán)峻考驗(yàn)。
2.1 DoS概述
DoS攻擊是由人為或非人為發(fā)起的行動(dòng),使主機(jī)硬件、軟件或者兩者同時(shí)失去工作能力,使系統(tǒng)不可訪問(wèn)并因此拒絕合法的用戶服務(wù)要求。這種攻擊往往是針對(duì)TCP/IP協(xié)議中的某個(gè)弱點(diǎn),或者系統(tǒng)存在的某些漏洞,對(duì)目標(biāo)系統(tǒng)發(fā)起的大規(guī)模進(jìn)攻致使服務(wù)器充斥大量要求回復(fù)的信息,消耗網(wǎng)絡(luò)帶寬或系統(tǒng)資源,導(dǎo)致目標(biāo)網(wǎng)絡(luò)或系統(tǒng)不勝負(fù)荷以至于癱瘓而無(wú)法向合法的用戶提供正常的服務(wù)。
DoS技術(shù)嚴(yán)格的說(shuō)只是一種破壞網(wǎng)絡(luò)服務(wù)的技術(shù)方式,具體的實(shí)現(xiàn)多種多樣,但都有一個(gè)共同點(diǎn),就是其根本目的是使受害主機(jī)或網(wǎng)絡(luò)失去及時(shí)接受處理外界請(qǐng)求,或無(wú)法及時(shí)回應(yīng)外界請(qǐng)求。DoS攻擊廣義上可以指任何導(dǎo)致你的服務(wù)器不能正常提供服務(wù)的攻擊。這種攻擊可能就是潑到你服務(wù)器上的一杯水,或者網(wǎng)線被拔下,或者網(wǎng)絡(luò)的交通堵塞等等,最終的結(jié)果是正常用戶不能使用他所需要的服務(wù)了,不論本地或者是遠(yuǎn)程。
DoS攻擊是目前黑客常用的攻擊手法,由于可以通過(guò)使用一些公開(kāi)的軟件進(jìn)行攻擊,它的發(fā)動(dòng)便較為簡(jiǎn)單,能夠產(chǎn)生迅速的效果,同時(shí)要防止這種攻擊又非常困難。從某種程度上可以說(shuō),DOS攻擊永遠(yuǎn)不會(huì)消失而且從技術(shù)上目前沒(méi)有非常根本的解決辦法。
2.2 SYN Flood介紹
1996年9月以來(lái),許多Internet站點(diǎn)遭受了一種稱為SYN洪水(SYN flooding)的DoS攻擊。它是通過(guò)創(chuàng)建大量“半連接”來(lái)進(jìn)行攻擊,任何連接到Internet上并提供基于TCP的網(wǎng)絡(luò)服務(wù)的主機(jī)或路由器都可能成為這種攻擊的目標(biāo),并且跟蹤攻擊的來(lái)源十分困難。SYN Flooding是當(dāng)前最流行的DoS(拒絕服務(wù)攻擊)與DDoS(分布式拒絕服務(wù)攻擊)的方式之一。
SYN攻擊屬于DOS攻擊的一種,它利用TCP協(xié)議缺陷,通過(guò)發(fā)送大量的半連接請(qǐng)求,耗費(fèi)CPU和內(nèi)存資源。SYN攻擊除了能影響主機(jī)外,還可以危害路由器、防火墻等網(wǎng)絡(luò)系統(tǒng),事實(shí)上SYN攻擊并不管目標(biāo)是什么系統(tǒng),只要這些系統(tǒng)打開(kāi)TCP服務(wù)就可以實(shí)施。從圖1可看到,服務(wù)器接收到連接請(qǐng)求(syn=j),將此信息加入未連接隊(duì)列,并發(fā)送請(qǐng)求包給客戶(syn=k,ack=j+1),此時(shí)進(jìn)入SYN_RECV狀態(tài)。當(dāng)服務(wù)器未收到客戶端的確認(rèn)包時(shí),重發(fā)請(qǐng)求包,一直到超時(shí),才將此條目從未連接隊(duì)列刪除。配合IP欺騙,SYN攻擊能達(dá)到很好的效果,通常,客戶端在短時(shí)間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認(rèn)包,并等待客戶的確認(rèn),由于源地址是不存在的,服務(wù)器需要不斷的重發(fā)直至超時(shí),這些偽造的SYN包將長(zhǎng)時(shí)間占用未連接隊(duì)列,正常的SYN請(qǐng)求被丟棄,目標(biāo)系統(tǒng)運(yùn)行緩慢,嚴(yán)重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。

圖1 目標(biāo)服務(wù)器遭受SYN洪水攻擊
3 拒絕服務(wù)攻擊的檢測(cè)與防范
對(duì)于拒絕服務(wù)攻擊而言,目前還沒(méi)有比較完善的解決方案。拒絕服務(wù)攻擊是與目前使用的網(wǎng)絡(luò)協(xié)議密切相關(guān)的,它的徹底解決即使不是不可能的,至少也是極為困難的。此外安全具有整體、全面、協(xié)同的特性,這一特性在拒絕服務(wù)攻擊方面體現(xiàn)得尤為突出,沒(méi)有整個(gè)網(wǎng)絡(luò)社會(huì)的齊心協(xié)力,共同對(duì)付,拒絕服務(wù)攻擊始終是擺在我們面前的難題。雖然如此,我們也不是對(duì)拒絕服務(wù)攻擊一點(diǎn)辦法沒(méi)有,研究人員也在不斷地尋求新的解決方案。拒絕服務(wù)攻擊的對(duì)策主要可以分為三個(gè)方面:檢測(cè)、增強(qiáng)容忍性和追蹤。下面以SYN Flooding攻擊為例介紹拒絕服務(wù)攻擊的檢測(cè)與防范的方法。
3.1 SYN Flooding攻擊檢測(cè)
檢測(cè)SYN攻擊非常的方便,當(dāng)你在服務(wù)器上看到大量的半連接狀態(tài)時(shí),特別是源IP地址是隨機(jī)的,基本上可以斷定這是一次SYN攻擊。我們使用系統(tǒng)自帶的netstat 工具來(lái)檢測(cè)SYN攻擊:
# netstat -n -p TCP
tcp0 0 10.11.11.11:23124.173.152.8:25882 SYN_RECV-
tcp0 0 10.11.11.11:23236.15.133.204:2577 SYN_RECV-
tcp0 0 10.11.11.11:23127.160.6.129:51748 SYN_RECV-
tcp0 0 10.11.11.11:23222.220.13.25:47393 SYN_RECV-
tcp0 0 10.11.11.11:23212.200.204.182:60427 SYN_RECV-
tcp0 0 10.11.11.11:23232.115.18.38:278 SYN_RECV-
tcp0 0 10.11.11.11:23239.116.95.96:5122SYN_RECV-
tcp0 0 10.11.11.11:23236.219.139.207:49162 SYN_RECV-
……
上面是在LINUX系統(tǒng)中看到的,很多連接處于SYN_RECV狀態(tài)(在WINDOWS系統(tǒng)中是SYN_RECEIVED狀態(tài)),源IP地址都是隨機(jī)的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過(guò)下面的命令直接查看在LINUX環(huán)境下某個(gè)端囗的未連接隊(duì)列的條目數(shù):
# netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
顯示TCP端囗22的未連接數(shù)有324個(gè),雖然還遠(yuǎn)達(dá)不到系統(tǒng)極限,但應(yīng)該引起管理員的注意。
3.2 增強(qiáng)容忍性
這類對(duì)策的目的主要在于緩解拒絕服務(wù)攻擊對(duì)受害者的影響,增強(qiáng)受害者在受到攻擊時(shí)的承受能力,這種方法是終端系統(tǒng)最廣泛使用的方法。我們可以采取兩種方法達(dá)到此目的,一是增強(qiáng)受害者的容忍性,二是在攻擊性數(shù)據(jù)流到達(dá)受害者之前將其丟棄(過(guò)濾)掉。
當(dāng)遭受到SYN 洪水攻擊時(shí),如果半開(kāi)連接堆棧已用完,來(lái)自于合法用戶的連接請(qǐng)求將會(huì)被拒絕(SYN包被丟棄),除非此時(shí)有半開(kāi)連接因?yàn)槌瑫r(shí)或者連接完成而釋放。由于攻擊者通常采用的是偽造的源IP地址,連接一般不會(huì)完成,這樣一來(lái),攻擊者發(fā)送的數(shù)據(jù)包會(huì)最大限度的發(fā)揮其預(yù)定的作用。為了使得在半開(kāi)連接堆棧用完時(shí),服務(wù)器還能提供連接。這時(shí),可以隨機(jī)釋放一些未完成的半開(kāi)連接,然后服務(wù)器就可以接受新的連接請(qǐng)求。
除了以上方法外,縮短TCP握手的超時(shí)設(shè)置、增大TCP的半開(kāi)連接棧的大小等均屬于增強(qiáng)容忍性的方法。資源的重新分配如負(fù)載均衡、使用熱備份等也屬于增強(qiáng)容忍性一類。通過(guò)增強(qiáng)容忍性來(lái)對(duì)付拒絕服務(wù)攻擊是非常局限的,因?yàn)橘Y源有限,所以這種措施的效果也很有限的。同時(shí),一些方法如采用熱備份等還是很昂貴的。
3.3 SYN Flood的追蹤
研究表明很多入侵者常常會(huì)因?yàn)樨?zé)任追究的危險(xiǎn)而受到威懾,他們非常害怕失去匿名性。如果我們能追蹤到攻擊者,則攻擊事件的發(fā)生會(huì)減少很多。追蹤的理想目標(biāo)是找到真正的攻擊者,以便追究其責(zé)任,這同時(shí)也達(dá)到了威懾的效果。然而,就目前而言,由于攻擊者通常都是利用傀儡機(jī)發(fā)起攻擊的,要找到真正的攻擊者并不是總能做到的。因此,在拒絕服務(wù)攻擊的追蹤方面,我們主要關(guān)心的是追蹤到攻擊的發(fā)出點(diǎn),即攻擊性數(shù)據(jù)包的源頭。追蹤的結(jié)果既可以作為繼續(xù)追蹤真正攻擊者的基礎(chǔ),也可以為其他的對(duì)策如過(guò)濾提供信息,增強(qiáng)防范效果,還可以作為從法律上追究攻擊者責(zé)任證據(jù)。
3.4 SYN Flood防御策略
關(guān)于SYN攻擊防范技術(shù),人們研究得比較早。歸納起來(lái),主要有兩大類,一類是通過(guò)防火墻、路由器等過(guò)濾網(wǎng)關(guān)防護(hù),另一類是通過(guò)加固TCP/IP協(xié)議棧防范。但必須清楚的是,SYN攻擊不能完全被阻止,我們所做的是盡可能的減輕SYN攻擊的危害,除非將TCP協(xié)議重新設(shè)計(jì)。
4 結(jié)束語(yǔ)
隨著近幾年Internet迅猛的發(fā)展,其網(wǎng)絡(luò)規(guī)模迅速膨脹,網(wǎng)絡(luò)安全事件開(kāi)始頻繁發(fā)生,各種攻擊手段層出不窮。DDoS是常見(jiàn)的一種攻擊手段,其中尤其以SYN Flood攻擊方式為代表,它利用了傳統(tǒng)TCP/IP協(xié)議中三次握手的不安全性,對(duì)互聯(lián)網(wǎng)服務(wù)器發(fā)送大量的SYN報(bào)文,致使服務(wù)器由于接受大量無(wú)效的SYN報(bào)文而使得正常的SYN報(bào)文無(wú)法得到及時(shí)響應(yīng)。并且當(dāng)SYN Flood攻擊強(qiáng)度增大時(shí),服務(wù)器要為大量的SYN報(bào)文在TCP/IP協(xié)議棧分配空間,導(dǎo)致協(xié)議棧的溢出而使服務(wù)器崩潰。以SYN Flood為代表的DDoS攻擊方式已經(jīng)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的保密性、完整性、可用性提出來(lái)了嚴(yán)峻考驗(yàn)。如何檢測(cè)這種攻擊發(fā)生以及如何降低這種攻擊所帶來(lái)的后果以成為目前Internet安全界研究的熱點(diǎn)問(wèn)題。
網(wǎng)絡(luò)安全和網(wǎng)絡(luò)攻擊是事物的兩個(gè)方面,不存在絕對(duì)的安全,由于IPv4協(xié)議存在的缺陷,徹底杜絕SYN Flood攻擊是非常困難的。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)攻擊手段和攻擊技術(shù)進(jìn)一步變化發(fā)展,使得網(wǎng)絡(luò)安全問(wèn)題顯得更至關(guān)重要。只有深入研究網(wǎng)絡(luò)安全問(wèn)題,通過(guò)對(duì)各種攻擊技術(shù)的深入研究,不斷加強(qiáng)抵抗各種攻擊手段的能力。當(dāng)檢測(cè)到DDoS攻擊時(shí),啟動(dòng)應(yīng)付策略,盡可能的追蹤攻擊包,并要及時(shí)向網(wǎng)絡(luò)服務(wù)提供商ISP和有關(guān)應(yīng)急組織報(bào)告并緊密合作,確定攻擊源,從而進(jìn)一步采取行之有效的措施,并積極采取法律武器的幫助,對(duì)一些惡意發(fā)動(dòng)DDoS的個(gè)人與組織予以法律制裁,從源頭上扼殺攻擊的產(chǎn)生。
參考文獻(xiàn):
[1]趙英, 倪錚, 張瑩瑩. TCP SYN分布式拒絕服務(wù)攻擊分析[J]. 微型計(jì)算機(jī), 2006,22(11):19-25.
[2]連潔, 王杰. 入侵檢測(cè)系統(tǒng)在涉密計(jì)算機(jī)中的應(yīng)用研究[J]. 微計(jì)算機(jī)信息, 2005,10(3):31-35.
[3]胡尊美, 王文國(guó). DDoS攻擊技術(shù)發(fā)展研究. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用[J]. 2005,6(5):24-25.
[4]郝桂英, 李志勇. 基于SYN漏洞的DDoS攻擊防御算法實(shí)現(xiàn)[J]. 微型計(jì)算機(jī),2006,22(8):18-21.
[5]陳波, 于泠. DoS攻擊原理與對(duì)策的進(jìn)一步研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2001,37(10):23-26.
[6]陳波, 于泠. SYNflooding攻擊對(duì)策研究[J]. 計(jì)算機(jī)工程, 2001,27(7):18-20.
收稿日期:2007-01-07
作者簡(jiǎn)歷:謝廷俊(1980-),男,中學(xué)二級(jí)教師,本科,主要從事計(jì)算機(jī)信息技術(shù)教學(xué)。