新型接入網(wǎng)絡(luò)中拒絕服務(wù)攻擊的模式數(shù)據(jù)的控制方法及裝置的制造方法
【專利說明】新型接入網(wǎng)絡(luò)中拒絕服務(wù)攻擊的模式數(shù)據(jù)的控制方法及裝
[0001](一)領(lǐng)域本發(fā)明新型接入網(wǎng)絡(luò)中拒絕服務(wù)攻擊的模式數(shù)據(jù)的控制方法及裝置屬于電子信息領(lǐng)域。
[0002](二)簡介
SYN Flood攻擊的過程在TCP協(xié)議中被稱為三次握手(Three-way Handshake),而SYNFlood拒絕服務(wù)攻擊就是通過三次握手而實(shí)現(xiàn)的。
[0003]I)攻擊者向被攻擊服務(wù)器發(fā)送一個(gè)包含SYN標(biāo)志的TCP報(bào)文,SYN(Synchronize)即同步報(bào)文。
[0004]同步報(bào)文會(huì)指明客戶端使用的端口以及TCP連接的初始序號(hào)。
[0005]這時(shí)同被攻擊服務(wù)器建立了第一次握手。
[0006]2)受害服務(wù)器在收到攻擊者的SYN報(bào)文后,將返回一個(gè)SYN+ACK的報(bào)文,表示攻擊者的請(qǐng)求被接受,同時(shí)TCP序號(hào)被加一,ACK(Acknowledgment)即確認(rèn),這樣就同被攻擊服務(wù)器建立了第二次握手。
[0007]3)攻擊者也返回一個(gè)確認(rèn)報(bào)文ACK給受害服務(wù)器,同樣TCP序列號(hào)被加一,到此一個(gè)TCP連接完成,三次握手完成。
[0008]具體原理是:TCP連接的三次握手中,假設(shè)一個(gè)用戶向服務(wù)器發(fā)送了 SYN報(bào)文后突然死機(jī)或掉線,那么服務(wù)器在發(fā)出SYN+ACK應(yīng)答報(bào)文后是無法收到客戶端的ACK報(bào)文的(第三次握手無法完成),這種情況下服務(wù)器端一般會(huì)重試(再次發(fā)SYN+ACK給客戶端)并等待一段時(shí)間后丟棄這個(gè)未完成的連接。
[0009]這段時(shí)間的長度我們稱為SYN Timeout, 一般來說這個(gè)時(shí)間是分鐘的數(shù)量級(jí);一個(gè)用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個(gè)線程等待I分鐘并不是什么很大的問題,但如果有一個(gè)惡意的攻擊者大量模擬這種情況(偽造IP地址),服務(wù)器端將為了維護(hù)一個(gè)非常大的半連接列表而消耗非常多的資源。
[0010]即使是簡單的保存并遍歷也會(huì)消耗非常多的CPU時(shí)間和內(nèi)存,何況還要不斷對(duì)這個(gè)列表中的IP進(jìn)行SYN+ACK的重試。
[0011]實(shí)際上如果服務(wù)器的TCP/IP棧不夠強(qiáng)大,最后的結(jié)果往往是堆棧溢出崩潰一即使服務(wù)器端的系統(tǒng)足夠強(qiáng)大,服務(wù)器端也將忙于處理攻擊者偽造的TCP連接請(qǐng)求而無暇理睬客戶的正常請(qǐng)求(畢竟客戶端的正常請(qǐng)求比率非常之小),此時(shí)從正??蛻舻慕嵌瓤磥?,服務(wù)器失去響應(yīng),這種情況就稱作:服務(wù)器端受到了 SYN Flood攻擊(SYN洪水攻擊)。
[0012]I) 一個(gè)SYN包從C發(fā)送到S
2)防火墻在這里扮演了S的角色來回應(yīng)一個(gè)帶SYN cookie的SYN-ACK包給C
3)C發(fā)送ACK包,接著防火墻和C的連接就建立了。
[0013]4)防火墻這個(gè)時(shí)候扮演C的角色發(fā)送一個(gè)SYN給S
5)S返回一個(gè)SYN給C
6)防火墻扮演C發(fā)送一個(gè)ACK確認(rèn)包給S,這個(gè)時(shí)候防火墻和S的連接也就建立了 7)防火墻轉(zhuǎn)發(fā)C和S間的數(shù)據(jù)
如果系統(tǒng)遭受SYN Flood,那么第三步就不會(huì)有,而且無論在防火墻還是S都不會(huì)收到相應(yīng)在第一步的SYN包,所以我們就擊退了這次SYN洪水攻擊。
[0014]這種攻擊利用RST位來實(shí)現(xiàn)。
[0015]假設(shè)有一個(gè)合法用戶(61.61.61.61)已經(jīng)同服務(wù)器建立了正常的連接,攻擊者構(gòu)造攻擊的TCP數(shù)據(jù),偽裝自己的IP為61.61.61.61,并向服務(wù)器發(fā)送一個(gè)帶有RST位的TCP數(shù)據(jù)段。
[0016]服務(wù)器接收到這樣的數(shù)據(jù)后,認(rèn)為從61.61.61.61發(fā)送的連接有錯(cuò)誤,就會(huì)清空緩沖區(qū)中建立好的連接。
[0017]這時(shí),如果合法用戶61.61.61.61再發(fā)送合法數(shù)據(jù),服務(wù)器就已經(jīng)沒有這樣的連接了,該用戶就必須從新開始建立連接。
[0018]攻擊時(shí),攻擊者會(huì)偽造大量的IP地址,向目標(biāo)發(fā)送RST數(shù)據(jù),使服務(wù)器不對(duì)合法用戶服務(wù),從而實(shí)現(xiàn)了對(duì)受害服務(wù)器的拒絕服務(wù)攻擊。
[0019]攻擊者利用簡單的TCP/IP服務(wù),如Chargen和Echo來傳送毫無用處的占滿帶寬的數(shù)據(jù)。
[0020]通過偽造與某一主機(jī)的Chargen服務(wù)之間的一次的UDP連接,回復(fù)地址指向開著Echo服務(wù)的一臺(tái)主機(jī),這樣就生成在兩臺(tái)主機(jī)之間存在很多的無用數(shù)據(jù)流,這些無用數(shù)據(jù)流就會(huì)導(dǎo)致帶寬的服務(wù)攻擊。
[0021]由于在早期的階段,路由器對(duì)包的最大尺寸都有限制。
[0022]許多操作系統(tǒng)對(duì)TCP/IP棧的實(shí)現(xiàn)在ICMP包上都是規(guī)定64KB,并且在對(duì)包的標(biāo)題頭進(jìn)行讀取之后,要根據(jù)該標(biāo)題頭里包含的信息來為有效載荷生成緩沖區(qū)。
[0023]當(dāng)產(chǎn)生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時(shí),就會(huì)出現(xiàn)內(nèi)存分配錯(cuò)誤,導(dǎo)致TCP/IP堆棧崩潰,致使接受方死機(jī)。
[0024]淚滴攻擊是利用在TCP/IP堆棧中實(shí)現(xiàn)信任IP碎片中的包的標(biāo)題頭所包含的信息來實(shí)現(xiàn)自己的攻擊。IP分段含有指明該分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重疊偏移的偽造分段時(shí)將崩潰。
[0025]Land攻擊原理是:用一個(gè)特別打造的SYN包,它的原地址和目標(biāo)地址都被設(shè)置成某一個(gè)服務(wù)器地址。
[0026]此舉將導(dǎo)致接受服務(wù)器向它自己的地址發(fā)送SYN-ACK消息,結(jié)果這個(gè)地址又發(fā)回ACK消息并創(chuàng)建一個(gè)空連接。被攻擊的服務(wù)器每接收一個(gè)這樣的連接都將保留,直到超時(shí),對(duì)Land攻擊反應(yīng)不同,許多UNIX實(shí)現(xiàn)將崩潰,NT變的極其緩慢(大約持續(xù)5分鐘)。
[0027]一個(gè)簡單的Smurf攻擊原理就是:通過使用將回復(fù)地址設(shè)置成受害網(wǎng)絡(luò)的廣播地址的ICMP應(yīng)答請(qǐng)求(ping)數(shù)據(jù)包來淹沒受害主機(jī)的方式進(jìn)行。
[0028]最終導(dǎo)致該網(wǎng)絡(luò)的所有主機(jī)都對(duì)此ICMP應(yīng)答請(qǐng)求作出答復(fù),導(dǎo)致網(wǎng)絡(luò)阻塞。
[0029]它比ping of death洪水的流量高出I或2個(gè)數(shù)量級(jí)。
[0030]更加復(fù)雜的Smurf將源地址改為第三方的受害者,最終導(dǎo)致第三方崩潰。
[0031 ] 原理:Fraggle攻擊實(shí)際上就是對(duì)Smurf攻擊作了簡單的修改,使用的是UDP應(yīng)答消息而非ICMP。
[0032] J.Mirkovic和P.Reiher [Mirkovic04]提出了拒絕服務(wù)攻擊的屬性分類法,即將攻擊屬性分為攻擊靜態(tài)屬性、攻擊動(dòng)態(tài)屬性和攻擊交互屬性三類,根據(jù)DoS攻擊的這些屬性的不同,就可以對(duì)攻擊進(jìn)行詳細(xì)的分類。
[0033]凡是在攻擊開始前就已經(jīng)確定,在一次連續(xù)的攻擊中通常不會(huì)再發(fā)生改變的屬性,稱為攻擊靜態(tài)屬性。
[0034]攻擊靜態(tài)屬性是由攻擊者和攻擊本身所確定的,是攻擊基本的屬性。那些在攻擊過程中可以進(jìn)行動(dòng)態(tài)改變的屬性,如攻擊的目標(biāo)選取、時(shí)間選擇、使用源地址的方式,稱為攻擊動(dòng)態(tài)屬性。
[0035]而那些不僅與攻擊者相關(guān)而且與具體受害者的配置、檢測與服務(wù)能力也有關(guān)系的屬性,稱為攻擊交互屬性。
[0036]攻擊靜態(tài)屬性主要包括攻擊控制模式、攻擊通信模式、攻擊技術(shù)原理、攻擊協(xié)議和攻擊協(xié)議層等。
[0037](I)攻擊控制方式
攻擊控制方式直接關(guān)系到攻擊源的隱蔽程度。
[0038]根據(jù)攻擊者控制攻擊機(jī)的方式可以分為以下三個(gè)等級(jí):直接控制方式(Direct)、間接控制方式(Indirect)和自動(dòng)控制方式(Auto)。
[0039]最早的拒絕服務(wù)攻擊通常是手工直接進(jìn)行的,即對(duì)目標(biāo)的確定、攻擊的發(fā)起和中止都是由用戶直接在攻擊主機(jī)上進(jìn)行手工操作的。
[0040]這種攻擊追蹤起來相對(duì)容易,如果能對(duì)攻擊包進(jìn)行準(zhǔn)確的追蹤,通常就能找到攻擊者所在的位置。
[0041]由于直接控制方式存在的缺點(diǎn)和攻擊者想要控制大量攻擊機(jī)發(fā)起更大規(guī)模攻擊的需求,攻擊者開始構(gòu)建多層結(jié)構(gòu)的攻擊網(wǎng)絡(luò)。
[0042]多層結(jié)構(gòu)的攻擊網(wǎng)絡(luò)給針對(duì)這種攻擊的追蹤帶來很大困難,受害者在追蹤到攻擊機(jī)之后,還需要從攻擊機(jī)出發(fā)繼續(xù)追蹤控制器,如果攻擊者到最后一層控制器之間存在多重跳板時(shí),還需要進(jìn)行多次追蹤才能最終找到攻擊者,這種追蹤不僅需要人工進(jìn)行操作,耗費(fèi)時(shí)間長,而且對(duì)技術(shù)也有很高的要求。
[0043]這種攻擊模式,是目前最常用的新型攻擊模式。
[0044]自動(dòng)攻擊方式,是在釋放的蠕蟲或攻擊程序中預(yù)先設(shè)定了攻擊模式,使其在特定時(shí)刻對(duì)指定目標(biāo)發(fā)起攻擊。
[0045]這種方式的攻擊,從攻擊機(jī)往往難以對(duì)攻擊者進(jìn)行追蹤,但是這種控制方式的攻擊對(duì)技術(shù)要求也很高。
[0046](2)攻擊通信方式
在間接控制的攻擊中,控制者和攻擊機(jī)之間可以使用多種通信方式,它們之間使用的通信方式也是影響追蹤難度的重要因素之一。
[0047]攻擊通信方式可以分為三種方式,分別是:雙向通信方式(bi)、單向通信方式(mono)和間接通信方式(indirect1n)。
[0048]雙向通信方式是指根據(jù)攻擊端接收到的控制數(shù)據(jù)包中包含了控制者的真實(shí)IP地址,例如當(dāng)控制器使用TCP與攻擊機(jī)連接時(shí),該通信方式就是雙向通信。
[0049]這種通信方式,可以很容易地從攻擊機(jī)查找到其上一級(jí)的控制器。
[0050]單向通信方式指的是攻擊者向攻擊機(jī)發(fā)送指令時(shí)的數(shù)據(jù)包并不包含發(fā)送者的真實(shí)地址信息,例如用偽造ip地址的m)P包向攻擊機(jī)發(fā)送指令。
[0051]這一類的攻擊很難從攻擊機(jī)查找到控制器,只有通過包標(biāo)記等IP追蹤手段,才有可能查找到給攻擊機(jī)發(fā)送指令的機(jī)器的真實(shí)地址。
[0052]但是,這種通信方式在控制上存在若干局限性,例如控制者難以得到攻擊機(jī)的信息反饋和狀態(tài)。
[0053]間接通信方式是新型通過第三者進(jìn)行交換的雙向通信方式,這種通信方式具有隱蔽性強(qiáng)、難以追蹤、難以監(jiān)控和過濾等特點(diǎn),對(duì)攻擊機(jī)的審計(jì)和追蹤往往只能追溯到某個(gè)被用于通信中介的公用服務(wù)器上就再難以繼續(xù)進(jìn)行。
[0054]這種通信方式已發(fā)現(xiàn)的主要是通過IRC(Internet Relay Chat)進(jìn)行通信,從2000年8月出現(xiàn)的名為Trinity的DDoS攻擊工具開始,已經(jīng)有多種DDoS攻擊工具及蠕蟲采納了這種通信方式。
[0055]在基于IRC的傀儡網(wǎng)絡(luò)中,若干攻擊者連接到Internet上的某個(gè)IRC服務(wù)器上,并通過服務(wù)器的聊天程序向傀儡主機(jī)發(fā)送指令。
[0056](3)攻擊原理
DoS攻擊原理主要分為兩種,分別是:語義攻擊(Semantic)和暴力攻擊(Brute)。
[0057]語義攻擊指的是利用目標(biāo)系統(tǒng)實(shí)現(xiàn)時(shí)的缺陷和漏洞,對(duì)目標(biāo)主機(jī)進(jìn)行的拒絕服務(wù)攻擊,這種攻擊往往不需要攻擊者具有很高的攻擊帶寬,有時(shí)只需要發(fā)送I個(gè)數(shù)據(jù)包就可以達(dá)到攻擊目的,對(duì)這種攻擊的防范只需要修補(bǔ)系統(tǒng)中存在的缺陷即可。
[0058]暴力攻擊指的是不需要目標(biāo)系統(tǒng)存在漏洞或缺陷,而是僅僅靠發(fā)送超過目標(biāo)系統(tǒng)服務(wù)能力的服務(wù)請(qǐng)求數(shù)量來達(dá)到攻擊的目的,也就是通常所說的風(fēng)暴攻擊。
[0059]所以防御這類攻擊必須借助于受害者上游路由器等的幫助,對(duì)攻擊數(shù)據(jù)進(jìn)行過濾或分流。