立即注冊(cè) 找回密碼

QQ登錄

只需一步,快速開(kāi)始

syn flood

2015-2-16 10:44| 發(fā)布者: discuz美化| 查看: 558| 評(píng)論: 0

摘要: SYN Flood是一種廣為人知的DoS(拒絕服務(wù)攻擊)與DDoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請(qǐng)求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足)的攻擊方式。 基本 ...
     SYN Flood是一種廣為人知的DoS(拒絕服務(wù)攻擊)與DDoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請(qǐng)求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足)的攻擊方式。
    基本原理

編輯

要明白這種攻擊的基本原理,還是要從TCP連接建立的過(guò)程開(kāi)始說(shuō)起:
大家都知道,TCP與UDP不同,它是基于連接的,也就是說(shuō):為了在服務(wù)端客戶端之間傳送TCP數(shù)據(jù),必須先建立一個(gè)虛擬電路,也就是TCP連接,建立TCP連接的標(biāo)準(zhǔn)過(guò)程是這樣的:
首先,請(qǐng)求端(客戶端)發(fā)送一個(gè)包含SYN標(biāo)志的TCP報(bào)文,SYN即同步(Synchronize),同步報(bào)文會(huì)指明客戶端使用的端口以及TCP連接的初始序號(hào);
第二步,服務(wù)器在收到客戶端的SYN報(bào)文后,將返回一個(gè)SYN+ACK的報(bào)文,表示客戶端的請(qǐng)求被接受,同時(shí)TCP序號(hào)被加一,ACK即確認(rèn)(Acknowledgment)。
第三步,客戶端也返回一個(gè)確認(rèn)報(bào)文ACK給服務(wù)器端,同樣TCP序列號(hào)被加一,到此一個(gè)TCP連接完成。
以上的連接過(guò)程在TCP協(xié)議中被稱為三次握手(Three-way Handshake)。
問(wèn)題就出在TCP連接的三次握手中,假設(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)度我們稱為SYN Timeout,一般來(lái)說(shuō)這個(gè)時(shí)間是分鐘的數(shù)量級(jí)(大約為30秒-2分鐘);一個(gè)用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個(gè)線程等待1分鐘并不是什么很大的問(wèn)題,但如果有一個(gè)惡意的攻擊者大量模擬這種情況,服務(wù)器端將為了維護(hù)一個(gè)非常大的半連接列表而消耗非常多的資源----數(shù)以萬(wàn)計(jì)的半連接,即使是簡(jiǎn)單的保存并遍歷也會(huì)消耗非常多的CPU時(shí)間和內(nèi)存,何況還要不斷對(duì)這個(gè)列表中的IP進(jìn)行SYN+ACK的重試。實(shí)際上如果服務(wù)器的TCP/IP棧不夠強(qiáng)大,最后的結(jié)果往往是堆棧溢出崩潰---即使服務(wù)器端的系統(tǒng)足夠強(qiáng)大,服務(wù)器端也將忙于處理攻擊者偽造的TCP連接請(qǐng)求而無(wú)暇理睬客戶的正常請(qǐng)求(畢竟客戶端的正常請(qǐng)求比率非常之。藭r(shí)從正?蛻舻慕嵌瓤磥(lái),服務(wù)器失去響應(yīng),這種情況我們稱作:服務(wù)器端受到了SYN Flood攻擊(SYN洪水攻擊)。

2解決方法編輯

從防御角度來(lái)說(shuō),有幾種簡(jiǎn)單的解決方法:

第一種是縮短SYN Timeout時(shí)間,

由于SYN Flood攻擊的效果取決于服務(wù)器上保持的SYN半連接數(shù),這個(gè)值=SYN攻擊的頻度 x SYN Timeout,所以通過(guò)縮短從接收到SYN報(bào)文到確定這個(gè)報(bào)文無(wú)效并丟棄該連接的時(shí)間,例如設(shè)置為20秒以下(過(guò)低的SYN Timeout設(shè)置可能會(huì)影響客戶的正常訪問(wèn)),可以成倍的降低服務(wù)器的負(fù)荷。

第二種方法是設(shè)置SYN Cookie,

就是給每一個(gè)請(qǐng)求連接的IP地址分配一個(gè)Cookie,如果短時(shí)間內(nèi)連續(xù)受到某個(gè)IP的重復(fù)SYN報(bào)文,就認(rèn)定是受到了攻擊,以后從這個(gè)IP地址來(lái)的包會(huì)被丟棄。 可是上述的兩種方法只能對(duì)付比較原始的SYN Flood攻擊,縮短SYN Timeout時(shí)間僅在對(duì)方攻擊頻度不高的情況下生效,SYN Cookie更依賴于對(duì)方使用真實(shí)的IP地址,如果攻擊者以數(shù)萬(wàn)/秒的速度發(fā)送SYN報(bào)文,同時(shí)利用隨機(jī)改寫(xiě)IP報(bào)文中的源地址,以上的方法將毫無(wú)用武之地。例如SOCK_RAW返回的套接字通過(guò)適當(dāng)?shù)脑O(shè)置可以自己完全控制IP頭的內(nèi)容從而實(shí)現(xiàn)IP欺騙。

3SYN FLOOD編輯

SYN flood可以用DCN防火墻來(lái)攔截,在DCN防火墻受到攻擊的時(shí)候會(huì)提示有IP試圖連接你的端口等報(bào)警,這是受到了SYN FLOOD攻擊的征兆,不是什么抓肉雞,而是被SYN攻擊了,正常情況下SYNFLOOD是攻擊不進(jìn)去的,所以盡管放心

鮮花

握手

雷人

路過(guò)

雞蛋

最新評(píng)論

相關(guān)推薦
!jz_fbzt! !jz_lxwm! !jz_gfqqq!

關(guān)于我們|手機(jī)版|小黑屋|地圖|【道勤網(wǎng)】-bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫(huà)教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程【道勤網(wǎng)】 ( 皖I(lǐng)CP備15000319號(hào)-1 )

GMT+8, 2024-10-23 17:27

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

返回頂部