當前位置:
首頁 > 最新 > 病毒安全女博士:基於深度學習的DGA惡意域名分類演算法

病毒安全女博士:基於深度學習的DGA惡意域名分類演算法

編輯|Emily

AI 前線導讀:近本文整理自瀚思科技曾鳳在上海 ICAMIT201 上的演講《基於深度學習的 DGA 惡意域名分類演算法》。瀚思科技是中國第一家大數據安全公司。

更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)

今天演講主要分為五大部分:

  • 關於背景:殭屍網路(BotNet)以及 C2 伺服器;

  • 域名生成演算法(簡稱 DGA)介紹以及技術挑戰;

  • 深度學習簡介;

  • 我們的模型:基於詞嵌入以及遷移學習

  • 實驗結果。

一、背景說明

殭屍網路(BotNet)是指採用一種或多種傳播手段,將大量殭屍主機(Bot)感染病毒,從而在主控者(Botmaster)和被感染主機之間,通過命令與控制伺服器(Command and Control Server,C2 Server),形成的一個可一對多控制的網路。目的是儘可能地感染更多的機器。可以看出,不論是對網路安全運行還是用戶數據安全的保護來說,殭屍網路都是極具威脅的隱患。

目前,攻擊者操縱殭屍網路通常會使用多個域名的方式來連接至 C2 伺服器,從而達到操控受害者機器的目的。這些域名通常會被編碼在惡意程序中,這也使得攻擊者具有了很大的靈活性,他們可以輕鬆地更改這些域名以及 IP。該連接方式最大的優勢是用極為簡單的代碼便可實現,劣勢是其極易被政府檢測。所以就有了域名生成演算法(Domain Generation Algorithms,DGA),通過 DGA,攻擊者可以在短時間內自動產生成千上萬的域名,這樣就可有效地避開黑名單列表以及政府的檢測。

二、 域名生成演算法(簡稱 DGA)介紹以及技術挑戰

DGA 到底是什麼?簡而言之,其通過輸入一些種子,包含字元串、數字以及日期,利用加密演算法,比如異或操作等,從而產生一系列的偽隨機字元創,即域名。例如前段時間風靡全球的勒索病毒 Cryptolocker,它以郵件附件形式分發,感染計算機並加密近百種格式文件(包括電子表格、資料庫、圖片等),從而對用戶進行勒索。我們對其輸入一個日期 2014 年 2 月 7 號,採用 DGA 演算法會產生新的域名

安全人員可以通過收集樣本以及對 DGA 進行逆向,來預測哪些域將來會被生成和預註冊並將它們列入黑名單中。但 DGA 可以在短時間內生成成千上萬的域,這是一個相當龐大的數量,我們不可能每天都重複收集和更新我們的列表。

所以我們需要實現的是對 DGA 產生的惡意域名進行實時檢測。

為實現該目標,首先需要了解當前流行的檢測方法以及所面臨的技術難點。經典的檢測技術主要分為兩個階段,特徵工程和分類演算法。如下圖所示,特徵工程主要從兩個方面入手:

  • 基於過濾的方法,採用 Alex 前 100 萬個網站和黑名單對域名進行檢測;

  • 基於統計特徵的方法,例如長度、二元語法、信息熵和生存周期等。

  • 在這之後,需要對採取的特徵進行分類,這其中常見的機器學習演算法有隨機森林、隱馬爾科夫模型、貝葉斯方法等。

    在整個檢測過程中,特徵工作最為繁瑣,且以上工作流有如下的缺點:

  • 過度依賴人工特徵工程,較難實現;

  • 偏低的檢測率以及偏高誤報率;

  • 速度慢,不能實時檢測。

  • 那麼,我們該如何解決上述挑戰?又為何選擇深度學習?

    因為深度學習有如下的優點:

  • 學習特徵可自動提取特徵,完全脫離人工特徵;

  • 較高的檢測率以及較低的誤報率;

  • 速度快,能並行處理大規模數據。

  • 三、深度學習簡介

    深度學習究竟是什麼?

    深度學習的概念源於人工神經網路的研究,是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路。它通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現數據的分散式特徵表示。

    即尋求最優的權重 w 使得與 y 值之間的距離最小。

    下面來看當前比較優秀的幾個深度學習網路。

    上圖展示了從 1998 年到 2015 年深度學習的一個發展狀況,這些網路,例如 LeNet, AlexNet, VGG,Inception 網路已經在計算機視覺、語音識別、圖像分類以及自然語言處理等方面取得了重大成功。如大家所見,這些網路變得越來越複雜,越來越深。那為什麼會越來越深?其中最主要的原因在於,越深的網路意味著能更多的非線性函數,即它能從越複雜的函數中提取篩選出更有用的特徵表示。

    值得一提的是,基於 ImageNet 數據集已經有了很多優秀的訓練好的深度學習模型。Imagenet 數據集對深度學習的浪潮起了巨大的推動作用,它有 1400 多萬幅圖片,涵蓋 2 萬多個類別,其中有超過百萬的圖片有明確的類別標註和圖像中物體位置的標註。

    四、我們的模型:基於詞嵌入以及遷移學習

    那麼如何將 ImageNet 訓練好的深度學習模型應用到惡意域名檢測問題上?這其中兩個難點在於:

  • 我們需要分類的是域名(字元類型),它在內容上有別於 ImageNet 中的圖片;

  • 我們需要處理的是百萬級的域名數據,這訓練起來非常耗時。

  • 針對難點 1,我們可採用詞嵌入方法,將字元類型的域名轉換成圖片;

    針對難點 2,我們期望跳過訓練模型這一步,直接將已有的訓練好的 ImageNe 模型運用到域名中進行檢測,這需要遷移學習的理論。

    接下來我將分別解釋詞嵌入和遷移學習。首先來看看什麼是詞嵌入(如下圖)。

    詞嵌入是自然語言處理中的名詞。從數學上定義為一個映射:從文檔空間投影到一個低維的數字型向量空間(一般用的維度可以是幾十到幾千)。該映射為一個單射函數,即每個 Y 只有唯一的 X 對應,反之亦然。它能夠將文檔進行數值化處理,從而將文檔分析問題轉化成相對應的數值向量(或者矩陣)問題。它主要有如下的兩個優點:

  • 降維—更為有效的表徵;

  • 文本相似度—更為相近的表徵。

  • 接下來我將介紹遷移學習。如下圖,左邊我們有源數據、源模型以及源標籤;右邊是目標數據(域名)、目標模型以及目標標籤;中間則是「遷移學習」,它將源模型和目標模型連接起來。源模型(比如基於 ImageNet 訓練好的深度學習模型)通過訓練得到權重,我們將這些「學好的」權重遷移到我們的新數據集 ---- 域名,這就是著名的「遷移學習」。

    到此,我已經介紹完所有需要用到的預備理論。接下來我將為大家介紹,我們如何將這些理論是應用到 DGA 惡意域名檢測中的。

  • 對原始域名,採用詞嵌入對其數值化;

  • 對 1)中所得到的向量進行歸一化;

  • 輸入到已訓練好的 ImageNet 模型,並提取倒數第三層作為特徵;

  • 利用特徵訓練決策樹模型,從而達到分類和預測的目的。

  • 五、實驗結果

    表 1 總結了真陽性率,假陽性率和準確性,從這張表可以看出,最好的模型是 Inception V4,它能達到 99.86% 的假陽性率。

    圖一展示的是不同模型基於 CPU 和 GPU 的性能表現。如大家所見,最快的模型為 SqueezeNet。當採用只用一個 CPU 運行時,每天只能處理不到 100 萬的數據;當採用 1 個 GPU 運行時,每天能處理 200 多萬的數據;當採用 2 個 GPU 運行時,每天能處理大約 500 的數據量。

    http://article.sciencepublishinggroup.com/pdf/10.11648.j.ijiis.20170606.11.pdf

    喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

    本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


    請您繼續閱讀更多來自 AI漫遊 的精彩文章:

    年度回顧:Uber2017年開源項目亮點概述
    不止Google vs.Nvidia:深度學習引領AI晶元大戰
    2017開發者盤點:是我在解決AI的問題,不是AI解決我的問題
    2018年,AI晶元之戰將打響

    TAG:AI漫遊 |