1. 程式人生 > 其它 >2022-01-07 SYN洪水攻擊

2022-01-07 SYN洪水攻擊

原理:

Client偽造大量的虛假ip,向Server傳送SYN包

Server在接收到SYN包後,會返回響應,並進入SYN_RECV狀態,等待客戶端的確認

但是偽造的ip肯定不會給予響應,於是Server以為資料包丟失,不斷重發,直到超時

危害:

這些偽造的SYN包會長期佔用未連線佇列,導致後來真實的ip無法加入佇列,從而被丟棄,引起網路擁堵甚至網路癱瘓。

如何確認是SYN攻擊:

當伺服器上有大量的半連線且ip為隨機的,可以確認是SYN攻擊。

Syn_Flood防禦

cookie源認證:

原理是syn報文首先由DDOS防護系統來響應syn_ack。帶上特定的sequence number (記為cookie)。真實的客戶端會返回一個ack 並且Acknowledgment number 為cookie+1。 而偽造的客戶端,將不會作出響應。這樣我們就可以知道那些IP對應的客戶端是真實的,將真實客戶端IP加入白名單。下次訪問直接通過,而其他偽造的syn報文就被攔截。

reset認證:

Reset認證利用的是TCP協議的可靠性,也是首先由DDOS防護系統來響應syn。防護裝置收到syn後響應syn_ack,將Acknowledgement number (確認號)設為特定值(記為cookie)。當真實客戶端收到這個報文時,發現確認號不正確,將傳送reset報文,並且sequence number 為cookie + 1。 而偽造的源,將不會有任何迴應。這樣我們就可以將真實的客戶端IP加入白名單。

TCP首包丟棄:

該演算法利用了TCP/IP協議的重傳特性,來自某個源IP的第一個syn包到達時被直接丟棄並記錄狀態(五元組),在該源IP的第2個syn包到達時進行驗證,然後放行。

當防禦裝置接到一個IP地址的SYN報文後:

接受到syn報文 -> 簡單比對該IP是否存在於白名單中: 存在則轉發到後端,否則進行第2步

不存在於白名單中 -> 檢查是否是該IP在一定時間段內的首次SYN報文: 不是則進行第3步,是則進行第5步

不是首次SYN報文 -> 檢查是否重傳報文: 是重傳則轉發並加入白名單,不是則丟棄並加入黑名單

是首次SYN報文 -> 丟棄並等待一段時間以試圖接受該IP的SYN重傳報文,等待超時則判定為攻擊報文加入黑名單。

原文地址:https://blog.csdn.net/qq_34777600/article/details/81946514?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

本文來自部落格園,作者:{admin-xiaoli},轉載請註明原文連結:{https://www.cnblogs.com/crackerroot}