999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于fastText的惡意域名分類方法

2021-09-05 11:43:00匡立偉
電子設計工程 2021年17期
關鍵詞:分類特征實驗

姜 天,匡立偉

(1.武漢郵電科學研究院,湖北 武漢 430073;2.烽火通信科技股份有限公司,湖北 武漢 430073)

僵尸網絡(botnet)通常由大量被感染惡意代碼的主機(bot)、命令和控制服務器(C&C server)以及主控端(Botmaster)構成。攻擊者使用主控端向C&C server發送操作指令,服務器再將命令下達到各個被控制主機,進而實現對目標終端的分布式拒絕服務(Distributed Denial of Service,DDOS)、垃圾郵件分發以及惡意軟件下載等網絡攻擊[1]。為了防止C&C服務器的域名被黑名單攔截,避免出現主機域名無法解析的情況,攻擊者會使用一種域名變換技術(Domain-Flux)來達到高頻率映射C&C服務器域名到IP地址的目的[2],域名生成算法(DGA)則是該技術的具體實現。首先DGA會定期生成大量的隨機域名,接著C&Cserver選擇其中指定的域名進行注冊,注冊完成后被控制主機能夠解析服務器的地址。

使用DGA生成惡意域名,一定程度上增強了僵尸網絡的隱蔽性和靈活性。針對字符級別的DGA域名檢測,文中提出的方法能夠對DGA家族進行識別和分類,并且能夠有效提升發現和追蹤僵尸網絡的能力。

1 相關研究

對于字符級別的惡意域名,目前主要分為基于統計特征的機器學習和基于深度學習模型兩種檢測方式[3]。

由于正常域名和惡意域名之間的差異主要體現在主機名上,因此通過人工提取字符的統計特征,然后使用相應的機器學習算法即可完成DGA檢測任務。文獻[4]提取了域名字符的統計特征和n-gram特征,并使用3種機器學習模型來評估域名特征識別性能。實驗結果表明,使用特征組合的n-gram(n=1,2,3)模型所得的精確率和召回率較高,并且多層感知器(MLP)的DGA域名檢測準確率高于其他兩種算法。文獻[5]提出一種基于大數據平臺的DGA檢測系統,其核心由分類分析和聚類分析模塊構成。該系統使用預訓練好的隨機森林模型來分離正常域名和可疑DGA域名,使用X-means算法對DGA域名進行無監督式聚類檢測。文獻[6]使用隱馬爾可夫模型中的Baum-Welch算法和Viterbi算法對未知域名進行分類,實驗結果顯示,該模型可以實現惡意域名的快速高效檢測。

隨著自然語言處理和計算機視覺等人工智能領域的發展,一些深度學習模型也逐漸被運用在惡意域名檢測任務中[7]。文獻[8]提出一種基于LSTM的惡意域名分類與檢測模型。通過二分類和多分類實驗結果的統計數據可以看到,該模型能夠較為準確地識別DGA域名。文獻[9]提出DBD(Deep Bot Detect)檢測模型,該模型由文本預處理、最優特征提取和分類模塊構成。DBD模型的訓練參數較少、訓練速度快且發生過擬合的概率較小。文獻[10]使用word-hashing技術,首先將域名轉換成高維稀疏向量,然后通過深度神經網絡(DNN)的隱藏層來學習bigram特征,最后使用輸出層輸出分類結果。模型整體的泛化能力強,且準確率比使用自然語言特征分類算法得到的結果高。

2 fastText模型及其原理

fastText是Facebook AI Research在2016年開源的一個被用于對詞向量和句子分類進行高效學習訓練的工具庫。該工具可以在監督和非監督模式下訓練單詞和句子的向量表示。訓練完成后生成的詞向量,可以進一步用在其他模型的初始化和特征選擇等任務中[11]。

fastText作為一種快速文本分類工具,其最大的特點是速度快。相比較其他文本分類模型,諸如邏輯回歸(Logistic Regression)和神經網絡(Neural Network)等,fastText在保留了較高分類準確度的情況下,還極大地縮短了訓練和測試的時間。除此之外,使用fastText也不需要提供預訓練好的詞向量。

2.1 基礎架構

一個簡單有效的文本分類框架通常使用詞袋模型(Bag of Words,BoW)來表示獨立的句子,同時搭配一個訓練好的線性分類器(比如邏輯回歸和支持向量機等)。但由于線性分類器不能在特征和類別信息之間共享參數,這樣會限制模型整體的泛化能力,因此需要將分類器分解為低階矩陣[12]。

fastText將上述思路與神經網絡的分層思想相結合,構成了一種快速文本分類器的設計方案。圖1展示了fastText的基礎架構。

圖1 fastText基礎架構

從圖1中可以看出,fastText模型主要由輸入層、隱藏層和輸出層構成。首先通過輸入層傳入文本對應的n-gram向量,接著在隱藏層進行詞向量的疊加平均處理,最后在輸出層采用分層softmax預測結果,輸出文檔的判別類別[13]。因此,fastText的目標是將極大似然轉化為對數似然,同時使其最小化。式(1)展示了目標函數的計算方法。

其中,Yk表示第k份樣本對應的標簽值,f表示使用softmax函數預測類別,B是一個權重矩陣,Xk代表文本特征向量。式(2)展示了Xk的計算方法。

func表示疊加平均函數,用來計算文本的特征向量。A是一個權重矩陣,vN(N=1,2,…)代表文本中的n-gram詞向量。

2.2 分層softmax

當判別類別過多時,使用標準softmax計算概率值會非常耗時。因此,fastText采用基于哈夫曼樹(Huffman Tree)的分層softmax(Hierarchical softmax),在計算目標類別的概率值P(y=j)時,只關心一條路徑上的所有節點,而無需考慮其他節點的狀態[14]。式(3)是計算從根節點到達y2節點(假設途經一個非葉子節點n(y2,1))概率值的過程。

?代表sigmoid函數,θn(y,m)表示第m個節點的參數,X是softmax層的輸入矩陣。以此類推,當最終輸出類別為w時,對應的概率值可以用式(4)來表示。

其中,L(yw)用來計算節點w距離根節點的深度,是一種自定義的函數。當第l+1個節點是n(yw,l)的左孩子時,check函數的返回值為1;當第l+1個節點是n(yw,l)的右孩子時,check函數的返回值為-1。

2.3 n-gram特征

根據劃分粒度的不同,提取到的特征可以分為詞粒度的n-gram特征和字符粒度的n-gram特征[15]。fastText同時支持兩種切分模式,因此可以根據實際情況來設置相關的參數。文中提出的方法采用詞粒度的切分方式,將分割開的域名字符當做獨立的單詞,整個域名字符串當做一個句子,從而分析域名字符排列順序的合理性。

假設提取域名“baidu”的bigram特征,那么根據滑動窗口大小(n=2)進行劃分,可以得到[“”,“baidu”]這個序列集合,其中“<”和“>”分別是字符前綴和后綴標識符。

fastText使用n-gram來提取文本特征,一方面可以使模型學習到局部單詞順序的部分信息,另一方面可以從字符級別n-gram中構造單詞的詞向量。這樣即使有不在語料庫中的詞語出現,也可以利用預訓練好的字符向量來組合表示[16]。

3 實驗

3.1 實驗環境

實驗機器安裝的操作系統為win10(64位),Python版本為3.5.4,sklearn版本為0.21.2,Keras的版本為2.3.0且以TensorFlow作為后端運行,tensorflowgpu的版本號為1.14.0。

3.2 實驗思路

實驗過程中模擬fastText的標準三層架構,依次使用Embedding(嵌入層)、GlobalAveragePooling1D(全局平均池化層)和Dense(全連接層)來拼接成最終的分類模型。使用定義好的評價指標來量化各參考模型的分類效果,在分析模型性能的同時討論影響最終結果的參數因素和參數優化規則。

3.3 數據收集與處理

實驗數據主要由兩部分組成,一部分是從Alexa網站選取了排名前100萬的域名,并將這些數據標記為正常樣本(whitesample);另一部分是從安全實驗室Netlab官網上下載的DGA種子文件,文件大小約為84 MB,其中包含了44種不同的惡意域名家族,共計1 256 160個DGA域名。

實驗過程中采用了字符級n-gram切割方式,首先將組成域名的各個獨立字符轉換為ASCII碼序號的表示形式,然后使用散列表(字典)存儲n-gram特征的鍵值對,并且將n-gram特征值添加到每一個字符序列集合的尾部。由于嵌入層需要輸入向量的維度保持一致,因此還需要使用pad_sequences函數來截取或填充數據。實驗過程中保留了域名原來的“{二級域名.頂級域名}”結構。實驗數據按照6∶4的比例劃分為訓練集和測試集。

3.4 參考模型

實驗過程中除了使用fastText對惡意域名進行分類,還另選了兩種深度學習模型(LSTM和CNNLSTM)以及一種機器學習模型(XGBoost)來對比測試。圖2展示了提出的基于fastText的域名分類模型結構。

圖2 基于fastText的域名分類模型結構圖

從圖2可知,攜帶n-gram特征的域名字符序列被送入模型后,首先經過詞嵌入層轉化為多維向量。接著使用一維全局平均池化層作為模型的隱藏層,用來對上一層輸出的向量進行特征映射;最后的全連接層用來對特征映射進行softmax分類,并輸出分類結果。

3.5 分類評估標準

在評估模型的過程中,用到了混淆矩陣中的3個一級指標,分別是TP(True Positive)、FN(False Negative)和FP(False Positive)。下面分別介紹各個指標代表的含義以及相關二級評價指標的計算方法。

TP代表真實值為positive,并且模型將樣本劃分到positive類的個數;FN代表真實值為positive,而模型認為是negative的數量;FP代表真實值為negative,而模型認為是positive的樣本數量。由此可以使用式(5)得到精確率(Precision)的計算結果。精確率代表在模型預測為positive的所有結果中,模型預測正確的比重。

召回率表示在真實值為positive的所有結果中,模型預測正確的比重。式(6)是召回率(Recall)的計算方法。

F1值綜合了精確率和召回率的結果。式(7)是F1值的計算方法。

除此以外,后續實驗中還增加了兩個評價指標。使用Accuracy(準確率)來表示被分對的樣本比例,使用Loss(損失)來記錄模型最終的損失值。

3.6 實驗結果與分析

表1匯總了4種模型的分類情況,其中精確率、召回率和F1值均是指在45種類別上的平均表現。

表1 模型分類結果表

從表1中可以明顯看到,使用提出的fastText模型獲得的3個二級指標對應的值均高于其他模型。其中,fastText的精確率比其他兩種深度學習模型的值高約4%,比機器學習模型的值高約13%。fastText的召回率和F1值也較其他模型有很大提升,且模型最終的損失值也維持在0.1以下。

實驗過程中還發現,分層softmax在效果上略差于完全softmax。考慮到分層softmax是完全softmax的一個近似,同時分層softmax可以在大數據集上高效地建立模型,但通常會以損失精度的幾個百分點為代價,因此,fastText使用分層softmax得到的精確率略低于97.860%。

綜上所述,fastText之所以能夠具有較高的分類性能,主要得益于模型使用了字符的n-gram特征,以及在隱藏層對多個特征映射作spatial average(空間平均)。而其他模型的隱藏層通常包含大量參數,這樣一方面影響了整個模型的泛化能力,另一方面增加了模型的訓練開銷。fastText不僅可以更深層次地學習域名字符的分布規律,同時降低了模型訓練的難度。

3.7 模型性能的影響因素

由于在實驗過程中涉及到超參數的設置,而這些參數的取值也在一定程度上決定了模型最終的分類性能,因此下面討論部分參數對分類結果的影響,以及參數的優化規則。

3.7.1 詞向量維度

Embedding的主要功能是數據降維和稠密表示,實驗過程中使用多維向量來轉換字符序列和n-gram特征。實驗設置了幾個依次遞增的詞向量維度作為自變量,圖3展示了詞向量維度分別為50、100、150、200、250、300時的模型準確率。

圖3 向量維度與準確率關系圖

準確率(Accuracy)反映了全體預測正確占全部樣本的比例,是一個綜合評價指標。圖3統計了不同詞向量維度下的模型準確率,并且利用四次函數擬合出準確率的變化趨勢。從圖3中可以直觀看出,在向量維度等差增長的同時,準確率也在隨著自變量由快漸慢地增長,當維度數達到200時基本趨于平穩。

由此可知,當詞向量維度過低時通常表示能力不夠,模型的準確率也維持在一個相對較低的水平。當詞向量維度過高時,雖然模型的準確率相對較高,但在訓練過程中容易出現過擬合現象,同時伴隨Diminishing Return(收益遞減)[17]的產生。

3.7.2 批處理大小

批梯度下降法(Mini-batches Learning)能最準確地朝著極值方向更新參數,同時每次迭代選取批處理大小(batch_size)的樣本進行更新。圖4展示了批處理個數分別為64、128、192、256時的模型損失值。

圖4 批處理大小與損失值關系圖

同樣,使用四次函數來繪制損失值的變化趨勢,可以看出,損失值隨著自變量的增加而增加,且變化增幅趨于線性。經初步分析可知,當batch_size取值較小時,其每次迭代下降的方向并不是最準確的,Loss是在小范圍內震蕩下降的,這樣有利于跳出局部最小值,從而尋找下一個Loss更低的區域[18]。而當batch_size取值較大時,雖然減少了訓練時間以及加速了網絡收斂,但是Loss值會很大概率落入局部最小區域,最終影響模型的分類性能。

4 結論

文中提出一種基于fastText的惡意域名分類方法。通過提取域名字符以及n-gram特征來生成詞向量,使用隱藏層對向量進行全局平均池化,并將softmax與全連接層相結合來對惡意域名進行分類。實驗結果顯示,fastText模型的各項性能指標優于其他方法,同時模型復雜度和訓練難度也相對較小。實驗部分討論了影響模型性能的參數因素,比較了不同取值條件下模型的泛化能力。

下一步會研究如何進一步提升模型整體的分類性能,同時考慮如何將fastText更廣泛地應用在網絡安全領域中。

猜你喜歡
分類特征實驗
記一次有趣的實驗
分類算一算
如何表達“特征”
做個怪怪長實驗
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住特征巧觀察
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 91久久天天躁狠狠躁夜夜| 国产区成人精品视频| 97无码免费人妻超级碰碰碰| 亚洲一级毛片免费看| 国产精品白浆无码流出在线看| 国产一区三区二区中文在线| 国产第一页免费浮力影院| 美女被躁出白浆视频播放| 国产综合精品日本亚洲777| 久久婷婷色综合老司机| 天堂成人av| 国产在线视频福利资源站| 青青草原国产免费av观看| 欧美日韩一区二区在线免费观看| 精品成人一区二区| 又猛又黄又爽无遮挡的视频网站| 免费一级毛片完整版在线看| 国产女人在线视频| 国产精品一区在线观看你懂的| 日本在线视频免费| 日韩在线播放欧美字幕| 欧美日韩精品一区二区视频| 国产一在线观看| 国产成人91精品免费网址在线| 蝌蚪国产精品视频第一页| 成人第一页| 国产超薄肉色丝袜网站| 国产高清国内精品福利| 久久a级片| 久一在线视频| 91久久大香线蕉| 亚洲三级a| 亚洲免费福利视频| 日韩最新中文字幕| 欧美一级在线| 亚洲男人天堂2020| 国产欧美视频综合二区 | 老司国产精品视频91| 亚洲无线一二三四区男男| 欧美国产精品不卡在线观看 | 国产草草影院18成年视频| a毛片免费在线观看| 欧美黄色网站在线看| 国产不卡在线看| 99国产在线视频| 国产在线观看人成激情视频| 成人福利视频网| 乱码国产乱码精品精在线播放| 色综合久久久久8天国| 热99re99首页精品亚洲五月天| 色哟哟色院91精品网站| 一级毛片不卡片免费观看| 亚洲二区视频| 欧美A级V片在线观看| 国产精品无码一二三视频| 精品国产免费第一区二区三区日韩| 国产精品无码AⅤ在线观看播放| 国产日韩精品欧美一区喷| 国产黑人在线| 国产一区二区在线视频观看| 免费一级无码在线网站| 免费A∨中文乱码专区| 国产av剧情无码精品色午夜| 国产第四页| 亚洲福利视频一区二区| 中文字幕亚洲专区第19页| 久久久久亚洲精品成人网 | 97国产精品视频自在拍| 网友自拍视频精品区| 国模私拍一区二区| 香蕉国产精品视频| 国产欧美精品专区一区二区| 黄色不卡视频| 国产精品亚洲天堂| 在线精品视频成人网| 日本在线视频免费| 日本免费一级视频| 精品一区二区三区中文字幕| 九色91在线视频| 免费xxxxx在线观看网站| 亚洲欧美日韩动漫| 国产资源免费观看|