盧加奇 呂廣旭 魏先燕 馮燕茹 王小英
摘? 要:近年來惡意軟件融合域名生成算法,生成大量的惡意域名嚴(yán)重威脅網(wǎng)絡(luò)安全。目前現(xiàn)有的惡意域名檢測方法大多都存在檢測效率低等問題。提出一種通過采用優(yōu)化后的布谷鳥搜索算法(CS)對支持向量機(SVM)進行優(yōu)化,即BCS-SVM方法,該方法能夠適應(yīng)DGA域名檢測場景。實驗采用開放域名數(shù)據(jù)作為樣本集,對文章提出的DGA域名檢測方法進行訓(xùn)練,并通過域名向量轉(zhuǎn)換、檢測模型訓(xùn)練、參數(shù)調(diào)優(yōu),最終完成了一種較為高效的DGA域名檢測模型。
關(guān)鍵詞:特征選擇;DGA域名;布谷鳥搜索算法;支持向量機
中圖分類號:TP393.0? 文獻標(biāo)識碼:A? 文章編號:2096-4706(2023)11-0077-03
Research on DGA Domain Name Detection Based on Optimized CS-SVM Algorithm
LU Jiaqi, LYU Guangxu, WEI Xianyan, FENG Yanru, WANG Xiaoying
(Institute of Disaster Prevention, Langfang? 065201, China)
Abstract: In recent years, malware integrates domain name to generate algorithms, and generates a large number of malicious domain names which is a serious threat to network security. Most of the existing malicious domain name detection methods have problems of low detection efficiency. This paper proposes a Support Vector Machine (SVM) optimization method by using an optimized Cuckoo Search algorithm (CS), namely the BCS-SVM method, which can be adapted to the DGA domain name detection scenario. The experiment uses open domain name data as the sample set, trains the DGA domain name detection method proposed in this paper, and an efficient DGA domain name detection model is realized through domain name vector conversion, detection model training and parameter tuning finally.
Keywords: feature selection; DGA domain name; Cuckoo Search algorithm; Support Vector Machine
0? 引? 言
近些年來,各種網(wǎng)絡(luò)惡意行為不斷出現(xiàn),網(wǎng)絡(luò)入侵事件層出不窮,網(wǎng)絡(luò)攻擊隨時發(fā)生,如僵尸網(wǎng)絡(luò)和勒索軟件,這些攻擊嚴(yán)重依賴命令與控制渠道遠程進行惡意活動。為了逃避通道檢測,攻擊者不斷嘗試使用不同的隱蔽通信技術(shù)。其中最常見的一種技術(shù)是域名生成算法,它允許惡意軟件隨機生成大量域名,直到找到其相應(yīng)的C&C服務(wù)器。它對檢測系統(tǒng)和逆向工程具有高度的彈性,同時允許C&C服務(wù)器擁有多個冗余域名。隨著惡意軟件動態(tài)生成域名的速度和方式越來越多,使得現(xiàn)有的檢測措施變得越來越困難,因此對惡意域名的動態(tài)檢測和阻止其與C&C服務(wù)器進行通信具有重要的意義?;诖颂岢隽藘?yōu)化CS-SVM算法的惡意域名檢測方法,該方法對惡意域名的檢測準(zhǔn)確率達到97.2%,檢測效果較優(yōu)。
1? 研究概述
用于惡意域名檢測方面的無監(jiān)督方法獲得了大量的關(guān)注和研究,為后續(xù)研究提供大量的理論基礎(chǔ)。傳統(tǒng)的檢測方法基于黑名單技術(shù)以及啟發(fā)式規(guī)則識別分析技術(shù)對惡意域名進行檢測,隨著機器學(xué)習(xí)技術(shù)的發(fā)展,2015年,Truong和Cheng提出了一種檢測域名流動的系統(tǒng),通過分析DNS流量,從惡意和良性域名的字符串中提取詞匯特征進行識別[1]。2016年,Song等人提出了一種基于隨機森林分類器的方法來檢測算法生成的域名,一些特征基于n-gram計算。對惡意域名進行檢測取得了較好的結(jié)果[2]。2020年,趙宏提出一種基于深度自編碼和決策樹的惡意域名檢測算法,利用域名特征作為輸出構(gòu)建深度自編碼網(wǎng)絡(luò)模型,實現(xiàn)對域名的檢測[3]。2022年,李曉冬提出一種基于融合嵌入層的惡意域名檢測方法,采用融合向量與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,實現(xiàn)惡意域名檢測[4]。從上述研究發(fā)現(xiàn)對惡意域名檢測時多數(shù)方法都依賴于語言特性,需要復(fù)雜的計算,尤其是對字符級惡意域名來說,一些檢測方法的檢測效果較差。深度神經(jīng)網(wǎng)絡(luò)模型參數(shù)較多、計算復(fù)雜、模型運行時間長。
2? 改進布谷鳥搜索的支持向量機方法
因網(wǎng)絡(luò)域名數(shù)據(jù)中所涉及的特征較為復(fù)雜,另一方面眾多的機器學(xué)習(xí)方法在訓(xùn)練高維數(shù)據(jù)中具有很大的困難,因而導(dǎo)致模型的訓(xùn)練時間長,訓(xùn)練效果不佳,尤其是對于有監(jiān)督的訓(xùn)練造成很大的困擾。本文采用改進布谷鳥搜索的支持向量機方法針對惡意域名檢測進行研究,主要分為兩部分構(gòu)成,一是使用改進布谷鳥搜索算法對于網(wǎng)絡(luò)惡意域名特征進行特征篩選,二是將篩選好的特征利用支持向量機方法進行分類,從而實現(xiàn)對與惡意域名的發(fā)現(xiàn)和甄別。
2.1? 基于優(yōu)化的布谷鳥搜索算法
傳統(tǒng)的布谷鳥搜索算法(CS算法)是由Yang等在2010年根據(jù)布谷鳥的繁殖生活習(xí)性受到的啟發(fā)提出的[5]。該算法迭代地使用Lévy飛行隨機游走來探索搜索空間。針對布谷鳥的生活習(xí)性,傳統(tǒng)布谷鳥算法的具有以下三條基本規(guī)則:
1)在初始化過程中,隨機選擇鳥窩產(chǎn)蛋并孵化,每次只產(chǎn)出一枚蛋。
2)利用Lévy飛行進行位置更新選擇最優(yōu)的鳥窩,并將最優(yōu)鳥窩保留。
3)宿主的巢數(shù)量是固定的,宿主發(fā)現(xiàn)布谷鳥下的蛋的概率為P,此概率值在0到1之間,但發(fā)現(xiàn)布谷鳥蛋時候,會將巢穴丟棄建立新巢穴或?qū)⒉脊萨B蛋丟棄。
布谷鳥搜索算法利用Lévy飛行來更新自己的位置,該飛行表達式為:
其在這里,這些步驟基本上形成了一個隨機行走過程,具有冪律分布和沉重的尾部,這將加快本地搜索速度,這將確保系統(tǒng)不會陷入局部最優(yōu)。尋找的計算式為:
由此可見, 的位置由上一個路徑? 所得到的,分別代表t+1和t的鳥窩位置。其中α>0表示其步長,上述方程本質(zhì)上是隨機行走的隨機方程。通常,隨機游動是一個馬爾可夫鏈,其下一個位置僅取決于當(dāng)前位置(上述方程中的第一項)和轉(zhuǎn)移概率(第二項)。 代表的點乘積,也就是所謂的逐項乘法。
布谷鳥搜索算法迭代的使用Lévy飛行隨機游走來探索搜索空間。Lévy飛行機制突然轉(zhuǎn)彎90度,因此布谷鳥搜索策略沒有在布谷鳥巢周圍仔細搜索,因此收斂速度慢,優(yōu)化精度低。并且布谷鳥搜索算法一般是面對連續(xù)性的優(yōu)化問題,將布谷鳥搜索算法應(yīng)用到特征選擇中就需要將我們的算法進行離散化改進。圖1為改進布谷鳥搜索算法的流程圖。
2.2? 支持向量機算法
支持向量機(SVM)是一種采用監(jiān)督學(xué)習(xí)方式的分類模型。SVM的優(yōu)點在于其可解釋性強、不依靠傳統(tǒng)的統(tǒng)計方法,從而簡化分類和回歸問題,在分類評價中具有較高的精度和計算效率。對于一個二分類問題,假設(shè)特征空間Rn,其中n表示特征空間中每個樣本點都是n維的,并且該特征空間中有m個訓(xùn)練樣本點。訓(xùn)練數(shù)據(jù)集表(xi,yi),i = 1, 2, …, m,其中xi ∈ Rn表示樣本特征向量,yi{+1, -1}表示其對應(yīng)的類別。具體的算法步驟如下:
顯然,對于二分類評價SVM的優(yōu)劣主要有所采取的核心函數(shù)以及懲罰參數(shù)所決定。
在對樣本的特征維數(shù)較低,樣本數(shù)量較多的情況,一般選用高斯核函數(shù),同時在處理數(shù)據(jù)時可以先對特征進行縮放,可以減少后續(xù)出現(xiàn)過擬合的現(xiàn)象?;诖颂岢鲆环N采用BCS算法提取域名特征,將提取到的特征作為SVM的輸入,最終構(gòu)建BCS-SVM分類模型。
3? 實驗與結(jié)果分析
3.1? 實驗數(shù)據(jù)集
本次實驗的惡意域名是從已知的真實數(shù)據(jù)集DGArchive中選取,其中包含bep、dircrypt、emotet、pregozi、oderoor等在內(nèi)的50個惡意域名家族數(shù)據(jù)。正常域名來自Alexa網(wǎng)站,使用Alexa 的排名相對比較靠前的域名作為正常域名。選擇惡意域名是按照比例從每個惡意域名家族中隨機抽取一定數(shù)量的樣本,然后將隨機抽取的樣本組合成惡意域名樣本集。最終將正常域名與惡意域名的樣本合并得到最終的數(shù)據(jù)集。合并后的數(shù)據(jù)集共99萬條數(shù)據(jù),數(shù)據(jù)集詳情如表1所示。
3.2? 數(shù)據(jù)處理及指標(biāo)
在進行檢測模型訓(xùn)練前,需要對數(shù)據(jù)進行預(yù)處理,對每條域名進行分類標(biāo)識。本文主要討論惡意域名的檢測方法,不對惡意域名家族進行分類,其中,域名分為正常域名和惡意域名兩類,其中正常域名標(biāo)記為0,惡意域名標(biāo)記為1。
對于二分類任務(wù),通常使用下述幾種評估指標(biāo)。
其中TP表示樣本預(yù)測值與真實值相符且均為正;FP表示樣本預(yù)測值為正而真實值為負;FN表示樣本預(yù)測值為負而真實值為正;TN表示樣本預(yù)測值與真實值相符且均為負。
3.3? 實驗結(jié)果與分析
實驗首先對處理完的數(shù)據(jù)使用布谷鳥搜索算法進行特征篩選擇優(yōu),表2是篩選后的結(jié)果。
采用的對比實驗?zāi)P头謩e為支持向量機[6]、多層感知機[7]、CS-SVM、BCS-SVM算法。表2是四種模型的性能指標(biāo)。實驗過程中,本文分別采用的傳統(tǒng)的機器學(xué)習(xí)方法(SVM)、深度學(xué)習(xí)(MLP)和CS-SVM方法以及提出的BCS-SVM算法進行分類。分析表3,可以看出改進后的BCS-SVM模型比CS-SVM的準(zhǔn)確率提高了3.9%,對比SVM和MLP準(zhǔn)確率上均有所提升。采用BCS-SVM對域名進行檢測取得了較優(yōu)的效果,說明了本文的檢測方法,對惡意域名與正常域名具有良好檢測的效果。
圖2是不同算法在數(shù)據(jù)集上的實驗結(jié)果。實驗結(jié)果表明,采用BCS-SVM對域名進行檢測,在各項評價指標(biāo)均優(yōu)于SVM和MLP以及改進前的CS-SVM算法。
4? 結(jié)? 論
惡意域名檢測成為檢測釣魚網(wǎng)站、勒索病毒的重要方式。本文基于公開的惡意域名數(shù)據(jù)集域名和Aleax全球網(wǎng)站排名信息構(gòu)建域名樣本數(shù)據(jù),提出一種基于BCS-SVM算法的分類檢測方法,該方法用布谷鳥搜索算法(CS算法)進行特征篩選和組合,然后將篩選后的特征輸入到支持向量機(SVM)中,減少了一定量的參數(shù),計算速率上有明顯提升。實驗結(jié)果表明,該方法能夠有效檢測出惡意域名,相較于SVM、MLP以及改進前的CS-SVM檢測方法,各項指標(biāo)更高,檢測效果更優(yōu)。
參考文獻:
[1] TRUONG D,CHENG G.Detecting domain‐flux botnet based on dns traffic features in managed network [J].Security and Communication Networks,2016,9(14):2338-2347.
[2] SONG W J,LI B. A Method to Detect Machine Generated Domain Names Based on Random Forest Algorithm [C]//2016 International Conference on Information System and Artificial Intelligence (ISAI).Hong Kong:IEEE,2017:509-513.
[3] 趙宏,常兆斌,王偉杰.基于深度自編碼和決策樹的惡意域名檢測 [J].微電子學(xué)與計算機,2020,37(5):13-17.
[4] 李曉冬,李育強,宋元鳳,等.新的基于融合向量的DGA域名檢測方法 [J].計算機應(yīng)用研究,2022,39(6):1834-1837+1844.
[5] YANG X S,DEB S. Cuckoo Search via Levy Flights [J/OL].arXiv:1003.1594 [math.OC].(2010-05-08).https://arxiv.org/abs/1003.1594.
[6] WANG Z,JIA Z,ZHANG B. A Detection Scheme for DGA Domain Names Based on SVM [C]//Science and Engineering Research Center.Proceedings of 2018 International Conference on Mathematics,Modelling,Simulation and Algorithms(MMSA2018).Chengdu:Atlantis Press,2018:268-274.
[7] 王輝,周忠錦,王世晉,等.基于MLP深度學(xué)習(xí)算法的DGA準(zhǔn)確識別技術(shù)研究 [J].信息安全研究,2019,5(6):495-499.
[8] CHEN T,CUESTRIN C. XGBoost:A Scalable Tree Boosting System [C]//KDD '16:The 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.San Francisco:Association for Computing Machinery,2016:785-794.
作者簡介:盧加奇(1997—),男,漢族,江蘇徐州人,碩士研究生在讀,研究方向:網(wǎng)絡(luò)安全、APT攻擊;呂廣旭(1998—),男,漢族,山東德州人,碩士研究生在讀,研究方向:網(wǎng)絡(luò)安全、數(shù)據(jù)挖掘;魏先燕(1996—),女,漢族,湖北襄陽人,碩士研究生在讀,研究方向:語音安全、數(shù)據(jù)分析;馮燕茹(1985—),女,漢族,山西長治人,副教授,博士研究生,研究方向:語音安全、網(wǎng)絡(luò)工程;通訊作者:王小英(1979—),女,漢族,陜西咸陽人,教授,碩士,研究方向:無線通信、WSN技術(shù)、網(wǎng)絡(luò)安全。
收稿日期:2023-01-08
基金項目:防災(zāi)科技學(xué)院教育研究與教學(xué)改革項目(JY2022B31)