基於機器學習檢測僵屍網絡中的域名生成算法

基於機器學習檢測殭屍網絡中的域名生成算法

0x01 Absert

惡意軟件通常使用域名生成算法(DGA)作為聯繫其C&C服務器的機制。近年來,基於機器學習已經提出了不同的方法來自動檢測生成的域名。但也存在一些問題。第一個問題是,由於缺乏獨立標準,難以系統地比較這些DGA檢測算法。第二個問題是,當這些DGA檢測器的機器學習模型已知時,對手繞過這些分類器的難度如何。

本文比較了同一DGA集合上的兩種不同檢測方法:使用人工特徵工程的經典隨機森林和深度學習遞歸神經網絡。獨立進行標準測試並比較兩種最新的DGA檢測方法:

(a)FANCI ,這是最近在USENIX Security 上使用人工特徵工程的隨機森林分類器

(b)Woodbridge的LSTM ,這是一種基於深度遞歸神經網絡的分類器

0x02 DGA

惡意軟件不知不覺中安裝在計算機上,就可以用於攻擊其他計算機,發送未經請求或網絡釣魚的電子郵件,竊聽通信,竊取電子郵件地址,加密計算機內容,並向用戶請求贖金。解密能力,以及更多惡意方案。存在被感染機器的大型池稱為殭屍網絡,它們由命令和控制(C&C)服務器進行控制。

基於機器學習檢測殭屍網絡中的域名生成算法

為了防止這些C&C服務器被關閉或無法訪問,惡意軟件通常使用域名生成算法(DGA),以便每隔一定時間創建一組新的偽隨機域名。上圖為肉雞使用DGA連接到C&C服務器的過程。惡意軟件會生成許多隨機域,然後由惡意軟件進行嘗試,只有殭屍網絡所有者必須註冊其中之一才能使殭屍網絡能夠成功重新連接到其C&C服務器。這使得清除殭屍網絡成為一項艱鉅的任務。

相反,識別算法生成的域名可以幫助檢測受感染的主機,並標記旨在控制殭屍網絡的域名註冊。可以成功地區分算法生成域名和人工創建域名的分類器對於安全研究人員、執法人員和網絡運營人員都是很有用的。

在安全和隱私領域,與傳統的機器學習方法相比,深度神經網絡已經證明了其自主查找和提取相關特徵的能力以及改進的分類準確性。同樣對於DGA的檢測,最近有相關工作提出了基於深度學習方法的解決方案。但是,惡意攻擊者也可以利用這些AI分類方法來逃避對其惡意軟件的檢測。這些觀察結果反映了一種對抗升級。其一涉及進一步改進高級深度學習方法,以提取更好的功能用於進攻或防禦目的。其二是對手試圖繞過安全專家開發的新防禦措施,而不論使用哪種機器學習方法。

0x03 Ground truth

惡意(DGA)和普通(非DGA)域名的數據是從不同來源收集的:

惡意數據集是從DGArchive 獲得的,DGArchive是Fraunhofer FKIE提供並由Daniel Plohmann維護的服務。由於只有有限數量的頂級域(TLD)可用,並且域生成算法使用的特定TLD對分類準確性沒有任何影響,因此從DGA域名中刪除了TLD。當從域名中忽略TLD後,選中DGArchive中的所有DGA,這些DGA中有100,000個或更多唯一記錄的可用域名。這產生了下表所示的26個DGA的列表。

基於機器學習檢測殭屍網絡中的域名生成算法

對於普通數據集,許多人選擇了Alexa 訪問量最大的網站的前n個列表。然而事實證明Alexa列表已經包含了DGA生成的域名。此外,與註冊域名的平均相比,最受歡迎的域名列表很可能偏向於更短,更容易發音和更容易記住的域名。因此選擇使用2016年來自知名TLD的前100,000個註冊域名的列表,這些列表根據以下條件過濾:

•域名未出現在以下任何黑名單中:

Google的安全瀏覽列表,

Spamhaus DBL黑名單,

SURBL黑名單。

•沒有使用國際化域名(因為在撰寫本文時所有DGA都不使用國際化(IDN)域名-這使國際化域名對分類不重要)

•DGArchive中未知域名。

對於每個DGA,構建了10萬個普通域名和10萬個惡意域名混合的數據集,使用相同的普通域名數據對每個DGA進行評估。

0x04 DGA Classifiers

基於機器學習檢測殭屍網絡中的域名生成算法

Woodbridge LSTM:即伍德布里奇等人提出的長期短期記憶(LSTM)神經網絡,STM是一種特定類型的遞歸神經網絡(RNN)。 RNN通常用於識別或預測順序數據中的模式。與前饋神經網絡相反,RNN具有內部的短期記憶,可以保留有關所接收輸入的重要信息。他們通過複製輸出並將其循環回到網絡來實現此目的,如上圖所示。此特性使RNN可以對序列及其上下文有更深入的瞭解,並預測接下來會發生什麼。 LSTM通過使此類網絡能夠在更長的時間內記住其輸入來擴展RNN,從而將其存儲容量擴展到兩個時間步之外。 LSTM中的單元具有可通過一組可編程門進行讀取,寫入或重置的狀態。這些門將輸入連接和循環連接都調製為0到1之間的值,從而使當前狀態在各時間步之間保持不變。

LSTM非常適合識別DGA,因為LSTM可以學習並概括許多DGA的生成過程,而無需基於原始輸入手動進行特徵工程。LSTM是一個黑盒的,如果沒有相同的訓練集,攻擊者很難繞過分類器。

Woodbridge LSTM由以下順序層組成:

•嵌入層,可將域名字符的可變長度序列轉換為固定長度的零填充要素數組。

•LSTM層,它從嵌入層接收其尺寸為38(編碼26個字符,10個數字,破折號和結束標記)的輸入,並生成128的輸出尺寸

•dropout層為0.5,可防止過度擬合

•密集的輸出層,有一個輸出維度,然後是Sigmoid激活函數

使用5折交叉驗證分別評估每個DGA的分類器的性能:網絡在10個週期內使用4/5的數據進行訓練,批處理大小為128;然後將剩餘的1/5數據用於測試經過訓練的網絡。使用不同的數據摺疊次數再重複4次,丟棄先前訓練過的網絡,從而確保測試數據從未用於訓練。

0x05 FANCI features

根據FANCI對域名進行特徵工程,將41個提取的特徵送入100棵樹的隨機森林,每棵樹都考慮6個隨機特徵,之後使用5折交叉驗證來評估其性能.。FANCI系統不僅通過檢查域名字符序列來檢測DGA生成的域名,還可以查看從NXDomain DNS查詢獲得的其他功能。

基於機器學習檢測殭屍網絡中的域名生成算法

FANCI系統使用的許多特徵實際上不會在比較測試中使用,特徵如上表。例如FANCI的特徵5,具有有效TLD是二分類特徵,表示該域名具有有效的頂級域。顯然,沒有DGA會輸出帶有無效TLD的域名,因為這些域名將永遠無法解析,因此毫無用處。但此特性在FANCI系統中非常有用,因為它可以輕鬆檢測域名TLD部分中的人為輸入錯誤,因此,這些錯誤顯然不是DGA生成的域名。

0x06 DGA CLASSIFICATION RESULT

下表中列出了兩個分類器測試DGA的分類結果。對於所有測試DGA,LSTM分類器得出的檢測率(TPR),誤報率(FPR),精度和準確性。平均而言,隨機森林分類器的FPR是LSTM的4倍以上。 LSTM分類器的平均準確性為98.7%,而隨機森林分類器的平均準確性為93.7%。

基於機器學習檢測殭屍網絡中的域名生成算法

隨機森林分類器的FPR標準差是3倍,隨機森林分類器準確性的標準差是4倍,這表明LSTM不僅產生了更好的分類結果,而且獲得了更高的不同DGA的分類結果一致性。值得注意的是,具有FANCI功能的隨機森林在gozi_dga,locky_dga,nymaim_dga,pushdo_dga和pykspa_dga DGA上的性能要差得多。

LSTM分類器更好的一致性的一種可能解釋是,LSTM網絡在訓練過程中會自動學習其使用的分類特徵,而隨機森林需要人工特徵工程,這可能會更好或更不適合不同的DGA。但是,使用人工特徵工程還存在另一個危險:DGA開發者可以瞭解到使用的特徵並修改域名生成算法以使其變得不易檢測。

0x07 Design a new DGA

基於機器學習檢測殭屍網絡中的域名生成算法

接下來利用FANCI分類結果創建一個新的DGA,將其命名為deception_dga,該DGA考慮了分類器的特徵以規避檢測。攻擊者迭代地改善其DGA(如上圖),直到獲得所需的次優分類結果為止,從而有效地繞過了DGA檢測分類器。在創建deception_dga DGA時僅使用了Alexa列表中的數據,模仿了DGA作者可用的信息。

下圖顯示了DGA“模擬”不同特徵時分類準確性的影響。通常,隨著DGA模擬更多特徵,隨機森林分類器的準確性開始下降。新的DGA還給LSTM帶來了困難,將其精度降低到0.855,這是LSTM迄今為止記錄的最低水平,與gozi_dga,locky_dga,nymaim_dga,pushdo_dga和pykspa_dga DGA的隨機森林精度相當。 LSTM上的回合數從10增加到15,將精度稍微提高到0.860。將LSTM輸出空間維數從128更改為256,可以得到0.865的分類精度。同時應用較大的輸出空間維數和將訓練時期數增加到15個組合,仍會產生0.864的分類精度。

基於機器學習檢測殭屍網絡中的域名生成算法

0x08 Conclution

在本工作中比較了當足夠數量的DGA生成的域名時,機器學習中兩種用於檢測域名生成算法的方法。結論表示深度學習方法始終優於具有人工特徵工程的隨機森林,其中遞歸神經網絡評均分類精度為98.7%,而隨機森林的分類精度為93.8%。

結果還表明,人工特徵工程的缺陷之一是DGA可以基於用於檢測的特徵知識來調整其策略。為了證明這一點,利用所使用特徵集合的知識設計了一個新的DGA,它使隨機森林分類器分類精度下降到59.9%。深度學習分類器也受到影響(儘管影響較小),其準確性降低到85.5%。


分享到:


相關文章: