冷飯熱炒-談DOS和DDOS***

如果拋開善惡之分,單就純粹的技術而言,“***”和“***”的含義是有很大區別的。現在很多涉及到網絡安全技術的相關事物裏面,都沒有將兩者嚴格劃分,基本都混爲一談。
“***”是指在非授權的情況下,試圖存取信息、處理信息以使系統不可靠、不可用的故意行爲。網絡上的***通常是利用目標系統的漏洞、bug、缺陷而發起的一種行動,它的目的是獲得、修改某些信息、資料或者數據。
“***”在網絡安全技術中是指對目標網絡發起的,以目標被破壞、停止服務等爲目的的行爲。
具體來講,如果說腳本注入、緩衝區溢出等方法屬於技術性***的話, DoS的相關內容將是屬於最特別也是危害最嚴重的惡意暴力性***。
***是一個技術活,通過研究和模擬***技術,可以推導出相對應的行之有效的防禦技術,是對技術的整體提升很有幫助的一種研究方法。如果喜歡網絡安全技術的愛好者想要研究各種***技術,可以在本地構建環境,然後進行測試;而***不同,***基本是屬於一種暴力的、純惡意的破壞行爲,是遭人唾棄並且嚴格禁止的——特別是DoS和DDoS***!
就中國互聯網的發展情況看,DoS和DDoS是從02年開始瘋狂起來的,一直到今天熱度都未曾消退。利用這種***方式敲詐、勒索的刑事案件層出不窮,各大新聞媒體都有很多報道,而發起這樣***的人,現在也都獲得了應有的法律懲罰。
1.1DoS與DDoS的基本概念
“DoS”是Denial of Service,拒絕服務的縮寫。所謂的拒絕服務是當前網絡***手段中最常見的一種。它故意***網絡協議的缺陷或直接通過某種手段耗盡被***對象的資源,目的是讓目標計算機或網絡無法提供正常的服務或資源訪問,使目標系統服務停止響應甚至崩潰,而最值得注意的是,***者在此***中並不***目標服務器或目標網絡設備,單純利用網絡缺陷或者暴力消耗即可達到目的。
從原理上來說,無論***者的***目標(服務器、計算機或網絡服務)的處理速度多快、內存容量多大、網絡帶寬的速度多快都無法避免這種***帶來的後果。任何資源都有一個極限,所以***者總能找到一個方法使請求的值大於該極限值,導致所提供的服務資源耗盡。
從技術分類的角度上來說,最常見的DoS***有對計算機網絡的帶寬***和連通性***。帶寬***指以極大的通信量衝擊網絡,使得所有可用網絡資源都被消耗殆盡,最後導致合法用戶的請求無法通過。連通性***指用大量的連接請求衝擊服務器或計算機,使得所有可用的操作系統資源都被消耗殆盡,最終計算機無法再處理合法用戶的請求。
在網絡還不發達的時候,單一的DoS***一般是採用一對一的方式,也就是***者直接利用自己的計算機或者設備,對***目標發起DoS***。當***目標處在硬件性能低下、網絡連接情況不好等情況的時候,一對一的DoS***效果是非常明顯的,很有可能直接一個***者就搞定一個網站或者一個服務器,讓它拒絕服務。
隨着計算機和網絡技術的發展,硬件設備的處理性能加速度增長,成本也變得非常低廉,網絡的快速發展更是讓帶寬、出入口節點寬度等大大的提升,這讓傳統的DoS***很難湊效。
舉個不太確切的例子來說:假使20年以前,***者利用自己的計算機對一個目標服務器發起DoS***,他通過編寫程序,實現多線程數據發送,每秒給服務器發送5000個數據包(示例數據,沒有實質意義),服務器一會就無法正常訪問了;但是換到今天,就算***者的計算機使用頂級的個人計算機硬件,用最好的配置發起DoS***,如果採用傳統的***方法的話,每秒給服務器發送20000個數據包(示例數據,沒有實質意義),但是服務器每秒已經可以輕鬆的處理20000000個數據包了,這樣的***根本就達不到想要的拒絕服務效果。
隨着這樣情況的出現,***者研究出了新的***手段,也就是DDoS。
DDoS是在傳統的DoS***基礎之上產生的一種新的***方式,即Distributed Denial Of Service,分佈式拒絕服務***。
如果說計算機與網絡的處理能力比以往加大了10倍的話(示例數據,沒有實質意義),那***者使用10臺計算機同時進行***呢?也就達到了可以讓目標拒絕服務的目的。簡單來說,DDoS就是利用更多的計算機來發起***。
就技術實現方式來分析,分佈式拒絕服務***就是***者利用***手段,控制幾百臺,或者成千上萬臺計算機(一般被控制的計算機叫做傀儡主機,或者口頭被網絡安全相關人員稱爲“肉雞”),然後在這些計算機上安裝大量的DDoS程序。這些程序接受來自***者的控制命令,***者同時啓動全部傀儡主機向目標服務器發起拒絕服務***,形成一個DoS***羣,猛烈的***目標,這樣能極爲暴力的將原本處理能力很強的目標服務器攻陷。
通過上面的分析,可以看出DDoS與DoS的最大區別是數量級的關係,DoS相對於DDoS來說就像是一個個體,而DDoS是無數DoS的集合。另一方面,DDoS***方式較爲自動化,***者可以把他的程序安裝到網絡中的多臺機器上,所採用的這種***方式很難被***對象察覺,直到***者發下統一的***命令,這些機器才同時發起進攻。可以說DDoS***是由***集中控制發動的一組DoS***的集合,現在這種方式被認爲是最有效的***形式,並且非常難以抵擋。
1.2經典DoS***類型
DoS***存在很多經典的種類,從理清技術發展脈絡的角度,下面簡單介紹了他們的名稱、原理和基本的***方式。
1.2.1死亡之 ping
“ping of death”又稱“死亡之 ping”,之所以第一個首先列舉它,是因爲很久以前,被網絡媒體誇大的轟轟烈烈的“中美***大戰”上,主要的***方式就是他。其實死亡之ping是利用的ICMP。現在微軟系列操作系統中的命令行中都有ping存在,ping程序實際就是使用的ICMP。本來在正常的情況下,TCP/IP的RFC文檔中對包的最大尺寸都有嚴格限制規定,許多操作系統的TCP/IP協議棧都規定ICMP 包大小爲64KB,且在對包的標題頭進行讀取之後,要根據該標題頭裏包含的信息來爲有效載荷生成緩衝區。但是“Ping of Death”故意產生畸形的測試Ping包,加載的尺寸超過64KB的上限,使未採取保護措施的網絡系統出現內存分配錯誤,導致TCP/IP協議棧崩潰,最終達到目標拒絕服務的目的。
1.2.2淚滴
“teardrop”,又稱“淚滴”:IP數據包在網絡傳遞時,數據包可以分成更小的片段。***者可以通過發送兩段(或者更多)數據包來實現TearDrop***。第一個包的偏移量爲0,長度爲N,第二個包的偏移量小於N。爲了合併這些數據段,TCP/IP堆棧會分配超乎尋常的巨大資源,從而造成系統資源的缺乏甚至機器的重新啓動,達到***者需要的拒絕服務的目的。
1.2.3 UDP洪水
“UDP flood”又稱“UDP洪水”:UDP flood最開始一般應用在針對UNIX類的服務器上,***者通過僞造與某一主機的Chargen服務之間的一次的 UDP 連接,回覆地址指向開着Echo 服務的一臺主機,通過將Chargen 和 Echo服務互指,來回傳送毫無用處且佔滿帶寬的垃圾數據,在兩臺主機之間生成足夠多的無用數據流,這一拒絕服務***飛快地導致網絡可用帶寬耗盡。
1.2.4 SYN洪水
“SYN flood”又稱“SYN洪水”:當用戶進行一次標準的TCP(Transmission Control Protocol)連接時,會有一個三次握手的過程。首先請求服務方發送一個SYN消息,服務方收到SYN後,會向請求方回送一個SYN-ACK表示確認,當請求方收到SYN-ACK後,再次向服務方發送一個ACK消息,這樣下來一次TCP連接就建立成功了。
“SYN Flood”專門針對TCP協議棧在兩臺主機間初始化連接握手的過程進行DoS***,它在實現過程中只進行前2個步驟:當服務方收到請求方的SYN-ACK確認消息後,請求方由於採用源地址欺騙等手段使得服務方收不到ACK迴應,於是服務方會在一定時間處於等待接收請求方ACK消息的狀態。而對於某臺服務器來說,可用的TCP連接是有限的,因爲他們只有有限的內存緩衝區用於創建連接,如果這一緩衝區充滿了虛假連接的初始信息,該服務器就會對接下來的連接停止響應,直至緩衝區裏的連接企圖超時。如果惡意***方快速連續地發送此類連接請求,該服務器可用的TCP連接隊列將很快被阻塞,系統可用資源急劇減少,網絡可用帶寬迅速縮小,長此下去,除了少數幸運用戶的請求可以插在大量虛假請求間得到應答外,服務器將無法向用戶提供正常的合法服務。
這個***方式到今天都有很多***者使用,後續的章節中我們將對此***方式進行詳細分析。
1.2.5 IP欺騙***
這種***利用TCP協議棧的RST來實現,使用IP欺騙迫使服務器把合法用戶的連接復位,影響合法用戶的連接。假設現在有一個合法用戶(123. 123. 123. 123)已經同服務器建立了正常的連接,***者構造***的TCP數據,僞裝自己的IP爲123. 123. 123. 123,並向服務器發送一個帶有RST位的TCP數據段。服務器接收到這樣的數據後,認爲從123. 123. 123. 123發送的連接有錯誤,就會清空緩衝區中已建立好的連接。這時,合法用戶123. 123. 123. 123再發送合法數據,服務器就已經沒有這樣的連接了,該用戶就被拒絕服務而只能重新開始建立新的連接。
1.3新型DDoS***分類
隨着技術的發展,很多新的防範技術和硬件層出不窮的推出,以往老舊的DoS***方式已經被淘汰了很多,極少數單一的DoS***還頑強的存在着,但是DDoS***開始取代DoS,更多新的DDoS***方式出現了。
從技術類別上將,目前的網絡情況中,DoS和DDoS當前主要有三種流行的概括性分類。
1.3.1經過升級和變化的SYN/ACK Flood***。
這種***方法是經典最有效的DoS方法,從原理上來說是可以通殺各種系統的網絡服務,因爲它的技術核心是通過向受害主機發送大量僞造源IP和源端口的SYN或ACK 包,導致主機的緩存資源被耗盡或忙於發送迴應包而造成拒絕服務。
原本單一的DoS***比較好防禦,但是***者將整個***方式應用到了DDoS中,利用龐大的殭屍網絡來發起這樣的***,使整個***方式的威力得打極大的提升,是今天依然很流行的一種DDoS***方式。
1.3.2TCP全連接***。
在很多防火牆產品開始爲網絡提供保護以後,出現了這種新的DDoS***方式,可以說它就是爲了繞過或者突破常規防火牆阻擋而存在的。
一般情況下,常規防火牆大多具備過濾TearDrop、Land等傳統DoS***的技術能力,但是他們對用戶正常的TCP連接是允許通過的,也就是說對用戶的正常訪問不限制。但是很多網絡服務程序,比如IIS、Apache等Web服務器能接受的TCP連接數是有限的,一旦有大量的TCP連接,即便是正常的,也會導致網站訪問非常緩慢甚至拒絕服務無法訪問。TCP全連接***就是通過許多殭屍主機不斷地與被***服務器建立大量的TCP連接,直到服務器的內存等資源被耗盡而被拖跨,從而造成拒絕服務。
這種***的特點是可繞過一般防火牆的防護而達到***目的,缺點是需要找很多殭屍主機,並且由於殭屍主機的IP是暴露的,因此容易被追蹤。
1.3.3基於腳本的DDoS***
基於腳本的DDoS***是很新的一種***技術,它主要針對的是ASP、JSP、PHP、CGI等腳本程序,利用腳本程序一般都需要調用Microsoft SQL Server、MySQL、Oracle等數據庫的情況,利用正常的腳本功能,和服務器建立絲毫沒有異常的TCP連接,不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的請求,以***者極小的資源消耗,迫使服務器承受極大的運行壓力,以達到拒絕服務的目的。
一般來說,用戶提交一個GET或POST請求,對用戶自己來說,耗費和帶寬的佔用是幾乎可以忽略的,而服務器爲處理此請求卻可能要從數據庫的上萬條記錄中去查出這個記錄,這種處理過程對資源的耗費相對於用戶來說是比較大的,而對於用戶來說消耗卻是很小的。因此***者只需通過代理向主機服務器大量遞交查詢或者消耗資源比較大的請求,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務。
這種***的特點是可以完全繞過普通的防火牆防護,輕鬆找一些代理或者代理服務器就可實施***。
1.3.4穿專業的抗DDoS防火牆
這種***手法是將來流行的***方法,利用抗DDoS防火牆本身弱點發起的新型***手段,都在試圖穿過抗DDoS防火牆。但現在這種技術都在圈內,不對外公佈,所以知道的人了了無幾,如果這種方法及工具流出的話,將會引起一場安全界內的動盪。
這就是常見的DoS/DDoS***手段,有不對不處望朋友指正。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章