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