摘 要:DDoS攻擊表現(xiàn)形式有多種,主要造成后果是導(dǎo)致Web服務(wù)器無(wú)法提供網(wǎng)絡(luò)服務(wù),,最終造成一系列損失,。針對(duì)通過某一網(wǎng)頁(yè)端口進(jìn)行的DDosS攻擊,提出了一種預(yù)防算法,,自定義動(dòng)態(tài)密鑰,,并采用自定義算法調(diào)用,動(dòng)態(tài)改變被攻擊端口處的文件名,。該算法使得攻擊者無(wú)法通過加密后的文件來得到原文件名稱,,從而達(dá)到預(yù)防此種DDoS攻擊的目的。實(shí)驗(yàn)證明,,此算法有效,。
關(guān)鍵詞: DDoS攻擊;黑客,;預(yù)防算法,;密鑰;網(wǎng)絡(luò)攻擊
根據(jù)美國(guó)計(jì)算機(jī)應(yīng)急響應(yīng)中心的報(bào)告,,到目前為止,,還沒有很好的辦法真正解決分布式拒絕服務(wù)(DDoS)攻擊問題。一般認(rèn)為,,除非修改TCP/IP協(xié)議的內(nèi)核,,否則,從理論上沒有辦法徹底解決DDoS攻擊[1],。已有不少學(xué)者對(duì)DDoS攻擊進(jìn)行了一些研究工作[2-6],,但效果不甚理想。
1 相關(guān)研究
對(duì)源目的IP地址對(duì)進(jìn)行累積分析,,當(dāng)訪問網(wǎng)絡(luò)中出現(xiàn)的IP地址在一定時(shí)期內(nèi)重復(fù)出現(xiàn)次數(shù)增多,,這就隱含著可以根據(jù)歷史IP記錄檢測(cè)異常的出現(xiàn)來檢測(cè)出DDoS攻擊[7]。DDoS攻擊所造成的網(wǎng)絡(luò)擁塞必須在路由器上進(jìn)行處理,,這就是基于IP擁塞控制來實(shí)現(xiàn)的預(yù)防DDoS攻擊[8],。但目前經(jīng)過最新DDoS攻擊統(tǒng)計(jì),大部分通過端口發(fā)布的是虛擬IP,,重復(fù)的概率相當(dāng)小,,采用這些方法進(jìn)行很多次攻擊但并未檢測(cè)出來,。
對(duì)網(wǎng)絡(luò)流量進(jìn)行分析處理的方法,即對(duì)網(wǎng)絡(luò)流量進(jìn)行高頻統(tǒng)計(jì),,然后對(duì)其相鄰時(shí)刻進(jìn)行相似度分析,,根據(jù)相似度的變化來發(fā)現(xiàn)異常,在大流量背景下,,此方法更適合大規(guī)模網(wǎng)絡(luò)的異常檢測(cè)[9],。異常流量聚集、協(xié)議分析和流量處理,,即過濾異常流量并測(cè)試當(dāng)前聚積流量的擁塞控制特性,,恢復(fù)被誤判的流量[10]。在研究 DDoS攻擊對(duì)網(wǎng)絡(luò)流量自相似性影響的基礎(chǔ)上,,提出了小波分析檢測(cè) DDoS 攻擊的方法[11],。引入非線性預(yù)處理網(wǎng)絡(luò)流量預(yù)測(cè)方法NLPP檢測(cè)DDoS攻擊[12]。
目前大部分研究是通過針對(duì)網(wǎng)絡(luò)流量分析和對(duì)IP分析來檢測(cè)DDoS攻擊提出的,。本文從預(yù)防的角度提出預(yù)防算法,,使攻擊者找不到攻擊的入口,達(dá)不到攻擊的目的,,從而為網(wǎng)絡(luò)服務(wù)提供商減少損失,。
2 本文算法
2.1 動(dòng)態(tài)密鑰
2.1.1 自定義字母值
自定義字母值如表1所示。文件名加密前是6個(gè)數(shù)字串+6個(gè)字母串(如:123456abcDEF,、658742AsbkKg),,文件名加密后是6個(gè)與原文不同的數(shù)字+12個(gè)由字母經(jīng)過密鑰轉(zhuǎn)化的數(shù)字串。如當(dāng)天是2012-6-11(120611),,動(dòng)態(tài)獲取當(dāng)天年月日,,原文為(123456abcDEF),加密后為(239477283029100607),;如當(dāng)天是2012-11-16(121116),,動(dòng)態(tài)獲取當(dāng)天年月日,原文為(123456abcDEF),,加密后為(734577283030050612),。
2.1.2 自定義加密算法
動(dòng)態(tài)生成的字符(6個(gè)數(shù)字串+6個(gè)字母串)從左向右順序加密如表2所示。
2.1.3 自定義解密算法
加密后生成的18位數(shù)字(前6位數(shù)字+后12位數(shù)字)解密算法如表3所示,。
2.1.4 設(shè)計(jì)思想
攻擊者不能確定文件名是否全是數(shù)字串,,而且文件名每天都在變化。不易攻擊有幾點(diǎn):
(1)每天12個(gè)字符都是動(dòng)態(tài)隨機(jī)生成的,;
(2)攻擊者只能看到入庫(kù)文件名是一串?dāng)?shù)字,,如果按照數(shù)字去破解是無(wú)法破解并找到真正的文件名;
(3)每天密鑰也是動(dòng)態(tài)變化的,而且前后密鑰不統(tǒng)一,;
(4)字符轉(zhuǎn)成定義值是自定義的,,也可以更換,隨便換兩個(gè)值,,就無(wú)法知道,,不是常規(guī)ASCII;
(5)密鑰也是動(dòng)態(tài)自定義的,,其他相關(guān)研究人員借鑒可以換順序。
自定義字母值一是為了安全,,自定的順序,;二是為了方便計(jì)算、減少算法的復(fù)雜度,。字符不用ASCII碼最主要的原因是ASCII碼中有些字符不能作為文件名,。
如果想讓加密更復(fù)雜些,完全可以把自定義的字符打亂順序,,在本機(jī)保存起來,,方便計(jì)算。每個(gè)字符加減值也可按照其他規(guī)律來設(shè)定,,隨機(jī)生成數(shù)據(jù),。
加密解決之所以要有規(guī)律,主要是為方便網(wǎng)站管理等人員隨時(shí)可以查到今天文件名是否與配置文件名同步,,一旦出現(xiàn)異?,F(xiàn)象能及時(shí)查到原因,盡快解決,。
2.2 算法調(diào)用實(shí)現(xiàn)過程
自定義動(dòng)態(tài)密鑰實(shí)現(xiàn)過程:?jiǎn)为?dú)開發(fā)一個(gè)程序軟件,,生成單獨(dú)文件,文件中記錄原文件名,、加密后文件名,、修改時(shí)間,每天0:00啟動(dòng)一次,。服務(wù)器做好任務(wù)計(jì)劃,。程序?qū)崿F(xiàn)過程如圖1所示。
算法調(diào)用主要思想是:攻擊者無(wú)法訪問服務(wù)器上web.config文件,,借助這一點(diǎn)將原文件名和加密后密鑰字符共同存到web.config里做一個(gè)中轉(zhuǎn)點(diǎn),,可以使網(wǎng)頁(yè)顯示器的文件名和瀏覽器調(diào)用的文件名達(dá)到分離,這樣攻擊的黑客無(wú)法找到能入庫(kù)文件的真正文件名,,無(wú)法找到真正的入口,,從而無(wú)法用程序去攻擊。
3 實(shí)驗(yàn)
按數(shù)據(jù)庫(kù)設(shè)計(jì)的結(jié)構(gòu),準(zhǔn)備一批數(shù)據(jù)包,。選用3臺(tái)性能較高的主機(jī),。
主機(jī)1:安裝上DDoS攻擊軟件,向另兩臺(tái)電腦上的交互頁(yè)面同時(shí)發(fā)送相同的數(shù)據(jù)包,。同時(shí)還有兩個(gè)文件分別存儲(chǔ)返回的信息報(bào)告(成功發(fā)送或發(fā)送失?。?br />
主機(jī)2:建好數(shù)據(jù)庫(kù),、表,、存儲(chǔ)過程,數(shù)據(jù)庫(kù)設(shè)置為1 024 MB且不自動(dòng)增長(zhǎng),,建一個(gè)常規(guī)的交互的網(wǎng)頁(yè)(表單頁(yè)),,可以向數(shù)據(jù)庫(kù)提交數(shù)據(jù)。同時(shí)建一個(gè)頁(yè)面P顯示數(shù)據(jù)庫(kù)信息,;
主機(jī)3:建好數(shù)據(jù)庫(kù),、表、存儲(chǔ)過程,,數(shù)據(jù)庫(kù)設(shè)置為1 024 MB且不自動(dòng)增長(zhǎng),,建一個(gè)常規(guī)的交互的網(wǎng)頁(yè)(表單頁(yè)),采用本文提出的自定義動(dòng)態(tài)加密及調(diào)用算法,。同時(shí)建立一個(gè)頁(yè)面P顯示數(shù)據(jù)庫(kù)信息,。
數(shù)據(jù)包里有10 000條信息,每條信息容量大約20 KB,。設(shè)置發(fā)送頻率為15條/min(通過反復(fù)實(shí)驗(yàn)發(fā)現(xiàn),,頻率設(shè)置太大,常會(huì)有返回信息報(bào)錯(cuò),,個(gè)別信息沒入庫(kù),;設(shè)置太小,實(shí)驗(yàn)周期長(zhǎng),,不符合一般黑客攻擊的頻率),。
通過主機(jī)1上兩個(gè)文件返回的信息報(bào)告,同時(shí)參考主機(jī)2,、3數(shù)據(jù)庫(kù)中的數(shù)據(jù),。1 h內(nèi)主機(jī)1攻擊信息:
60 min×15條/min=900條。
設(shè)信息條數(shù)為函數(shù)y,,天數(shù)為x,,數(shù)據(jù)庫(kù)容量為z,則y=24x×900,;z=20×y
主機(jī)2,、主機(jī)3中測(cè)試頁(yè)面P主要是為測(cè)試網(wǎng)頁(yè)顯示本主機(jī)數(shù)據(jù)庫(kù)中數(shù)據(jù)時(shí)打開網(wǎng)頁(yè)的速度。由于網(wǎng)頁(yè)打開速度受多方面因素影響(數(shù)據(jù)庫(kù)容量、CPU占有率,、網(wǎng)絡(luò)流量,、數(shù)據(jù)處理速度等),每天定時(shí)測(cè)試主機(jī)2,、主機(jī)3中測(cè)試頁(yè)P(yáng)打開速度,,分析網(wǎng)頁(yè)打開速度的走向。
實(shí)驗(yàn)時(shí)間為10天,,顯示結(jié)果如圖2,、圖3所示。
分析圖2,,主機(jī)2受到主機(jī)1的攻擊,,到第3天及以后數(shù)據(jù)庫(kù)容量不再增長(zhǎng)。容量已達(dá)到最大值,。主機(jī)3在實(shí)驗(yàn)的10天內(nèi)一直沒有受到主機(jī)1攻擊的數(shù)據(jù),數(shù)據(jù)庫(kù)容量幾乎沒有改變,。
分析圖3可知,,主機(jī)2隨時(shí)間推移頁(yè)面打開速度越來越慢,到最后是無(wú)限慢,,就是打不開,,無(wú)法連接到數(shù)據(jù)庫(kù),根據(jù)實(shí)驗(yàn)數(shù)據(jù)顯示,,快到第3天(即數(shù)據(jù)庫(kù)容量快達(dá)到設(shè)定值)時(shí),,頁(yè)面打開速度快速變慢,當(dāng)在快到20 s左右的連接速度時(shí),,即已經(jīng)連接不上數(shù)據(jù)庫(kù),,數(shù)據(jù)庫(kù)超過容量,此時(shí)自動(dòng)報(bào)錯(cuò),,服務(wù)停止,,后面的天數(shù)一直就是連接不上,用虛線表示,。主機(jī)3在實(shí)驗(yàn)的10天內(nèi),,沒有受到攻擊。數(shù)據(jù)庫(kù)沒有影響,,頁(yè)面打開速度也沒有受到影響,。以上實(shí)驗(yàn)結(jié)果證明了本文提出算法的有效性。
自定義動(dòng)態(tài)密鑰打破傳統(tǒng)公用的加密方法,,同時(shí)采用明碼密鑰,,而非傳統(tǒng)的一串不認(rèn)識(shí)的字符串,方便其他研究人員、開發(fā)人員借鑒,。
如果攻擊想把密鑰破解出來,,僅看計(jì)算所有字符串時(shí)間,一臺(tái)性能不錯(cuò)的電腦(計(jì)算機(jī)速度按40億次/s)去計(jì)算106×526,,要花137.295 9 h,,這個(gè)時(shí)間僅排列組合計(jì)算時(shí)間,每一次組合完要連接一次文件測(cè)試,,當(dāng)連接不上返回連接失敗信息,,這個(gè)時(shí)間差不多1 s左右,把連接時(shí)間加上,,要花的時(shí)間是相當(dāng)驚人的(5.492E×1012 h),。也就是說想破解密鑰找出文件名,一臺(tái)計(jì)算機(jī)最長(zhǎng)時(shí)間是這兩個(gè)時(shí)間加起來,。每天零點(diǎn)重新隨機(jī)生成一批新的數(shù)據(jù)串,,就會(huì)有一批新的密碼。攻擊者必須在24 h內(nèi)找到密鑰,。而且前提是要了解密碼真正的原文組成,。從理論上來說幾乎不能攻破。
本文提出的算法已應(yīng)用到網(wǎng)絡(luò)中,,已有10個(gè)月時(shí)間無(wú)異?,F(xiàn)象,解決了網(wǎng)站以前受數(shù)據(jù)包攻擊煩惱,。希望本算法給其他科研人員,、數(shù)據(jù)安全研究人員及程序開發(fā)人員以借鑒。
參考文獻(xiàn)
[l] 李德全.拒絕服務(wù)攻擊[M].北京:電子工業(yè)出版社,,2007:161-180.
[2] MIRKOVIC J.Attacking DDoS at the source[C].Proceedings of the 10th IEEE International Conference on Network Protocols,,Paris,F(xiàn)rance,,2002:366-369.
[3] FERGUSON P,,SENIE D.Network ingress filtering:defeating de-nial of service attacks which employ IP source address spoofing[R].Internet Best Current Practice,RFC 2827,,2000.
[4] WALFISH M,,VUTUKURU M.DDoS defense by offense[C]. ACM SIGCOMM 2006,2006:1635-1639.
[5] 李德全,,蘇璞睿,,魏東梅,等.基于路由器編碼的自適應(yīng)包標(biāo)記[J].軟件學(xué)報(bào),,2007,,18(10):2652-2661.
[6] 曹曉梅,,韓志杰,陳貴海.基于流量預(yù)測(cè)的傳感器網(wǎng)絡(luò)拒絕服務(wù)攻擊檢測(cè)方案[J].計(jì)算機(jī)學(xué)報(bào),,2007,,30(10):1798-1805.
[7] 孫知信,李清東.基于源目的IP地址對(duì)數(shù)據(jù)庫(kù)的防范DDoS攻擊策略[J].軟件學(xué)報(bào),,2007,,18(10):2613-2623.
[8] 吳國(guó)鋼.DDoS攻擊與IP擁塞控制研究[J].電子科技大學(xué)學(xué)報(bào),2007,,36(3):614-655.
[9] 何慧,,張宏莉,張偉哲,,等.一種基于相似度的DDoS攻擊檢測(cè)方法[J].通信學(xué)報(bào),,2004,25(7):176-184.
[10] 孫知信,,姜舉良,,焦琳.DDoS攻擊檢測(cè)和防御模型[J]. 軟件學(xué)報(bào),2007,,18(9):2245-2258.
[11] 任勛益,,王汝傳,王海艷.基于自相似檢測(cè)DDoS攻擊的小波分析方法[J].通信學(xué)報(bào),,2006,27(5):6-11.
[12] 楊新宇,,楊樹森,,李娟.基于非線性預(yù)處理網(wǎng)絡(luò)流量預(yù)測(cè)方法的泛洪型DDoS攻擊檢測(cè)算法[J].計(jì)算機(jī)學(xué)報(bào),2011,,34(2):395-405.