syn泛洪 過濾 SYN泛洪攻擊原理及防禦

2021-10-18 17:34:42 字數 1329 閱讀 5329

拒絕服務攻擊時,攻擊者想非法占用被攻擊者的一些資源,比如如:頻寬,cpu,記憶體等等,使得被攻擊者無法響應正常使用者的請求。

講泛洪攻擊之前,我們先了解一下dos攻擊和ddos攻擊,這兩個攻擊大體相同,前者的意思是:拒絕服務攻擊;後者的意思是:分布式拒絕服務攻擊。不要看這兩個攻擊前乙個比後乙個多了乙個字母,後乙個攻擊比前你乙個攻擊少了"分布式"三個字,其實他們具體的來說還是有所區分的。

ddos是dos攻擊中的一種方法。下面我們來詳細看一下區分:

dos(拒絕服務):不是dos作業系統,造成dos的攻擊行為被稱為dos攻擊,它的目的是使得計算機或者網路我無法提供正常服務。最常見的dos攻擊有計算機網路頻寬攻擊和連通性的攻擊。

ddos(分布式拒絕服務);這個的攻擊借助於客戶/伺服器技術,將多個計算機聯合起來作為乙個攻擊平台,對乙個或者是多個目標發動攻擊,從而成倍的提高就裁決服務攻擊的威力。

簡單地說,ddos的攻擊威力要大於dos的攻擊威力,ddos主要是發動群體攻擊。

以上的內容就是對dos和ddos攻擊文字上的乙個概念。為了更加直觀地表達出來,我在下面附一張圖:

這幅圖呢就是tcp的通訊的三次握手,如果說攻擊端,傳送完第一次握手的資料後,然後就"消失"了,那麼伺服器就會不斷的傳送第二次握手的資料,可是攻擊端的人找不到了。於是,伺服器的資源大量被消耗,直到宕機為止。當然了,如果要完全弄懂機制,需要對tcp有相當深入的了解。

現在回到我們的原題:syn泛洪攻擊,其實這個攻擊主要利用的就是tcp三次握手機制的缺陷。

a(攻擊者)傳送tcp syn,syn是tcp三次握手中的第乙個資料報,而當這個伺服器返回ack以後,a不再進行確認,那這個連線就處在了乙個掛起的狀態,也就是半連線的意思,那麼伺服器收不到再確認的乙個訊息,還會重**送ack給a。這樣一來就會更加浪費伺服器的資源。a就對伺服器傳送非法大量的這種tcp連線,由於每乙個都沒法完成握手的機制,所以它就會消耗伺服器的記憶體最後可能導致伺服器宕機,就無法正常工作了。更進一步說,如果這些半連線的握手請求是惡意程式發出,並且持續不斷,那麼就會導致服務端較長時間內喪失服務功能——這樣就形成了dos攻擊。這種攻擊方式就稱為syn泛洪攻擊。

那麼我們如何去防範這種syn攻擊呢?

其實最常用的乙個手段就是優化主機系統設定。比如降低syn timeout時間,使得主機盡快釋放半連線的占用或者採用syn cookie設定,如果短時間內收到了某個ip的重複syn請求,我們就認為受到了攻擊。我們合理的採用防火牆設定等外部網路也可以進行攔截。

SYN 洪氾攻擊以及如何解決SYN 洪氾攻擊

在三次握手的過程中,伺服器為了響應乙個受到的syn報文段,會分配並初始化連線變數和快取,然後伺服器傳送乙個synack報文段進行響應,並等待客戶端的ack報文段。如果客戶不傳送ack來完成該三次握手的第三步,最終 通常在一分多鐘之後 伺服器將終止該半開連線並 資源。這種tcp連線管理協議的特性就會有...

Python實施SYN泛洪攻擊

python的安裝我就不再 懶 贅 得 述 寫 了,為了方便和速度,我們用清華源安裝scapy 這裡用python2和python3都可以,我編寫的指令碼相容了兩個版本 pip install i scapy等待一下,基本上就安裝好了,如果報錯,那你就執行pip install pip upgrad...

使用Scapy製造SYN洪氾攻擊

usr bin python coding utf 8 from scapy.all import import optparse def synflood src,tgt tcp源埠不斷自增一,而目標埠513不變 for sport in range 1024,65535 iplayer ip s...