成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用深度學習檢測DGA(域名生成算法)

人工智能 深度學習 算法
本文我將為大家介紹一種,簡單而有效的DGA生成域的檢測技術。我們將利用神經網絡(或稱之為深度學習)更具體的來講就是長短期記憶網絡(LSTM),來幫助我們檢測DGA生成域。首先我們會探討深度學習的優勢,然后我將進一步的通過實例來驗證我的論述。

[[196872]]

DGA(域名生成算法)是一種利用隨機字符來生成C&C域名,從而逃避域名黑名單檢測的技術手段。例如,一個由Cryptolocker創建的DGA生成域xeogrhxquuubt.com,如果我們的進程嘗試其它建立連接,那么我們的機器就可能感染Cryptolocker勒索病毒。域名黑名單通常用于檢測和阻斷這些域的連接,但對于不斷更新的DGA算法并不奏效。我們的團隊也一直在對DGA進行廣泛的研究,并在arxiv發表了一篇關于使用深度學習預測域生成算法的文章。

本文我將為大家介紹一種,簡單而有效的DGA生成域的檢測技術。我們將利用神經網絡(或稱之為深度學習)更具體的來講就是長短期記憶網絡(LSTM),來幫助我們檢測DGA生成域。首先我們會探討深度學習的優勢,然后我將進一步的通過實例來驗證我的論述。

如果你之前對機器學習并不了解,那么我建議你先翻看我之前發布的三篇關于機器學習的文章再來閱讀本文,這樣會更有助于你的理解。

長短期記憶網絡(LSTM)的好處

深度學習近年來在機器學習社區中可以說是占盡風頭。深度學習是機器學習中一種基于對數據進行表征學習的方法。其好處是用非監督式或半監督式的特征學習和分層特征提取高效算法來替代手工獲取特征。隨著數十年的不斷發展,深度學習在過去四五年間一直很受歡迎。再加上硬件的不斷升級優化(如GPU的并行處理改進),也使得培訓復雜網絡成為了可能。LSTM是一種RNN的特殊類型,可以學習長期依賴信息,如文本和語言等。LSTM是實現循環神經網絡的一個這樣的技巧,意味著包含循環的神經網絡。LSTM在長時間的學習模式方面非常擅長如文本和言語。在本文的例子中,我將使用它們來學習字符序列(域名)的模式,從而幫助我們識別哪些是DGA生成域哪些不是。

使用深度學習的一大好處就是我們可以省去特征工程這一繁雜的過程。而如果我們使用常規方法來生成一長串特征列表(例如長度,元音,輔音以及n-gram模型),并使用這些特征來識別DGA生成域和非DGA生成域。那么就需要安全人員實時的更新和創建新的特征庫,這將是一個異常艱巨和痛苦的過程。其次,一旦攻擊者掌握了其中的過濾規則,那么攻擊者就可以輕松地通過更新其DGA來逃避我們的檢測。而深度學習的自動表征學習能力,也讓我們能夠更快的適應不斷變化的對手。同時,也大大減少了我們人力物力的巨大投入。我們技術的另一個優點是僅對域名進行識別而不使用任何上下文功能,如NXDomains

我們技術的另一個優點是,我們僅對域名進行分類而不使用任何上下文功能如NXDomain。上下文功能的生成往往需要額外昂貴的基礎設施(如網絡傳感器和第三方信譽系統)。令人驚訝的是對于沒有上下文信息的LSTM,執行卻明顯優于它們。如果你想了解更多關于LSTM的相關內容,我推薦大家可以關注:colah的博客和blogdeeplearning.net。

什么是DGA?

首先我們要搞清楚什么是DGA?以及DGA檢測的重要性。攻擊者常常會使用域名將惡意程序連接至C&C服務器,從而達到操控受害者機器的目的。這些域名通常會被編碼在惡意程序中,這也使得攻擊者具有了很大的靈活性,他們可以輕松地更改這些域名以及IP。而對于另外一種硬編碼的域名,則往往不被攻擊者所采用,因為其極易遭到黑名單的檢測。

而有了DGA域名生成算法,攻擊者就可以利用它來生成用作域名的偽隨機字符串,這樣就可以有效的避開黑名單列表的檢測。偽隨機意味著字符串序列似乎是隨機的,但由于其結構可以預先確定,因此可以重復產生和復制。該算法常被運用于惡意軟件以及遠程控制軟件上。

我們來簡單了解下攻擊者和受害者端都做了哪些操作。首先攻擊者運行算法并隨機選擇少量的域(可能只有一個),然后攻擊者將該域注冊并指向其C2服務器。在受害者端惡意軟件運行DGA并檢查輸出的域是否存在,如果檢測為該域已注冊,那么惡意軟件將選擇使用該域作為其命令和控制(C2)服務器。如果當前域檢測為未注冊,那么程序將繼續檢查其它域。

安全人員可以通過收集樣本以及對DGA進行逆向,來預測哪些域將來會被生成和預注冊并將它們列入黑名單中。但DGA可以在一天內生成成千上萬的域,因此我們不可能每天都重復收集和更新我們的列表。

 

圖1展示了許多類型的惡意軟件的工作流程。如圖所示惡意軟件會嘗試連接三個域:asdfg.com,wedcf.com和bjgkre.com。前兩個域未被注冊,并從DNS服務器接收到NXDomain響應。第三個域已被注冊,因此惡意軟件會使用該域名來建立連接。

創建LSTM

訓練數據

任何機器學習模型都需要訓練數據。這里我們將使用Alexa前100萬個網站作為我們的原始數據。我們還在Python中組合了幾個DGA算法,你可以在我們的github上獲取到,同時我們將使用這些算法來生成惡意數據。

工具和框架

Keras toolbox是一個Python庫,借用該庫可以大大方便我們編寫神經網絡。當然除了Keras還有許多其它類似的工具,這里我們首選Keras因為它更易于演示和理解。Keras的底層庫使用Theano或TensorFlow,這兩個庫也稱為Keras的后端。無論是Theano還是TensorFlow;都是一個”符號主義”的庫,這里我們可以根據自身偏好選擇使用。

模型代碼

以下是我們用Python代碼構建的模型:

 

下面我對以上代碼做個簡單的解釋:

在第一行我們定義了一個基本的神經網絡模型。下一行我們添加了一個嵌入層。此圖層將每個字符轉換為128個浮點數的向量(128不是幻數)。一旦這個層被訓練(輸入字符和輸出128個浮點數),每個字符基本上都經過一次查找。max_features定義有效字符數。input_length是我們將要傳遞給神經網絡的最大長度字符串。

下一行添加了一個LSTM層,這是非常重要的一步。128表示我們內部狀態的維度(這恰好與我們之前嵌入層的大小相同)。維度越大對模型的描述也就更具體,在這里128剛好適合我們的需求。

Dropout層是為了防止模型過擬合的。如果你覺得沒必要使用你可以刪除它,但還是建議大家最好能用上。

Dropout層位于大小為1的Dense層(全連接層)之前。

我們添加了一個激活函數sigmoid,它能夠把輸入的連續實值“壓縮”到0和1之間。如果是非常大的負數,那么輸出就是0;如果是非常大的正數,輸出就是1。

我們使用優化器對交叉熵損失函數進行優化。RMSProp是隨機梯度下降的變體,并且往往對循環神經網絡非常有效。

預處理代碼

在正式開始訓練數據之前,我們必須做一些基本的數據預處理。應將每個字符串轉換為表示每個可能字符的int數組。這種編碼是任意的,但是應該從1開始(我們為結束序列token保留0)并且是連續的。下面的這串代碼可以幫助我們實現這個過程。

 

接下來,我們將每個int數組填充至相同的長度。填充能讓我們的toolbox更好地優化計算(理論上,LSTM不需要填充)。這里Keras為我們提供了一個非常好用的函數:

 

maxlen表示每個數組的長度。當陣列太長時,此函數將填充0和crop。之前我們整數的編碼是從1開始的這一點非常重要,因為LSTM應該學習填充和字符之間的區別。

這里,我們可以使用ROC曲線分割我們的測試和訓練集,以及評估我們的表現。

 

比較

在我們發布在arxiv的文章中,我們將我們簡單的LSTM技術和其他三種技術做了對比。為了使本文更加通俗易懂,我們只將結果與使用邏輯回歸分布的單一方法進行比較。這種技術也比目前現有的技術更好(但仍不如LSTM)。這是一種更傳統的基于特征的方法,其中特征是域名中包含的所有雙字節的直方圖(或原始計數)。你可以在我們的github上獲取到,關于 使用LSTM預測域生成算法的實現代碼。

結果

現在讓我們來看看分類器性能指標ROC曲線、AUC值:

 

可以看到一個AUC的值為0.9977,說明我們的分類效果非常的好,而達到這個效果我們僅僅只用了幾行代碼。實際上我們完成了對一個數量龐大而多樣化的數據集的深入分析,并以1/10,000的假陽性率觀察了90%的檢測。

總結

我們提出了使用神經網絡來檢測DGA的簡單技術。該技術不需要使用任何上下文信息(如NXDomains和第三方信譽系統),并且檢測效果也遠遠優于現有的一些技術。本文只是我們關于DGA研究的部分摘要,你可以點擊閱讀我們在arxiv的完整文章。同時,你也可以對我們發布在github上的代碼做進一步的研究學習。 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2017-01-03 15:16:56

Tofsee僵尸網絡惡意軟件

2016-12-28 10:45:39

2019-05-24 10:30:38

2017-08-03 11:00:20

2011-03-28 14:57:58

不重復隨機數列生成

2017-09-20 16:25:00

深度學習視覺領域計算機

2023-12-19 16:01:40

深度學習人工智能目標檢測

2021-11-07 14:33:48

算法Pairwise功能

2021-04-16 11:31:24

人工智能深度學習

2023-02-23 07:46:48

學習模型數據倉庫

2021-01-21 11:04:42

Python 開發編程語言

2022-12-27 07:50:34

python深度學習DeepDream

2020-09-21 05:58:40

深度學習算法目標檢測

2021-10-08 09:46:42

深度學習神經網絡人工智能

2021-07-01 08:00:00

深度學習神經網絡架構

2022-10-26 15:41:38

深度學習Deepfake機器學習

2022-01-27 10:06:29

生成算法分布式

2021-03-22 10:05:03

算法可視化大數據

2012-02-16 08:27:14

安全漏洞RSA算法

2022-03-09 09:56:14

深度學習算法人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一成年免费网站 | 天天操网| 天堂国产 | 日韩黄 | 中文字幕欧美日韩一区 | 天天摸天天看 | 日韩在线不卡 | 性生生活大片免费看视频 | 久久69精品久久久久久国产越南 | 99精品视频在线 | 99这里只有精品视频 | 中文字幕免费在线 | 日韩精品一区二区三区免费视频 | 九九热精品免费 | 精品乱子伦一区二区三区 | 久久精品国产一区二区三区不卡 | 粉嫩av | 激情久久网 | 欧美成人精品一区二区男人看 | 久久99精品久久久久久秒播九色 | 91一区二区 | 久久久这里只有17精品 | 国产精品毛片无码 | 国产精品一区二区在线 | 欧美午夜精品久久久久免费视 | a在线免费观看 | 亚洲欧美日韩精品久久亚洲区 | 午夜久久久久久久久久一区二区 | 欧美1级| 一级全黄少妇性色生活免费看 | 国产精品视频一区二区三区四蜜臂 | 成人小视频在线观看 | 一级毛片色一级 | 久久丝袜 | 成人免费一区二区三区视频网站 | 99中文字幕| 欧美精品在线播放 | 久久久高清 | 久久精品亚洲国产奇米99 | 国产精品夜夜春夜夜爽久久电影 | 国产一区二区在线免费 |