一文讀懂如何用深度學習實現(xiàn)網(wǎng)絡安全
作者:Guest Blog
翻譯:張玲
校對:丁楠雅
本文簡要介紹深度學習以及它支持的一些現(xiàn)有信息安全應用,并提出一個基于深度學習的TOR流量檢測方案。
簡介
我們看到的大多數(shù)深度學習應用程序通常面向市場、銷售、金融等領域,但在使用深度學習來保護這些領域的產品和業(yè)務、避免惡意軟件和黑客攻擊方面,則鮮有文章或資源。
像谷歌、臉譜、微軟和SalesForce這樣的大型科技公司已經(jīng)將深度學習嵌入他們的產品之中,但網(wǎng)絡安全行業(yè)仍在迎頭趕上。這是一個具有挑戰(zhàn)性的領域,需要我們全力關注。
本文中,我們簡要介紹深度學習(Deep Learning,DL)以及它支持的一些現(xiàn)有信息安全(此處稱為InfoSec)應用。然后,我們深入研究匿名TOR流量檢測這個有趣的問題,并提出一個基于深度學習的TOR流量檢測方案。
本文的目標讀者是已經(jīng)從事機器學習項目的數(shù)據(jù)科學專業(yè)人員。本文內容假設您具備機器學習的基礎知識,而且當前是深度學習和其應用案例的初學者或探索者。
為了能夠充分理解本文,強烈推薦預讀以下兩篇文章:
- 《使用數(shù)據(jù)科學解開信息安全的神秘面紗》
- 《深度學習的基礎知識-激活功能以及何時使用它們》
一、信息安全領域中深度學習系統(tǒng)的現(xiàn)狀
深度學習不是解決所有信息安全問題的“靈丹妙藥”,因為它需要廣泛的標注數(shù)據(jù)集。不幸的是,沒有這樣的標記數(shù)據(jù)集可供使用。但是,有幾個深度學習網(wǎng)絡對現(xiàn)有解決方案做出重大改進的信息安全案例。惡意軟件檢測和網(wǎng)絡入侵檢測恰是兩個這樣的領域,深度學習已經(jīng)顯示出比基于規(guī)則和經(jīng)典機器學習的解決方案有更顯著的改進。
網(wǎng)絡入侵檢測系統(tǒng)通常是基于規(guī)則和簽名的控件,它們部署在外圍以檢測已知威脅。攻擊者改變惡意軟件簽名,就可以輕易地避開傳統(tǒng)的網(wǎng)絡入侵檢測系統(tǒng)。Quamar等[1]在他們的IEEE學報論文中指出,有望采用自學的基于深度學習的系統(tǒng)來檢測未知的網(wǎng)絡入侵。基于深度神經(jīng)網(wǎng)絡的系統(tǒng)已經(jīng)用來解決傳統(tǒng)安全應用問題,例如檢測惡意軟件和間諜軟件[2]。
與傳統(tǒng)的機器學習方法相比,基于深度學習的技術的泛化能力更好。Jung等[3]基于深度學習的系統(tǒng)甚至可以檢測零日惡意軟件。畢業(yè)于巴塞羅那大學的Daniel已經(jīng)做了大量有關CNN(Convolutional Neural Networks,卷積神經(jīng)網(wǎng)絡)和惡意軟件檢測的工作。他在博士論文中提及,CNNs甚至可以檢測變形惡意軟件。
現(xiàn)在,基于深度學習的神經(jīng)網(wǎng)絡正在用戶和實體行為分析(User and Entity Behaviour Analytics,UEBA)中使用。傳統(tǒng)上,UEBA采用異常檢測和機器學習算法。這些算法提取安全事件以分析和基線化企業(yè)IT環(huán)境中的每一個用戶和網(wǎng)絡元素。任何偏離基線的重大偏差都會被觸發(fā)為異常,進一步引發(fā)安全分析師調查警報。UEBA強化了內部威脅的檢測,盡管程度有限。
現(xiàn)在,基于深度學習的系統(tǒng)被用來檢測許多其他類型的異常。波蘭華沙大學的Pawel Kobojek[4]使用擊鍵動力學來驗證用戶是否使用LSTM網(wǎng)絡。Capital one安全數(shù)據(jù)工程總監(jiān)JasonTrost 發(fā)表了幾篇博客[5],其中包含一系列有關深度學習在InfoSec應用的技術論文和演講。
二、前饋神經(jīng)網(wǎng)絡概述
人工神經(jīng)網(wǎng)絡的靈感來自生物神經(jīng)網(wǎng)絡。神經(jīng)元是生物神經(jīng)系統(tǒng)的基本單元。每一個神經(jīng)元由樹突、細胞核和軸突組成。它通過樹突接收信號,并通過軸突進行傳遞(圖1)。計算在核中進行。整個網(wǎng)絡由一系列神經(jīng)元組成。
AI研究人員借用這個原理設計出人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)。在這樣的設置下,每個神經(jīng)元完成三個動作:
- 它收集來自其他不同神經(jīng)元的輸入或者經(jīng)過加權處理的輸入
- 它對所有的輸入進行求和
- 基于求和值,它調用激活函數(shù)
因此,每個神經(jīng)元可以把一組輸入歸為一類或者其他類。當僅使用單個神經(jīng)元時,這種能力會受到限制。但是,使用一組神經(jīng)元足以使其成為分類和序列標記任務的強大機制。
圖1:我們能獲得的最大靈感來自大自然——圖中描繪了一個生物神經(jīng)元和一個人工神經(jīng)元
可以使用神經(jīng)元層來構建神經(jīng)網(wǎng)絡。網(wǎng)絡需要實現(xiàn)的目標不同,其架構也是不同的。常見的網(wǎng)絡架構是前饋神經(jīng)網(wǎng)絡(Feed ForWard Neural Network,F(xiàn)FN)。神經(jīng)元在無環(huán)的情況下線性排列,形成FFN。因為信息在網(wǎng)絡內部向前傳播,它被稱為前饋。信息首先經(jīng)過輸入神經(jīng)元層,然后經(jīng)過隱藏神經(jīng)元層和輸出神經(jīng)元層(圖2)。
圖2:具有兩個隱藏層的前饋網(wǎng)絡
與任何監(jiān)督學習模型一樣,F(xiàn)FN需要使用標記的數(shù)據(jù)進行訓練。訓練的形式是通過減少輸出值和真值之間的誤差來優(yōu)化參數(shù)。要優(yōu)化的一個重要參數(shù)是每個神經(jīng)元賦予其每個輸入信號的權重。對于單個神經(jīng)元來說,使用權重可以很容易地計算出誤差。
然而,在多層中調整一組神經(jīng)元時,基于輸出層算出的誤差來優(yōu)化多層中神經(jīng)元的權重是具有挑戰(zhàn)性的。反向傳播算法有助于解決這個問題[6]。反向傳播是一項舊技術,屬于計算機代數(shù)的分支。這里,自動微分法用來計算梯度。網(wǎng)絡中計算權重的時候需要用到梯度。
在FFN中,基于每個連接神經(jīng)元的激活獲得結果。誤差逐層傳播?;谳敵雠c最終結果的正確性,計算誤差。接著,將此誤差反向傳播,以修正內部神經(jīng)元的誤差。對于每個數(shù)據(jù)實例來說,參數(shù)是經(jīng)過多次迭代優(yōu)化出來的。
三、案例研究:使用深度學習檢測TOR流量
網(wǎng)絡攻擊的主要目的是竊取企業(yè)用戶數(shù)據(jù)、銷售數(shù)據(jù)、知識產權文件、源代碼和軟件秘鑰。攻擊者使用加密流量將被盜數(shù)據(jù)混夾在常規(guī)流量中,傳輸?shù)竭h程服務器上。
大多數(shù)經(jīng)常攻擊的攻擊者使用匿名網(wǎng)絡,使得安全保護人員難以跟蹤流量。此外,被盜數(shù)據(jù)通常是加密的,這使得基于規(guī)則的網(wǎng)絡入侵工具和防火墻失效。最近,匿名網(wǎng)絡以勒索軟件/惡意軟件的變體形式用于C&C。例如,洋蔥勒索[7]使用TOR網(wǎng)絡和其C&C服務器進行通信。
圖3:Alice與目標服務器之間TOR通信的說明。
通信開始于Alice向服務器請求一個地址。TOR網(wǎng)絡給出AES加密的路徑。路徑的隨機化發(fā)生在TOR網(wǎng)絡內部。包的加密路徑用紅色顯示。當?shù)竭_TOR網(wǎng)絡的出口節(jié)點時,將簡單分組轉發(fā)給服務器。出口節(jié)點是TOR網(wǎng)絡的外圍節(jié)點。
匿名網(wǎng)絡/流量可以通過多種方式完成,它們大體可分為:
- 基于網(wǎng)絡(TOR,I2P,Freenet)
- 基于自定義系統(tǒng)(子圖操作系統(tǒng),F(xiàn)reepto)
其中,TOR是比較流行的選擇之一。TOR是一款免費軟件,能夠通過稱為洋蔥路由協(xié)議的專用路由協(xié)議在互聯(lián)網(wǎng)上進行匿名通信[9]。該協(xié)議依賴于重定向全球范圍內多個免費托管中繼的互聯(lián)網(wǎng)流量。在中繼期間,就像洋蔥皮的層一樣,每個HTTP包使用接收器的公鑰加密。
在每個接收點,使用私鑰對數(shù)據(jù)包進行解密。解密后,下一個目標中繼地址就會披露出來。這個過程會持續(xù)下去,直到找到TOR網(wǎng)絡的出口節(jié)點為止。在這里數(shù)據(jù)包解密結束,一個簡單的HTTP數(shù)據(jù)包會被轉發(fā)到原始目標服務器。在圖3中展示了Alice和服務器之間的一個示例路由方案。
啟動TOR最初的目的是保護用戶隱私。但是,攻擊者卻用它代替其他不法方式,來威逼善良的人。截至2016年,約有20%的TOR流量涉及非法活動。在企業(yè)網(wǎng)絡中,通過不允許安裝TOR客戶端或者攔截保護或入口節(jié)點的IP地址來屏蔽TOR流量。
不管怎樣,有許多手段可以讓攻擊者和惡意軟件訪問TOR網(wǎng)絡以傳輸數(shù)據(jù)和信息。IP攔截策略不是一個合理的策略。一篇來自Distil網(wǎng)站[5]的自動程序情勢不佳報告顯示,2017年70%的自動攻擊使用多個IP,20%的自動攻擊使用超過100個IP。
可以通過分析流量包來檢測TOR流量。這項分析可以在TOR 節(jié)點上進行,也可以在客戶端和入口節(jié)點之間進行。分析是在單個數(shù)據(jù)包流上完成的。每個數(shù)據(jù)包流構成一個元組,這個元組包括源地址、源端口、目標地址和目標端口。
提取不同時間間隔的網(wǎng)絡流,并對其進行分析。G.He等人在他們的論文“從TOR加密流量中推斷應用類型信息”中提取出突發(fā)的流量和方向,以創(chuàng)建HMM(Hidden Markov Model,隱馬爾科夫模型)來檢測可能正在產生那些流量的TOR應用程序。這個領域中大部分主流工作都利用時間特征和其他特征如大小、端口信息來檢測TOR流量。
我們從Habibi等人的“利用時間特征來發(fā)現(xiàn)TOR流量的特點”論文中得到啟發(fā),并遵循基于時間的方法提取網(wǎng)絡流,用于本文TOR流量的檢測。但是,我們的架構使用了大量可以獲得的其他元信息,來對流量進行分類。這本質上是由于我們已經(jīng)選擇使用深度學習架構來解決這個問題。
四、數(shù)據(jù)實驗-TOR流量檢測
為了完成本文的數(shù)據(jù)實驗,我們從紐布倫斯威克大學的Habibi Lashkari等人[11]那里獲取了數(shù)據(jù)。他們的數(shù)據(jù)由從校園網(wǎng)絡流量分析中提取的特征組成。從數(shù)據(jù)中提取的元信息如下表所示:
表1:從[ 1 ]獲得的元信息參數(shù)
除了這些參數(shù)之外,其他基于流的參數(shù)也包括在內。圖4顯示了一個數(shù)據(jù)集的樣例。
圖4:本文使用的數(shù)據(jù)集實例
請注意,源IP/端口、目標IP/端口和協(xié)議字段已經(jīng)從實例中刪除,因為它們會導致模型過擬合。我們使用具有N隱藏層的深度前饋神經(jīng)網(wǎng)絡來處理其他所有特征。神經(jīng)網(wǎng)絡的架構如圖5所示。
圖5:用于Tor流量檢測的深度學習網(wǎng)絡表示
隱藏層層數(shù)在2和10之間變化。當N=5時是最優(yōu)的。為了激活,線性整流函數(shù)(Rectified Linear Unit, ReLU)用于所有隱藏層。隱藏層每一層實際上都是密集的,有100個維度。
Keras中的FFN的Python代碼片段:
- model = Sequential()
- model.add(Dense(feature_dim, input_dim= feature_dim, kernel_initializer='normal', activation='relu'))
- for _ in range(0, hidden_layers-1):
- model.add(Dense(neurons_num, kernel_initializer='normal', activation='relu'))
- model.add(Dense(1,kernel_initializer='normal', activation='sigmoid'))
- model.compile(optimizer='adam', loss='binary_crossentropy', metrics=["accuracy"])
輸出節(jié)點由Sigmoid函數(shù)激活。這被用來輸出二分類結果-TOR或非TOR。
我們在后端使用帶有TensorFlow的Keras來訓練深度學習模塊。使用二元交叉熵損失來優(yōu)化FFN。模型會被訓練不同次數(shù)。圖7顯示,在一輪仿真訓練中,隨著訓練次數(shù)的增加,性能也在增加,損失值也在下降。
圖7:網(wǎng)絡訓練過程中Tensorboard生成的靜態(tài)圖
我們將深度學習系統(tǒng)的結果與其他預測系統(tǒng)進行了比較。使用召回率(Recall)、精準率(Precision)和F-Score這些標準分類指標來衡量預測系統(tǒng)性能。我們基于深度學習的系統(tǒng)能夠很好地檢測TOR類。但是,我們更加重視非TOR類??梢钥闯?,基于深度學習的系統(tǒng)可以減少非TOR類的假陽性情況。結果如下表:
表2:用于TOR流量檢測實驗的深度學習和機器學習模型結果
在各種分類器中,隨機森林和基于深度學習的方法比其他方法更好。所示結果基于5,500個訓練實例。本實驗中使用數(shù)據(jù)集的大小相對小于典型的基于深度學習的系統(tǒng)。隨著訓練數(shù)據(jù)的增加,基于深度學習的系統(tǒng)和隨機森林分類器的性能將會進一步提升。
但是,對于大型數(shù)據(jù)集來說,基于深度學習的分類器通常優(yōu)于其他分類器,并且可以針對相似類型的應用程序進行推廣。例如,如果需要訓練檢測使用TOR的應用程序,那么只需要重新訓練輸出層,并且其他所有層可以保持不變。而其他機器學習分類器則需要在整個數(shù)據(jù)集上重新訓練。請記住,對于大型數(shù)據(jù)集來說,重新訓練模型需要耗費巨大的計算資源。
尾記
每個企業(yè)面臨的匿名流量檢測的挑戰(zhàn)是存在細微差別的。攻擊者使用TOR信道以匿名模式偷竊數(shù)據(jù)。當前流量檢測供應商的方法依賴于攔截TOR網(wǎng)絡的已知入口節(jié)點。這不是一個可拓展的方法,而且很容易繞過。一種通用的方法是使用基于深度學習的技術。
本文中,我們提出了一個基于深度學習的系統(tǒng)來檢測TOR流量,具有高召回率和高精準率。請下面的評論部分告訴我們您對當前深度學習狀態(tài)的看法,或者如果您有其他替代方法。
相關報道:
https://www.analyticsvidhya.com/blog/2018/07/using-power-deep-learning-cyber-security/
【本文是51CTO專欄機構大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】