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