陳曉飛,姚 翔,賈 勇
(1.新疆工程學院信息工程學院,新疆烏魯木齊830023;2.新疆師范大學化學化工學院,新疆烏魯木齊830054)
“惡意域名”是指傳播蠕蟲、病毒、木馬,或從事釣魚欺詐等違法活動的網(wǎng)站域名。有些網(wǎng)站的惡意域名可能會出現(xiàn)在郵件,短信或者廣告中,通過讓人迷惑的文字和圖片來吸引用戶點擊。如果用戶設(shè)備訪問這些惡意域名,則可能導(dǎo)致木馬植入、病毒感染或泄露個人信息等風險。由于安全設(shè)備和安全軟件只能保護自己免受外部威脅,所以如果內(nèi)部設(shè)備受到感染,所有內(nèi)部設(shè)備都會直接暴露給攻擊者。如不及時處理,將會造成嚴重后果。
基于目前存在的問題,已有許多學者進行了關(guān)于惡意域名檢測方法的研究,彭成維[1]等人研究了一種基于域名請求伴隨關(guān)系的惡意域名檢測方法,該方法主要通過挖掘域名請求之間潛在的時空伴隨關(guān)系進行惡意域名檢;臧小東[2]等人研究了基于AGD的惡意域名檢測方法,該方法通過聚類關(guān)聯(lián),提取每一個聚類集合中算法生成域名,以對惡意域名進行檢測。
上述方法雖然具有一定的惡意域名檢測效果,但是存在檢測準確性低的問題,為此設(shè)計一個云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測方法,以解決目前惡意域名檢測上存在的問題。
在對云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測前,獲取基礎(chǔ)數(shù)據(jù)[3]。全局歷史數(shù)據(jù)獲取內(nèi)容如下所示:
表1 全局歷史數(shù)據(jù)獲取
然后對原始流量數(shù)據(jù)包進行過濾篩選,預(yù)處理過程如圖1所示。
圖1 預(yù)處理模塊處理流程
在上述基礎(chǔ)數(shù)據(jù)獲取的基礎(chǔ)上,對數(shù)據(jù)特征進行提取。特征量的提取就是把無法識別的原始數(shù)據(jù)轉(zhuǎn)化成可以識別的特征量,其是惡意域名[4]檢測中非常重要的一步,主要內(nèi)容如下所示。
2.2.1 時間特征提取
在時間特征提取上,為分析域名狀態(tài)隨時間的變化情況,將某一時間段設(shè)置為觀叉窗口,是指數(shù)據(jù)分析前后的一段時間,每個域名都會在觀察窗口中選擇數(shù)據(jù)。每一字段的數(shù)據(jù)可以按照時間順序形成一個觀測序列[5]。將觀測序列分成固定的時間段(小時),對同一域名在固定的時間段內(nèi)的狀態(tài)變化進行統(tǒng)計[6]。并提取了3個特征:
第一個特征是活躍期。在觀察窗口中,域名第一次查詢到最后一次查詢的時間間隔稱為活動時間,它反映了域名在觀察窗口中的活躍時間的長短;
另一個特征是平均每日訪問量,能夠反映域名的“自由”狀態(tài)[7](即域名沒有被查詢到)或已被訪問過(即熱門域名);
最后一個特征是其日常行為具有相似性,一天中對域名的查詢量隨時間而變化,這種特點能夠反映出域名是否每天都有類似的時序[8]。
基于上述分析,以天為單位,將觀測窗口中時間序列設(shè)置為每天00:00開始,23:59結(jié)束。當一個域名被查詢了n天時,其計算表達式為
(1)
式中,di,j代表第i天和第j天之間的歐式距離。
在此基礎(chǔ)上對時間序列進行標準化處理,得到時間序列的均值與方差,表達式為
(2)
式中,std(T)代表時間序列T的標準差,mean(T)代表時間序列T的均值。
2.2.2 響應(yīng)報文特征提取
在此基礎(chǔ)上,對響應(yīng)報文特征提取[9],預(yù)先解析的IP地址集的分散程度[10]。其表達式為
(3)
基于上述過程完成對網(wǎng)絡(luò)中數(shù)據(jù)特征的提取,為惡意域名檢測仿真提供基礎(chǔ)。
2.2.3 域名的特征提取
相對于良性域名,惡意域名的字符串組成一般比較雜亂,常常包含數(shù)字和特殊符號“-”和“_”,并會出現(xiàn)間隔,惡意域名字符串通常不匹配良性域名。主要提取內(nèi)容如表2所示。
表2 詞匯特征
在此基礎(chǔ)上,主要分析子域名中制度的平均隨機程度,其表達式為
(4)
式中,S代表子域名集合,p(i,x)代表字符x在第i個子域在子域名S中占得比例。
依據(jù)上述過程完成特征數(shù)據(jù)的提取。
依據(jù)上述特征提取結(jié)果,采用隨機森林方法[11]獲取惡意停靠域名,以實現(xiàn)對惡意域名的檢測[12]。具體過程如下所示:
Step1:在對??坑蛎幚磉^程中,對全部域名進行過濾處理,其過濾函數(shù)為
(5)
式中,ε(ci)代表函數(shù)過濾值,ω代表過濾系數(shù)。
Step2:依據(jù)上述過濾函數(shù)的計算,獲得待分類的域名數(shù)據(jù)。采用隨機森林算法對惡意域名與正常域名[13]進行分類,分類過程如圖2所示。
圖2 惡意域名與正常域名分類過程
具體內(nèi)容如下,假設(shè)待訓練的樣本集為E,其表達式為
(6)
式中,Gini(E)代表樣本集的基尼系數(shù)度量值,pl代表樣本集隸屬類別于l的樣本數(shù)量。
Step3:通過關(guān)鍵字的數(shù)字值來確定關(guān)鍵字落在哪個分區(qū)上[14],然后通過數(shù)字范圍來確定數(shù)據(jù)庫中哪些記錄可能滿足搜索條件,從而獲得基礎(chǔ)數(shù)據(jù)。
在此基礎(chǔ)上,計算數(shù)據(jù)屬性的最優(yōu)分裂點[15],并生成對應(yīng)的決策樹,計算公式為
(7)
式中,κ(F)代表對應(yīng)的分類樹,Nf代表決策樹生成參數(shù)。
Step4:惡意域名檢測,一般情況下,正常域名不會與多個域名共享相同的IP地址,而惡意域名則有所不同,很多域名經(jīng)常會共享同一個 IP地址。對于whois信息的完整性,一般情況下正常域名是全面描述的,惡意域名基本上不會填寫whois信息。利用同一 IP的 IP域數(shù)之和與其自身whois信息完整性的比值作為特征,可以區(qū)分正常域和惡意域。根據(jù)以上的分析,進行分類,表達式為
(8)
與此同時,正常域名和惡意域名的 IP地址隨時間的增長而變化,而正常域名的 IP地址變化不大,惡意域名的 IP地址變化不大。隨著時間的推移,正常域名的這種特征值逐漸減小,惡意域名的特征值逐漸增大并趨于1,設(shè)置該特征的表達式為
(9)
式中,IPchT代表域名的變化速度,IPchN代表域名的變化時間。
依據(jù)上述過程,完成惡意域名的分類。
Step4:在此基礎(chǔ)上,對分類結(jié)果進行測試,測試函數(shù)如下所示
ι(U)=testκ(F)*f
(10)
式中,ι(U)代表測試函數(shù)值。
通過上述計算完成該算法的計算,獲得惡意域名,以此完成云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測。
為驗證此次研究方法的有效性,進行此次實驗,本實驗的實驗環(huán)境如下:
1)虛擬機:10.0.0 VMware工作站;
2)OS:Ubuntu14.0464位;
3)編譯程序、Eclipse3.8;
4)網(wǎng)絡(luò)仿真:Mininet2.2。
通過Mininet 虛擬網(wǎng)絡(luò)平臺和 Floodlight 控制器搭建的實驗環(huán)境來驗證惡意域名檢測方法的有效性該試驗的具體部署和配置如下:
1)將64位 Ubuntu14.04 LTS安裝到64位win7操作系統(tǒng)的 VMware虛擬機上,創(chuàng)建兩個網(wǎng)卡,其中一個連接外部網(wǎng)絡(luò),另一個則作為空閑資源備用。
2)在 Ubuntu系統(tǒng)中,使用 Python調(diào)用 Mininet庫來創(chuàng)建虛擬網(wǎng)絡(luò)拓撲結(jié)構(gòu)。
3)在 DNS重定向服務(wù)器上作為 DNS解析器運行 Python程序,以向發(fā)送 DNS查詢包的主機返回 DNS響應(yīng)包。
從網(wǎng)絡(luò)安全聯(lián)盟和PhishTank等網(wǎng)站獲取已知惡意域名,鑒于惡意域名的持續(xù)時間較長,選取500個具有以上特征的惡意域名作為黑名單。將 Alexa排名較高的域名用作普通域名是合理的,因為 Alexa是基于三個月積累的域名訪問信息的,將該數(shù)據(jù)用作白名單是合理的。白名單是以 Alexa排名的1162個域名為標準構(gòu)建的,使用 dig,nslookup,whois,bgp表示每個域名的網(wǎng)絡(luò)屬性特征。為節(jié)省實驗時間,對實驗數(shù)據(jù)預(yù)處理,其表達式如下所示
(11)
式中,x*代表歸一化的數(shù)據(jù),x代表當前原始數(shù)據(jù),xmin代表當前數(shù)據(jù)屬性中最小數(shù)據(jù)值,xmax代表當前屬性中最大數(shù)據(jù)值。
經(jīng)歸一化處理后的數(shù)據(jù)進行整理,共整理出1050條數(shù)據(jù),將其分為50、100、150、200、250、300條數(shù)據(jù),共進行6次進行實驗。
實驗主要將文獻[1]中的基于域名請求伴隨關(guān)系的惡意域名檢測方法、文獻[2]中的基于AGD的惡意域名檢測方法與此次研究的方法對比,對比三種方法的準確率、召回率與檢測時間。
準確率用以下公式進行計算:
(12)
式中,TP樣本分類準確率,F(xiàn)P代表將負樣本分類到正樣本的參數(shù)。
召回率的計算方法如下所示
(13)
式中,F(xiàn)N代表假負類,將正樣本分類錯誤的參數(shù)。
分別采用此次研究的檢測方法與文獻[1]方法、文獻[2]方法對惡意域名檢測準確率進行分析,得到對比結(jié)果如圖3所示。
圖3 檢測準確率對比
分析圖3可知,此次研究的云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測方法與文獻方法的檢測準確率均隨著檢測數(shù)據(jù)量的增加而降低。經(jīng)過對比可知,此次研究得檢測方法的準確率雖然有下降的趨勢,但是變化較小。而文獻方法的檢測準確率下降較快,沒有此次研究的檢測方法的檢測效果好。
圖4為三種方法的召回率對比結(jié)果。
圖4 召回率對比
通過圖4可知,此次研究的云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測方法的召回率效果均保持在較好的水平,受到數(shù)據(jù)多少的影響較小。而兩種文獻方法的召回率受到數(shù)據(jù)多少影響較大,隨著數(shù)據(jù)量的增多,召回率下降速度也變快。由此可見,設(shè)計方法的召回率更高,檢測精確度較好。
分析三種方法對惡意域名的檢測耗時,得到對比結(jié)果如圖5所示。
圖5 檢測時間對比
通過圖5可知,文獻[1]、文獻[2]檢測方法的檢測時間在數(shù)據(jù)量多與少的情況下,都較此次研究檢測方法的檢測時間長。
綜上所述,此次研究的檢測方法有效提高了檢測準確性與召回率,并減少了檢測時間,較傳統(tǒng)方法的應(yīng)用效果更好。原因是,此次研究的檢測方法預(yù)先對數(shù)據(jù)進行了采集與預(yù)處理,并采用隨機森林算法對惡意域名進行了檢測,從而獲得了較好的檢測效果,具備一定的實際應(yīng)用意義。
為了提升網(wǎng)站抵御病毒攻擊的能力,設(shè)計了一個云存儲網(wǎng)絡(luò)映射密文搜索的惡意域名檢測方法,通過實驗驗證得出,所提方法不僅提高了檢測的準確性以及召回率,還減少了檢測時間。通過惡意域名檢測,可以發(fā)現(xiàn)網(wǎng)絡(luò)上的惡意域以及與這些域通信的客戶端主機。研究結(jié)果可以幫助安全團隊理解當前網(wǎng)絡(luò)中的安全威脅,并采取有針對性的措施,應(yīng)對主機可能感染的惡意軟件。通過對惡意域名的關(guān)聯(lián)分析,進一步發(fā)現(xiàn)僵尸網(wǎng)絡(luò)信息和攻擊者信息,這對于保護網(wǎng)絡(luò)安全具有很好的參考價值。
但是,由于研究時間的限制,試驗拓撲過程過于簡單,不具備復(fù)雜的網(wǎng)絡(luò)環(huán)境和真實的通信流。外來可以建立一個復(fù)雜的網(wǎng)絡(luò)拓撲,引入一些實際的網(wǎng)絡(luò)流量來驗證系統(tǒng)的性能和防御效果。