網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 5.4 拒絕服務攻擊 5.4 拒絕服務攻擊拒絕服務攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問。這些資源包括磁盤空間、內存、進程甚至網絡帶寬,從而阻止正常用戶的訪問。其實對網絡帶寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,只要能夠對目標造成麻煩,使某些服務被暫停甚至主機死機,都屬于拒絕服務攻擊。拒絕服務攻擊問題也一直得不到合理的解決,究其原因是因為這是由于網絡協議本身的安全缺陷造成的,從而拒絕服務攻擊也成為了攻擊者的終極手法。 攻擊者進行拒絕服務攻擊,實際上讓服務器實現兩種效果:一是迫使服務器的緩沖區滿,不接收新的請求;二是使用IP欺騙,迫使服務器把合法用戶的連接復位,影響合法用戶的連接。 接下來了解一下幾種常見的拒絕服務攻擊的原理: 1.SYN FooldSYN Flood是當前最流行的DoS(拒絕服務攻擊)與DDoS(Distributed Denial Of Service分布式拒絕服務攻擊)的方式之一,這是一種利用TCP協議缺陷,發送大量偽造的TCP連接請求,使被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。 SYN Flood攻擊的過程在TCP協議中被稱為三次握手(Three-way Handshake),而SYN Flood拒絕服務攻擊就是通過三次握手而實現的。 (1) 攻擊者向被攻擊服務器發送一個包含SYN標志的TCP報文,SYN(Synchronize)即同步報文。同步報文會指明客戶端使用的端口以及TCP連接的初始序號。這時同被攻擊服務器建立了第一次握手。 (2) 受害服務器在收到攻擊者的SYN報文后,將返回一個SYN+ACK的報文,表示攻擊者的請求被接受,同時TCP序號被加一,ACK(Acknowledgement)即確認,這樣就同被攻擊服務器建立了第二次握手。 (3) 攻擊者也返回一個確認報文ACK給受害服務器,同樣TCP序列號被加一,到此一個TCP連接完成,三次握手完成。 具體原理是:TCP連接的三次握手中,假設一個用戶向服務器發送了SYN報文后突然死機或掉線,那么服務器在發出SYN+ACK應答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務器端一般會重試(再次發送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接。這段時間的長度我們稱為SYN Timeout,一般來說這個時間是分鐘的數量級(大約為30秒~2分鐘);一個用戶出現異常導致服務器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況(偽造IP地址),服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源。即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。實際上如果服務器的TCP/IP棧不夠強大,最后的結果往往是堆棧溢出崩潰—— 既使服務器端的系統足夠強大,服務器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從正常客戶的角度看來,服務器失去響應,這種情況就稱作:服務器端受到了SYN Flood攻擊(SYN洪水攻擊)。 2.IP欺騙DOS攻擊這種攻擊利用RST位來實現。假設現在有一個合法用戶(61.61.61.61)已經同服務器建立了正常的連接,攻擊者構造攻擊的TCP數據,偽裝自己的IP為61.61.61.61,并向服務器發送一個帶有RST位的TCP數據段。服務器接收到這樣的數據后,認為從61.61.61.61發送的連接有錯誤,就會清空緩沖區中建立好的連接。這時,如果合法用戶61.61.61.61再發送合法數據,服務器就已經沒有這樣的連接了,該用戶就必須從新開始建立連接。攻擊時,攻擊者會偽造大量的IP地址,向目標發送RST數據,使服務器不對合法用戶服務,從而實現了對受害服務器的拒絕服務攻擊。 3. UDP洪水攻擊攻擊者利用簡單的TCP/IP服務,如Chargen和Echo來傳送毫無用處的占滿帶寬的數據。通過偽造與某一主機的Chargen服務之間的一次的UDP連接,回復地址指向開著Echo服務的一臺主機,這樣就生成在兩臺主機之間存在很多的無用數據流,這些無用數據流就會導致帶寬的服務攻擊。 4. Ping洪流攻擊由于在早期的階段,路由器對包的最大尺寸都有限制。許多操作系統對TCP/IP棧的實現在ICMP包上都是規定64KB,并且在對包的標題頭進行讀取之后,要根據該標題頭里包含的信息來為有效載荷生成緩沖區。當產生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時,就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,致使接受方死機。 5. 淚滴(teardrop)攻擊淚滴攻擊是利用在TCP/IP堆棧中實現信任IP碎片中的包的標題頭所包含的信息來實現自己的攻擊。IP分段含有指明該分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重疊偏移的偽造分段時將崩潰。 6. Land攻擊Land攻擊原理是:用一個特別打造的SYN包,它的原地址和目標地址都被設置成某一個服務器地址。此舉將導致接受服務器向它自己的地址發送SYN-ACK消息,結果這個地址又發回ACK消息并創建一個空連接。被攻擊的服務器每接收一個這樣的連接都將保留,直到超時,對Land攻擊反應不同,許多UNIX實現將崩潰,NT變的極其緩慢(大約持續5分鐘)。 7. Smurf攻擊一個簡單的Smurf攻擊原理就是:通過使用將回復地址設置成受害網絡的廣播地址的ICMP應答請求(ping)數據包來淹沒受害主機的方式進行。最終導致該網絡的所有主機都對此ICMP應答請求作出答復,導致網絡阻塞。它比ping of death洪水的流量高出1或2個數量級。更加復雜的Smurf將源地址改為第三方的受害者,最終導致第三方崩潰。 8.Fraggle攻擊原理:Fraggle攻擊實際上就是對Smurf攻擊作了簡單的修改,使用的是UDP應答消息而非ICMP。 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!