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

基于改進卷積神經網絡識別DNS 隱蔽信道

2020-02-09 09:29:34張猛孫昊良楊鵬
通信學報 2020年1期
關鍵詞:檢測模型

張猛,孫昊良,楊鵬

(1.中國電子信息產業發展研究院網絡安全研究所,北京 100846;2.國家計算機網絡與信息安全管理中心,北京 100029)

1 引言

域名系統(DNS,domain name system)是現代互聯網的基礎設施和重要資源,其基本功能是實現域名和IP 雙向映射。借助于DNS,應用程序可以使用字符串example.com 等名稱而不必使用復雜難記的數字IP 地址,對互聯網的普及發揮重要作用。由于DNS 協議和DNS 分組的普遍應用和合法性,大多數用戶忽略了DNS 可能存在數據泄露的隱患,一般單位更注重對經常受到攻擊的流量進行安全監控,忽略了利用DNS 協議傳送信息的隱蔽行為。攻擊者基于這點脆弱性,常利用DNS 協議傳送敏感信息。

當前很多應用借助DNS 協議的普遍性達到隱蔽通信的目的。通過DNS 進行信道傳輸的軟件工具中,大多數的目的是借助DNS 信道實現惡意代碼遠程控制的功能,或者傳送敏感信息,竊取重要情報或數據。網絡安全監測設備無論對網絡通信行為做出多么嚴格的訪問控制,通常都至少要允許DNS 流量通過,這就為惡意通信行為提供了條件。

現在許多攻擊者借助DNS 隱蔽信道對信息系統進行攻擊,竊取關鍵信息,破壞系統數據完整性和機密性。針對這一問題,許多不同類型的DNS隧道檢測方法被提出。目前,DNS 隱蔽通信行為的檢測主要包括通信流量與網絡分組分析和基于域名字符串分析。通信流量與網絡分組分析一般是分析多個域名請求,從不同角度計算這些DNS 請求的總體屬性,挖掘分析隱蔽信道。Crotti 等[1]和Dusi等[2]提出基于網絡數據分組到達的先后順序和分組尺寸等基本統計特征的分類機制,用于檢測隱藏在DNS、HTTP 和SSH 信道中的信息傳送流量。Casas等[3]通過計算DNS 通信過程中傳送的數據量和單網絡分組尺寸來分析是否存在DNS 隱蔽通信的行為。Marchal 等[4]在分析被動DNS 流量數據過程中,將機器學習方法應用在DNS 信道檢測,提取分組長度和字節數等屬性,有針對性地挖掘分析了幾種DNS 信道。Karasaridis 等[5]基于被動DNS 流量研究了DNS 相關的隱蔽信道和緩存投毒等惡意行為,計算DNS 分組尺寸的分布情況,通過分布差異性和交叉分布熵等統計屬性標識出用于DNS 隱蔽通信的分組,經真實網絡數據實驗驗證,這個方法計算出了僵尸網絡Sinit 在爆發期間交叉分布熵的變化情況。Sheridan 等[6]搭建了隱蔽通信實驗環境,收集了當前較為活躍的典型DNS 隱蔽信道通信流量,提取其通信指紋,計算相應特征,在檢測階段,實施進一步匹配計算。Shafieian 等[7]提出使用集成學習的技術結合多種機器學習算法提高分類器的準確率和穩健性。以上方法主要適用于傳送大量數據的隱蔽信道,對于傳送少量信息、DNS 分組尺寸較小的隱蔽通信行為無法有效發現,Nussbaum 等[8]和Aiello 等[9]在DNS 隱蔽信道的信息傳送能力方面開展了相關研究工作,分析了域名的主機名數、位置和域歷史記錄等信息,發現目前很多惡意代碼通過DNS 信道接收控制命令和傳遞敏感信息的分組尺寸與正常域名通信相近,而這些通信行為不具有以上可識別的屬性。Nadler 等[10]專注于針對基于DNS 協議的低吞吐量的數據泄露的惡意行為的檢測,提出利用孤立森林(isolated forest)技術來檢測基于DNS 信道的數據泄露行為。在大規模數據集上能成功識別高吞吐量的DNS 信道和低吞吐量的數據泄露行為。

在基于域名字符串分析方面,提取DNS 分組中的有效負載內容部分,分析隱蔽信道域名的某些特征屬性來確定DNS 的請求和應答分組中是否被用于隱蔽通信。Farnham 等[11]利用正則表達式對網絡流量中的域名字符串進行分析,發現網絡中的隱蔽通信行為,并基于這個方法建立了可實用的商業化隱蔽信道檢測系統,提取DNS 分組中的特征字段,并與事先設定的閾值進行比對。Bilge 等[12]分析了正常的真實域名和用于DNS 隱蔽通信域名的特點,計算最長有意義的字符串(LMS,longest meaning string)所占比例,同時應用累計和(CUSUM,cumulative sum)算法,分段統計域名字符分布情況。這兩項工作是從字符串的角度分析用于隱蔽通信的域名表現出的特性,認為實際應用的真實域名通常由常見的有意義單詞或其縮寫組成,主要針對具有特殊域名字符串的DNS 隱蔽通信,沒有考慮模仿真實域名通信這一類DNS 信道軟件的隱蔽行為。

基于以上分析,目前傳統的DNS 隱蔽信道識別方法具有一定的傾向性,一般主要針對某幾種DNS 信道通信軟件有較高的識別率,無法做到對絕大部分的DNS 隱蔽信道的進行有效檢測。近期,深度學習中的卷積神經網絡在計算機視覺領域有良好的性能,充分展示了其特征提取的能力。本文認為同一類型的DNS 信道在網絡行為方面有著相似的行為模式,而網絡行為模式是DNS 隱蔽信道在需要實現特殊目的的前提下難以改變的特點。因此,本文提出了一種基于改進卷積神經網絡的DNS 隱蔽信道識別方法(RDCC-CNN,recognition of the DNS covert channel based on convolutional neural network)。這是一種識別整體DNS 隱蔽信道的方法,通過分析DNS 隱蔽通信流量特性,提取區別于合法流量的DNS 隱蔽信道的表征元素數據,并將其轉換成灰度圖片,利用灰度圖來表征DNS 流量數據,對DNS 隱蔽通信行為進行檢測,并在校園網出入口的真實流量環境中開展實驗,達到了理想的效果。

2 DNS 隱蔽信道表征元素分析

表征元素是指根據DNS 流量來分析提取的某一特征值,經過數據轉化成0~255 之間的一個整數,作為DNS 通信流量灰度圖中的一個元素。

2.1 DNS 隱蔽信道

用DNS 協議進行的隱蔽通信行為一般通過2種方法實現:一種是在域名解析的過程中,與某一特定的服務器建立連接,這里稱為標準DNS 隱蔽信道;另一類通過客戶端與隱蔽信道的服務器直接建立連接,這里稱為非標準DNS 隱蔽信道。對于標準DNS 隱蔽信道,攻擊者需要一臺完全被控制的DNS 解析服務器和一個已注冊的域名,并將解析服務器設置為該域名的域名服務器,即可作為隱蔽信道的服務器。當隱蔽信道的客戶端向任意的DNS 遞歸服務器發送包含該域名下的子域名請求,需要發送的信息通過互聯網域名解析系統的標準域名解析過程,傳送到被控制的解析服務器。非標準DNS 隱蔽通道能成功實施的前提是DNS 隱蔽信道的客戶端能與任一DNS 服務器通信,攻擊者將利用UDP 封裝的隧道服務綁定在服務器的53 端口,即可從客戶端直接建立連接。

2.2 表征元素選取

DNS 隱蔽信道的分組與合法的DNS 分組相比存在許多不同點。一是從網絡分組分析來提取相關的表征元素;二是考慮數據流的表征元素,數據流的表征元素有別于深度分組分析,主要通過計算網絡分組的統計量得到。利用這些特征能有效地表征DNS 隱蔽信道。

2.2.1 分組深度分析的表征元素

本節分析了DNS 信道實現方法和過程,以及DNS 網絡分組的結構,考慮隱蔽信道DNS 請求分組和響應分組的表征元素、深度分組檢查中存在的問題和網絡分組解析過程的表征元素,構造特征集來識別DNS 隱蔽信道。

標簽指針是在DNS 協議中用于指向分組中每個存儲標簽長度的位置。Casas 等[3]提出在DNS 分組中使用標簽指針。標簽指針的解析功能通常在DNS 遞歸服務器和域名服務器中不會被實現,因此,加大了DNS 分組的數據注入行為的檢測難度。顯然,這可以作為表征元素之一。在應答DNS 請求的A 類型記錄請求時,通常會在CNAME 記錄中存放許多的服務器返回的應答數據,因此這是一個有辨識度的表征元素。

標準DNS 隱蔽信道,在應答部分的資源記錄中包含了絕大部分的服務器應答數據,使應答部分資源記錄的數據長度之和與正常的應答分組的相同統計量相差較大,同時也影響了整個分組全部資源記錄之和的計算結果。

此外,DNS 隱蔽信道會使用一些不常用的記錄類型(例如TXT 記錄)來進行數據傳輸。因此,在檢測的隱蔽信道的過程中,可以檢查網絡分組中使用的不常見的記錄類型的數目。

考慮發起域名請求過程中隱含的特征,發現DNS隱蔽信道網絡分組和正常的DNS網絡分組的QNAME字段有較大的區別。因為根據DNS 協議的規定,DNS查詢段除QNAME 以外的字段僅含有限的數據空間,所以QNAME 字段中包含了絕大部分的隱蔽信道的客戶端發送的數據。其中,本文計算了QNAME 的標簽數量和QNAME 二級域名部分的標簽長度(域名的二級域名去掉頂級域名后剩下的字符串長度)。

DNS 隱蔽信道借助DNS 協議進行通信,因此提高傳輸效率尤其重要。而Marchal 等[4]的工作表明一種有效地提高傳輸效率方法是在域名數據中使用二進制數據。經過本文的實驗證明,確實大多數現有工具建立的DNS 隱蔽通道使用了非常規的字符。二進制串經過Base32 編碼后所表達的信息量與二進制串本身所能表達的信息量之比約為3:5。而DNS 協議中規定域名需經過Base32 編碼,這有別于DNS 隱蔽信道所采取的編碼方式。因此,QNAME 子域名承載的二進制數據量和QNAME 子域名存儲的數據量是2 個重要的表征元素。例如,在實驗環境中,DNSCat2 與C&C 服務器通信的過程中的域名為3f29016955018bd5b7.malwareserver.com,則其有3 個域名標簽,二級域名標簽的長度為13 個字符,子域名二進制的數據量為9 B。

正常的域名通常使用規范的單詞或其他含有實際意義或便于記憶的字符串,而DNS 信道編碼的域名通常是雜亂無章,且人們所不能理解的。此外,DNS 隱蔽信道的域名各個字符出現的概率比較接近。雜亂無章的字符串具有較高的熵。因此,域名字符串的熵也是識別DNS 信道的重要因素之一。

當DNS 協議對合法的網絡分組解析時,不會出現異常且正好完全解析(即不存在數據注入)的情況。而DNS 隱蔽信道的解析情況往往與之相反,即解析異常且無法完全解析的可能性較大。所以,本文除了檢查分組解析情況之外,還需要計算注入數據的數據量,即DNS 分組載荷結束位置與UDP分組載荷結束位置的距離差。

DNS 信道實則是借助DNS 協議的偽裝而建立的隱蔽通道。顯然,數據傳輸的過程需要借助DNS請求分組和DNS 響應分組。因此,為了提高傳輸效率,要盡可能占用DNS 分組或Raw UDP 分組中所提供的所有的剩余空間。這導致DNS 隱蔽信道的請求分組和響應分組的長度區別于正常的DNS分組。但是因為無法將Raw UDP 隧道的分組看作DNS 分組解析,所以額外考慮UDP 載荷長度。

如果組織內部的網絡安全策略禁止所有未經過內部DNS 服務器的DNS 查詢,那么有些DNS信道工具可能會違反該策略。但是仍有大多數DNS信道工具能夠繞過該特征的過濾(即DNS 請求經過內部DNS 服務器轉發后,依然能正常工作)。

本文對網絡分組深度分析和考慮后,提取了16個網絡分組的表征元素用于鑒別合法的DNS 請求與DNS 隱蔽信道流量,如表1 所示。

表1 深度分組分析的表征元素

2.2.2 非標準DNS 通信行為的表征元素

1)相關定義

為了方便下文闡述,對相關概念進行簡單定義。

定義1 <source_ip,sd_name>。針對合法的且能完全解析的DNS 分組,定義DNS 通信雙方為<source_ip,sd_name>。其中,source_ip 為DNS查詢分組的源IP 地址,或DNS 響應分組的目的IP 地址;sd_name 為 source_ip 請求的全域名(QNAME)去除相同域的域名標簽后剩余的子域名字符串。

定義2 <source_ip,destination_ip>。針對非法的DNS 分組,即解析過程中出現解析異?;蛘卟荒芡耆馕?,定義DNS 通信雙方為<source_ip,destination_ip>。其中,source_ip 為發起DNS 請求的源IP 地址,destination_ip 為DNS 查詢分組的目的IP 地址,即提供域名解析服務的IP 地址。如果是在網關處捕獲的DNS 分組,這里將內網主機地址視為source_ip。

2)DNS 通信行為的表征元素

DNS 流量數據傳輸是一個持續的過程,僅有數據分組的靜態表征元素無法滿足檢測任務的需求,因此,本文統計DNS 通信行為的表征元素。算法首先將屬于同一數據流的通信雙方的網絡分組依據分組順序拼接;然后,統計選取的數據流內的表征元素;最后,綜合所有表征元素,形成DNS 通信流量灰度圖對分類器進行訓練。

除了上述的表征元素之外,本文根據分組捕獲的實際情況、DNS 信道工具實驗觀測結果以及DNS信道的域名與域名生成算法(DGA,domain generate algorithm)生成的域名的相似性,選擇了以下3 個表征元素。

1)通常情況下,正常的DNS 請求和應答通信行為與其他類型的流量數據存在一定前后關聯。例如,應用程序發起HTTP 請求之前,一般會先發起相關的DNS 查詢,而DNS 信道中只存在DNS 請求的流量。因此,將是否存在獨立的DNS 請求和應答流量作為判斷DNS 信道的指標之一。對于存在的例外情況,設立白名單進行過濾。

2)DNS 信道工具在每次發起DNS 請求時只會針對一個特定的域名,這造成了相同時間內對特定域名發起請求的主機名個數遠多于對合法域名發起請求的個數。因此,主機名數量較多的域名很可能是DNS 信道的域名[12]。

3)DGA 生成的域名(AGD,algorithm generated domain)大多是不存在的,因此識別AGD 一個較有效的方法是尋找產生過多的不存在域名(NXDomain,non-existent domain)的響應[13]。考慮到DNS 信道的域名與算法生成的域名在字符串的熵和域名長度等方面都非常相似,同樣也會產生大量的NXDomain 響應(如Heyoka)。所以,可以借鑒該方法檢測DNS 信道。

如表2 所示,非標準DNS 通信行為的統計特征分為4 個集合。Feature_Set1統計的特征值描述了客戶端與服務器之間通信的流量大小。Feature_Set2則是從單個網絡分組的角度,詳細地統計了數據流中符合DNS 隱蔽信道流量的表征元素。Feature_Set3是對網絡分組中具體的參數進行統計,同時計算同一數據流中所有相應參數的均值、最大值和最小值等統計量,從而進一步描述流量。其中,注入數據的數據量、DNS 請求分組的長度、DNS 響應分組的長度和UDP 載荷的長度,需要對發送和接收2個方向分別統計;QNAME 的標簽數量、QNAME二級域名部分的字符串長度和QNAME子域名存儲的數據量,只對 DNS 請求分組統計;應答部分資源記錄數據長度總和以及全部資源記錄數據長度總和,只需要對 DNS 回答分組進行統計。Feature_Set3共36 個特征,從雙向DNS 分組的特征、雙向的流量大小、所包含的域名信息以及應答分組中資源記錄的統計量等角度,計算了DNS 隱蔽信道的表征元素。Feature_Set4包括獨立的DNS 請求個數、每個域名的主機名個數、NXDomain 響應的個數。例如在觀察時間窗口內,本文實驗中設置為1 h,DNSCat2 通信記錄如圖1 所示。統計該觀察窗口內的DNS 請求分組共6 231 個,請求malwareserver.com下子域名的主機個數5 個,NXDomain 響應次數為5 989 次。

表2 非標準DNS 通信表征元素

圖1 DNSCat2 與服務器通信記錄

3 DNS 隱蔽信道識別方法

根據第3 節分析的各類DNS 信道軟件的若干表征元素,針對每一條通信流量,提取并計算這些表征元素,通過數據規范化和預處理,將數據轉換為0~255 之間的整數,并構造二維矩陣,將網絡流量特征數據轉化為灰度圖片,二維矩陣中的每一位數據對應灰度圖片的一個元素;然后將灰度圖片作為卷積神經網絡的輸入數據進行學習,訓練并建立RDCC-CNN 分類器,用訓練好的分類器對DNS隱蔽信道進行識別。其整體架構如圖2 所示。

3.1 數據規范化

數據規范化是為了使數據的各個維度能夠在同一量綱上,減少對模型訓練時對不同維度的依賴程度,同時需要將數據轉換為0~255 之間的整數。

假設每條DNS 流量的m個表征元素形成一個行向量,一共n條DNS 流量所構成的數據矩陣為

將所有樣本中相同的表征元素,提取后形成一個列向量,那么該矩陣可以表示為

其中,max(Bi)表示在向量Bi中取最大元素,min(Bi)表示在向量Bi中取最小元素。轉換后的為0~255之間的整數。

處理后的矩陣可以表示為

式(4)具體為上文所描述的DNS通信流量數據,根據每行表征元素的個數,構造合適的灰度圖尺寸。DNS 通信流量數據的數據集具有48 個表征元素,可以構建一個8×8 的圖片尺寸,由于表征元素的數量少于圖片像素點個數,因此需要在圖像矩陣的最后多余部分用0 進行填充。例如,根據某一條DNS 通信流量數據的所計算得到表征向量為[Ai1,Ai2,…,Aim]′=[5,1,…,0]。通過對每列的數據進行規范化表示得到

圖2 整體架構

將[Ai1,Ai2,… ,Aim]′轉換成8×8 的矩陣,即可得到如圖3 所示的能夠表征某一條DNS 通信流量數據的灰度圖。

圖3 [Ai1,Ai2,…,Aim]'所計算的灰度圖

將每一個DNS 隱蔽信道的網絡分組數據轉變成相應的灰度圖片,作為卷積神經網絡的輸入。

3.2 卷積神經網絡結構

1)卷積層

每個卷積層由多個卷積單元(即濾波器)組成。卷積層中每一個節點的輸入是上一層卷積核的局部區域的計算結果。卷積核的長、寬以及個數均可自定義。卷積層作用是對上一層輸入的特征圖片中局部區域進行進一步更高層次的特征抽取。卷積層的形式為

其中,l為當前層,b為當前層的偏置,k為卷積核,Mj為第j個卷積核對應的卷積窗口,激活函數通常采用sigmoid、tanh 或ReLU 等函數。

2)池化層

池化層也稱為采樣層,它是將輸入的圖像劃分為若干個矩形區域,對每個子區域進行計算,能夠不斷地減小數據的空間大小。利用池化層,參數的數量和模型的計算量也會大大減少。其中,最常用的是最大池化和均值池化。池化層的形式為

其中,down(.)為下采樣函數。若下采樣函數是最大池化,則對輸入圖像中每一個n×n大小的區域取最大值,用于代表這個區域的信息,因此經過下采樣的圖像尺寸縮小為原來尺寸的,輸出的特征圖像有對應的權重參數β和偏置b。

3)全連接層

全連接層是連接在模型最后的分類器,依據前面所提取的特征訓練分類器。最后將從灰度圖片中抽取的特征輸入到全連接層中,并輸出分類的標簽。

3.3 改進卷積神經網絡

卷積神經網絡模擬了人腦在圖像數據中提取特征的原理,并在計算機視覺領域取得了顯著的效果。在本文提出的方法中,首先將DNS 數據連接特征轉換為數值表示,再把數值視為灰度值,進而將數據轉化為圖像。最后將DNS 隱蔽信道的識別任務轉化成能采用卷積神經網絡解決的分類任務。

LeNet-5 模型是卷積神經網絡的經典結構,主要應用在手寫數字的識別[13]。針對DNS 通信流量數據特點,本文根據實際應用場景更改了模型結構。

1)根據DNS 通信數據特性,轉化出適當灰度圖片,輸入層設計為8×8 矩陣。

2)識別DNS 隱蔽信道是一個二分類任務。因此,LeNet-5 模型的輸出層10 個神經元改為2 個神經元。

3)根據DNS 數據連接特征,設計了6 種具有不同網絡結構的卷積神經網絡。如表3 所示。

3.4 改進后CNN 的訓練過程

卷積神經網絡模型的訓練過程主要采用反向傳播算法來傳遞誤差信息,運用梯度下降的優化算法來更新神經元之間連接的權重。

1)前向傳播。其計算方法可以表示為

式(7)使用的激活函數為ReLU 函數。

2)反向傳播。為了傳遞誤差信息的計算方法,需要結合優化算法一起更新神經網絡中的參數值。這里使用的目標函數定義為

其中,等號右邊第一項多項式為常規交叉熵表達式;第二項為正則化項,這里使用正則化項是為了避免模型的過擬合,同時設定懲罰因子λ=0.01。

為了能最優化目標函數的結果,需要對參數進行調整。

權重的更新為

偏置的更新為

其中,η為學習速率,設η=0.55。

具體實現過程如下。

1)對輸入的圖像進行Padding 操作,能夠保持邊緣信息,且使卷積前后尺寸不變。同時卷積核移動步長設為1。

2)設計卷積核的數量不大于64,避免5 層卷積神經網絡陷入局部最優,無法達到全局最優。

對于每一種設計的網絡,均采用最大池化和平均池化這2 種池化層進行實驗,并進行性能對比。實驗結果分別如表4 和表5 所示?;诟倪M卷積神經網絡DNS 隱蔽信道檢測方法,由于其應用場景對于實時性的要求較高,因此,本文只針對各種算法的測試時間進行對比分析。

表3 6 種不同網絡結構的卷積神經網絡

表4 采用最大池化方法時的檢測結果

表5 采用平均池化方法時的檢測結果

從表4 和表5 可以看出,隨著卷積核數的增加,總體上,分類準確率基本保持不變,但運行時間差距比較明顯。在應用最大池化的池化層運行時,模型1 在實驗過程中發生了局部最優點的問題,但是從模型2~模型6 的實驗結果中可以看出,適當地減少卷積核的數量,能夠提高模型分類性能。對比表4 和表5 中的實驗結果,模型6 在取得較高分類準確率的前提下,實現較低的計算復雜度。因此,應用了最大池化的模型6 被選為最終的分類器模型。

參照如表3 所示模型6 的網絡結構,在C1 卷積層對輸入圖像進行Padding 操作后,使用權重隨機生成的8 個3×3 的卷積核對輸入的矩陣進行卷積運算,輸出8 張16×16 的特征圖像。在S2 池化層,采用2×2尺寸的窗口對上一層輸出的8 張特征圖像進行下采樣,輸出8 張8×8 的特征圖像。在C3 卷積層,同樣也是Padding 后使用預訓練得到的16 個5×5 的卷積核對輸入數據進行卷積,得到16 張8×8 的特征圖像。在S4 池化層使用2×2 尺寸的窗口對C3 層的16 張特征圖像進行下采樣,得到16 張4×4 的特征圖像。在F5 全連接層,將S4 層所得到的表征DNS 通信行為的圖像矩陣拉伸成單一的128×1 向量。輸出層利用soft-max 分類器,輸出結果為2 類。

4 實驗測試與結果分析

4.1 實驗設置

1)數據集

本文實驗中采集的數據集是混合流量,包含背景流量的正常DNS 流量樣本和包含背景流量的DNS隱蔽通道流量樣本。其中,正常DNS 流量樣本采集自某高校校園網出入口,在20 天內,提取480 h 單固定IP 對單一全域名請求和應答數據558 400 條,人工確認這些連接均不屬于DNS 隱蔽信道流量,取300 000 條作為訓練數據,其余作為測試數據。

DNS 隱蔽通道流量樣本通過幾個典型DNS 信道軟件生成,這些DNS 信道軟件在實際應用中出現較為頻繁,主要包括DNSCat、Iodine、PSUDP、Dns2tcp 和tcp-over-dns。其中,DNSCat、Dns2tcp和Iodine 能實現多類型資源記錄通信,可分別產生CNAME、KEY、SRV、MX、NULL、TXT 等類型資源記錄,同時生成Raw UDP 模式下的流量。在可控的網絡環境中運行這些軟件,每種DNS 信道軟件在5 臺主機上運行,分別獲取激活狀態下有信息傳輸時的流量和未激活狀態下沒有信息傳輸時的流量,使訓練產生的模型在傳輸數據時和無數據傳輸空閑時都可有效識別。另外,PSUDP 通過向現有的DNS 網絡分組中注入數據來傳送信息,軟件本身不發送任何DNS 請求,因此以隨機時間發送DNS 請求,模擬真實網絡環境中的DNS 分組,以承載PSDU 的數據。這些DNS 隧道軟件主要存在22 種數據交互模式。以1 h 為時間段,這里對每種模式分別按照一天24 個時段獲取20 天交互信息,共產生10 560 個DNS 隱蔽通道流量樣本,采用其中10 天1 472 000 條數據作為訓練數據,另10 天的1 472 000 條數據用來測試,如表6 所示。

表6 被動DNS 數據和信道樣本集

測試集中的背景流量直接在校園網出入口處通過鏡像獲取,捕獲10 天的出入口流量作為背景流量。

2)評估指標

為了驗證DNS 信道的識別效果,這里設立了3 個評測指標,分別為準確率ACC、誤報率FPR和整體準確率,包括對每一類DNS 信道的識別,具體為

其中,TPi(true positive)表示隱蔽信道i被正確識別出的樣本數量,FNi(false negative)表示實際類型為i的信道樣本被誤判為其他類型的樣本數量,FP(ifalse positive)表示實際類型非i的信道樣本被誤判為類型i的樣本數量。整體準確率主要用來評測識別方法對利用DNS 分組進行通信行為的識別效果。

3)實驗環境

本文原型系統的開發及訓練測試工作在2 臺服務器上進行,每臺服務器使用深度學習框架PyTorch,卷積神經網絡改進過程的訓練與測試均在PyTorch 環境下完成。試驗的硬件環境應用128 GB內存,中央處理器Intel Xeon E5-2620,每處理器含八核,主頻2.00 GHz,采用8 塊GeForceGTX TITAN X系列GPU,軟件環境的操作系統為64位的Ubuntu 16.04,cuda8.0,模型的實現采用Python 語言。

4.2 結果分析

1)測試集樣本識別

傳統的DNS 隱蔽信道檢測方法一般包括DNS有效分組分析和流量分析2 個方面。DNS 分組分析典型方法是Farnham等[11]提出的使用正則表達式對域名進行匹配的DNS 檢測模型;而Karasaridis 等[5]提出使用網絡流量的統計量來檢測DNS 異常機制是流量分析工作的代表之一。其通過在一定時間窗口內計算數據分組尺寸的分布情況,然后分析比較實驗中得到的分布和標準分布估算出一個交叉分布的熵值,利用該熵值進行對比檢測。近兩年,Shafieian等[7]認為傳統的DNS隱蔽信道檢測方法存在不足,如內容分發網絡(CDN,content delivery network)的廣泛使用增加了傳統檢測方法的誤報,并提出使用集成學習技術對DNS 隱蔽信道進行檢測;此外,根據Nadler 等[10]調查研究顯示,低吞吐量的DNS 隱蔽信道常用于信用卡信息和密碼等隱私信息的泄露,因此提出利用孤立森林的方法針對低吞吐量的基于DNS 協議的數據泄露行為進行檢測,并在大規模的數據上測試模型的性能。為了方便討論,將其分別稱為Farnham 模型、Karasaridis 模型、Shafieian 模型和Nadler 模型。本文還原了這4 個模型,并與本文提出的方法進行了對比,以驗證本文提出的方法在DNS 信道識別問題上的優勢。

針對建立的數據樣本集,利用選取的網絡特征來表征每一條DNS 流量,選取網絡流量數據的特征并生成表征矩陣,經過標準化計算轉化為灰度圖片,作為RDCC-CNN 的輸入。根據第3 節選取的最優卷積神經網絡模型,將提取的DNS 流量特征合并,并按照文中的歸一化操作生成灰度圖片的表征矩陣作為輸入。先通過訓練數據集建立檢測模型,然后將測試數據生成的特征矩陣依次輸入模型進行實驗分析。模型訓練了50 000 步長(Step),針對不同類型的DNS 信道目標函數的損失(Loss)收斂情況如圖4 所示。根據實驗數據計算評價指標,實驗結果分別如表7 和表8 所示。

圖4 目標函數損失(Loss)收斂情況

表7 采用不同算法的總體準確率和測試時間

從表7 中可以看出,本文提出的改進卷積神經網絡的方法的總體準確率達到99.50%,相較于其他4 種方法有一定的提升。Farnham 模型針對全量域名,提取相關的表征特征,并進行復雜的正則表達式匹配計算,其消耗的時間相對較長,相對于本文提出的方法多出0.08 s,而且僅計算域名的相關信息,因此識別的總體準確率表現較低;Karasaridis模型計算時間較快,其使用網絡流量的統計量來識別DNS 隱蔽信道,在一段時間內,計算網絡分組尺寸分布的熵,相對來說選取的特征類型少,計算復雜度低,比本文提出的方法快0.37 s,但總體識別準確率低于本文提出的方法。

表8 各類型DNS 信道識別準確率

本文方法相對于前2 種傳統檢測方法,從DNS通信行為的不同角度分析了相關特征,豐富了DNS 信道的表征元素,就方法的內在屬性而言,分析的元素更全面,顯然具有更高的識別準確性,同時對卷積神經網絡模型的計算過程進行了優化改進,降低了計算復雜度,提升了運算效率,在運算的網絡DNS 數據量較大、表征屬性更全面的場景下,仍然保持較快的計算速度,盡管相對于Karasaridis 模型執行時間延長了0.37 s,但在總體準確率有較大提升的前提下,這個時延的消耗量可以接受。而且,通過少量增加運算設施,在可接受范圍內,輕度提高算力成本,可以修補檢測效率的時間差。在保證計算速度的前提下,提高檢測準確率使其有較好的實用性。

Shafieian模型和Nadler模型的檢測速率與本文方法接近。但是,針對多種不同版本和類型的DNS隱蔽信道的檢測的總體準確率要稍低于本文方法。在文獻[7]中,用于測試Shafieian 模型的DNS 信道工具有Iodine、DNSCat 和Ozyman,且Shafieian模型中所選擇的特征數量和隨機森林所使用的樹的數量較少。因此,當該方法應用于檢測多種不同版本和類型的DNS 隱蔽信道時,準確率有所降低。Nadler 模型[10]在兼顧高吞吐量的DNS 隱蔽信道檢測效果的前提下,能有效地針對低吞吐量的DNS信道進行檢測。但是,該方法所采用的孤立森林算法是無監督學習算法,需要在正常的DNS 流量上建立基準,而不同的網絡環境所建立的基準不同,從而導致檢測性能的波動。與這2 種模型相比,本文所采用多種不同版本和類型的DNS 信道作為訓練數據,采用改進的卷積神經網絡作為檢測模型,具有穩定的檢測性能,能有效地檢測不同的DNS 隱蔽信道。

表8 中的實驗結果表明,針對不同類型的DNS隱蔽信道,流量的識別準確率都有大幅度提升。其中,PSUDP 是通過數據注入方式隱藏在UDP/53 網絡分組數據中的非標準DNS 隱蔽信道。本文提出的改進深度神經網絡的識別方法依然能進行有效應用,并達到96.9%的識別準確率。因此,無論是標準的DNS 信道還是非標準的DNS 信道,其流量的表征元素都可以轉換為灰度圖像,相較于其他方法,本文適用范圍更加廣泛,且性能優良。本文認為,Farnham 模型的域名匹配僅能匹配已知的DNS 隱蔽信道域名,而對于更改域名和新的DNS 信道,則失去了檢測能力。Karasaridis 熵值對比的方式,需要事先設定熵的閾值,而DNS 隱蔽信道只需修改數據分組尺寸即可躲避檢測。Shafieian 模型利用集成學習技術結合了多個不同類型的分類器,能夠得到較好的檢測效果。但需要多次實驗調整不同分類器之間的權重,且未在大規模網絡環境下測試。Nadler 模型利用無監督的孤立森林算法,需要在正常的流量樣本上訓練建立基準,而在一個大規模網絡環境下,確保不存在任何DNS 隱蔽信道的流量是困難的,且基準容易受到其他惡意DNS 流量的影響。而改進深度神經網絡模型能夠基于大量的樣本數據學習DNS 隱蔽信道的網絡行為模式,這是本文認為DNS 隱蔽信道難于改變的特點。因此,有較好的檢測效果。

誤報率上的實驗結果如表9 所示。每個DNS信道都存在識別上的誤差,相比較于其他4 種模型,RDCC-CNN 具有更低的誤報情況,由于協同應用深度分組分析和網絡流量特征做綜合分析,相比于傳統方法,RDCC-CNN 具有更全面的識別能力;相比于Shafieian 和Nadler 模型,RDCC-CNN 能捕捉更多的DNS信道的特征信息。通過這些特征表征DNS流量,作為卷積神經網絡的輸入,通過深度學習訓練,對DNS 的正常流量和信道流量具有更深刻的識別能力,標識更準確,因此誤報率較低。

同時,從表8 中可以看出,tcp-over-dns 和PSUDP 的識別準確率沒有達到較理想的水平,主要原因在于這2 種DNS 隱蔽信道的訓練樣本采集不足,因此數據不平衡,導致模型針對這2 類信道的分類性能并不非常準確。但隨著互聯網通信應用的快速普及,這一問題在以后的網絡流量數據分析中會逐步解決。

表9 各類型DNS 信道識別誤報率

2)未知隱蔽信道流量識別

測試集由樣本流量和背景流量組成。在實驗過程中,除了存在誤報DNS 信道的情況,同時發現了未在測試集中的DNS 信道流量,經過人工核實為軟件DeNise 和Heyoka 的流量,這些信道主要出現在未作標注的原始背景流量中。不同DNS 信道軟件在程序編制、實現細節和目標場景應用方面存在一定差異,但其核心原理基本相似,在通信分組和通信流量方面具有相似行為特性。因此,這里提取的深度分組和通信流量特征可有效用于其他未在測試集中DNS 信道軟件的標識,并且通過卷積神經網絡的學習分析,相比于其他方法,可深度分析出相同表征元素的流量。因此,可有效識別出原始背景中未做標注的DNS 信道流量。

5 結束語

本文分析了目前可見的2 種DNS 隱蔽信道的通信形式,研究了DNS 流量轉化為灰度圖片的表征元素,提出了基于改進卷積神經網絡的DNS 隱蔽信道識別方法,實現了對標準和非標準的DNS隱蔽信道的有效檢測,體現了卷積神經網絡在該任務上的優良性能,突破了現有解決方案能夠有效檢測的DNS 隱蔽信道類型上的局限性。通過對采集的Passive DNS 數據和典型的DNS 隱蔽通信信道樣本進行全面的分析,利用表征元素來表示原始數據,將其轉化成灰度圖片輸入改進的深度卷積神經網絡中,提高了識別效果。

猜你喜歡
檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 欧美高清三区| 久久久亚洲色| 欧洲熟妇精品视频| 欲色天天综合网| 国内精品一区二区在线观看| 内射人妻无套中出无码| 永久免费无码日韩视频| 久久黄色影院| 色婷婷在线播放| 欧美日韩国产综合视频在线观看 | 精品色综合| 亚洲欧洲国产成人综合不卡| 日本五区在线不卡精品| 国产经典在线观看一区| 亚洲中文字幕精品| 亚洲va欧美va国产综合下载| 亚洲成人网在线观看| 欧美无专区| 67194亚洲无码| 免费高清a毛片| 亚洲首页国产精品丝袜| 91在线国内在线播放老师| 国产精品原创不卡在线| 99这里只有精品免费视频| 日本一本正道综合久久dvd| 中文字幕在线视频免费| 国精品91人妻无码一区二区三区| 久久精品嫩草研究院| 在线看片中文字幕| 欧美另类图片视频无弹跳第一页| 天天综合天天综合| 欧美不卡视频一区发布| 伊大人香蕉久久网欧美| 成人福利免费在线观看| 欧美精品啪啪| 40岁成熟女人牲交片免费| 日韩a级片视频| 国产自视频| 日韩欧美国产成人| 日韩欧美国产综合| 另类专区亚洲| 国产在线97| www亚洲天堂| 日韩无码视频播放| 国产精品一区二区在线播放| 免费在线一区| 亚洲精品不卡午夜精品| 91福利在线看| 色天天综合| 欧美精品不卡| 一本色道久久88| 精品91视频| 久久综合丝袜长腿丝袜| 真实国产乱子伦视频| 91小视频在线观看| 国产免费福利网站| 天堂成人av| 亚洲美女视频一区| 国产亚洲第一页| 国产小视频免费观看| 国产91透明丝袜美腿在线| 国产成人高清亚洲一区久久| 国产网站免费看| 日韩亚洲综合在线| 亚洲无码久久久久| 在线精品亚洲一区二区古装| www欧美在线观看| 亚洲成a人片7777| 欧美区日韩区| 亚洲人成网7777777国产| 91在线激情在线观看| 免费aa毛片| 婷婷99视频精品全部在线观看 | 亚洲另类国产欧美一区二区| jijzzizz老师出水喷水喷出| 亚洲国产精品VA在线看黑人| 国产亚洲高清在线精品99| 第一页亚洲| 国产成人精品18| 国产一区在线视频观看| 国产欧美日韩综合在线第一| 国产亚洲精品91|