資源描述:
《syn攻擊原理以及防范技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、SYN攻擊原理以及防范技術(shù)~教育資源庫 據(jù)統(tǒng)計(jì),在所有黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。相信很多人還記得2000年YAHOO網(wǎng)站遭受的攻擊事例,當(dāng)時(shí)黑客利用的就是簡(jiǎn)單而有效的SYN攻擊,有些網(wǎng)絡(luò)蠕蟲病毒配合SYN攻擊造成更大的破壞。本文介紹SYN攻擊的基本原理、工具及檢測(cè)方法,并全面探討SYN攻擊防范技術(shù)?! ∫?、TCP握手協(xié)議 在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接?! 〉谝淮挝帐郑航⑦B接時(shí),客戶端發(fā)送syn包(syn=j
2、)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn); 第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài); 第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手?! ⊥瓿扇挝帐?,客戶端與服務(wù)器開始傳送數(shù)據(jù),在上述過程中,還有一些重要的概念: 未連接隊(duì)列:在三次
3、握手協(xié)議中,服務(wù)器維護(hù)一個(gè)未連接隊(duì)列,該隊(duì)列為每個(gè)客戶端的SYN包(syn=j)開設(shè)一個(gè)條目,該條目表明服務(wù)器已收到SYN包,并向客戶發(fā)出確認(rèn),正在等待客戶的確認(rèn)包。這些條目所標(biāo)識(shí)的連接在服務(wù)器處于Syn_RECV狀態(tài),當(dāng)服務(wù)器收到客戶的確認(rèn)包時(shí),刪除該條目,服務(wù)器進(jìn)入ESTABLISHED狀態(tài)。 Backlog參數(shù):表示未連接隊(duì)列的最大容納數(shù)目?! YN-ACK重傳次數(shù) 服務(wù)器發(fā)送完SYN-ACK包,如果未收到客戶確認(rèn)包,服務(wù)器進(jìn)行首次重傳,等待一段時(shí)間仍未收到客戶確認(rèn)包,進(jìn)行第二次重傳,如
4、果重傳次數(shù)超過系統(tǒng)規(guī)定的最大重傳次數(shù),系統(tǒng)將該連接信息從半連接隊(duì)列中刪除。注意,每次重傳等待的時(shí)間不一定相同?! “脒B接存活時(shí)間:是指半連接隊(duì)列的條目存活的最長(zhǎng)時(shí)間,也即服務(wù)從收到SYN包到確認(rèn)這個(gè)報(bào)文無效的最長(zhǎng)時(shí)間,該時(shí)間值是所有重傳請(qǐng)求包的最長(zhǎng)等待時(shí)間總和。有時(shí)我們也稱半連接存活時(shí)間為Timeout時(shí)間、SYN_RECV存活時(shí)間?! 《?、SYN攻擊原理 SYN攻擊屬于DOS攻擊的一種,它利用TCP協(xié)議缺陷,通過發(fā)送大量的半連接請(qǐng)求,耗費(fèi)CPU和內(nèi)存資源。SYN攻擊除了能影響主機(jī)外,還可以危害
5、路由器、防火墻等網(wǎng)絡(luò)系統(tǒng),事實(shí)上SYN攻擊并不管目標(biāo)是什么系統(tǒng),只要這些系統(tǒng)打開TCP服務(wù)就可以實(shí)施。從上圖可看到,服務(wù)器接收到連接請(qǐng)求(syn=j),將此信息加入未連接隊(duì)列,并發(fā)送請(qǐng)求包給客戶(syn=k,ack=j+1),此時(shí)進(jìn)入SYN_RECV狀態(tài)。當(dāng)服務(wù)器未收到客戶端的確認(rèn)包時(shí),重發(fā)請(qǐng)求包,一直到超時(shí),才將此條目從未連接隊(duì)列刪除。配合IP欺騙,SYN攻擊能達(dá)到很好的效果,通常,客戶端在短時(shí)間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認(rèn)包,并等待客戶的確認(rèn),由于源地
6、址是不存在的,服務(wù)器需要不斷的重發(fā)直至超時(shí),這些偽造的SYN包將長(zhǎng)時(shí)間占用未連接隊(duì)列,正常的SYN請(qǐng)求被丟棄,目標(biāo)系統(tǒng)運(yùn)行緩慢,嚴(yán)重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。 三、SYN攻擊工具 SYN攻擊實(shí)現(xiàn)起來非常的簡(jiǎn)單,互聯(lián)網(wǎng)上有大量現(xiàn)成的SYN攻擊工具?! ?、windows系統(tǒng)下的SYN工具 以synkill.exe為例,運(yùn)行工具,選擇隨機(jī)的源地址和源端囗,并填寫目標(biāo)機(jī)器地址和TCP端囗,激活運(yùn)行,很快就會(huì)發(fā)現(xiàn)目標(biāo)系統(tǒng)運(yùn)行緩慢。如果攻擊效果不明顯,可能是目標(biāo)機(jī)器并未開啟所填寫的TCP端囗或者防火
7、墻拒絕訪問該端囗,此時(shí)可選擇允許訪問的TCP端囗,通常,windows系統(tǒng)開放tcp139端囗,UNIX系統(tǒng)開放tcp7、21、23等端囗?! ∷摹z測(cè)SYN攻擊 檢測(cè)SYN攻擊非常的方便,當(dāng)你在服務(wù)器上看到大量的半連接狀態(tài)時(shí),特別是源IP地址是隨機(jī)的,基本上可以斷定這是一次SYN攻擊。我們使用系統(tǒng)自帶的stat工具來檢測(cè)SYN攻擊: #stat-n-pTCP tcp 0 010.11.11.11:23 124.173.152.8:25882 SYN_RECV - tcp 0 010.1
8、1.11.11:23 236.15.133.204:2577 SYN_RECV - tcp 0 010.11.11.11:23 127.160.6.129:51748 SYN_RECV - tcp 0 010.11.11.11:23 222.220.13.25:47393 SYN_RECV - tcp 0 010.11.11.11:23 212.200.204.182:60427SYN_RECV - tcp 0 010.11.11.11:23 232.115.18