(重慶大學(xué)通信工程學(xué)院,重慶 400030;重慶電子工程職業(yè)學(xué)院,重慶 401331)
【摘 要】本文針對(duì)拒絕服務(wù)攻擊中的SYN/Flooding攻擊,提出了采用一種利用計(jì)時(shí)位,進(jìn)行FIFO(先進(jìn)先出)替換法的策略研究。采用Linux平臺(tái),通過(guò)模擬攻擊實(shí)驗(yàn)驗(yàn)證該方法的防御效果。
【關(guān)鍵詞】拒絕服務(wù)攻擊;SYN/Flooding;FIFO(先進(jìn)先出)
在網(wǎng)絡(luò)攻擊技術(shù)中,拒絕服務(wù)攻擊是常用的一種,它是一種遍布全球的系統(tǒng)漏洞,這種攻擊主要是用來(lái)攻擊域名服務(wù)器、路由器以及其它網(wǎng)絡(luò)操作服務(wù),使被攻擊者無(wú)法正常的服務(wù),這是一類(lèi)危害極大的攻擊方式,嚴(yán)重的時(shí)候可以導(dǎo)致一個(gè)網(wǎng)絡(luò)癱瘓。本文模擬了一種SYN/Flooding攻擊實(shí)驗(yàn)并提出了一種FIFO(先進(jìn)先出)淘汰法的對(duì)策研究。
一、方案設(shè)計(jì)
1.攻擊實(shí)驗(yàn)。本實(shí)驗(yàn)起用了兩臺(tái)Linux主機(jī)作為攻擊工作站。為了檢驗(yàn)啟用防御方法的有效性,首先做了一個(gè)攻擊實(shí)驗(yàn):一臺(tái)Linux主機(jī)作為攻擊目標(biāo),另一臺(tái)主機(jī)作為攻擊方。具體操作如下:用netstat -na命令觀察服務(wù)器在沒(méi)受攻擊情況下的狀況。用編譯好的syn攻擊程序在攻擊方主機(jī)上運(yùn)行,攻擊linux主機(jī),并偽裝一個(gè)攻擊主機(jī)IP地址為202.115.1.1,在被攻擊方Linux主機(jī)上用netstat-na命令觀察。將結(jié)果比較,在正常情況下,其連接狀態(tài)一般處于ESTABLISHED ,而在系統(tǒng)受到攻擊時(shí),發(fā)現(xiàn)收到很多來(lái)自IP地址為202.115.1.1的連接請(qǐng)求,其狀態(tài)處于SYN_RECV,占用了很大的空間,說(shuō)明受到了syn/flooding攻擊。
2.對(duì)策研究。(1)加大工作站的backlog長(zhǎng)度,這樣可以延長(zhǎng)隊(duì)列被占滿(mǎn)的時(shí)間。在Linux系統(tǒng)下,為了能方便有效的比較改變隊(duì)列長(zhǎng)度前后的不同,先把被攻擊的Linux主機(jī)的隊(duì)列改小一些,設(shè)置成長(zhǎng)度為16。通過(guò)下面的語(yǔ)句來(lái)實(shí)行:echo 16>/proc/sys/net/ipv4/tcp_max_syn_backlog,在改變了系統(tǒng)的backlog隊(duì)列參數(shù)后,在主機(jī)上運(yùn)行syn攻擊程序來(lái)進(jìn)行一組攻擊實(shí)驗(yàn)。首先偽裝IP地址為202.115.1.3,同樣使用netstat -na命令,觀察被攻擊方的工作狀態(tài)。結(jié)果發(fā)現(xiàn)緩沖隊(duì)列很快就被填滿(mǎn),通過(guò)連接被攻擊的端口,此時(shí)已經(jīng)連接不上了,這說(shuō)明此端口已經(jīng)癱瘓掉。接下來(lái)執(zhí)行第二步工作,加大backlog隊(duì)列的長(zhǎng)度,例如設(shè)置其值為2048,同樣使用下面的命令:echo2048>/proc/sys/net/ipv4/tcp_max_syn_backlog,再利用攻擊程序來(lái)看看改變參數(shù)后的情況。這次采用偽IP地址為202.115.1.2,使用netstat-na命令查看攻擊情況,觀察到比加大緩沖隊(duì)列以前的連接請(qǐng)求容許數(shù)量增多。這時(shí)連接被攻擊端口,發(fā)現(xiàn)被攻擊工作站還是可以連接上,加大緩沖隊(duì)列后端口并沒(méi)有癱瘓,說(shuō)明加大隊(duì)列的長(zhǎng)度相對(duì)提高了抗攻擊能力。(2)查找計(jì)時(shí)位,進(jìn)行FIFO替換:由于緩存隊(duì)列中自身帶有對(duì)收到的每個(gè)連接請(qǐng)求設(shè)置的計(jì)時(shí)位,以便在超時(shí)后刪除此項(xiàng)。現(xiàn)在利用這一超時(shí)計(jì)時(shí)位,當(dāng)backlog隊(duì)列滿(mǎn)而又有新的連接請(qǐng)求到達(dá)時(shí),查找隊(duì)列中各項(xiàng)的計(jì)時(shí)位并進(jìn)行比較,將新到達(dá)的連接請(qǐng)求替換計(jì)時(shí)位最大的項(xiàng),達(dá)到服務(wù)器總不拒絕新的連接請(qǐng)求。此項(xiàng)步驟總的流程如下:當(dāng)新的syn請(qǐng)求來(lái)到時(shí),首先查看緩存隊(duì)列是否已滿(mǎn),若未滿(mǎn),按照正常情況加入隊(duì)列中保存下來(lái),轉(zhuǎn)到步驟3。若緩存已滿(mǎn),查找隊(duì)列中時(shí)間最大的項(xiàng),用新的syn請(qǐng)求替換它。查找方法如圖1所示。
注:Timemax為隊(duì)列中最大時(shí)間值,Timequeue[i]是backlog隊(duì)列中第i項(xiàng)的時(shí)間值,Lengthqueue為backlog隊(duì)列的最大長(zhǎng)度。返回的i既為查找的緩存隊(duì)列中時(shí)間最大的項(xiàng)。我們就用新的請(qǐng)求替換第i項(xiàng)。(3)新的連接請(qǐng)求入緩沖隊(duì)列以后,按照原來(lái)的TCP/IP協(xié)議棧三次握手原則進(jìn)行syn請(qǐng)求連接。
二、實(shí)驗(yàn)分析
該方法的優(yōu)點(diǎn)是不管受到怎樣高強(qiáng)度的SYN/Flooding攻擊,系統(tǒng)總不拒絕新來(lái)的連接請(qǐng)求,可以滿(mǎn)足高速的合法用戶(hù)請(qǐng)求連接,就不會(huì)因?yàn)椴荒芙邮照?qǐng)求而癱瘓,這種思想彌補(bǔ)了傳統(tǒng)防范技術(shù)的不足。但加大backlog隊(duì)列,替換backlog隊(duì)列中時(shí)間最長(zhǎng)的請(qǐng)求,也導(dǎo)致一些缺陷:一是消耗了系統(tǒng)資源;二是可能替換了合法的用戶(hù)請(qǐng)求。
參 考 文 獻(xiàn)
[1]Eric Cole.黑客——攻擊透析與防范[M].電子工業(yè)出版社
[2]張小斌.嚴(yán)望佳.黑客分析與防范技術(shù)[M].清華大學(xué)出版社
[3]張明猛,趙天福.DDoS攻擊檢測(cè)技術(shù)研究[J].計(jì)算機(jī)與信息技術(shù)
[4]陳明奇.分布式拒絕服務(wù)攻擊處理實(shí)例分析[J].信息網(wǎng)絡(luò)安全