源地址沒有找到,間接引用地址:http://wushank.blog.51cto.com/3489095/1156004 DoS到底是什么,?接觸PC機(jī)較早的同志會(huì)直接想到微軟磁盤操作系統(tǒng)的DOS--DiskOperationSystem,?不,此DoS非彼DOS也,,DoS即DenialOfService,,拒絕服務(wù)的縮寫。 DoS是Denial of Service的簡(jiǎn)稱,,即拒絕服務(wù),,造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計(jì)算機(jī)或網(wǎng)絡(luò)無法提供正常的服務(wù),。最常見的DoS攻擊有計(jì)算機(jī)網(wǎng)絡(luò)帶寬攻擊和連通性攻擊,。 一、概念理解: 作個(gè)形象的比喻來理解DoS,。街頭的餐館是為大眾提供餐飲服務(wù),,如果一群地痞流氓要DoS餐館的話,手段會(huì)很多,,比如霸占著餐桌不結(jié)賬,,堵住餐館的大門不讓路,騷擾餐館的服務(wù)員或廚子不能干活,,甚至更惡劣……相應(yīng)的計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)則是為Internet用戶提供互聯(lián)網(wǎng)資源的,,如果有黑客要進(jìn)行DoS攻擊的話,,可以想象同樣有好多手段!今天最常見的DoS攻擊有對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的帶寬攻擊和連通性攻擊,。帶寬攻擊指以極大的通信量沖擊網(wǎng)絡(luò),,使得所有可用網(wǎng)絡(luò)資源都被消耗殆盡,最后導(dǎo)致合法的用戶請(qǐng)求無法通過,。連通性攻擊指用大量的連接請(qǐng)求沖擊計(jì)算機(jī),,使得所有可用的操作系統(tǒng)資源都被消耗殆盡,最終計(jì)算機(jī)無法再處理合法用戶的請(qǐng)求,。 傳統(tǒng)上,,攻擊者所面臨的主要問題是網(wǎng)絡(luò)帶寬,由于較小的網(wǎng)絡(luò)規(guī)模和較慢的網(wǎng)絡(luò)速度的限制,,攻擊者無法發(fā)出過多的請(qǐng)求,。雖然類似“thepingofdeath”的攻擊類型只需要較少量的包就可以摧毀一個(gè)沒有打過補(bǔ)丁的UNIX系統(tǒng),,但大多數(shù)的DoS攻擊還是需要相當(dāng)大的帶寬的,,而以個(gè)人為單位的黑客們很難使用高帶寬的資源。為了克服這個(gè)缺點(diǎn),,DoS攻擊者開發(fā)了分布式的攻擊,。攻擊者簡(jiǎn)單利用工具集合許多的網(wǎng)絡(luò)帶寬來同時(shí)對(duì)同一個(gè)目標(biāo)發(fā)動(dòng)大量的攻擊請(qǐng)求,這就是DDoS攻擊,。 無論是DoS攻擊還是DDoS攻擊,,簡(jiǎn)單的看,都只是一種破壞網(wǎng)絡(luò)服務(wù)的黑客方式,,雖然具體的實(shí)現(xiàn)方式千變?nèi)f化,,但都有一個(gè)共同點(diǎn),就是其根本目的是使受害主機(jī)或網(wǎng)絡(luò)無法及時(shí)接收并處理外界請(qǐng)求,,或無法及時(shí)回應(yīng)外界請(qǐng)求,。其具體表現(xiàn)方式有以下幾種: 1. 制造大流量無用數(shù)據(jù),造成通往被攻擊主機(jī)的網(wǎng)絡(luò)擁塞,,使被攻擊主機(jī)無法正常和外界通信,。 2. 利用被攻擊主機(jī)提供服務(wù)或傳輸協(xié)議上處理重復(fù)連接的缺陷,反復(fù)高頻的發(fā)出攻擊性的重復(fù)服務(wù)請(qǐng)求,,使被攻擊主機(jī)無法及時(shí)處理其它正常的請(qǐng)求,。 3. 利用被攻擊主機(jī)所提供服務(wù)程序或傳輸協(xié)議的本身實(shí)現(xiàn)缺陷,反復(fù)發(fā)送畸形的攻擊數(shù)據(jù)引發(fā)系統(tǒng)錯(cuò)誤的分配大量系統(tǒng)資源,,使主機(jī)處于掛起狀態(tài)甚至死機(jī),。 二、攻擊流程: 要理解dos攻擊,,首先要理解TCP連接的三次握手過程(Three-wayhandshake),。在TCP/IP協(xié)議中,,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接,。 1.第一次握手:建立連接時(shí),,客戶端發(fā)送SYN包((SYN=i)到服務(wù)器,并進(jìn)入SYN SEND狀態(tài),,等待服務(wù)器確認(rèn); 2.第二次握手:服務(wù)器收到SYN包,,必須確認(rèn)客戶的SYN (ACK=i 1 ),同時(shí)自己也發(fā)送一個(gè)SYN包((SYN=j)}即SYN ACK包,,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài); 3.第三次握手:客戶端收到服務(wù)器的SYN ACK包,,向服務(wù)器發(fā)送確認(rèn)包ACK(ACK=j 1),此包發(fā)送完畢,,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),,完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù),。
在上述過程中,,還有一些重要的概念:
1. 半連接:收到SYN包而還未收到ACK包時(shí)的連接狀態(tài)稱為半連接,即尚未完全完成三次握手的TCP連接,。 2. 半連接隊(duì)列:在三次握手協(xié)議中,,服務(wù)器維護(hù)一個(gè)半連接隊(duì)列,該隊(duì)列為每個(gè)客戶端的SYN包(SYN=i )開設(shè)一個(gè)條目,,該條目表明服務(wù)器已收到SYN包,,并向客戶發(fā)出確認(rèn),正在等待客戶的確認(rèn)包,。這些條目所標(biāo)識(shí)的連接在服務(wù)器處于SYN_ RECV狀態(tài),,當(dāng)服務(wù)器收到客戶的確認(rèn)包時(shí),刪除該條目,,服務(wù)器進(jìn)入ESTABLISHED狀態(tài),。 3. Backlog參數(shù):表示半連接隊(duì)列的最大容納數(shù)目。 4. SYN-ACK重傳次數(shù):服務(wù)器發(fā)送完SYN-ACK包,,如果未收到客戶確認(rèn)包,,服務(wù)器進(jìn)行首次重傳,等待一段時(shí)間 仍未收到客戶確認(rèn)包,,進(jìn)行第二次重傳,,如果重傳次數(shù)超過系統(tǒng)規(guī)定的最大重傳次數(shù),系統(tǒng)將該連接信息,、從半連接隊(duì)列中刪除,。注意,每次重傳等待的時(shí)間不一定 相同,。 5. 半連接存活時(shí)間:是指半連接隊(duì)列的條目存活的最長時(shí)間,,也即服務(wù)從收到SYN包到確認(rèn)這個(gè)報(bào)文無效的最長時(shí)間,,該時(shí)間值是所有重傳請(qǐng)求包的最長等待時(shí)間總和。有時(shí)也稱半連接存活時(shí)間為Timeout時(shí)間,、SYN_RECV存活時(shí)間,。
上面三個(gè)參數(shù)對(duì)系統(tǒng)的TCP連接狀況有很大影響。
SYN洪水攻擊屬于DoS攻擊的一種,,它利用TCP協(xié)議缺陷,,通過發(fā)送大量的半連接請(qǐng)求,耗費(fèi)CPU和內(nèi)存資源,。 SYN攻擊除了能影響主機(jī)外,,還可以危害路由器、防火墻等網(wǎng)絡(luò)系統(tǒng),,事實(shí)上SYN攻擊并不管目標(biāo)是什么系統(tǒng),,只要這些系統(tǒng)打開TCP服務(wù)就可以實(shí)施。從圖 4-3可看到,,服務(wù)器接收到連接請(qǐng)求(SYN=i )將此信息加入未連接隊(duì)列,,并發(fā)送請(qǐng)求包給客戶端( SYN=j,ACK=i 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包將長時(shí)間占用未連接隊(duì)列,,正常的SYN 請(qǐng)求被丟棄,,目標(biāo)系統(tǒng)運(yùn)行緩慢,嚴(yán)重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓,。過程如下:
攻擊主機(jī)C(地址偽裝后為C')-----大量SYN包---->被攻擊主機(jī) C'<-------SYN/ACK包----被攻擊主機(jī)
由于C’地址不可達(dá),,被攻擊主機(jī)等待SYN包超時(shí)。攻擊主機(jī)通過發(fā)大量SYN包填滿未連接隊(duì)列,,導(dǎo)致正常SYN包被拒絕服務(wù),。另外,,SYN洪水攻擊還可以通過發(fā)大量ACK包進(jìn)行DoS攻擊。 三,、攻擊手段: 拒絕服務(wù)攻擊是一種對(duì)網(wǎng)絡(luò)危害巨大的惡意攻擊,。今天,DoS具有代表性的攻擊手段包括PingofDeath,、TearDrop,、UDPflood、SYNflood,、LandAttack,、IPSpoofingDoS等??纯此鼈冇质窃趺磳?shí)現(xiàn)的,。 1. 死亡之ping (pingofdeath) ICMP(InternetControlMessageProtocol,Internet控制信息協(xié)議)在Internet上用于錯(cuò)誤處理和傳遞控制信息,。它的功能之一是與主機(jī)聯(lián)系,,通過發(fā)送一個(gè)“回音請(qǐng)求”(echorequest)信息包看看主機(jī)是否“活著”。最普通的ping程序就是這個(gè)功能,。而在TCP/IP的RFC文檔中對(duì)包的最大尺寸都有嚴(yán)格限制規(guī)定,,許多操作系統(tǒng)的TCP/IP協(xié)議棧都規(guī)定ICMP包大小為64KB,且在對(duì)包的標(biāo)題頭進(jìn)行讀取之后,,要根據(jù)該標(biāo)題頭里包含的信息來為有效載荷生成緩沖區(qū),。"PingofDeath"就是故意產(chǎn)生畸形的測(cè)試Ping(PacketInternetGroper)包,聲稱自己的尺寸超過ICMP上限,,也就是加載的尺寸超過64KB上限,,使未采取保護(hù)措施的網(wǎng)絡(luò)系統(tǒng)出現(xiàn)內(nèi)存分配錯(cuò)誤,導(dǎo)致TCP/IP協(xié)議棧崩潰,,最終接收方宕機(jī),。 2. 淚滴 (teardrop)淚滴攻擊利用在TCP/IP協(xié)議棧實(shí)現(xiàn)中信任IP碎片中的包的標(biāo)題頭所包含的信息來實(shí)現(xiàn)自己的攻擊。IP分段含有指示該分段所包含的是原包的哪一段的信息,,某些TCP/IP協(xié)議棧(例如NT在servicepack4以前)在收到含有重疊偏移的偽造分段時(shí)將崩潰,。
3. UDP泛洪(UDPflood) UDPflood攻擊:如今在Internet上UDP(用戶數(shù)據(jù)包協(xié)議)的應(yīng)用比較廣泛,很多提供WWW和Mail等服務(wù)設(shè)備通常是使用Unix的服務(wù)器,,它們默認(rèn)打開一些被黑客惡意利用的UDP服務(wù),。如echo服務(wù)會(huì)顯示接收到的每一個(gè)數(shù)據(jù)包,而原本作為測(cè)試功能的chargen服務(wù)會(huì)在收到每一個(gè)數(shù)據(jù)包時(shí)隨機(jī)反饋一些字符,。UDPflood假冒攻擊就是利用這兩個(gè)簡(jiǎn)單的TCP/IP服務(wù)的漏洞進(jìn)行惡意攻擊,,通過偽造與某一主機(jī)的Chargen服務(wù)之間的一次的UDP連接,回復(fù)地址指向開著Echo服務(wù)的一臺(tái)主機(jī),通過將Chargen和Echo服務(wù)互指,,來回傳送毫無用處且占滿帶寬的垃圾數(shù)據(jù),,在兩臺(tái)主機(jī)之間生成足夠多的無用數(shù)據(jù)流,這一拒絕服務(wù)攻擊飛快地導(dǎo)致網(wǎng)絡(luò)可用帶寬耗盡,。
4. SYN泛洪(SYNflood) SYNflood攻擊:我們知道當(dāng)用戶進(jìn)行一次標(biāo)準(zhǔn)的 TCP(TransmissionControlProtocol)連接時(shí),,會(huì)有一個(gè)3次握手過程。首先是請(qǐng)求服務(wù)方發(fā)送一個(gè) SYN(SynchronizeSequenceNumber)消息,,服務(wù)方收到SYN后,,會(huì)向請(qǐng)求方回送一個(gè)SYN-ACK表示確認(rèn),當(dāng)請(qǐng)求方收到 SYN-ACK后,,再次向服務(wù)方發(fā)送一個(gè)ACK消息,,這樣一次TCP連接建立成功?!癝YNFlooding”則專門針對(duì)TCP協(xié)議棧在兩臺(tái)主機(jī)間初始化連接握手的過程進(jìn)行DoS攻擊,,其在實(shí)現(xiàn)過程中只進(jìn)行前2個(gè)步驟:當(dāng)服務(wù)方收到請(qǐng)求方的SYN-ACK確認(rèn)消息后,請(qǐng)求方由于采用源地址欺騙等手段使得服務(wù)方收不到ACK回應(yīng),,于是服務(wù)方會(huì)在一定時(shí)間處于等待接收請(qǐng)求方ACK消息的狀態(tài),。而對(duì)于某臺(tái)服務(wù)器來說,可用的TCP連接是有限的,,因?yàn)樗麄冎挥杏邢薜膬?nèi)存緩沖區(qū)用于創(chuàng)建連接,,如果這一緩沖區(qū)充滿了虛假連接的初始信息,該服務(wù)器就會(huì)對(duì)接下來的連接停止響應(yīng),,直至緩沖區(qū)里的連接企圖超時(shí),。如果惡意攻擊方快速連續(xù)地發(fā)送此類連接請(qǐng)求,該服務(wù)器可用的TCP連接隊(duì)列將很快被阻塞,,系統(tǒng)可用資源急劇減少,,網(wǎng)絡(luò)可用帶寬迅速縮小,長此下去,,除了少數(shù)幸運(yùn)用戶的請(qǐng)求可以插在大量虛假請(qǐng)求間得到應(yīng)答外,服務(wù)器將無法向用戶提供正常的合法服務(wù),。
5. Land(LandAttack)攻擊 在Land攻擊中,,黑客利用一個(gè)特別打造的SYN包--它的原地址和目標(biāo)地址都被設(shè)置成某一個(gè)服務(wù)器地址進(jìn)行攻擊。此舉將導(dǎo)致接受服務(wù)器向它自己的地址發(fā)送SYN-ACK消息,,結(jié)果這個(gè)地址又發(fā)回ACK消息并創(chuàng)建一個(gè)空連接,,每一個(gè)這樣的連接都將保留直到超時(shí),在Land攻擊下,,許多UNIX將崩潰,,NT變得極其緩慢(大約持續(xù)五分鐘)。 6. IP欺騙dos攻擊這種攻擊利用TCP協(xié)議棧的RST位來實(shí)現(xiàn),,使用IP欺騙,,迫使服務(wù)器把合法用戶的連接復(fù)位,,影響合法用戶的連接。假設(shè)現(xiàn)在有一個(gè)合法用戶(100.100.100.100)已經(jīng)同服務(wù)器建立了正常的連接,,攻擊者構(gòu)造攻擊的TCP數(shù)據(jù),,偽裝自己的IP為100.100.100.100,并向服務(wù)器發(fā)送一個(gè)帶有RST位的TCP數(shù)據(jù)段,。服務(wù)器接收到這樣的數(shù)據(jù)后,,認(rèn)為從100.100.100.100發(fā)送的連接有錯(cuò)誤,就會(huì)清空緩沖區(qū)中已建立好的連接,。這時(shí),,合法用戶100.100.100.100再發(fā)送合法數(shù)據(jù),服務(wù)器就已經(jīng)沒有這樣的連接了,,該用戶就被拒絕服務(wù)而只能重新開始建立新的連接,。 7. smurf攻擊 Smurf是一種簡(jiǎn)單但有效的DDoS攻擊技術(shù),它利用了ICMP(Internet控制信息協(xié)議),。ICMP在Internet上用于錯(cuò)誤處理和傳遞控制信息,。它的功能之一是與主機(jī)聯(lián)系,通過發(fā)送一個(gè)“回音請(qǐng)求”(echorequest)信息包看看主機(jī)是否“活著”,。最普通的ping程序就使用了這個(gè)功能,。Smurf是用一個(gè)偷來的賬號(hào)安裝到一個(gè)計(jì)算機(jī)上的,然后用一個(gè)偽造的源地址連續(xù)ping一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò),,這就導(dǎo)致所有計(jì)算機(jī)所響應(yīng)的那個(gè)計(jì)算機(jī)并不是實(shí)際發(fā)送這個(gè)信息包的那個(gè)計(jì)算機(jī),。這個(gè)偽造的源地址,實(shí)際上就是攻擊的目標(biāo),,它將被極大數(shù)量的響應(yīng)信息量所淹沒,。對(duì)這個(gè)偽造信息包做出響應(yīng)的計(jì)算機(jī)網(wǎng)絡(luò)就成為攻擊的不知情的同謀。 四,、常見的DoS攻擊與防護(hù) 1. SYN Flood攻擊
2. Smurf攻擊:
3. Ping of Death
4. 淚滴攻擊
5. DRDOS |
|