国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

黑客知識之SYN攻擊原理以及防范技術
2007-03-01   

據統計,在所有黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。相信很多人還記得2000年YAHOO網站遭受的攻擊事例,當時黑客利用的就是簡單而有效的SYN攻擊,有些網絡蠕蟲病毒配合SYN攻擊造成更大的破壞。本文介紹SYN攻擊的基本原理、工具及檢測方法,并全面探討SYN攻擊防范技術。

據統計,在所有黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。相信很多人還記得2000年YAHOO網站遭受的攻擊事例,當時黑客利用的就是簡單而有效的SYN攻擊,有些網絡蠕蟲病毒配合SYN攻擊造成更大的破壞。本文介紹SYN攻擊的基本原理、工具及檢測方法,并全面探討SYN攻擊防范技術。

一、TCP握手協議

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。

第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

完成三次握手,客戶端與服務器開始傳送數據,在上述過程中,還有一些重要的概念:

未連接隊列:在三次握手協議中,服務器維護一個未連接隊列,該隊列為每個客戶端的SYN包(syn=j)開設一個條目,該條目表明服務器已收到SYN包,并向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連接在服務器處于Syn_RECV狀態,當服務器收到客戶的確認包時,刪除該條目,服務器進入ESTABLISHED狀態。
Backlog參數:表示未連接隊列的最大容納數目。

SYN-ACK 重傳次數 服務器發送完SYN-ACK包,如果未收到客戶確認包,服務器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連接信息從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。

半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連接存活時間為Timeout時間、SYN_RECV存活時間。

二、SYN攻擊原理

SYN攻擊屬于DOS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火墻等網絡系統,事實上SYN攻擊并不管目標是什么系統,只要這些系統打開TCP服務就可以實施。從上圖可看到,服務器接收到連接請求(syn=j),將此信息加入未連接隊列,并發送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態。當服務器未收到客戶端的確認包時,重發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,向服務器不斷地發送syn包,服務器回復確認包,并等待客戶的確認,由于源地址是不存在的,服務器需要不斷的重發直至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統運行緩慢,嚴重者引起網絡堵塞甚至系統癱瘓。

三、SYN攻擊工具

SYN攻擊實現起來非常的簡單,互聯網上有大量現成的SYN攻擊工具。

1、Windows系統下的SYN工具

以synkill.exe為例,運行工具,選擇隨機的源地址和源端囗,并填寫目標機器地址和TCP端囗,激活運行,很快就會發現目標系統運行緩慢。如果攻擊效果不明顯,可能是目標機器并未開啟所填寫的TCP端囗或者防火墻拒絕訪問該端囗,此時可選擇允許訪問的TCP端囗,通常,windows系統開放tcp139端囗,UNIX系統開放tcp7、21、23等端囗。

四、檢測SYN攻擊

檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀態時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat 工具來檢測SYN攻擊:

# netstat -n -p TCP 
tcp 0  0 10.11.11.11:23124.173.152.8:25882  SYN_RECV -
tcp 0  0 10.11.11.11:23236.15.133.204:2577  SYN_RECV -
tcp 0  0 10.11.11.11:23127.160.6.129:51748  SYN_RECV -
tcp 0  0 10.11.11.11:23222.220.13.25:47393  SYN_RECV -
tcp 0  0 10.11.11.11:23212.200.204.182:60427 SYN_RECV -
tcp 0  0 10.11.11.11:23232.115.18.38:278 SYN_RECV -
tcp 0  0 10.11.11.11:23239.116.95.96:5122SYN_RECV -
tcp 0  0 10.11.11.11:23236.219.139.207:49162 SYN_RECV -
...

上面是在LINUX系統中看到的,很多連接處于SYN_RECV狀態(在WINDOWS系統中是SYN_RECEIVED狀態),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。

我們也可以通過下面的命令直接查看在LINUX環境下某個端囗的未連接隊列的條目數:

#netstat -n -p TCP   grep SYN_RECV   grep :22   wc -l 324

顯示TCP端囗22的未連接數有324個,雖然還遠達不到系統極限,但應該引起管理員的注意。

五、SYN攻擊防范技術

關于SYN攻擊防范技術,人們研究得比較早。歸納起來,主要有兩大類,一類是通過防火墻、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防范.但必須清楚的是,SYN攻擊不能完全被阻止,我們所做的是盡可能的減輕SYN攻擊的危害,除非將TCP協議重新設計。

1、過濾網關防護

這里,過濾網關主要指明防火墻,當然路由器也能成為過濾網關。防火墻部署在不同網絡之間,防范外來非法攻擊和防止保密信息外泄,它處于客戶端和服務器之間,利用它來防護SYN攻擊能起到很好的效果。過濾網關防護主要包括超時設置,SYN網關和SYN代理三種。

■網關超時設置

防火墻設置SYN轉發超時參數(狀態檢測的防火墻可在狀態表里面設置),該參數遠小于服務器的timeout時間。當客戶端發送完SYN包,服務端發送確認包后(SYN+ACK),防火墻如果在計數器到期時還未收到客戶端的確認包(ACK),則往服務器發送RST包,以使服務器從隊列中刪去該半連接。值得注意的是,網關超時參數設置不宜過小也不宜過大,超時參數設置過小會影響正常的通訊,設置太大,又會影響防范SYN攻擊的效果,必須根據所處的網絡應用環境來設置此參數。

■SYN網關

SYN網關收到客戶端的SYN包時,直接轉發給服務器;SYN網關收到服務器的SYN/ACK包后,將該包轉發給客戶端,同時以客戶端的名義給服務器發ACK確認包。此時服務器由半連接狀態進入連接狀態。當客戶端確認包到達時,如果有數據則轉發,否則丟棄。事實上,服務器除了維持半連接隊列外,還要有一個連接隊列,如果發生SYN攻擊時,將使連接隊列數目增加,但一般服務器所能承受的連接數量比半連接數量大得多,所以這種方法能有效地減輕對服務器的攻擊。

■SYN代理

當客戶端SYN包到達過濾網關時,SYN代理并不轉發SYN包,而是以服務器的名義主動回復SYN/ACK包給客戶,如果收到客戶的ACK包,表明這是正常的訪問,此時防火墻向服務器發送ACK包并完成三次握手。SYN代理事實上代替了服務器去處理SYN攻擊,此時要求過濾網關自身具有很強的防范SYN攻擊能力。

2、加固tcp/ip協議棧

防范SYN攻擊的另一項主要技術是調整tcp/ip協議棧,修改tcp協議實現。主要方法有SynAttackProtect保護機制、SYN cookies技術、增加最大半連接和縮短超時時間等。tcp/ip協議棧的調整可能會引起某些功能的受限,管理員應該在進行充分了解和測試的前提下進行此項工作。

■SynAttackProtect機制

為防范SYN攻擊,win2000系統的tcp/ip協議棧內嵌了SynAttackProtect機制,Win2003系統也采用此機制。SynAttackProtect機制是通過關閉某些socket選項,增加額外的連接指示和減少超時時間,使系統能處理更多的SYN連接,以達到防范SYN攻擊的目的。默認情況下,Win2000操作系統并不支持SynAttackProtect保護機制,需要在注冊表以下位置增加SynAttackProtect鍵值:

HKLMSYSTEMCurrentControlSetServicesTcpipParameters

當SynAttackProtect值(如無特別說明,本文提到的注冊表鍵值都為十六進制)為0或不設置時,系統不受SynAttackProtect保護。

當SynAttackProtect值為1時,系統通過減少重傳次數和延遲未連接時路由緩沖項(route cache entry)防范SYN攻擊。

當SynAttackProtect值為2時(Microsoft推薦使用此值),系統不僅使用backlog隊列,還使用附加的半連接指示,以此來處理更多的SYN連接,使用此鍵值時,tcp/ip的TCPInitialRTT、window size和可滑動窗囗將被禁止。

我們應該知道,平時,系統是不啟用SynAttackProtect機制的,僅在檢測到SYN攻擊時,才啟用,并調整tcp/ip協議棧。那么系統是如何檢測SYN攻擊發生的呢?事實上,系統根據TcpMaxHalfOpen,TcpMaxHalfOpenRetried 和TcpMaxPortsExhausted三個參數判斷是否遭受SYN攻擊。

TcpMaxHalfOpen 表示能同時處理的最大半連接數,如果超過此值,系統認為正處于SYN攻擊中。Win2000 server默認值為100,Win2000 Advanced server為500。

TcpMaxHalfOpenRetried定義了保存在backlog隊列且重傳過的半連接數,如果超過此值,系統自動啟動SynAttackProtect機制。Win2000 server默認值為80,Win2000 Advanced server為400。

TcpMaxPortsExhausted 是指系統拒絕的SYN請求包的數量,默認是5。

如果想調整以上參數的默認值,可以在注冊表里修改(位置與SynAttackProtect相同)

■ SYN cookies技術

我們知道,TCP協議開辟了一個比較大的內存空間backlog隊列來存儲半連接條目,當SYN請求不斷增加,并這個空間,致使系統丟棄SYN連接。為使半連接隊列被塞滿的情況下,服務器仍能處理新到的SYN請求,SYN cookies技術被設計出來。

SYN cookies應用于linux、FreeBSD等操作系統,當半連接隊列滿時,SYNcookies并不丟棄SYN請求,而是通過加密技術來標識半連接狀態。

在TCP實現中,當收到客戶端的SYN請求時,服務器需要回復SYN+ACK包給客戶端,客戶端也要發送確認包給服務器。通常,服務器的初始序列號由服務器按照一定的規律計算得到或采用隨機數,但在SYN cookies中,服務器的初始序列號是通過對客戶端IP地址、客戶端端囗、服務器IP地址和服務器端囗以及其他一些安全數值等要素進行hash運算,加密得到的,稱之為cookie。當服務器遭受SYN攻擊使得backlog隊列滿時,服務器并不拒絕新的SYN請求,而是回復cookie(回復包的SYN序列號)給客戶端, 如果收到客戶端的ACK包,服務器將客戶端的ACK序列號減去1得到cookie比較值,并將上述要素進行一次hash運算,看看是否等于此cookie。如果相等,直接完成三次握手(注意:此時并不用查看此連接是否屬于backlog隊列)。

在RedHat linux中,啟用SYN cookies是通過在啟動環境中設置以下命令來完成:

# echo 1 ?? /proc/sys/net/ipv4/tcp_syncookies

■ 增加最大半連接數

大量的SYN請求導致未連接隊列被塞滿,使正常的TCP連接無法順利完成三次握手,通過增大未連接隊列空間可以緩解這種壓力。當然backlog隊列需要占用大量的內存資源,不能被無限的擴大。

WIN2000:除了上面介紹的TcpMaxHalfOpen, TcpMaxHalfOpenRetried參數外,WIN2000操作系統可以通過設置動態backlog(dynamic backlog)來增大系統所能容納的最大半連接數,配置動態backlog由AFD.SYS驅動完成,AFD.SYS是一種內核級的驅動,用于支持基于window socket的應用程序,比如ftp、telnet等。AFD.SYS在注冊表的位置:
HKLMSystemCurrentControlSetServicesAFDParametersEnableDynamicBacklog值為1時,表示啟用動態backlog,可以修改最大半連接數。 

MinimumDynamicBacklog表示半連接隊列為單個TCP端囗分配的最小空閑連接數,當該TCP端囗在backlog隊列的空閑連接小于此臨界值時,系統為此端囗自動啟用擴展的空閑連接(DynamicBacklogGrowthDelta),Microsoft推薦該值為20。

MaximumDynamicBacklog是當前活動的半連接和空閑連接的和,當此和超過某個臨界值時,系統拒絕SYN包,Microsoft推薦MaximumDynamicBacklog值不得超過2000。

DynamicBacklogGrowthDelta值是指擴展的空閑連接數,此連接數并不計算在MaximumDynamicBacklog內,當半連接隊列為某個TCP端囗分配的空閑連接小于MinimumDynamicBacklog時,系統自動分配DynamicBacklogGrowthDelta所定義的空閑連接空間,以使該TCP端囗能處理更多的半連接。Microsoft推薦該值為10。

LINUX:Linux用變量tcp_max_syn_backlog定義backlog隊列容納的最大半連接數。在Redhat 7.3中,該變量的值默認為256,這個值是遠遠不夠的,一次強度不大的SYN攻擊就能使半連接隊列占滿。我們可以通過以下命令修改此變量的值:

# sysctl -w net.ipv4.tcp_max_syn_backlog=`2048`

Sun Solaris Sun Solaris用變量tcp_conn_req_max_q0來定義最大半連接數,在Sun Solaris 8中,該值默認為1024,可以通過add命令改變這個值:

# ndd -set /dev/tcp tcp_conn_req_max_q0 2048

HP-UX:HP-UX用變量tcp_syn_rcvd_max來定義最大半連接數,在HP-UX 11.00中,該值默認為500,可以通過ndd命令改變默認值:

#ndd -set /dev/tcp tcp_syn_rcvd_max 2048

■縮短超時時間

上文提到,通過增大backlog隊列能防范SYN攻擊;另外減少超時時間也使系統能處理更多的SYN請求。我們知道,timeout超時時間,也即半連接存活時間,是系統所有重傳次數等待的超時時間總和,這個值越大,半連接數占用backlog隊列的時間就越長,系統能處理的SYN請求就越少。為縮短超時時間,可以通過縮短重傳超時時間(一般是第一次重傳超時時間)和減少重傳次數來實現。

Win2000第一次重傳之前等待時間默認為3秒,為改變此默認值,可以通過修改網絡接囗在注冊表里的TcpInitialRtt注冊值來完成。重傳次數由TcpMaxConnectResponseRetransmissions 來定義,注冊表的位置是:HKLMSYSTEMCurrentControlSetServicesTcpipParameters registry key。

當然我們也可以把重傳次數設置為0次,這樣服務器如果在3秒內還未收到ack確認包就自動從backlog隊列中刪除該連接條目。

LINUX:Redhat使用變量tcp_synack_retries定義重傳次數,其默認值是5次,總超時時間需要3分鐘。

Sun Solaris Solaris 默認的重傳次數是3次,總超時時間為3分鐘,可以通過ndd命令修改這些默認值。()


熱詞搜索:

上一篇:手機病毒入侵的解決方法
下一篇:諾頓Vista版防病毒軟件全面試用手記(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产日韩视频一区二区三区| 欧美一级日韩免费不卡| 欧美精品在线一区二区三区| 麻豆一区二区99久久久久| 久久国产三级精品| 一区二区三区在线免费观看| 精品国内二区三区| 一区二区三区国产精华| 国产精品素人视频| 欧美成人国产一区二区| 亚洲第一会所有码转帖| 国产精品一区在线观看你懂的| 亚洲一区二区三区四区在线观看 | 久久99精品久久久| 国产精品久久久久久久久搜平片 | 日本强好片久久久久久aaa| 国产精品麻豆久久久| 欧美变态tickle挠乳网站| 亚洲狠狠爱一区二区三区| 久久先锋影音av鲁色资源网| 91精品欧美一区二区三区综合在 | 日韩二区三区四区| 在线国产亚洲欧美| 99麻豆久久久国产精品免费| 国产精品乡下勾搭老头1| 亚洲成a人片在线不卡一二三区| 91网页版在线| 国产精品第13页| 成人国产精品免费观看视频| 国产成人午夜精品5599| 精品一区二区三区视频| 亚洲精品一区二区三区影院 | 99re成人精品视频| 国产精品不卡一区二区三区| 国产精品系列在线| 国产福利电影一区二区三区| 久久色中文字幕| 精品av久久707| 欧美色国产精品| 成人自拍视频在线观看| 久久精品一区二区三区av| 欧美tickling网站挠脚心| 久久www免费人成看片高清| 日韩精品欧美精品| 日韩激情一二三区| 日韩欧美不卡在线观看视频| 久久精品国产**网站演员| 久久天天做天天爱综合色| 成人黄色在线看| 亚洲免费观看高清完整| 欧美日本韩国一区| 久国产精品韩国三级视频| 国产亚洲欧美色| 91在线高清观看| 性感美女极品91精品| 欧美一级高清片| 懂色av一区二区三区免费看| 亚洲啪啪综合av一区二区三区| 欧美三级乱人伦电影| 久久精品噜噜噜成人av农村| 国产色产综合色产在线视频| 成+人+亚洲+综合天堂| 一区二区三区精品在线观看| 555夜色666亚洲国产免| 久久99精品一区二区三区| 26uuu精品一区二区| 国产精品一二三区在线| 国产精品久久久久影院亚瑟| 日本国产一区二区| 黄色小说综合网站| 国产精品三级av在线播放| 成人一区二区三区视频| 色菇凉天天综合网| 美女性感视频久久| 亚洲美女电影在线| 26uuu亚洲婷婷狠狠天堂| 99久久99久久精品国产片果冻| 日韩av网站免费在线| 国产精品三级在线观看| 欧美天堂亚洲电影院在线播放| 久久精品二区亚洲w码| 国产精品免费网站在线观看| 91精品国产入口在线| 成人午夜碰碰视频| 久久99精品久久久久久| 亚洲第一福利视频在线| 国产精品九色蝌蚪自拍| 99久久精品费精品国产一区二区| 日本v片在线高清不卡在线观看| 亚洲视频一二三| 国产精品色哟哟网站| 久久久久久久久久美女| 日韩三级电影网址| 欧美视频在线一区二区三区| 成人动漫视频在线| 国产成人av影院| 精品一区二区三区日韩| 香蕉加勒比综合久久| 亚洲美女区一区| 中文字幕在线一区免费| 久久久久久电影| 久久亚洲一区二区三区四区| 日韩一区二区精品| 欧美精品一二三| 欧美日韩免费一区二区三区| 91美女福利视频| 99久久久无码国产精品| 99视频在线精品| 成人午夜在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人在线网站| 国产剧情一区二区| 国产一区在线视频| 久久99精品久久久久久国产越南| 一区二区三国产精华液| 日韩一区在线看| 中文字幕一区二区三区乱码在线| 亚洲欧洲三级电影| 亚洲免费在线看| 夜夜亚洲天天久久| 一区二区三区91| 午夜激情综合网| 蜜臀久久99精品久久久久久9| 美女在线一区二区| 国产成人亚洲综合色影视 | 免费三级欧美电影| 国产真实乱对白精彩久久| 久久精品国产亚洲高清剧情介绍| 五月天久久比比资源色| 丝袜诱惑亚洲看片| 亚洲一二三区不卡| 久久99热这里只有精品| 国产91丝袜在线播放0| 成人黄色电影在线| 成人福利视频在线| 92精品国产成人观看免费| 91亚洲精品一区二区乱码| 色成人在线视频| 日韩免费观看2025年上映的电影 | 亚洲欧美日韩人成在线播放| 亚洲精品乱码久久久久久| 五月婷婷另类国产| 男男gaygay亚洲| 国产成人精品三级麻豆| 91精彩视频在线| 日韩欧美中文字幕精品| 中文字幕一区视频| 视频一区二区国产| 粉嫩高潮美女一区二区三区| 91久久一区二区| 欧美videofree性高清杂交| 中文字幕日韩一区| 亚洲成人综合在线| 粉嫩欧美一区二区三区高清影视| 欧美性猛交xxxxxx富婆| 久久久久久夜精品精品免费| 国产精品传媒入口麻豆| 视频一区中文字幕国产| 国产又粗又猛又爽又黄91精品| 99麻豆久久久国产精品免费优播| 欧美中文一区二区三区| 欧美一二三四在线| 亚洲免费观看在线观看| 激情久久五月天| 欧美性生活一区| 中文字幕精品综合| 午夜精品福利一区二区三区av| 国产高清久久久久| 日韩你懂的在线观看| 一区二区三区欧美久久| 国产成人超碰人人澡人人澡| 777久久久精品| 亚洲美女屁股眼交3| 国产成人av资源| 2023国产精华国产精品| 午夜电影久久久| 色综合天天综合网天天狠天天| 国产日本亚洲高清| 麻豆精品一区二区三区| 91麻豆精品国产91久久久更新时间 | 国产一区二区在线影院| 5858s免费视频成人| 亚洲自拍偷拍欧美| 一本大道综合伊人精品热热| 国产欧美精品一区二区三区四区 | 亚洲国产综合人成综合网站| 丁香婷婷综合色啪| 久久久久亚洲综合| 国产一区久久久| 久久日一线二线三线suv| 美女性感视频久久| 欧美美女一区二区| 亚洲成人tv网| 欧美区视频在线观看| 亚洲一区在线视频| 在线观看亚洲专区| 亚洲国产视频网站| 欧美日韩国产免费一区二区| 午夜精品久久久| 日韩女优毛片在线|