張猛,孫昊良,楊鵬
(1.中國(guó)電子信息產(chǎn)業(yè)發(fā)展研究院網(wǎng)絡(luò)安全研究所,北京 100846;2.國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)與信息安全管理中心,北京 100029)
域名系統(tǒng)(DNS,domain name system)是現(xiàn)代互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施和重要資源,其基本功能是實(shí)現(xiàn)域名和IP 雙向映射。借助于DNS,應(yīng)用程序可以使用字符串example.com 等名稱而不必使用復(fù)雜難記的數(shù)字IP 地址,對(duì)互聯(lián)網(wǎng)的普及發(fā)揮重要作用。由于DNS 協(xié)議和DNS 分組的普遍應(yīng)用和合法性,大多數(shù)用戶忽略了DNS 可能存在數(shù)據(jù)泄露的隱患,一般單位更注重對(duì)經(jīng)常受到攻擊的流量進(jìn)行安全監(jiān)控,忽略了利用DNS 協(xié)議傳送信息的隱蔽行為。攻擊者基于這點(diǎn)脆弱性,常利用DNS 協(xié)議傳送敏感信息。
當(dāng)前很多應(yīng)用借助DNS 協(xié)議的普遍性達(dá)到隱蔽通信的目的。通過(guò)DNS 進(jìn)行信道傳輸?shù)能浖ぞ咧?,大多?shù)的目的是借助DNS 信道實(shí)現(xiàn)惡意代碼遠(yuǎn)程控制的功能,或者傳送敏感信息,竊取重要情報(bào)或數(shù)據(jù)。網(wǎng)絡(luò)安全監(jiān)測(cè)設(shè)備無(wú)論對(duì)網(wǎng)絡(luò)通信行為做出多么嚴(yán)格的訪問(wèn)控制,通常都至少要允許DNS 流量通過(guò),這就為惡意通信行為提供了條件。
現(xiàn)在許多攻擊者借助DNS 隱蔽信道對(duì)信息系統(tǒng)進(jìn)行攻擊,竊取關(guān)鍵信息,破壞系統(tǒng)數(shù)據(jù)完整性和機(jī)密性。針對(duì)這一問(wèn)題,許多不同類型的DNS隧道檢測(cè)方法被提出。目前,DNS 隱蔽通信行為的檢測(cè)主要包括通信流量與網(wǎng)絡(luò)分組分析和基于域名字符串分析。通信流量與網(wǎng)絡(luò)分組分析一般是分析多個(gè)域名請(qǐng)求,從不同角度計(jì)算這些DNS 請(qǐng)求的總體屬性,挖掘分析隱蔽信道。Crotti 等[1]和Dusi等[2]提出基于網(wǎng)絡(luò)數(shù)據(jù)分組到達(dá)的先后順序和分組尺寸等基本統(tǒng)計(jì)特征的分類機(jī)制,用于檢測(cè)隱藏在DNS、HTTP 和SSH 信道中的信息傳送流量。Casas等[3]通過(guò)計(jì)算DNS 通信過(guò)程中傳送的數(shù)據(jù)量和單網(wǎng)絡(luò)分組尺寸來(lái)分析是否存在DNS 隱蔽通信的行為。Marchal 等[4]在分析被動(dòng)DNS 流量數(shù)據(jù)過(guò)程中,將機(jī)器學(xué)習(xí)方法應(yīng)用在DNS 信道檢測(cè),提取分組長(zhǎng)度和字節(jié)數(shù)等屬性,有針對(duì)性地挖掘分析了幾種DNS 信道。Karasaridis 等[5]基于被動(dòng)DNS 流量研究了DNS 相關(guān)的隱蔽信道和緩存投毒等惡意行為,計(jì)算DNS 分組尺寸的分布情況,通過(guò)分布差異性和交叉分布熵等統(tǒng)計(jì)屬性標(biāo)識(shí)出用于DNS 隱蔽通信的分組,經(jīng)真實(shí)網(wǎng)絡(luò)數(shù)據(jù)實(shí)驗(yàn)驗(yàn)證,這個(gè)方法計(jì)算出了僵尸網(wǎng)絡(luò)Sinit 在爆發(fā)期間交叉分布熵的變化情況。Sheridan 等[6]搭建了隱蔽通信實(shí)驗(yàn)環(huán)境,收集了當(dāng)前較為活躍的典型DNS 隱蔽信道通信流量,提取其通信指紋,計(jì)算相應(yīng)特征,在檢測(cè)階段,實(shí)施進(jìn)一步匹配計(jì)算。Shafieian 等[7]提出使用集成學(xué)習(xí)的技術(shù)結(jié)合多種機(jī)器學(xué)習(xí)算法提高分類器的準(zhǔn)確率和穩(wěn)健性。以上方法主要適用于傳送大量數(shù)據(jù)的隱蔽信道,對(duì)于傳送少量信息、DNS 分組尺寸較小的隱蔽通信行為無(wú)法有效發(fā)現(xiàn),Nussbaum 等[8]和Aiello 等[9]在DNS 隱蔽信道的信息傳送能力方面開(kāi)展了相關(guān)研究工作,分析了域名的主機(jī)名數(shù)、位置和域歷史記錄等信息,發(fā)現(xiàn)目前很多惡意代碼通過(guò)DNS 信道接收控制命令和傳遞敏感信息的分組尺寸與正常域名通信相近,而這些通信行為不具有以上可識(shí)別的屬性。Nadler 等[10]專注于針對(duì)基于DNS 協(xié)議的低吞吐量的數(shù)據(jù)泄露的惡意行為的檢測(cè),提出利用孤立森林(isolated forest)技術(shù)來(lái)檢測(cè)基于DNS 信道的數(shù)據(jù)泄露行為。在大規(guī)模數(shù)據(jù)集上能成功識(shí)別高吞吐量的DNS 信道和低吞吐量的數(shù)據(jù)泄露行為。
在基于域名字符串分析方面,提取DNS 分組中的有效負(fù)載內(nèi)容部分,分析隱蔽信道域名的某些特征屬性來(lái)確定DNS 的請(qǐng)求和應(yīng)答分組中是否被用于隱蔽通信。Farnham 等[11]利用正則表達(dá)式對(duì)網(wǎng)絡(luò)流量中的域名字符串進(jìn)行分析,發(fā)現(xiàn)網(wǎng)絡(luò)中的隱蔽通信行為,并基于這個(gè)方法建立了可實(shí)用的商業(yè)化隱蔽信道檢測(cè)系統(tǒng),提取DNS 分組中的特征字段,并與事先設(shè)定的閾值進(jìn)行比對(duì)。Bilge 等[12]分析了正常的真實(shí)域名和用于DNS 隱蔽通信域名的特點(diǎn),計(jì)算最長(zhǎng)有意義的字符串(LMS,longest meaning string)所占比例,同時(shí)應(yīng)用累計(jì)和(CUSUM,cumulative sum)算法,分段統(tǒng)計(jì)域名字符分布情況。這兩項(xiàng)工作是從字符串的角度分析用于隱蔽通信的域名表現(xiàn)出的特性,認(rèn)為實(shí)際應(yīng)用的真實(shí)域名通常由常見(jiàn)的有意義單詞或其縮寫(xiě)組成,主要針對(duì)具有特殊域名字符串的DNS 隱蔽通信,沒(méi)有考慮模仿真實(shí)域名通信這一類DNS 信道軟件的隱蔽行為。
基于以上分析,目前傳統(tǒng)的DNS 隱蔽信道識(shí)別方法具有一定的傾向性,一般主要針對(duì)某幾種DNS 信道通信軟件有較高的識(shí)別率,無(wú)法做到對(duì)絕大部分的DNS 隱蔽信道的進(jìn)行有效檢測(cè)。近期,深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)領(lǐng)域有良好的性能,充分展示了其特征提取的能力。本文認(rèn)為同一類型的DNS 信道在網(wǎng)絡(luò)行為方面有著相似的行為模式,而網(wǎng)絡(luò)行為模式是DNS 隱蔽信道在需要實(shí)現(xiàn)特殊目的的前提下難以改變的特點(diǎn)。因此,本文提出了一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的DNS 隱蔽信道識(shí)別方法(RDCC-CNN,recognition of the DNS covert channel based on convolutional neural network)。這是一種識(shí)別整體DNS 隱蔽信道的方法,通過(guò)分析DNS 隱蔽通信流量特性,提取區(qū)別于合法流量的DNS 隱蔽信道的表征元素?cái)?shù)據(jù),并將其轉(zhuǎn)換成灰度圖片,利用灰度圖來(lái)表征DNS 流量數(shù)據(jù),對(duì)DNS 隱蔽通信行為進(jìn)行檢測(cè),并在校園網(wǎng)出入口的真實(shí)流量環(huán)境中開(kāi)展實(shí)驗(yàn),達(dá)到了理想的效果。
表征元素是指根據(jù)DNS 流量來(lái)分析提取的某一特征值,經(jīng)過(guò)數(shù)據(jù)轉(zhuǎn)化成0~255 之間的一個(gè)整數(shù),作為DNS 通信流量灰度圖中的一個(gè)元素。
用DNS 協(xié)議進(jìn)行的隱蔽通信行為一般通過(guò)2種方法實(shí)現(xiàn):一種是在域名解析的過(guò)程中,與某一特定的服務(wù)器建立連接,這里稱為標(biāo)準(zhǔn)DNS 隱蔽信道;另一類通過(guò)客戶端與隱蔽信道的服務(wù)器直接建立連接,這里稱為非標(biāo)準(zhǔn)DNS 隱蔽信道。對(duì)于標(biāo)準(zhǔn)DNS 隱蔽信道,攻擊者需要一臺(tái)完全被控制的DNS 解析服務(wù)器和一個(gè)已注冊(cè)的域名,并將解析服務(wù)器設(shè)置為該域名的域名服務(wù)器,即可作為隱蔽信道的服務(wù)器。當(dāng)隱蔽信道的客戶端向任意的DNS 遞歸服務(wù)器發(fā)送包含該域名下的子域名請(qǐng)求,需要發(fā)送的信息通過(guò)互聯(lián)網(wǎng)域名解析系統(tǒng)的標(biāo)準(zhǔn)域名解析過(guò)程,傳送到被控制的解析服務(wù)器。非標(biāo)準(zhǔn)DNS 隱蔽通道能成功實(shí)施的前提是DNS 隱蔽信道的客戶端能與任一DNS 服務(wù)器通信,攻擊者將利用UDP 封裝的隧道服務(wù)綁定在服務(wù)器的53 端口,即可從客戶端直接建立連接。
DNS 隱蔽信道的分組與合法的DNS 分組相比存在許多不同點(diǎn)。一是從網(wǎng)絡(luò)分組分析來(lái)提取相關(guān)的表征元素;二是考慮數(shù)據(jù)流的表征元素,數(shù)據(jù)流的表征元素有別于深度分組分析,主要通過(guò)計(jì)算網(wǎng)絡(luò)分組的統(tǒng)計(jì)量得到。利用這些特征能有效地表征DNS 隱蔽信道。
2.2.1 分組深度分析的表征元素
本節(jié)分析了DNS 信道實(shí)現(xiàn)方法和過(guò)程,以及DNS 網(wǎng)絡(luò)分組的結(jié)構(gòu),考慮隱蔽信道DNS 請(qǐng)求分組和響應(yīng)分組的表征元素、深度分組檢查中存在的問(wèn)題和網(wǎng)絡(luò)分組解析過(guò)程的表征元素,構(gòu)造特征集來(lái)識(shí)別DNS 隱蔽信道。
標(biāo)簽指針是在DNS 協(xié)議中用于指向分組中每個(gè)存儲(chǔ)標(biāo)簽長(zhǎng)度的位置。Casas 等[3]提出在DNS 分組中使用標(biāo)簽指針。標(biāo)簽指針的解析功能通常在DNS 遞歸服務(wù)器和域名服務(wù)器中不會(huì)被實(shí)現(xiàn),因此,加大了DNS 分組的數(shù)據(jù)注入行為的檢測(cè)難度。顯然,這可以作為表征元素之一。在應(yīng)答DNS 請(qǐng)求的A 類型記錄請(qǐng)求時(shí),通常會(huì)在CNAME 記錄中存放許多的服務(wù)器返回的應(yīng)答數(shù)據(jù),因此這是一個(gè)有辨識(shí)度的表征元素。
標(biāo)準(zhǔn)DNS 隱蔽信道,在應(yīng)答部分的資源記錄中包含了絕大部分的服務(wù)器應(yīng)答數(shù)據(jù),使應(yīng)答部分資源記錄的數(shù)據(jù)長(zhǎng)度之和與正常的應(yīng)答分組的相同統(tǒng)計(jì)量相差較大,同時(shí)也影響了整個(gè)分組全部資源記錄之和的計(jì)算結(jié)果。
此外,DNS 隱蔽信道會(huì)使用一些不常用的記錄類型(例如TXT 記錄)來(lái)進(jìn)行數(shù)據(jù)傳輸。因此,在檢測(cè)的隱蔽信道的過(guò)程中,可以檢查網(wǎng)絡(luò)分組中使用的不常見(jiàn)的記錄類型的數(shù)目。
考慮發(fā)起域名請(qǐng)求過(guò)程中隱含的特征,發(fā)現(xiàn)DNS隱蔽信道網(wǎng)絡(luò)分組和正常的DNS網(wǎng)絡(luò)分組的QNAME字段有較大的區(qū)別。因?yàn)楦鶕?jù)DNS 協(xié)議的規(guī)定,DNS查詢段除QNAME 以外的字段僅含有限的數(shù)據(jù)空間,所以QNAME 字段中包含了絕大部分的隱蔽信道的客戶端發(fā)送的數(shù)據(jù)。其中,本文計(jì)算了QNAME 的標(biāo)簽數(shù)量和QNAME 二級(jí)域名部分的標(biāo)簽長(zhǎng)度(域名的二級(jí)域名去掉頂級(jí)域名后剩下的字符串長(zhǎng)度)。
DNS 隱蔽信道借助DNS 協(xié)議進(jìn)行通信,因此提高傳輸效率尤其重要。而Marchal 等[4]的工作表明一種有效地提高傳輸效率方法是在域名數(shù)據(jù)中使用二進(jìn)制數(shù)據(jù)。經(jīng)過(guò)本文的實(shí)驗(yàn)證明,確實(shí)大多數(shù)現(xiàn)有工具建立的DNS 隱蔽通道使用了非常規(guī)的字符。二進(jìn)制串經(jīng)過(guò)Base32 編碼后所表達(dá)的信息量與二進(jìn)制串本身所能表達(dá)的信息量之比約為3:5。而DNS 協(xié)議中規(guī)定域名需經(jīng)過(guò)Base32 編碼,這有別于DNS 隱蔽信道所采取的編碼方式。因此,QNAME 子域名承載的二進(jìn)制數(shù)據(jù)量和QNAME 子域名存儲(chǔ)的數(shù)據(jù)量是2 個(gè)重要的表征元素。例如,在實(shí)驗(yàn)環(huán)境中,DNSCat2 與C&C 服務(wù)器通信的過(guò)程中的域名為3f29016955018bd5b7.malwareserver.com,則其有3 個(gè)域名標(biāo)簽,二級(jí)域名標(biāo)簽的長(zhǎng)度為13 個(gè)字符,子域名二進(jìn)制的數(shù)據(jù)量為9 B。
正常的域名通常使用規(guī)范的單詞或其他含有實(shí)際意義或便于記憶的字符串,而DNS 信道編碼的域名通常是雜亂無(wú)章,且人們所不能理解的。此外,DNS 隱蔽信道的域名各個(gè)字符出現(xiàn)的概率比較接近。雜亂無(wú)章的字符串具有較高的熵。因此,域名字符串的熵也是識(shí)別DNS 信道的重要因素之一。
當(dāng)DNS 協(xié)議對(duì)合法的網(wǎng)絡(luò)分組解析時(shí),不會(huì)出現(xiàn)異常且正好完全解析(即不存在數(shù)據(jù)注入)的情況。而DNS 隱蔽信道的解析情況往往與之相反,即解析異常且無(wú)法完全解析的可能性較大。所以,本文除了檢查分組解析情況之外,還需要計(jì)算注入數(shù)據(jù)的數(shù)據(jù)量,即DNS 分組載荷結(jié)束位置與UDP分組載荷結(jié)束位置的距離差。
DNS 信道實(shí)則是借助DNS 協(xié)議的偽裝而建立的隱蔽通道。顯然,數(shù)據(jù)傳輸?shù)倪^(guò)程需要借助DNS請(qǐng)求分組和DNS 響應(yīng)分組。因此,為了提高傳輸效率,要盡可能占用DNS 分組或Raw UDP 分組中所提供的所有的剩余空間。這導(dǎo)致DNS 隱蔽信道的請(qǐng)求分組和響應(yīng)分組的長(zhǎng)度區(qū)別于正常的DNS分組。但是因?yàn)闊o(wú)法將Raw UDP 隧道的分組看作DNS 分組解析,所以額外考慮UDP 載荷長(zhǎng)度。
如果組織內(nèi)部的網(wǎng)絡(luò)安全策略禁止所有未經(jīng)過(guò)內(nèi)部DNS 服務(wù)器的DNS 查詢,那么有些DNS信道工具可能會(huì)違反該策略。但是仍有大多數(shù)DNS信道工具能夠繞過(guò)該特征的過(guò)濾(即DNS 請(qǐng)求經(jīng)過(guò)內(nèi)部DNS 服務(wù)器轉(zhuǎn)發(fā)后,依然能正常工作)。
本文對(duì)網(wǎng)絡(luò)分組深度分析和考慮后,提取了16個(gè)網(wǎng)絡(luò)分組的表征元素用于鑒別合法的DNS 請(qǐng)求與DNS 隱蔽信道流量,如表1 所示。
表1 深度分組分析的表征元素
2.2.2 非標(biāo)準(zhǔn)DNS 通信行為的表征元素
1)相關(guān)定義
為了方便下文闡述,對(duì)相關(guān)概念進(jìn)行簡(jiǎn)單定義。
定義1 <source_ip,sd_name>。針對(duì)合法的且能完全解析的DNS 分組,定義DNS 通信雙方為<source_ip,sd_name>。其中,source_ip 為DNS查詢分組的源IP 地址,或DNS 響應(yīng)分組的目的IP 地址;sd_name 為 source_ip 請(qǐng)求的全域名(QNAME)去除相同域的域名標(biāo)簽后剩余的子域名字符串。
定義2 <source_ip,destination_ip>。針對(duì)非法的DNS 分組,即解析過(guò)程中出現(xiàn)解析異?;蛘卟荒芡耆馕?,定義DNS 通信雙方為<source_ip,destination_ip>。其中,source_ip 為發(fā)起DNS 請(qǐng)求的源IP 地址,destination_ip 為DNS 查詢分組的目的IP 地址,即提供域名解析服務(wù)的IP 地址。如果是在網(wǎng)關(guān)處捕獲的DNS 分組,這里將內(nèi)網(wǎng)主機(jī)地址視為source_ip。
2)DNS 通信行為的表征元素
DNS 流量數(shù)據(jù)傳輸是一個(gè)持續(xù)的過(guò)程,僅有數(shù)據(jù)分組的靜態(tài)表征元素?zé)o法滿足檢測(cè)任務(wù)的需求,因此,本文統(tǒng)計(jì)DNS 通信行為的表征元素。算法首先將屬于同一數(shù)據(jù)流的通信雙方的網(wǎng)絡(luò)分組依據(jù)分組順序拼接;然后,統(tǒng)計(jì)選取的數(shù)據(jù)流內(nèi)的表征元素;最后,綜合所有表征元素,形成DNS 通信流量灰度圖對(duì)分類器進(jìn)行訓(xùn)練。
除了上述的表征元素之外,本文根據(jù)分組捕獲的實(shí)際情況、DNS 信道工具實(shí)驗(yàn)觀測(cè)結(jié)果以及DNS信道的域名與域名生成算法(DGA,domain generate algorithm)生成的域名的相似性,選擇了以下3 個(gè)表征元素。
1)通常情況下,正常的DNS 請(qǐng)求和應(yīng)答通信行為與其他類型的流量數(shù)據(jù)存在一定前后關(guān)聯(lián)。例如,應(yīng)用程序發(fā)起HTTP 請(qǐng)求之前,一般會(huì)先發(fā)起相關(guān)的DNS 查詢,而DNS 信道中只存在DNS 請(qǐng)求的流量。因此,將是否存在獨(dú)立的DNS 請(qǐng)求和應(yīng)答流量作為判斷DNS 信道的指標(biāo)之一。對(duì)于存在的例外情況,設(shè)立白名單進(jìn)行過(guò)濾。
2)DNS 信道工具在每次發(fā)起DNS 請(qǐng)求時(shí)只會(huì)針對(duì)一個(gè)特定的域名,這造成了相同時(shí)間內(nèi)對(duì)特定域名發(fā)起請(qǐng)求的主機(jī)名個(gè)數(shù)遠(yuǎn)多于對(duì)合法域名發(fā)起請(qǐng)求的個(gè)數(shù)。因此,主機(jī)名數(shù)量較多的域名很可能是DNS 信道的域名[12]。
3)DGA 生成的域名(AGD,algorithm generated domain)大多是不存在的,因此識(shí)別AGD 一個(gè)較有效的方法是尋找產(chǎn)生過(guò)多的不存在域名(NXDomain,non-existent domain)的響應(yīng)[13]??紤]到DNS 信道的域名與算法生成的域名在字符串的熵和域名長(zhǎng)度等方面都非常相似,同樣也會(huì)產(chǎn)生大量的NXDomain 響應(yīng)(如Heyoka)。所以,可以借鑒該方法檢測(cè)DNS 信道。
如表2 所示,非標(biāo)準(zhǔn)DNS 通信行為的統(tǒng)計(jì)特征分為4 個(gè)集合。Feature_Set1統(tǒng)計(jì)的特征值描述了客戶端與服務(wù)器之間通信的流量大小。Feature_Set2則是從單個(gè)網(wǎng)絡(luò)分組的角度,詳細(xì)地統(tǒng)計(jì)了數(shù)據(jù)流中符合DNS 隱蔽信道流量的表征元素。Feature_Set3是對(duì)網(wǎng)絡(luò)分組中具體的參數(shù)進(jìn)行統(tǒng)計(jì),同時(shí)計(jì)算同一數(shù)據(jù)流中所有相應(yīng)參數(shù)的均值、最大值和最小值等統(tǒng)計(jì)量,從而進(jìn)一步描述流量。其中,注入數(shù)據(jù)的數(shù)據(jù)量、DNS 請(qǐng)求分組的長(zhǎng)度、DNS 響應(yīng)分組的長(zhǎng)度和UDP 載荷的長(zhǎng)度,需要對(duì)發(fā)送和接收2個(gè)方向分別統(tǒng)計(jì);QNAME 的標(biāo)簽數(shù)量、QNAME二級(jí)域名部分的字符串長(zhǎng)度和QNAME子域名存儲(chǔ)的數(shù)據(jù)量,只對(duì) DNS 請(qǐng)求分組統(tǒng)計(jì);應(yīng)答部分資源記錄數(shù)據(jù)長(zhǎng)度總和以及全部資源記錄數(shù)據(jù)長(zhǎng)度總和,只需要對(duì) DNS 回答分組進(jìn)行統(tǒng)計(jì)。Feature_Set3共36 個(gè)特征,從雙向DNS 分組的特征、雙向的流量大小、所包含的域名信息以及應(yīng)答分組中資源記錄的統(tǒng)計(jì)量等角度,計(jì)算了DNS 隱蔽信道的表征元素。Feature_Set4包括獨(dú)立的DNS 請(qǐng)求個(gè)數(shù)、每個(gè)域名的主機(jī)名個(gè)數(shù)、NXDomain 響應(yīng)的個(gè)數(shù)。例如在觀察時(shí)間窗口內(nèi),本文實(shí)驗(yàn)中設(shè)置為1 h,DNSCat2 通信記錄如圖1 所示。統(tǒng)計(jì)該觀察窗口內(nèi)的DNS 請(qǐng)求分組共6 231 個(gè),請(qǐng)求malwareserver.com下子域名的主機(jī)個(gè)數(shù)5 個(gè),NXDomain 響應(yīng)次數(shù)為5 989 次。
表2 非標(biāo)準(zhǔn)DNS 通信表征元素
圖1 DNSCat2 與服務(wù)器通信記錄
根據(jù)第3 節(jié)分析的各類DNS 信道軟件的若干表征元素,針對(duì)每一條通信流量,提取并計(jì)算這些表征元素,通過(guò)數(shù)據(jù)規(guī)范化和預(yù)處理,將數(shù)據(jù)轉(zhuǎn)換為0~255 之間的整數(shù),并構(gòu)造二維矩陣,將網(wǎng)絡(luò)流量特征數(shù)據(jù)轉(zhuǎn)化為灰度圖片,二維矩陣中的每一位數(shù)據(jù)對(duì)應(yīng)灰度圖片的一個(gè)元素;然后將灰度圖片作為卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)進(jìn)行學(xué)習(xí),訓(xùn)練并建立RDCC-CNN 分類器,用訓(xùn)練好的分類器對(duì)DNS隱蔽信道進(jìn)行識(shí)別。其整體架構(gòu)如圖2 所示。
數(shù)據(jù)規(guī)范化是為了使數(shù)據(jù)的各個(gè)維度能夠在同一量綱上,減少對(duì)模型訓(xùn)練時(shí)對(duì)不同維度的依賴程度,同時(shí)需要將數(shù)據(jù)轉(zhuǎn)換為0~255 之間的整數(shù)。
假設(shè)每條DNS 流量的m個(gè)表征元素形成一個(gè)行向量,一共n條DNS 流量所構(gòu)成的數(shù)據(jù)矩陣為
將所有樣本中相同的表征元素,提取后形成一個(gè)列向量,那么該矩陣可以表示為
其中,max(Bi)表示在向量Bi中取最大元素,min(Bi)表示在向量Bi中取最小元素。轉(zhuǎn)換后的為0~255之間的整數(shù)。
處理后的矩陣可以表示為
式(4)具體為上文所描述的DNS通信流量數(shù)據(jù),根據(jù)每行表征元素的個(gè)數(shù),構(gòu)造合適的灰度圖尺寸。DNS 通信流量數(shù)據(jù)的數(shù)據(jù)集具有48 個(gè)表征元素,可以構(gòu)建一個(gè)8×8 的圖片尺寸,由于表征元素的數(shù)量少于圖片像素點(diǎn)個(gè)數(shù),因此需要在圖像矩陣的最后多余部分用0 進(jìn)行填充。例如,根據(jù)某一條DNS 通信流量數(shù)據(jù)的所計(jì)算得到表征向量為[Ai1,Ai2,…,Aim]′=[5,1,…,0]。通過(guò)對(duì)每列的數(shù)據(jù)進(jìn)行規(guī)范化表示得到
圖2 整體架構(gòu)
將[Ai1,Ai2,… ,Aim]′轉(zhuǎn)換成8×8 的矩陣,即可得到如圖3 所示的能夠表征某一條DNS 通信流量數(shù)據(jù)的灰度圖。
圖3 [Ai1,Ai2,…,Aim]'所計(jì)算的灰度圖
將每一個(gè)DNS 隱蔽信道的網(wǎng)絡(luò)分組數(shù)據(jù)轉(zhuǎn)變成相應(yīng)的灰度圖片,作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。
1)卷積層
每個(gè)卷積層由多個(gè)卷積單元(即濾波器)組成。卷積層中每一個(gè)節(jié)點(diǎn)的輸入是上一層卷積核的局部區(qū)域的計(jì)算結(jié)果。卷積核的長(zhǎng)、寬以及個(gè)數(shù)均可自定義。卷積層作用是對(duì)上一層輸入的特征圖片中局部區(qū)域進(jìn)行進(jìn)一步更高層次的特征抽取。卷積層的形式為
其中,l為當(dāng)前層,b為當(dāng)前層的偏置,k為卷積核,Mj為第j個(gè)卷積核對(duì)應(yīng)的卷積窗口,激活函數(shù)通常采用sigmoid、tanh 或ReLU 等函數(shù)。
2)池化層
池化層也稱為采樣層,它是將輸入的圖像劃分為若干個(gè)矩形區(qū)域,對(duì)每個(gè)子區(qū)域進(jìn)行計(jì)算,能夠不斷地減小數(shù)據(jù)的空間大小。利用池化層,參數(shù)的數(shù)量和模型的計(jì)算量也會(huì)大大減少。其中,最常用的是最大池化和均值池化。池化層的形式為
其中,down(.)為下采樣函數(shù)。若下采樣函數(shù)是最大池化,則對(duì)輸入圖像中每一個(gè)n×n大小的區(qū)域取最大值,用于代表這個(gè)區(qū)域的信息,因此經(jīng)過(guò)下采樣的圖像尺寸縮小為原來(lái)尺寸的,輸出的特征圖像有對(duì)應(yīng)的權(quán)重參數(shù)β和偏置b。
3)全連接層
全連接層是連接在模型最后的分類器,依據(jù)前面所提取的特征訓(xùn)練分類器。最后將從灰度圖片中抽取的特征輸入到全連接層中,并輸出分類的標(biāo)簽。
卷積神經(jīng)網(wǎng)絡(luò)模擬了人腦在圖像數(shù)據(jù)中提取特征的原理,并在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了顯著的效果。在本文提出的方法中,首先將DNS 數(shù)據(jù)連接特征轉(zhuǎn)換為數(shù)值表示,再把數(shù)值視為灰度值,進(jìn)而將數(shù)據(jù)轉(zhuǎn)化為圖像。最后將DNS 隱蔽信道的識(shí)別任務(wù)轉(zhuǎn)化成能采用卷積神經(jīng)網(wǎng)絡(luò)解決的分類任務(wù)。
LeNet-5 模型是卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典結(jié)構(gòu),主要應(yīng)用在手寫(xiě)數(shù)字的識(shí)別[13]。針對(duì)DNS 通信流量數(shù)據(jù)特點(diǎn),本文根據(jù)實(shí)際應(yīng)用場(chǎng)景更改了模型結(jié)構(gòu)。
1)根據(jù)DNS 通信數(shù)據(jù)特性,轉(zhuǎn)化出適當(dāng)灰度圖片,輸入層設(shè)計(jì)為8×8 矩陣。
2)識(shí)別DNS 隱蔽信道是一個(gè)二分類任務(wù)。因此,LeNet-5 模型的輸出層10 個(gè)神經(jīng)元改為2 個(gè)神經(jīng)元。
3)根據(jù)DNS 數(shù)據(jù)連接特征,設(shè)計(jì)了6 種具有不同網(wǎng)絡(luò)結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)。如表3 所示。
卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過(guò)程主要采用反向傳播算法來(lái)傳遞誤差信息,運(yùn)用梯度下降的優(yōu)化算法來(lái)更新神經(jīng)元之間連接的權(quán)重。
1)前向傳播。其計(jì)算方法可以表示為
式(7)使用的激活函數(shù)為ReLU 函數(shù)。
2)反向傳播。為了傳遞誤差信息的計(jì)算方法,需要結(jié)合優(yōu)化算法一起更新神經(jīng)網(wǎng)絡(luò)中的參數(shù)值。這里使用的目標(biāo)函數(shù)定義為
其中,等號(hào)右邊第一項(xiàng)多項(xiàng)式為常規(guī)交叉熵表達(dá)式;第二項(xiàng)為正則化項(xiàng),這里使用正則化項(xiàng)是為了避免模型的過(guò)擬合,同時(shí)設(shè)定懲罰因子λ=0.01。
為了能最優(yōu)化目標(biāo)函數(shù)的結(jié)果,需要對(duì)參數(shù)進(jìn)行調(diào)整。
權(quán)重的更新為
偏置的更新為
其中,η為學(xué)習(xí)速率,設(shè)η=0.55。
具體實(shí)現(xiàn)過(guò)程如下。
1)對(duì)輸入的圖像進(jìn)行Padding 操作,能夠保持邊緣信息,且使卷積前后尺寸不變。同時(shí)卷積核移動(dòng)步長(zhǎng)設(shè)為1。
2)設(shè)計(jì)卷積核的數(shù)量不大于64,避免5 層卷積神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu),無(wú)法達(dá)到全局最優(yōu)。
對(duì)于每一種設(shè)計(jì)的網(wǎng)絡(luò),均采用最大池化和平均池化這2 種池化層進(jìn)行實(shí)驗(yàn),并進(jìn)行性能對(duì)比。實(shí)驗(yàn)結(jié)果分別如表4 和表5 所示?;诟倪M(jìn)卷積神經(jīng)網(wǎng)絡(luò)DNS 隱蔽信道檢測(cè)方法,由于其應(yīng)用場(chǎng)景對(duì)于實(shí)時(shí)性的要求較高,因此,本文只針對(duì)各種算法的測(cè)試時(shí)間進(jìn)行對(duì)比分析。
表3 6 種不同網(wǎng)絡(luò)結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)
表4 采用最大池化方法時(shí)的檢測(cè)結(jié)果
表5 采用平均池化方法時(shí)的檢測(cè)結(jié)果
從表4 和表5 可以看出,隨著卷積核數(shù)的增加,總體上,分類準(zhǔn)確率基本保持不變,但運(yùn)行時(shí)間差距比較明顯。在應(yīng)用最大池化的池化層運(yùn)行時(shí),模型1 在實(shí)驗(yàn)過(guò)程中發(fā)生了局部最優(yōu)點(diǎn)的問(wèn)題,但是從模型2~模型6 的實(shí)驗(yàn)結(jié)果中可以看出,適當(dāng)?shù)販p少卷積核的數(shù)量,能夠提高模型分類性能。對(duì)比表4 和表5 中的實(shí)驗(yàn)結(jié)果,模型6 在取得較高分類準(zhǔn)確率的前提下,實(shí)現(xiàn)較低的計(jì)算復(fù)雜度。因此,應(yīng)用了最大池化的模型6 被選為最終的分類器模型。
參照如表3 所示模型6 的網(wǎng)絡(luò)結(jié)構(gòu),在C1 卷積層對(duì)輸入圖像進(jìn)行Padding 操作后,使用權(quán)重隨機(jī)生成的8 個(gè)3×3 的卷積核對(duì)輸入的矩陣進(jìn)行卷積運(yùn)算,輸出8 張16×16 的特征圖像。在S2 池化層,采用2×2尺寸的窗口對(duì)上一層輸出的8 張?zhí)卣鲌D像進(jìn)行下采樣,輸出8 張8×8 的特征圖像。在C3 卷積層,同樣也是Padding 后使用預(yù)訓(xùn)練得到的16 個(gè)5×5 的卷積核對(duì)輸入數(shù)據(jù)進(jìn)行卷積,得到16 張8×8 的特征圖像。在S4 池化層使用2×2 尺寸的窗口對(duì)C3 層的16 張?zhí)卣鲌D像進(jìn)行下采樣,得到16 張4×4 的特征圖像。在F5 全連接層,將S4 層所得到的表征DNS 通信行為的圖像矩陣?yán)斐蓡我坏?28×1 向量。輸出層利用soft-max 分類器,輸出結(jié)果為2 類。
1)數(shù)據(jù)集
本文實(shí)驗(yàn)中采集的數(shù)據(jù)集是混合流量,包含背景流量的正常DNS 流量樣本和包含背景流量的DNS隱蔽通道流量樣本。其中,正常DNS 流量樣本采集自某高校校園網(wǎng)出入口,在20 天內(nèi),提取480 h 單固定IP 對(duì)單一全域名請(qǐng)求和應(yīng)答數(shù)據(jù)558 400 條,人工確認(rèn)這些連接均不屬于DNS 隱蔽信道流量,取300 000 條作為訓(xùn)練數(shù)據(jù),其余作為測(cè)試數(shù)據(jù)。
DNS 隱蔽通道流量樣本通過(guò)幾個(gè)典型DNS 信道軟件生成,這些DNS 信道軟件在實(shí)際應(yīng)用中出現(xiàn)較為頻繁,主要包括DNSCat、Iodine、PSUDP、Dns2tcp 和tcp-over-dns。其中,DNSCat、Dns2tcp和Iodine 能實(shí)現(xiàn)多類型資源記錄通信,可分別產(chǎn)生CNAME、KEY、SRV、MX、NULL、TXT 等類型資源記錄,同時(shí)生成Raw UDP 模式下的流量。在可控的網(wǎng)絡(luò)環(huán)境中運(yùn)行這些軟件,每種DNS 信道軟件在5 臺(tái)主機(jī)上運(yùn)行,分別獲取激活狀態(tài)下有信息傳輸時(shí)的流量和未激活狀態(tài)下沒(méi)有信息傳輸時(shí)的流量,使訓(xùn)練產(chǎn)生的模型在傳輸數(shù)據(jù)時(shí)和無(wú)數(shù)據(jù)傳輸空閑時(shí)都可有效識(shí)別。另外,PSUDP 通過(guò)向現(xiàn)有的DNS 網(wǎng)絡(luò)分組中注入數(shù)據(jù)來(lái)傳送信息,軟件本身不發(fā)送任何DNS 請(qǐng)求,因此以隨機(jī)時(shí)間發(fā)送DNS 請(qǐng)求,模擬真實(shí)網(wǎng)絡(luò)環(huán)境中的DNS 分組,以承載PSDU 的數(shù)據(jù)。這些DNS 隧道軟件主要存在22 種數(shù)據(jù)交互模式。以1 h 為時(shí)間段,這里對(duì)每種模式分別按照一天24 個(gè)時(shí)段獲取20 天交互信息,共產(chǎn)生10 560 個(gè)DNS 隱蔽通道流量樣本,采用其中10 天1 472 000 條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),另10 天的1 472 000 條數(shù)據(jù)用來(lái)測(cè)試,如表6 所示。
表6 被動(dòng)DNS 數(shù)據(jù)和信道樣本集
測(cè)試集中的背景流量直接在校園網(wǎng)出入口處通過(guò)鏡像獲取,捕獲10 天的出入口流量作為背景流量。
2)評(píng)估指標(biāo)
為了驗(yàn)證DNS 信道的識(shí)別效果,這里設(shè)立了3 個(gè)評(píng)測(cè)指標(biāo),分別為準(zhǔn)確率ACC、誤報(bào)率FPR和整體準(zhǔn)確率,包括對(duì)每一類DNS 信道的識(shí)別,具體為
其中,TPi(true positive)表示隱蔽信道i被正確識(shí)別出的樣本數(shù)量,F(xiàn)Ni(false negative)表示實(shí)際類型為i的信道樣本被誤判為其他類型的樣本數(shù)量,F(xiàn)P(ifalse positive)表示實(shí)際類型非i的信道樣本被誤判為類型i的樣本數(shù)量。整體準(zhǔn)確率主要用來(lái)評(píng)測(cè)識(shí)別方法對(duì)利用DNS 分組進(jìn)行通信行為的識(shí)別效果。
3)實(shí)驗(yàn)環(huán)境
本文原型系統(tǒng)的開(kāi)發(fā)及訓(xùn)練測(cè)試工作在2 臺(tái)服務(wù)器上進(jìn)行,每臺(tái)服務(wù)器使用深度學(xué)習(xí)框架PyTorch,卷積神經(jīng)網(wǎng)絡(luò)改進(jìn)過(guò)程的訓(xùn)練與測(cè)試均在PyTorch 環(huán)境下完成。試驗(yàn)的硬件環(huán)境應(yīng)用128 GB內(nèi)存,中央處理器Intel Xeon E5-2620,每處理器含八核,主頻2.00 GHz,采用8 塊GeForceGTX TITAN X系列GPU,軟件環(huán)境的操作系統(tǒng)為64位的Ubuntu 16.04,cuda8.0,模型的實(shí)現(xiàn)采用Python 語(yǔ)言。
1)測(cè)試集樣本識(shí)別
傳統(tǒng)的DNS 隱蔽信道檢測(cè)方法一般包括DNS有效分組分析和流量分析2 個(gè)方面。DNS 分組分析典型方法是Farnham等[11]提出的使用正則表達(dá)式對(duì)域名進(jìn)行匹配的DNS 檢測(cè)模型;而Karasaridis 等[5]提出使用網(wǎng)絡(luò)流量的統(tǒng)計(jì)量來(lái)檢測(cè)DNS 異常機(jī)制是流量分析工作的代表之一。其通過(guò)在一定時(shí)間窗口內(nèi)計(jì)算數(shù)據(jù)分組尺寸的分布情況,然后分析比較實(shí)驗(yàn)中得到的分布和標(biāo)準(zhǔn)分布估算出一個(gè)交叉分布的熵值,利用該熵值進(jìn)行對(duì)比檢測(cè)。近兩年,Shafieian等[7]認(rèn)為傳統(tǒng)的DNS隱蔽信道檢測(cè)方法存在不足,如內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN,content delivery network)的廣泛使用增加了傳統(tǒng)檢測(cè)方法的誤報(bào),并提出使用集成學(xué)習(xí)技術(shù)對(duì)DNS 隱蔽信道進(jìn)行檢測(cè);此外,根據(jù)Nadler 等[10]調(diào)查研究顯示,低吞吐量的DNS 隱蔽信道常用于信用卡信息和密碼等隱私信息的泄露,因此提出利用孤立森林的方法針對(duì)低吞吐量的基于DNS 協(xié)議的數(shù)據(jù)泄露行為進(jìn)行檢測(cè),并在大規(guī)模的數(shù)據(jù)上測(cè)試模型的性能。為了方便討論,將其分別稱為Farnham 模型、Karasaridis 模型、Shafieian 模型和Nadler 模型。本文還原了這4 個(gè)模型,并與本文提出的方法進(jìn)行了對(duì)比,以驗(yàn)證本文提出的方法在DNS 信道識(shí)別問(wèn)題上的優(yōu)勢(shì)。
針對(duì)建立的數(shù)據(jù)樣本集,利用選取的網(wǎng)絡(luò)特征來(lái)表征每一條DNS 流量,選取網(wǎng)絡(luò)流量數(shù)據(jù)的特征并生成表征矩陣,經(jīng)過(guò)標(biāo)準(zhǔn)化計(jì)算轉(zhuǎn)化為灰度圖片,作為RDCC-CNN 的輸入。根據(jù)第3 節(jié)選取的最優(yōu)卷積神經(jīng)網(wǎng)絡(luò)模型,將提取的DNS 流量特征合并,并按照文中的歸一化操作生成灰度圖片的表征矩陣作為輸入。先通過(guò)訓(xùn)練數(shù)據(jù)集建立檢測(cè)模型,然后將測(cè)試數(shù)據(jù)生成的特征矩陣依次輸入模型進(jìn)行實(shí)驗(yàn)分析。模型訓(xùn)練了50 000 步長(zhǎng)(Step),針對(duì)不同類型的DNS 信道目標(biāo)函數(shù)的損失(Loss)收斂情況如圖4 所示。根據(jù)實(shí)驗(yàn)數(shù)據(jù)計(jì)算評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果分別如表7 和表8 所示。
圖4 目標(biāo)函數(shù)損失(Loss)收斂情況
表7 采用不同算法的總體準(zhǔn)確率和測(cè)試時(shí)間
從表7 中可以看出,本文提出的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的方法的總體準(zhǔn)確率達(dá)到99.50%,相較于其他4 種方法有一定的提升。Farnham 模型針對(duì)全量域名,提取相關(guān)的表征特征,并進(jìn)行復(fù)雜的正則表達(dá)式匹配計(jì)算,其消耗的時(shí)間相對(duì)較長(zhǎng),相對(duì)于本文提出的方法多出0.08 s,而且僅計(jì)算域名的相關(guān)信息,因此識(shí)別的總體準(zhǔn)確率表現(xiàn)較低;Karasaridis模型計(jì)算時(shí)間較快,其使用網(wǎng)絡(luò)流量的統(tǒng)計(jì)量來(lái)識(shí)別DNS 隱蔽信道,在一段時(shí)間內(nèi),計(jì)算網(wǎng)絡(luò)分組尺寸分布的熵,相對(duì)來(lái)說(shuō)選取的特征類型少,計(jì)算復(fù)雜度低,比本文提出的方法快0.37 s,但總體識(shí)別準(zhǔn)確率低于本文提出的方法。
表8 各類型DNS 信道識(shí)別準(zhǔn)確率
本文方法相對(duì)于前2 種傳統(tǒng)檢測(cè)方法,從DNS通信行為的不同角度分析了相關(guān)特征,豐富了DNS 信道的表征元素,就方法的內(nèi)在屬性而言,分析的元素更全面,顯然具有更高的識(shí)別準(zhǔn)確性,同時(shí)對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型的計(jì)算過(guò)程進(jìn)行了優(yōu)化改進(jìn),降低了計(jì)算復(fù)雜度,提升了運(yùn)算效率,在運(yùn)算的網(wǎng)絡(luò)DNS 數(shù)據(jù)量較大、表征屬性更全面的場(chǎng)景下,仍然保持較快的計(jì)算速度,盡管相對(duì)于Karasaridis 模型執(zhí)行時(shí)間延長(zhǎng)了0.37 s,但在總體準(zhǔn)確率有較大提升的前提下,這個(gè)時(shí)延的消耗量可以接受。而且,通過(guò)少量增加運(yùn)算設(shè)施,在可接受范圍內(nèi),輕度提高算力成本,可以修補(bǔ)檢測(cè)效率的時(shí)間差。在保證計(jì)算速度的前提下,提高檢測(cè)準(zhǔn)確率使其有較好的實(shí)用性。
Shafieian模型和Nadler模型的檢測(cè)速率與本文方法接近。但是,針對(duì)多種不同版本和類型的DNS隱蔽信道的檢測(cè)的總體準(zhǔn)確率要稍低于本文方法。在文獻(xiàn)[7]中,用于測(cè)試Shafieian 模型的DNS 信道工具有Iodine、DNSCat 和Ozyman,且Shafieian模型中所選擇的特征數(shù)量和隨機(jī)森林所使用的樹(shù)的數(shù)量較少。因此,當(dāng)該方法應(yīng)用于檢測(cè)多種不同版本和類型的DNS 隱蔽信道時(shí),準(zhǔn)確率有所降低。Nadler 模型[10]在兼顧高吞吐量的DNS 隱蔽信道檢測(cè)效果的前提下,能有效地針對(duì)低吞吐量的DNS信道進(jìn)行檢測(cè)。但是,該方法所采用的孤立森林算法是無(wú)監(jiān)督學(xué)習(xí)算法,需要在正常的DNS 流量上建立基準(zhǔn),而不同的網(wǎng)絡(luò)環(huán)境所建立的基準(zhǔn)不同,從而導(dǎo)致檢測(cè)性能的波動(dòng)。與這2 種模型相比,本文所采用多種不同版本和類型的DNS 信道作為訓(xùn)練數(shù)據(jù),采用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)作為檢測(cè)模型,具有穩(wěn)定的檢測(cè)性能,能有效地檢測(cè)不同的DNS 隱蔽信道。
表8 中的實(shí)驗(yàn)結(jié)果表明,針對(duì)不同類型的DNS隱蔽信道,流量的識(shí)別準(zhǔn)確率都有大幅度提升。其中,PSUDP 是通過(guò)數(shù)據(jù)注入方式隱藏在UDP/53 網(wǎng)絡(luò)分組數(shù)據(jù)中的非標(biāo)準(zhǔn)DNS 隱蔽信道。本文提出的改進(jìn)深度神經(jīng)網(wǎng)絡(luò)的識(shí)別方法依然能進(jìn)行有效應(yīng)用,并達(dá)到96.9%的識(shí)別準(zhǔn)確率。因此,無(wú)論是標(biāo)準(zhǔn)的DNS 信道還是非標(biāo)準(zhǔn)的DNS 信道,其流量的表征元素都可以轉(zhuǎn)換為灰度圖像,相較于其他方法,本文適用范圍更加廣泛,且性能優(yōu)良。本文認(rèn)為,F(xiàn)arnham 模型的域名匹配僅能匹配已知的DNS 隱蔽信道域名,而對(duì)于更改域名和新的DNS 信道,則失去了檢測(cè)能力。Karasaridis 熵值對(duì)比的方式,需要事先設(shè)定熵的閾值,而DNS 隱蔽信道只需修改數(shù)據(jù)分組尺寸即可躲避檢測(cè)。Shafieian 模型利用集成學(xué)習(xí)技術(shù)結(jié)合了多個(gè)不同類型的分類器,能夠得到較好的檢測(cè)效果。但需要多次實(shí)驗(yàn)調(diào)整不同分類器之間的權(quán)重,且未在大規(guī)模網(wǎng)絡(luò)環(huán)境下測(cè)試。Nadler 模型利用無(wú)監(jiān)督的孤立森林算法,需要在正常的流量樣本上訓(xùn)練建立基準(zhǔn),而在一個(gè)大規(guī)模網(wǎng)絡(luò)環(huán)境下,確保不存在任何DNS 隱蔽信道的流量是困難的,且基準(zhǔn)容易受到其他惡意DNS 流量的影響。而改進(jìn)深度神經(jīng)網(wǎng)絡(luò)模型能夠基于大量的樣本數(shù)據(jù)學(xué)習(xí)DNS 隱蔽信道的網(wǎng)絡(luò)行為模式,這是本文認(rèn)為DNS 隱蔽信道難于改變的特點(diǎn)。因此,有較好的檢測(cè)效果。
誤報(bào)率上的實(shí)驗(yàn)結(jié)果如表9 所示。每個(gè)DNS信道都存在識(shí)別上的誤差,相比較于其他4 種模型,RDCC-CNN 具有更低的誤報(bào)情況,由于協(xié)同應(yīng)用深度分組分析和網(wǎng)絡(luò)流量特征做綜合分析,相比于傳統(tǒng)方法,RDCC-CNN 具有更全面的識(shí)別能力;相比于Shafieian 和Nadler 模型,RDCC-CNN 能捕捉更多的DNS信道的特征信息。通過(guò)這些特征表征DNS流量,作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)深度學(xué)習(xí)訓(xùn)練,對(duì)DNS 的正常流量和信道流量具有更深刻的識(shí)別能力,標(biāo)識(shí)更準(zhǔn)確,因此誤報(bào)率較低。
同時(shí),從表8 中可以看出,tcp-over-dns 和PSUDP 的識(shí)別準(zhǔn)確率沒(méi)有達(dá)到較理想的水平,主要原因在于這2 種DNS 隱蔽信道的訓(xùn)練樣本采集不足,因此數(shù)據(jù)不平衡,導(dǎo)致模型針對(duì)這2 類信道的分類性能并不非常準(zhǔn)確。但隨著互聯(lián)網(wǎng)通信應(yīng)用的快速普及,這一問(wèn)題在以后的網(wǎng)絡(luò)流量數(shù)據(jù)分析中會(huì)逐步解決。
表9 各類型DNS 信道識(shí)別誤報(bào)率
2)未知隱蔽信道流量識(shí)別
測(cè)試集由樣本流量和背景流量組成。在實(shí)驗(yàn)過(guò)程中,除了存在誤報(bào)DNS 信道的情況,同時(shí)發(fā)現(xiàn)了未在測(cè)試集中的DNS 信道流量,經(jīng)過(guò)人工核實(shí)為軟件DeNise 和Heyoka 的流量,這些信道主要出現(xiàn)在未作標(biāo)注的原始背景流量中。不同DNS 信道軟件在程序編制、實(shí)現(xiàn)細(xì)節(jié)和目標(biāo)場(chǎng)景應(yīng)用方面存在一定差異,但其核心原理基本相似,在通信分組和通信流量方面具有相似行為特性。因此,這里提取的深度分組和通信流量特征可有效用于其他未在測(cè)試集中DNS 信道軟件的標(biāo)識(shí),并且通過(guò)卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)分析,相比于其他方法,可深度分析出相同表征元素的流量。因此,可有效識(shí)別出原始背景中未做標(biāo)注的DNS 信道流量。
本文分析了目前可見(jiàn)的2 種DNS 隱蔽信道的通信形式,研究了DNS 流量轉(zhuǎn)化為灰度圖片的表征元素,提出了基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的DNS 隱蔽信道識(shí)別方法,實(shí)現(xiàn)了對(duì)標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)的DNS隱蔽信道的有效檢測(cè),體現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)在該任務(wù)上的優(yōu)良性能,突破了現(xiàn)有解決方案能夠有效檢測(cè)的DNS 隱蔽信道類型上的局限性。通過(guò)對(duì)采集的Passive DNS 數(shù)據(jù)和典型的DNS 隱蔽通信信道樣本進(jìn)行全面的分析,利用表征元素來(lái)表示原始數(shù)據(jù),將其轉(zhuǎn)化成灰度圖片輸入改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)中,提高了識(shí)別效果。