• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于DGA域名檢測方法的選優(yōu)方案研究

      2021-07-30 13:37:20羅海波陳星池董建虎
      新一代信息技術(shù) 2021年8期
      關(guān)鍵詞:域名字符貝葉斯

      羅海波,陳星池,董建虎

      (廣東東軟學(xué)院 計算機(jī)學(xué)院,廣東 佛山 528225)

      0 引言

      動態(tài)域名生成算法(Domain Generate Algorithm,DGA)能夠有效地生成偽隨機(jī)域名。攻擊者常常會使用域名將惡意程序連接至命令控制服務(wù)(Command and Control Server,CC服務(wù)器),從而達(dá)到操控受害者機(jī)器的目的[1]。攻擊者可以輕松更改這些域名和IP,即使CC服務(wù)器地址部分失效或者變更也能保持連接,而且這些域名往往與惡意程序中的編碼混合在一起,具有很強(qiáng)的隱蔽性。

      截至2019年12月,網(wǎng)上公開的基于DGA算法變種就已經(jīng)達(dá)到44種[2]。惡名昭彰的惡意軟件Zeus和Conficker就是使用了該算法。DGA算法是實(shí)現(xiàn)惡意程序的重要技術(shù),分析、復(fù)現(xiàn)、檢測偽隨機(jī)域名,進(jìn)而有效地檢測惡意程序,對于國家、企事業(yè)、軍民網(wǎng)絡(luò)空間安全有其現(xiàn)實(shí)意義。

      用于應(yīng)對 DGA算法生成惡意域名的傳統(tǒng)方法有黑名單過濾和通過逆向惡意樣本中的 DGA算法,提前搶注域名來奪取CC服務(wù)器的控制權(quán)。據(jù)研究表明,前者無法對動態(tài)生成的 DGA域名實(shí)時更新,準(zhǔn)確率不高;后者雖然可以通過逆向樣本深入理解該樣本的 DGA算法和生成惡意域名機(jī)制,但是需要消耗大量的時間和精力,效率不高[3]。因此,人們的研究方向主要放在對DGA域名的實(shí)時檢測,主流技術(shù)包括利用機(jī)器學(xué)習(xí)的方法構(gòu)建 DGA域名分類器、使用深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行檢測。

      首先介紹了 DGA域名的研究背景和價值,DGA域名的特點(diǎn)、分類和基本定義。然后介紹了人工智能中幾種流行的智能算法,例如XGBoost、樸素貝葉斯、多層感知器和循環(huán)神經(jīng)網(wǎng)絡(luò)。接著介紹了幾種特征提取方法,包括 N-Gram模型、統(tǒng)計域名特征模型和字符序列模型。最后對算法和特征提取進(jìn)行實(shí)驗(yàn),并對結(jié)果進(jìn)行對比分析,獲取較優(yōu)的特征提取和算法組合。

      1 準(zhǔn)備工作

      使用人工智能構(gòu)建模型,通過該模型對DGA域名的實(shí)時檢測,這里需要涉及到分類(Classify)。分類指的是基于某種定義好的規(guī)則,將需要處理的數(shù)據(jù)集劃分類別。常見的分類任務(wù)包括二分類、多分類和多標(biāo)簽分類,對 DGA域名的實(shí)時檢測只需要判斷域名是否正常,所以采用的是二分類。機(jī)器學(xué)習(xí)種常見的二分類算法有:貝葉斯分類、XGBoost算法等。而多層感知機(jī)和循環(huán)神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)中的重要算法,除了可以用來做復(fù)雜的圖像識別,應(yīng)用在文本的二分類方面也有不錯的效果。

      下面將在特定的特征為基礎(chǔ)上,分別實(shí)現(xiàn)貝葉斯分類、XGBoost算法、多層感知機(jī)算法和循環(huán)神經(jīng)網(wǎng)絡(luò)算法在DGA域名檢測中的具體應(yīng)用。

      1.1 樸素貝葉斯

      樸素貝葉斯分類器(Naive Bayes Classifier,NBC)是貝葉斯決策理論的一部分,可以也被應(yīng)用于解決諸如某行業(yè)是否值得投資、個人信用等級評定、網(wǎng)絡(luò)態(tài)勢感知、醫(yī)療診斷等統(tǒng)計分析與預(yù)測領(lǐng)域[4]。該算法有點(diǎn)在于簡單易懂、學(xué)習(xí)效率高、在某些領(lǐng)域的分類問題中的效果與決策樹神經(jīng)網(wǎng)絡(luò)相媲美[5]。

      假設(shè)類別為C,信息的特征值為W,則貝葉斯決策的基本公式為:

      若在特定的條件前提下,假設(shè)信息體有n個特征W,即Wn={W1,W2,W3, ...,Wn},每個特征相互獨(dú)立且互不影響[6]。則有樸素貝葉斯的公式為:

      在樸素貝葉斯模型中,P(C)代表每個信息體類別的概率,也即被測信息體類別數(shù)除以總信息數(shù)量;P(W1,W2,W3,...,Wn)代表被測信息體的n個特征值集合,即是每個特征出現(xiàn)的概率相乘;P(W1,W2,W3, ...,Wn/C)代表指定類別下某個信息體的n個特征值集合,即是被測信息體中出現(xiàn)所有詞的概率相乘。

      1.2 XGBoost

      XGBoost(Extreme Gradient Boosting,XGBoost),也被稱為梯度提升決策樹。近年來比較熱門,經(jīng)常被應(yīng)用于一些機(jī)器學(xué)習(xí)的競賽中,其中在Kaggle數(shù)據(jù)挖掘挑戰(zhàn)賽中,29個冠軍有17個使用了XGBoost算法[7]。其算法學(xué)習(xí)速度很快,效果也很好,性能比另一個機(jī)器學(xué)習(xí)庫 scikit-learn庫的增強(qiáng)梯度算法要好上不止10倍[8],而且可以應(yīng)用與Python、R、C++等多個平臺,有很強(qiáng)的擴(kuò)展性和移植性。

      XGBoost所應(yīng)用的算法就是GBDT(Gradient Boosting Decision T ree)的改進(jìn),屬于 Boosting集成學(xué)習(xí),也即采用集成學(xué)習(xí)的方法,由多個相關(guān)聯(lián)的決策樹聯(lián)合決策,目的使組合后的模型具有更強(qiáng)的泛化能力。XGBoost既可以用于分類也可以用于回歸問題。

      對于樣本i=1,2,3,...,m,XGBoost的計算公式為:

      其中L(yi,ft-1(xi))為XGBoost原始目標(biāo)損失函數(shù),而是為防止訓(xùn)練中數(shù)據(jù)過擬合的正則項(xiàng)。

      其中GL,HL,GR,HR分別是當(dāng)前節(jié)點(diǎn)左右子樹的一階二階導(dǎo)數(shù)和。

      XGBoost算法的主算流程如下:

      Part.1首先向分類器輸入訓(xùn)練樣本數(shù)據(jù)集合I,I={(x1, y1) ,(x2, y2) ,(x3, y3)...(xm, ym)},初始化訓(xùn)練參數(shù):迭代數(shù)T,損失函數(shù)L,正則化系數(shù)λ,γ;

      Part.2迭代T輪訓(xùn)練數(shù)據(jù);

      Setp.1計算i個樣本(1,2,3,…,m)在當(dāng)前輪損失函數(shù)L基于ft-1(xi)的一階導(dǎo)數(shù)g和二階導(dǎo)數(shù)h,并分別對所有樣本的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)求和;

      Setp.2基于當(dāng)前節(jié)點(diǎn)嘗試分裂決策樹并更新分?jǐn)?shù)score值,默認(rèn)分?jǐn)?shù)score為0;

      Setp.3基于最大的score對應(yīng)的劃分特征和特征值分裂子樹;

      Setp.4若最大score值為0,則當(dāng)前決策樹建立完畢,計算所有葉子區(qū)域的ωtj,得到弱學(xué)習(xí)器ht(x),更新強(qiáng)學(xué)習(xí)器ft(x),進(jìn)入下一輪弱學(xué)習(xí)器迭代。如果最大score不是0,則會轉(zhuǎn)到Setp.2繼續(xù)嘗試分裂決策樹;

      Part.3輸出強(qiáng)學(xué)習(xí)器f(x);

      1.3 多層感知器

      多層感知器(Multi-Layer Perceptron,MLP)也稱為人工神經(jīng)網(wǎng)絡(luò)。它類似與于人類的神經(jīng)元結(jié)構(gòu):樹突、細(xì)胞體和軸突[9]。最簡單的MLP只有三層結(jié)構(gòu),最底層是輸入層,中間是隱藏層,最上層是輸出層,層與層之間是全連接。多層感知器作為深度學(xué)習(xí)常用的一種算法,常常被用于處理非線性可分離的問題,分類的準(zhǔn)確度高,并行分布處理能力強(qiáng),分布存儲及學(xué)習(xí)能力強(qiáng),對噪聲神經(jīng)有較強(qiáng)的魯棒性和容錯能力,能充分逼近復(fù)雜的非線性關(guān)系,具備聯(lián)想記憶的功能等。

      假設(shè)輸入為x,最簡單的多層感知器公式為:

      其中H(b1+W1x)表示輸入層與隱藏層連接的激活函數(shù),常用函數(shù)有sigmoid、anh和relu。求解出來的值作為下一層輸出層函數(shù)G(b2+W2x)的輸入,常用的函數(shù)有softmax。而b1、W1、b2和W2都是層與層之間連接的權(quán)重和偏置參數(shù)。

      1.4 循環(huán)神經(jīng)網(wǎng)絡(luò)

      循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)在 21世紀(jì)初被列入深度學(xué)習(xí)算法中[10]。因?yàn)檠h(huán)神經(jīng)網(wǎng)絡(luò)參數(shù)共享,具有記憶性,被用于處理諸如文字、時間等序列數(shù)據(jù)。

      但循環(huán)神經(jīng)網(wǎng)絡(luò)不具備長期依賴信息的學(xué)習(xí)能力,在長鏈中若相隔時間太長容易產(chǎn)生梯度消失的問題。后來LSTM(Long Short-Term Memory)的出現(xiàn),通過精妙的門控制將長短期記憶結(jié)合起來很好的解決了這一問題[11],讓網(wǎng)絡(luò)非常擅長長時間學(xué)習(xí)文本和言語處理,因此被廣泛應(yīng)用。

      2 檢測方法

      2.1 模型描述

      DGA域名識別采用如圖1所示框架。

      圖1 DGA 域標(biāo)識框架Fig.1 DGA domain identification frame

      Setp.1加載Alexa前100萬域名數(shù)據(jù)作為白樣本,360netlab開放的DGA域名為黑樣本,并且對黑白樣本進(jìn)行數(shù)據(jù)合并;

      Setp.2特征提取。方式1,使用N-Gram模型;方式2,使用統(tǒng)計域名特征模型;方式3,使用字符序列模型;

      Setp.3將合并后的數(shù)據(jù)集的數(shù)據(jù)分為兩份部分,其中一部分是測試集占40%,另一部分是訓(xùn)練集占60%;

      Setp.4利用分類算法對訓(xùn)練集進(jìn)行訓(xùn)練,得到模型數(shù)據(jù),算法 1:樸素貝葉斯,算法 2:XGBoost,算法3:多層感知器,算法4:循環(huán)神經(jīng)網(wǎng)絡(luò);

      Setp.5使用模型數(shù)據(jù)進(jìn)行預(yù)測,進(jìn)行分類;

      Setp.6效果進(jìn)行驗(yàn)證。

      2.2 DGA 域名特征提取

      用于識別 DGA域名的特征提取方法有:N-Gram模型、統(tǒng)計域名特征模型以及字符序列模型等。

      特征提?。‵eature Extraction)無論是在文本處理、圖像識別等都有著廣泛的應(yīng)用。特征提取的方法主要是通過屬性間的關(guān)系,組合不同的屬性得到新的屬性,這樣做改變了原來的特征空間。目的就是試圖去減少特征數(shù)據(jù)集中的屬性,對原來特征數(shù)據(jù)進(jìn)行降維,必須保證描述原特征數(shù)據(jù)的精確性和完整性的同時,更加方便模型學(xué)習(xí)。

      2.3 N-Gram 模型

      N-Gram是一種基于統(tǒng)計語言的算法模型。其核心思想是將文本內(nèi)容按照字節(jié)進(jìn)行大小為N的滑動窗口操作,最終形成長度為N的字節(jié)片段序列。

      在該模型構(gòu)成的文本向量特征空間中,列表的每一個字節(jié)片被稱為gram,并且按照事先設(shè)定好的闊值進(jìn)行過濾和對所有的gram出現(xiàn)頻率進(jìn)行統(tǒng)計。N-Gram模型常被用于評估語句是否合理[12]、搜索引擎或者輸入法的猜想提示[13],N值越大,

      對下一個備選提示詞的選擇就更多,但更加稀疏;而N值越小,對下一個備選提示詞的約束信息更少,但更加精確。文章使用的是2-Gram的特征提取模型。例如域名[‘baidu.com’]經(jīng)過該模型的處理之后,會變成詞匯表[‘ba’,’ai’,’id’,’du’,’uc’,’co’,’om’]。

      2-Gram模型的處理過程如表1所示。

      表1 2-Gram 模型處理流程Tab.1 2-Gram processing flow

      2.4 統(tǒng)計域名特征模型

      域名統(tǒng)計特征模型(Domain Statistics),域名最初的誕生就是為了解決用戶請求更方便請求資源的問題,為了更好的體驗(yàn)正常域名長度一般不會存在過長的狀況。而 DGA域名僅僅是為了保持被惡意軟件主機(jī)和 CC服務(wù)器通信,為了盡可能避免 DGA生成的域名與正常域名產(chǎn)生沖突,一般 DGA域名長度會比正常域名長。但這不是絕對的,有些 DGA域名為了躲避打擊和檢測,生成 DGA域名長度也會使用較短,所以只憑借域名長度這個特征判斷是不夠的。

      從域名的內(nèi)容方面研究,正常人通常在取域名的時候,會偏好選取容易記憶與理解的幾個字母組合,也即是元音字母比例會比較高。而DGA算法生成的是隨機(jī)域名,所以元音字方面的特征不明顯;除了元音字母出現(xiàn)的比例不同,文獻(xiàn)[14]也指出唯一字符數(shù)分布區(qū)間也有差異。

      本次實(shí)驗(yàn)通過統(tǒng)計每個域名的元音字母個數(shù)、不重復(fù)字符個數(shù)、數(shù)字個數(shù)和域名長度,可以有效的將正常域名和DGA域名進(jìn)行區(qū)分。

      統(tǒng)計域名特征模型的處理過程如表2所示。

      表2 域統(tǒng)計處理流程Tab.2 Domain statistics processing flow

      2.5 字符序列模型

      字符序列統(tǒng)計模型(Character Sequence),每個域名都是由字符組成的序列,將對應(yīng)的字符直接轉(zhuǎn)換成對應(yīng)的ASCII值。相比一些諸如聚類等復(fù)雜的特征提取方法,該方法只需要對域名進(jìn)行簡單的編碼,可令分類模型能夠直接學(xué)習(xí)數(shù)據(jù)的原始特性。

      字符序列模型的處理過程如表3所示。

      表3 字符序列處理流程Tab.3 Character sequence processing flow

      3 仿真實(shí)驗(yàn)

      3.1 實(shí)驗(yàn)數(shù)據(jù)

      Alexa是一家著名的發(fā)布世界網(wǎng)站排名的網(wǎng)站,當(dāng)前擁有最權(quán)威、詳細(xì)的網(wǎng)站排名信息。而360netlab則記錄著目前公開的所有DGA家族域名數(shù)據(jù)。本次實(shí)驗(yàn)采取Alexa全球前100萬個的網(wǎng)站域名作為白樣本和 360netlab的開放數(shù)據(jù)作為黑樣本。

      3.2 評價指標(biāo)

      在混淆矩陣中,TP代表真正例,TN代表真負(fù)例,F(xiàn)P代表假正例,F(xiàn)N代表假負(fù)例。

      精確率(Precision)是指預(yù)測正確的樣本占真實(shí)樣本比例,常常被作為二分類模型的評估指標(biāo)。計算精確率的公式為:

      召回率(Recall)能反映出一個模型對樣本的覆蓋能力,也被稱為靈敏度(Sensitivity)。計算靈敏度的公式為:

      F1-Score是精確率和召回率的一個均衡評價,國內(nèi)外很多機(jī)器學(xué)習(xí)競賽都關(guān)注這個 F1-Score值。F1-Score的計算公式為:

      ROC(Receiver Operating Characteristic Curve)也被稱為受試者工作特征曲線。數(shù)十年前在分析無線電、醫(yī)學(xué)等領(lǐng)域都有應(yīng)用,而最近在機(jī)器學(xué)習(xí)領(lǐng)域中也得到了良好的發(fā)展。ROC曲線相對于準(zhǔn)確率、召回率等這類指標(biāo)評估標(biāo)準(zhǔn),它減少了對預(yù)測概率設(shè)分類闊值步驟,大大提高了模型的泛化能力。ROC是以假正率(False Positive Rate,F(xiàn)PR)為橫坐標(biāo),真正率(True Positive Rate,TPR)為縱坐標(biāo)繪制的曲線。而真正率與召回率的計算公式相同。假正率的計算公式為:

      ROC曲線能反映其模型的靈敏性和特效性連續(xù)變量的綜合指標(biāo),一般曲線越光滑就表示模型與數(shù)據(jù)的過擬合度越低,曲線越靠左上角就表示該模型的準(zhǔn)確性越高。AUC(Area Under the Receiver Operating Characteristic Curve)物理上的含義就是代表ROC曲線下的面積,其值越大也表示模型準(zhǔn)確性越高[15]。

      3.3 實(shí)驗(yàn)結(jié)果與分析

      圖2展示了基于域統(tǒng)計/字符序列的不同分類器的評價指標(biāo)實(shí)驗(yàn)結(jié)果。從圖上可以看出,在相同的數(shù)據(jù)集下,基于字符序列特征模型的RNN效果明顯優(yōu)于其他分類器,并且AUC的檢測準(zhǔn)確概率值達(dá)到0.93。圖3展示了基于2-Gram特征模型不同分類器的評價指標(biāo)實(shí)驗(yàn)結(jié)果。從圖上可以看出,MLP對DGA域名檢測的準(zhǔn)確率最佳,AUC的值可以達(dá)到0.94。

      圖2 基于域統(tǒng)計/字符序列的分類器指標(biāo)Fig.2 Classifier comparison based on domain statistics/character sequence

      圖3 基于2-Gram的分類器比較Fig.3 Classifier comparison based on 2-Gram

      對比圖2和圖3可以看出,基于2-Gram特征模型的F1、靈敏度、精確率等指標(biāo)均優(yōu)于基于域統(tǒng)計/字符序列模型。

      4 結(jié)論

      文章簡要闡述了 DGA域名課題的研究背景和價值,DGA域名的特點(diǎn)、分類和基本定義。本文介紹了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中幾種流行的XGBoost、樸素貝葉斯、多層感知器和循環(huán)神經(jīng)網(wǎng)絡(luò)算法。介紹了幾種特征提取的方法,包括NGram模型、統(tǒng)計域名特征模型和字符序列模型。經(jīng)過對比發(fā)現(xiàn),基于2-gram特征模型的多層感知器在 DGA域名檢測中的得到較高的評價,未來研究得主要方向?qū)⒎旁谌绾芜M(jìn)一步提升該組合的DGA域名檢測能力,而在實(shí)踐工程中往往也有其他特征提取模型和分類算法,接下來也會嘗試新的可能性,組合不同的特征模型分類算法對DGA域名檢測進(jìn)行改進(jìn)。

      猜你喜歡
      域名字符貝葉斯
      尋找更強(qiáng)的字符映射管理器
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計
      電子制作(2019年19期)2019-11-23 08:41:50
      消失的殖民村莊和神秘字符
      如何購買WordPress網(wǎng)站域名及綁定域名
      貝葉斯公式及其應(yīng)用
      基于貝葉斯估計的軌道占用識別方法
      一種基于貝葉斯壓縮感知的說話人識別方法
      電子器件(2015年5期)2015-12-29 08:43:15
      騰訊八百萬美元收購域名
      IIRCT下負(fù)二項(xiàng)分布參數(shù)多變點(diǎn)的貝葉斯估計
      澎湖县| 徐州市| 得荣县| 绥德县| 潞城市| 全椒县| 丹江口市| 合江县| 阿拉尔市| 乌什县| 黄山市| 扬州市| 泉州市| 微山县| 江川县| 个旧市| 陇川县| 库伦旗| 科尔| 梓潼县| 祁阳县| 泽库县| 宁南县| 公安县| 岑溪市| 雅安市| 凤阳县| 南郑县| 镇巴县| 咸丰县| 通州区| 乌鲁木齐县| 威海市| 岫岩| 安泽县| 鄂尔多斯市| 乌拉特中旗| 林甸县| 蒲城县| 泾川县| 屏东市|