SYN Flood應如何應對

2021-07-15 20:28:56 字數 1178 閱讀 5701

1 什麼是syn flood攻擊

在tcp三次握手時,伺服器接收客戶端的syn請求,作業系統將為該請求分配乙個tcp(transmission control block),伺服器返回乙個syn/ack請求,並將處於syn_rcvd狀態(半開連線狀態)。

從以上過程可以看到,如果惡意的向某個伺服器端口傳送大量的syn包,則可以使伺服器開啟大量的半開連線,分配tcb,從而消耗大量的伺服器資源,同時也使得正常的連線請求無法被相應。而攻擊發起方的資源消耗相比較可忽略不計。

syn flood是當前最流行的dos(拒絕服務攻擊)與ddos(分布式拒絕服務攻擊)的方式之一。

2 怎樣發現自己處於被攻擊狀態

(1)服務端無法提供正常的tcp服務。連線請求被拒絕或超時;

(2)通過 netstat -an 命令檢查系統,發現有大量的syn_recv連線狀態。  

3 防禦措施

(2)縮短syn timeout時間,由於syn flood攻擊的效果取決於伺服器上保持的syn半連線數,這個值=syn攻擊的頻度 x  syn timeout,所以通過縮短從接收到syn報文到確定這個報文無效並丟棄改連線的時間,例如設定為20秒以下(過低的syn timeout設定可能會影響客戶的正常訪問),可以成倍的降低伺服器的負荷。

(3)設定syn cookie,就是給每乙個請求連線的ip位址分配乙個cookie,如果短時間內連續受到某個ip的重複syn報文,就認定是受到了攻擊,以後從這個ip位址來的包會被一概丟棄。

(4)使用syn proxy防火牆

syn cache技術和syn cookie技術總的來說是一種主機保護技術,需要系統的tcp/ip協議棧的支援,而目前並非所有的作業系統支援這些技術。因此很多防火牆中都提供一種 syn**的功能,其主要原理是對試圖穿越的syn請求進行驗證後才放行,下圖描述了這種過程:

從上圖(左圖)中可以看出,防火牆在確認了連線的有效性後,才向內部的伺服器(listener)發起syn請求,在右圖中,所有的無效連線均無法到達內 部的伺服器。而防火牆採用的驗證連線有效性的方法則可以是syn cookie或syn flood等其他技術。

採用這種方式進行防範需要注意的一點就是防火牆需要對整個有效連線的過程發生的資料報進行**,如下圖所示:

因為防火牆代替發出的syn ack包中使用的序列號為c,而伺服器真正的回應包中序列號為c』,這其中有乙個差值|c-c』|,在每個相關資料報文經過防火牆的時候進行序列號的修改。

如何應対syn flood

syn flood的原理就不介紹了 主要總結一下解決方法 防火牆禁ip 核心引數的調優 linux核心引數調優主要有下面三個 減小tcp synack retries 這個是三次握手中,伺服器回應ack給客戶端裡,重試的次數。預設是5。顯然攻擊者是不會完成整個三次握手的,因此伺服器在發出的ack包在...

軟體測試時間被壓縮,應如何應對

緊急情況下測試週期被壓縮在國內大多數公司都會出現這種情況,那出現這種情況該如何去面對並展開測試呢?首先我們需要弄清楚是什麼原因導致出現這種情況。到底是內部原因導致還是外部原因導致,說到底如果是外部原因導致基本都是由於需求變更引起的,內部原因通常為開發延期導致。在下面我會列舉常見的處理方法 1 如果是...

郵件資料洩露,機構單位應如何應對

安全圈子裡的有句話 百分之九十的企業曾被攻擊過,剩下的百分之十不知情 看似有些誇張,實則是乙個頗為形象的描述。多項研究報告顯示,資訊化程度越高,資料隱私保護問題就越棘手。例如,在雲計算和大資料的技術環境下,原有的資訊保安問題會更加突出,一旦發生資訊洩露,造成的影響也將更加廣泛,產生的後果可能更難消除...