拒絕服務攻擊是如何展開的,?
拒絕服務攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問,,是黑客常用的攻擊手段之一。這些資源包括磁盤空間,、內(nèi)存,、進程甚至網(wǎng)絡(luò)帶寬,,從而阻止正常用戶的訪問。其實對網(wǎng)絡(luò)帶寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,,只要能夠?qū)δ繕嗽斐陕闊?,使某些服務被暫停甚至主機死機,都屬于拒絕服務攻擊,。拒絕服務攻擊問題也一直得不到合理的解決,,究其原因是因為這是由于網(wǎng)絡(luò)協(xié)議本身的安全缺陷造成的,從而拒絕服務攻擊也成為了攻擊者的終極手法,。攻擊者進行拒絕服務攻擊,,實際上讓服務器實現(xiàn)兩種效果:一是迫使服務器的緩沖區(qū)滿,不接收新的請求,;二是使用IP欺騙,,迫使服務器把合法用戶的連接復位,影響合法用戶的連接,。
拒絕服務攻擊的原理
1.SYN Foold
SYN Flood是當前最流行的DoS(拒絕服務攻擊)與DDoS(Distributed Denial Of Service分布式拒絕服務攻擊)的方式之一,,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請求,,使被攻擊方資源耗盡(CPU滿負荷或內(nèi)存不足)的攻擊方式,。
SYN Flood攻擊的過程在TCP協(xié)議中被稱為三次握手(Three-way Handshake),而SYN Flood拒絕服務攻擊就是通過三次握手而實現(xiàn)的,。
(1) 攻擊者向被攻擊服務器發(fā)送一個包含SYN標志的TCP報文,,SYN(Synchronize)即同步報文。同步報文會指明客戶端使用的端口以及TCP連接的初始序號,。這時同被攻擊服務器建立了第一次握手,。
(2) 受害服務器在收到攻擊者的SYN報文后,,將返回一個SYN+ACK的報文,表示攻擊者的請求被接受,,同時TCP序號被加一,,ACK(Acknowledgment)即確認,這樣就同被攻擊服務器建立了第二次握手,。
(3) 攻擊者也返回一個確認報文ACK給受害服務器,,同樣TCP序列號被加一,到此一個TCP連接完成,,三次握手完成,。
具體原理是:TCP連接的三次握手中,假設(shè)一個用戶向服務器發(fā)送了SYN報文后突然死機或掉線,,那么服務器在發(fā)出SYN+ACK應答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),,這種情況下服務器端一般會重試(再次發(fā)送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接。這段時間的長度我們稱為SYN Timeout,,一般來說這個時間是分鐘的數(shù)量級(大約為30秒~2分鐘),;一個用戶出現(xiàn)異常導致服務器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況(偽造IP地址),,服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源,。即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內(nèi)存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試,。實際上如果服務器的TCP/IP棧不夠強大,,最后的結(jié)果往往是堆棧溢出崩潰—— 即使服務器端的系統(tǒng)足夠強大,服務器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),,此時從正??蛻舻慕嵌瓤磥恚掌魇ロ憫?,這種情況就稱作:服務器端受到了SYN Flood攻擊(SYN洪水攻擊),。
2.IP欺騙DOS攻擊
這種攻擊利用RST位來實現(xiàn)。假設(shè)現(xiàn)在有一個合法用戶(61.61.61.61)已經(jīng)同服務器建立了正常的連接,,攻擊者構(gòu)造攻擊的TCP數(shù)據(jù),,偽裝自己的IP為61.61.61.61,并向服務器發(fā)送一個帶有RST位的TCP數(shù)據(jù)段,。服務器接收到這樣的數(shù)據(jù)后,,認為從61.61.61.61發(fā)送的連接有錯誤,就會清空緩沖區(qū)中建立好的連接,。這時,,如果合法用戶61.61.61.61再發(fā)送合法數(shù)據(jù),服務器就已經(jīng)沒有這樣的連接了,,該用戶就必須從新開始建立連接,。攻擊時,,攻擊者會偽造大量的IP地址,向目標發(fā)送RST數(shù)據(jù),,使服務器不對合法用戶服務,,從而實現(xiàn)了對受害服務器的拒絕服務攻擊。
本網(wǎng)站文章僅供交流學習 ,不作為商用,, 版權(quán)歸屬原作者,,部分文章推送時未能及時與原作者取得聯(lián)系,,若來源標注錯誤或侵犯到您的權(quán)益煩請告知,,我們將立即刪除.