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

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

ID:49770534

大?。?8.46 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2020-03-04

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

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

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

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

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

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

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

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

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

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

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

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