什麼是SYN包 以及SYN攻擊原理

2021-04-28 00:46:05 字數 3221 閱讀 1870

syn是tcp三次握手的第乙個。

tcp連線的第乙個包,非常小的一種資料報。syn攻擊包括大量此類的包,由於這些包看上去來自實際不存在的站點,因此無法有效進行處理。

當兩台計算機在tcp連線上進行會話時,連線一定會首先被初始化。完成這項任務的包叫作syn。乙個syn包簡單的表明另一台計算機已經做好了會話的準 備。只有發出服務請求的計算機才傳送syn包。所以如果你僅拒絕進來的syn包,它將終止其它計算機開啟你計算機上的服務,但是不會終止你使用其它計算機 上的服務,如果它沒有拒絕你傳送的syn包的話。

syn攻擊

本文介紹了4個概念

一:介紹syn

二:什麼是syn洪水攻擊

三:什麼是syn cookie

四:什麼是syn cookie防火牆

c=client(客戶器)

s=server(伺服器)

fw=firewall(防火牆)

一:介紹syn

syn cookie是乙個防止syn洪水攻擊技術。他由d. j. bernstein和eric schenk發明。現在syn cookie已經是linux核心的一部分了(我插一句,預設的stat是no),但是在linux系統的執行過程中它只保護linux系統。我們這裡只 是說建立乙個linux防火牆,他可以為整個網路和所有的網路作業系統提供syn cookie保護你可以用這個防火牆來阻斷半開放式tcp連線,所以這個受保護的系統不會進入半開放狀態(tcp_syn_recv)。當連線完全建立的 時候,客戶機到伺服器的連線要通過防火牆來中轉完成。

二:什麼是syn洪水攻擊?(來自cert的警告)

當乙個系統(我們叫他客戶端)嘗試和乙個提供了服務的系統(伺服器)建立tcp連線,c和服務端會交換一系列報文。

這種連線技術廣泛的應用在各種tcp連線中,例如telnet,web,email,等等。首先是c傳送乙個syn報文給服務端,然後這個服務端傳送乙個 syn-ack包以回應c,接著,c就返回乙個ack包來實現一次完整的tcp連線。就這樣,c到服務端的連線就建立了,這時c和服務端就可以互相交換數 據了。下面是上文的說明:)

client server

------ ------

syn-------------------->

<--------------------syn-ack

ack-------------------->

client and server can now

send service-specific data

在s返回乙個確認的syn-ack包的時候有個潛在的弊端,他可能不會接到c回應的ack包。這個也就是所謂的半開放連線,s需要耗費一定的數量的系統內 存來等待這個未決的連線,雖然這個數量是受限的,但是惡意者可以通過建立很多的半開放式連線來發動syn洪水攻擊 。通過ip欺騙可以很容易的實現半開放連線。攻擊者傳送syn包給受害者系統,這個看起來是合法的,但事實上所謂的c根本不會回應這個 。

syn-ack報文,這意味著受害者將永遠不會接到ack報文。

而此時,半開放連線將最終耗用受害者所有的系統資源,受害者將不能再接收任何其他的請求。通常等待ack返回包有超時限制,所以半開放 。連線將最終超時,而受害者系統也會自動修復。雖然這樣,但是在受害者系統修復之前,攻擊者可以很容易的一直傳送虛假的syn請求包來持續攻擊。在大多數 情況下,受害者幾乎不能接受任何其他的請求,但是這種攻擊不會影響到已經存在的進站或者是出站連線。雖然這樣,受害者系統還是可能耗盡系統資源,以導致其 他種種問題。

攻擊系統的位置幾乎是不可確認的,因為syn包中的源位址多數都是虛假的。當syn包到達受害者系統的時候,沒有辦法找到他的真實位址,因為在基於源位址的資料報傳輸中,源ip過濾是唯一可以驗證資料報源的方法。

三:什麼是syn cookie?

syn cookie就是用乙個cookie來響應tcp syn請求的tcp實現,根據上面的描述,在正常的tcp實現中,當s接收到乙個syn資料報,他返回乙個syn-ack包來應答,然後進入tcp- syn-recv(半開放連線)狀態來等待最後返回的ack包。s用乙個資料空間來描述所有未決的連線,然而這個資料空間的大小是有限的,所以攻擊者將塞 滿這個空間。

在tcp syn cookie的執行過程中,當s接收到乙個syn包的時候,他返回乙個syn-ack包,這個資料報的ack序列號是經過加密的,也就是說,它由源位址, 埠源次序,目標位址,目標埠和乙個加密種子計算得出。然後s釋放所有的狀態。如果乙個ack包從c返回,s將重新計算它來判斷它是不是上個syn- ack的返回包。如果這樣,s就可以直接進入tcp連線狀態並開啟連線。這樣,s就可以

避免守侯半開放連線了。

以上只是syn cookie的基本思路,它在應用過程中仍然有許多技巧。請在前幾年的kernel郵件列表檢視archive of discussions的相關詳細

內容。4,什麼是syn cookie 防火牆

syn cookie 防火牆是syn cookie的乙個擴充套件,syn cookie是建立在tcp堆疊上的,他為linux作業系統提供保護。syn cookie防火牆是linux的

一大特色,你可以使用乙個防火牆來保護你的網路以避免遭受syn洪水攻擊。

下面是syn cookie防火牆的原理

client firewall server

------ ---------- ------

1. syn----------- - - - - - - - - - ->

2. <------------syn-ack(cookie)

3. ack----------- - - - - - - - - - ->

4. - - - - - - -syn--------------->

5. <- - - - - - - - - ------------syn-ack

6. - - - - - - -ack--------------->

7. -----------> relay the ------->

<----------- connection <-------

1:乙個syn包從c傳送到s

2:防火牆在這裡扮演了s的角色來回應乙個帶syn cookie的syn-ack包給c

3:c傳送ack包,接著防火牆和c的連線就建立了。

4:防火牆這個時候扮演c的角色傳送乙個syn給s

5:s返回乙個syn給c

6:防火牆扮演c傳送乙個ack確認包給s,這個時候防火牆和s的連線也就建立了

7:防火牆**c和s間的資料

如果系統遭受syn flood,那麼第三步就不會有,而且無論在防火牆還是s都不會收到相應在第一步的syn包,所以我們就擊退了這次syn洪水攻 擊。

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

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

CC攻擊 DDOS攻擊和SYN攻擊以及防禦

cc攻擊主要攻擊 頁面的,cc攻擊的原理就是攻擊者控制一些虛擬ip不停地發大量資料報給對方伺服器造成伺服器資源耗盡 ddos攻擊有稱為洪水攻擊,ddos攻擊原理就是攻擊者對網路資源傳送過量資料,導致伺服器無法正常執行 syn攻擊又稱為小包攻擊,syn攻擊的原理就是syn它利用tcp協議缺陷,通過傳送...

Linux系統不響應SYN包的解決辦法

關於syn為什麼沒有回應的問題真是鬱悶了好久。現象就是在客戶端發出syn包的時候,伺服器端對客戶端的syn包不做任何回應。在網上逛了逛,終於找到有人也發生了這樣的情況,發生的原因解釋如下 當客戶端發出的syn包帶有時間戳的情況下,經過nat轉換後,如果使用的埠被之前使用過,而且時間戳大於本次syn包...