您好,登錄后才能下訂單哦!
小編給大家分享一下SYN如何利用TCP協議發動攻擊,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
SYN攻擊是黑客攻擊的手段。SYN洪泛攻擊的基礎是依靠TCP建立連接時三次握手的設計。第三個數據包驗證連接發起人在第一次請求中使用的源IP地址上具有接受數據包的能力,即其返回是可達的。
要明白這種攻擊的基本原理,還是要從TCP連接建立的過程開始說起:
大家都知道,TCP是基于連接的,也就是說:為了在服務端和客戶端之間傳送TCP數據,必須先建立一個虛擬鏈路,也就是TCP連接,建立TCP連接的標準過程是這樣的:
第一步,請求端(客戶端)發送一個包含SYN標志的TCP報文,SYN即同步,同步報文會指明客戶端使用的端口以及TCP連接的初始序號;
第二步,服務器在收到客戶端的SYN報文后,將返回一個SYN+ACK的報文,表示客戶端的請求被接受,同時TCP序號被加一,ACK即確認。
第三步,客戶端也返回一個確認報文ACK給服務器端,同樣TCP序列號被加一,到此一個TCP連接完成。
以上的連接過程在TCP協議中被稱為三次握手。
問題就出在TCP連接的三次握手中,假設一個用戶向服務器發送了SYN報文后突然死機或掉線,那么服務器在發出SYN+ACK應答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務器端一般會重試(再次發送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接,這段時間的長度我們稱為SYN Timeout,一般來說這個時間是分鐘的數量級(大約為30秒-2分鐘)。
一個用戶出現異常導致服務器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源—-數以萬計的半連接,即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。
實際上如果服務器的TCP/IP棧不夠強大,最后的結果往往是堆棧溢出崩潰—即使服務器端的系統足夠強大,服務器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求。
以上是“SYN如何利用TCP協議發動攻擊”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。