SYN 網(wǎng)絡(luò)攻擊原理.doc

SYN 網(wǎng)絡(luò)攻擊原理.doc

ID:49770534

大?。?8.46 KB

頁數(shù):3頁

時間:2020-03-04

SYN 網(wǎng)絡(luò)攻擊原理.doc_第1頁
SYN 網(wǎng)絡(luò)攻擊原理.doc_第2頁
SYN 網(wǎng)絡(luò)攻擊原理.doc_第3頁
資源描述:

《SYN 網(wǎng)絡(luò)攻擊原理.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、1、TCP握手協(xié)議第一次握手:客戶端(作為源主機)通過向服務(wù)器(作為目的主機)發(fā)送TCP連接請求(又稱SYN段),其中標(biāo)志SYN=1,ACK=0;序列號為客戶端初始序列號(簡稱ISN);目的端口號為所請求的服務(wù)對應(yīng)的端口;還包括最大段長度(MSS)選項。這個SYN段不攜帶任何數(shù)據(jù),但是它消耗一個序列號。這一步客戶端執(zhí)行主動打開。第二次握手:服務(wù)器在指定的端口等待連接,收到TCP連接請求后,將回應(yīng)一個TCP連接應(yīng)答(又稱SYN/ACK段),其中標(biāo)志SYN=1,ACK=1;序列號為服務(wù)器初始序列號;確認(rèn)號為客戶端初始序列號加1;目的端口號為客戶端的源端口號。這個SYN/ACK段不攜帶數(shù)據(jù),但

2、消耗一個序列號。這一步服務(wù)器執(zhí)行被動打開。第三次握手:客戶端再向服務(wù)器發(fā)送一個TCP連接確認(rèn)報文(又稱ACK段),其中標(biāo)志SYN=0,ACK=1;序列號為客戶端初始序列號加1;確認(rèn)號為服務(wù)器的初始序列號加1。一般來說,這個ACK段不攜帶數(shù)據(jù),因而不消耗序列號。經(jīng)過三次握手后,TCP連接正式建立。雙方都置ACK標(biāo)志,交換并確認(rèn)了對方的初始序列號,可以通過連接互相傳輸數(shù)據(jù)。2、SYN攻擊原理SYNFlood攻擊屬于DOS攻擊的一種,它利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足),最終導(dǎo)致系統(tǒng)或服務(wù)器宕機。SYNFlood攻擊正是利用了T

3、CP連接的三次握手,假設(shè)一個用戶向服務(wù)器發(fā)送了SYN報文后突然死機或掉線,那么服務(wù)器在發(fā)出SYN+ACK應(yīng)答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務(wù)器端一般會重試(再次發(fā)送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接,這段時間的長度我們稱為SYNTimeout,一般來說這個時間是分鐘的數(shù)量級(大約為30秒-2分鐘);一個用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個線程等待1分鐘并不會對服務(wù)器端造成什么大的影響,但如果有大量的等待丟失的情況發(fā)生,服務(wù)器端將為了維護一個非常大的半連接請求而消耗非常多的資源。我們可以想象大量的保存并遍歷也會消耗非常多的CPU時

4、間和內(nèi)存,再加上服務(wù)器端不斷對列表中的IP進行SYN+ACK的重試,服務(wù)器的負(fù)載將會變得非常巨大。如果服務(wù)器的TCP/IP棧不夠強大,最后的結(jié)果往往是堆棧溢出崩潰。相對于攻擊數(shù)據(jù)流,正常的用戶請求就顯得十分渺小,服務(wù)器疲于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求,此時從正??蛻魰憩F(xiàn)為打開頁面緩慢或服務(wù)器無響應(yīng),這種情況就是我們常說的服務(wù)器端SYNFlood攻擊(SYN洪水攻擊)。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認(rèn)包,并等待客戶的確認(rèn),由于源地址是不存在的,服務(wù)器需要不斷的重發(fā)

5、直至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標(biāo)系統(tǒng)運行緩慢,嚴(yán)重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。從防御角度來講,存在幾種的解決方法:第一種是縮短SYNTimeout時間,由于SYNFlood攻擊的效果取決于服務(wù)器上保持的SYN半連接數(shù),這個值=SYN攻擊的頻度xSYNTimeout,所以通過縮短從接收到SYN報文到確定這個報文無效并丟棄改連接的時間,例如設(shè)置為20秒以下,可以成倍的降低服務(wù)器的負(fù)荷。但過低的SYNTimeout設(shè)置可能會影響客戶的正常訪問?! 〉诙N方法是設(shè)置SYNCookie,就是給每一個請求連接的IP地址分配一個Cookie,如果短時間內(nèi)

6、連續(xù)受到某個IP的重復(fù)SYN報文,就認(rèn)定是受到了攻擊,并記錄地址信息,以后從這個IP地址來的包會被一概丟棄。這樣做的結(jié)果也可能會影響到正常用戶的訪問?! ∩鲜龅膬煞N方法只能對付比較原始的SYNFlood攻擊,縮短SYNTimeout時間僅在對方攻擊頻度不高的情況下生效,SYNCookie更依賴于對方使用真實的IP地址,如果攻擊者以數(shù)萬/秒的速度發(fā)送SYN報文,同時利用SOCK_RAW隨機改寫IP報文中的源地址,以上的方法將毫無用武之地。一些TCP/IP棧的實現(xiàn)只能等待從有限數(shù)量的計算機發(fā)來的ACK消息,因為他們只有有限的內(nèi)存緩沖區(qū)用于創(chuàng)建連接,如果這一緩沖區(qū)充滿了虛假連接的初始信息,該服

7、務(wù)器就會對接下來的連接停止響應(yīng),直到緩沖區(qū)里的連接企圖超時。在一些創(chuàng)建連接不受限制的實現(xiàn)里,SYN洪水具有類似的影響。防御:在防火墻上過濾來自同一主機的后續(xù)連接。未來的SYN洪水令人擔(dān)憂,由于釋放洪水的并不尋求響應(yīng),所以無法從一個簡單高容量的傳輸中鑒別出來。本文章的目是介紹使用python構(gòu)造packet的方法。使用rawsocket來發(fā)送packets。該程序只適用于Linux。windows可以嘗試調(diào)用winpcap?!≡谟懻揝

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。