詳解拒絕服務(wù)攻擊的成因和實(shí)現(xiàn)
DoS即Denial Of Service,拒絕服務(wù)的縮寫(xiě)。DoS是指故意攻擊網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的缺陷,或直接通過(guò)野蠻手段耗盡被攻擊對(duì)象的資源,目的是讓目標(biāo)計(jì)算機(jī)或網(wǎng)絡(luò)無(wú)法提供正常的服務(wù)或資源訪問(wèn),使目標(biāo)系統(tǒng)服務(wù)系統(tǒng)停止響應(yīng)甚至崩潰,而在此攻擊中并不包括侵入目標(biāo)服務(wù)器或目標(biāo)網(wǎng)絡(luò)設(shè)備。
這些服務(wù)資源包括網(wǎng)絡(luò)帶寬、文件系統(tǒng)空間容量、開(kāi)放的進(jìn)程或者允許的連接。這種攻擊會(huì)導(dǎo)致資源匱乏,無(wú)論計(jì)算機(jī)的處理速度多快、內(nèi)存容量多大、網(wǎng)絡(luò)帶寬的速度多快都無(wú)法避免這種攻擊帶來(lái)的后果。
事實(shí)上,任何事物都有一個(gè)極限,所以總能找到一個(gè)方法使請(qǐng)求的值大于該極限值,因此就會(huì)故意導(dǎo)致所提供的服務(wù)資源匱乏,導(dǎo)致服務(wù)資源無(wú)法滿足需求的情況。所以,千萬(wàn)不要認(rèn)為擁有了足夠?qū)挼膸捄妥銐蚩斓姆?wù)器就有了一個(gè)不怕拒絕服務(wù)攻擊的高性能網(wǎng)站,拒絕服務(wù)攻擊會(huì)使所有的資源都變得非常渺小。
其實(shí),有個(gè)形象的比喻可以深入理解DoS。街頭的餐館是為大眾提供餐飲服務(wù),如果一群地痞流氓要對(duì)餐館進(jìn)行拒絕服務(wù)攻擊的話,手段會(huì)很多,比如霸占著餐桌不結(jié)賬,堵住餐館的大門不讓路,騷擾餐館的服務(wù)員或廚子不能干活,甚至更惡劣……;相應(yīng)地,計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)是為互聯(lián)網(wǎng)用戶提供互聯(lián)網(wǎng)資源的,如果有黑客要進(jìn)行拒絕服務(wù)攻擊的話,則同樣有好多手段!
今天最常見(jiàn)的拒絕服務(wù)攻擊包括對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的帶寬攻擊和連通性攻擊。
帶寬攻擊是指以極大的通信量沖擊網(wǎng)絡(luò),使得所有可用網(wǎng)絡(luò)資源都被消耗殆盡,最后導(dǎo)致合法的用戶請(qǐng)求無(wú)法通過(guò)。連通性攻擊是指用大量的連接請(qǐng)求沖擊計(jì)算機(jī),使得所有可用的操作系統(tǒng)資源都被消耗殆盡,最終計(jì)算機(jī)無(wú)法再處理合法用戶的請(qǐng)求。
拒絕服務(wù)攻擊是一種對(duì)網(wǎng)絡(luò)危害巨大的惡意攻擊。今天,DoS具有代表性的攻擊手段包括Ping of Death、TearDrop、UDPflood、SYNflood、LandAttack、IP Spoofing DoS等。下面看看它們又是怎么實(shí)現(xiàn)的:
(1)PING死亡攻擊:ICMP(Internet Control Message Protocol,互聯(lián)網(wǎng)控制信息協(xié)議)在互聯(lián)網(wǎng)上用于錯(cuò)誤處理和傳遞控制信息。它的功能之一是與主機(jī)聯(lián)系,通過(guò)發(fā)送一個(gè)“回音請(qǐng)求”(echo request)信息包看看主機(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)題頭所包含的信息來(lái)為有效載荷生成緩沖區(qū)。
而在TCP/IP的RFC文檔中對(duì)包的最大尺寸都有嚴(yán)格限制規(guī)定,許多操作系統(tǒng)的TCP/IP協(xié)議棧都規(guī)定ICMP包大小為64KB,且在對(duì)包的標(biāo)題頭進(jìn)行讀取之后,要根據(jù)該標(biāo)題頭所包含的信息來(lái)為有效載荷生成緩沖區(qū)。
“Ping of Death”就是故意產(chǎn)生畸形的測(cè)試Ping(Packet Internet Groper)包,聲稱自己的尺寸超過(guò)ICMP上限,也就是加載的尺寸超過(guò)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)時(shí)信任IP碎片中包的標(biāo)題所包含的信息來(lái)實(shí)現(xiàn)攻擊。IP分段含有指示該分段所包含的原信息,某些TCP /IP協(xié)議棧在收到含有重疊偏移的偽造分段時(shí)將崩潰。
(3)UDP洪水(UDPflood):如今在Internet上UDP(用戶數(shù)據(jù)包協(xié)議)的應(yīng)用比較廣泛,很多提供WWW和Mail等服務(wù)的設(shè)備通常使用UNIX服務(wù)器,它們默認(rèn)打開(kāi)一些被黑客惡意利用的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)行惡意攻擊,通過(guò)偽造與某一主機(jī)的Chargen服務(wù)之間的一次UDP連接,回復(fù)地指向開(kāi)著Echo服務(wù)的一臺(tái)主機(jī),通過(guò)將Chargen和Echo服務(wù)互連,來(lái)回傳送毫無(wú)用處和占滿帶寬的垃圾數(shù)據(jù),在兩臺(tái)主機(jī)之間生成足夠多的無(wú)用數(shù)據(jù)流,這一拒絕服務(wù)攻擊飛快地導(dǎo)致網(wǎng)絡(luò)可用帶寬耗盡。
(4)SYN洪水(SYNflood):當(dāng)用戶進(jìn)行一次標(biāo)準(zhǔn)的TCP(Transmission Control Protocol)連接時(shí),會(huì)有一個(gè)3次握手過(guò)程。首先是請(qǐng)求服務(wù)方發(fā)送一個(gè)SYN(Synchronize Sequence Number)消息,服務(wù)方收到SYN后,會(huì)向請(qǐng)求方回送一個(gè)SYN-ACK表示確認(rèn),當(dāng)請(qǐng)求方收到SYN-ACK后,再次向服務(wù)方發(fā)送一個(gè)ACK消息,這樣便建成了一次TCP連接。
“SYNFlood”則專門針對(duì)TCP協(xié)議棧在兩臺(tái)主機(jī)間初始化連接握手的過(guò)程進(jìn)行DoS攻擊,其在實(shí)現(xiàn)過(guò)程中只進(jìn)行前兩個(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ù)器來(lái)說(shuō),可用的TCP連接是有限的,因?yàn)橹挥杏邢薜膬?nèi)存緩沖區(qū)用于創(chuàng)建連接,如果這一緩沖區(qū)充滿了虛假連接的初始信息,該服務(wù)器就會(huì)對(duì)接下來(lái)的連接停止響應(yīng),直至緩沖區(qū)里的連接企圖超時(shí)。
如果惡意攻擊方快速連續(xù)地發(fā)送此類連接請(qǐng)求,該服務(wù)器可用的TCP連接隊(duì)列將很快被阻塞,系統(tǒng)可用資源急劇減少,網(wǎng)絡(luò)可用帶寬迅速縮小,長(zhǎng)此下去,除了少數(shù)幸運(yùn)用戶的請(qǐng)求可以插在大量虛假請(qǐng)求中間得到應(yīng)答外,服務(wù)器將無(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變得極其緩慢。
(6)IP欺騙DoS攻擊:這種攻擊利用TCP協(xié)議棧的RST位來(lái)實(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)沒(méi)有這樣的連接,該用戶就被拒絕服務(wù)而只能重新開(kāi)始建立新的連接了。
自從互聯(lián)網(wǎng)絡(luò)誕生以來(lái),DoS攻擊就伴隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展而一直存在,也不斷發(fā)展和升級(jí)。值得一提的是,要找DoS的工具一點(diǎn)不難,黑客群居的網(wǎng)絡(luò)社區(qū)都有共享黑客軟件的傳統(tǒng),并會(huì)在一起交流攻擊的心得經(jīng)驗(yàn),可以很輕松地從互聯(lián)網(wǎng)上獲得這些工具,像以上提到的這些DoS攻擊軟件都是可從網(wǎng)上隨意找到的公開(kāi)軟件。
所以任何一個(gè)上網(wǎng)者都可能構(gòu)成網(wǎng)絡(luò)安全的潛在威脅。DoS攻擊給飛速發(fā)展的互聯(lián)網(wǎng)絡(luò)安全帶來(lái)重大的威脅。然而從某種程度上可以說(shuō),DoS攻擊永遠(yuǎn)不會(huì)消失而且從技術(shù)上目前還沒(méi)有根本的解決辦法。
面對(duì)兇多吉少的DoS險(xiǎn)灘,該如何應(yīng)對(duì)隨時(shí)出現(xiàn)的黑客攻擊呢?首先分析一下DoS攻擊的如下一些原因:
(1)軟件弱點(diǎn)是包含在操作系統(tǒng)或應(yīng)用程序中與安全相關(guān)的系統(tǒng)缺陷,這些缺陷大多是由于錯(cuò)誤的程序編制、粗心的源代碼審核、無(wú)心的副效應(yīng)或一些不適當(dāng)?shù)慕壎ㄋ斐傻摹S捎谑褂玫能浖缀跬耆蕾囉陂_(kāi)發(fā)商,所以對(duì)于由軟件引起的漏洞只能依靠打補(bǔ)丁,安裝Hotfixes和Servicepacks來(lái)彌補(bǔ)。當(dāng)某個(gè)應(yīng)用程序被發(fā)現(xiàn)有漏洞存在時(shí),開(kāi)發(fā)商會(huì)立即給出一個(gè)更新的版本來(lái)修正這個(gè)漏洞。而由開(kāi)發(fā)協(xié)議固有的缺陷導(dǎo)致的DoS攻擊,則可以通過(guò)簡(jiǎn)單的補(bǔ)丁來(lái)加以彌補(bǔ)。
(2)錯(cuò)誤配置也會(huì)成為系統(tǒng)的安全隱患。這些錯(cuò)誤配置通常發(fā)生在硬件裝置、系統(tǒng)或者應(yīng)用程序中,大多是由于一些沒(méi)經(jīng)驗(yàn)的、無(wú)責(zé)任員工或者錯(cuò)誤的理論所導(dǎo)致的。如果對(duì)網(wǎng)絡(luò)中的路由器、防火墻、交換機(jī)以及其他網(wǎng)絡(luò)連接設(shè)備都進(jìn)行正確的配置,則會(huì)減小這些錯(cuò)誤發(fā)生的可能性,因此這種漏洞應(yīng)當(dāng)請(qǐng)教專業(yè)的技術(shù)人員來(lái)修正這些問(wèn)題。
(3)重復(fù)請(qǐng)求導(dǎo)致過(guò)載的拒絕服務(wù)攻擊。當(dāng)對(duì)資源的重復(fù)請(qǐng)求大大超過(guò)資源的支付能力時(shí)就會(huì)造成拒絕服務(wù)攻擊(例如,對(duì)已經(jīng)滿載的Web服務(wù)器進(jìn)行過(guò)多的請(qǐng)求使其過(guò)載)。
要避免系統(tǒng)免受DoS攻擊,從前兩點(diǎn)來(lái)看,網(wǎng)絡(luò)管理員要積極謹(jǐn)慎地維護(hù)系統(tǒng),確保無(wú)安全隱患和漏洞;而針對(duì)第三點(diǎn)的惡意攻擊方式則需要安裝UTM等安全設(shè)備過(guò)濾DoS攻擊,同時(shí)強(qiáng)烈建議網(wǎng)絡(luò)管理員應(yīng)當(dāng)定期查看安全設(shè)備的日志,以便及時(shí)發(fā)現(xiàn)對(duì)系統(tǒng)的安全威脅行為。
UTM設(shè)備一般配置在網(wǎng)關(guān)的位置,比較容易遭受DoS攻擊。UTM設(shè)備通過(guò)調(diào)用內(nèi)部的防DOS模塊,大大提高了抵御DoS攻擊的能力,有力地保障了網(wǎng)絡(luò)的正常運(yùn)行。
UTM的訪問(wèn)控制作為設(shè)備最基本的技術(shù),除了將其對(duì)用戶的訪問(wèn)控制功能發(fā)揮到極致外,還會(huì)不停地融合各種新技術(shù),起到一個(gè)穩(wěn)定的平臺(tái)作用。
UTM安全網(wǎng)關(guān)正在不斷提高其算法的計(jì)算能力,大大縮短用戶通過(guò)UTM檢測(cè)所耗費(fèi)的時(shí)間,提高訪問(wèn)控制功能的可用性;同時(shí),它還可積極調(diào)用IPS、防病毒等各種功能和訪問(wèn)控制原有的安全策略功能,全方位地對(duì)通過(guò)UTM的信息進(jìn)行掃描,將訪問(wèn)控制的安全性能全面提升。因此,UTM作為一種優(yōu)秀的邊界安全設(shè)備,在安全領(lǐng)域的主導(dǎo)地位正在逐步顯現(xiàn)。
【編輯推薦】