李慧慧,張士庚,2,宋 虹,王偉平
1中南大學(xué)計(jì)算機(jī)學(xué)院 長(zhǎng)沙 中國(guó) 410083
2中國(guó)科學(xué)院信息工程研究所信息安全國(guó)家重點(diǎn)實(shí)驗(yàn)室 北京 中國(guó) 100093
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)已經(jīng)在軍事,經(jīng)濟(jì),教育,生活等各個(gè)領(lǐng)域都廣泛應(yīng)用。然而,在互聯(lián)網(wǎng)給我們的生活帶來(lái)各種便利的同時(shí),也帶來(lái)了各種安全問(wèn)題,各種計(jì)算機(jī)病毒,蠕蟲等惡意軟件的數(shù)量和種類也在快速增多,為互聯(lián)網(wǎng)用戶的安全帶來(lái)了巨大挑戰(zhàn)。
為了保護(hù)傳輸?shù)臄?shù)據(jù),加密傳輸已經(jīng)成為現(xiàn)有廣泛應(yīng)用的方式。Cisco的調(diào)查[1]顯示,僅 2016—2017年,加密流量就增多了 90%以上,超過(guò) 50%以上的流量都是加密流量。采用加密傳輸有益于保護(hù)普通用戶的隱私,然而這也給了惡意應(yīng)用開發(fā)者可乘之機(jī),他們開始大量使用加密流量來(lái)逃避檢測(cè)。Cisco預(yù)測(cè)到2020年,將有70%的惡意軟件將使用某種類型的加密來(lái)隱藏惡意軟件的傳遞、遠(yuǎn)程控制以及數(shù)據(jù)泄露等惡意行為。其中最常用的加密方式是使用TLS協(xié)議加密。因此,如何檢測(cè)惡意TLS加密流量已成為惡意軟件檢測(cè)識(shí)別中的一個(gè)重要研究熱點(diǎn)。
已有針對(duì)明文HTTP流量的惡意流量檢測(cè)方法,如基于簽名的方法[2-4]和基于語(yǔ)義特征的方法[5-6],分析了惡意流量在 HTTP請(qǐng)求頭部的簽名信息和分割單詞的語(yǔ)義特征,發(fā)現(xiàn)惡意流量并對(duì)惡意流量進(jìn)行分類。由于加密流量信息對(duì)于傳輸內(nèi)容進(jìn)行加密,因此,語(yǔ)義特征信息無(wú)法從流量中獲取,因此,這些方法無(wú)法在加密流量的惡意性檢測(cè)中應(yīng)用。越來(lái)越多的加密流量惡意性檢測(cè)采用數(shù)據(jù)包大小、方向、時(shí)間間隔等統(tǒng)計(jì)特征對(duì)流量進(jìn)行分類[7-10],還有一些研究[11-17]利用 TLS握手階段的可用特征,包括握手消息類型、加密套件、擴(kuò)展、公鑰長(zhǎng)度、SSL/TLS版本號(hào)、加密方法等,作為識(shí)別惡意流量的特征參量;另外文獻(xiàn)[18]主要考慮了TLS協(xié)議中的證書,采用證書內(nèi)容來(lái)識(shí)別正常流量和加密流量; 隨著深度學(xué)習(xí)研究的發(fā)展,也有一些研究直接采用了深度學(xué)習(xí)方法[19-20],將原始流量數(shù)據(jù)直接輸入深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行惡意流量識(shí)別。這些方法在惡意流量檢測(cè)方面都獲得了一些良好結(jié)果,但也存在一些不足,主要體現(xiàn)在: (1)基于證書的方法對(duì)無(wú)證書傳遞的加密會(huì)話惡意性檢測(cè)無(wú)效,因?yàn)榇蠖鄶?shù)加密會(huì)話可采用 TLS會(huì)話復(fù)用方式傳遞; (2)深度學(xué)習(xí)方法雖然無(wú)需復(fù)雜的特征提取工程,但缺乏可解釋性,而且需要大量的訓(xùn)練數(shù)據(jù); (3)基于簽名的方法和特征的方法大多需要分析流量?jī)?nèi)容中的信息,而且只考慮流量某一方面的特征,并未結(jié)合加密流量的特殊性以及加密協(xié)議的發(fā)展變化。
因此,本文提出了一種結(jié)合多特征識(shí)別的惡意加密流量檢測(cè)方法 RMETD-MF(Robust Malicious Encrypted Traffic Detection based with Multiple Features),嘗試在不對(duì)加密流量做解密的情況下實(shí)現(xiàn)惡意檢測(cè),并能識(shí)別不同網(wǎng)絡(luò)場(chǎng)景中新的惡意加密流量。本文的主要貢獻(xiàn)如下:
(1) 通過(guò)監(jiān)控網(wǎng)絡(luò)流量,分析了惡意流量和正常流量的區(qū)別,提取了其中能明顯區(qū)別正常流量和惡意流量的69個(gè)特征,包括會(huì)話元數(shù)據(jù)特征、包長(zhǎng)序列統(tǒng)計(jì)特征、TLS握手特征、證書特征和域名特征,用于惡意流量的識(shí)別和檢測(cè);
(2) 提出了結(jié)合多特征識(shí)別的惡意加密會(huì)話檢測(cè)方法 RMETD-MF,利用上述明顯區(qū)別正常流量和惡意流量的 69個(gè)特征,構(gòu)建了863維特征向量,實(shí)現(xiàn)加密會(huì)話的快速準(zhǔn)確的分類。在收集的校園網(wǎng)數(shù)據(jù)集、企業(yè)數(shù)據(jù)集及學(xué)術(shù)數(shù)據(jù)集上進(jìn)行十折交叉驗(yàn)證獲得99.9%以上的分類準(zhǔn)確度效果。
(3) 分析了RMETD-MF方法在不同時(shí)間流量數(shù)據(jù)的檢測(cè)效果以及不同數(shù)據(jù)集下分類的效果,驗(yàn)證了方法的穩(wěn)定性和分類的準(zhǔn)確度。
論文的剩余部分組織如下,第 2節(jié)分析了惡意加密流量和正常加密流量的特征比較; 第 3節(jié)闡述了RMETD-MF方法的基本思想和詳細(xì)設(shè)計(jì); 第4節(jié)分析了方法在數(shù)據(jù)集上的性能測(cè)試和評(píng)估,給出了我們所使用的數(shù)據(jù)集以及在這些數(shù)據(jù)集上進(jìn)行的實(shí)驗(yàn); 第5節(jié)給出了總結(jié)和下一步工作。
通過(guò)對(duì)惡意加密流量和正常加密流量的深入分析,可觀察獲得用于區(qū)分惡意流量與正常流量的顯著特征。并選擇其中比較穩(wěn)定的、不易受時(shí)間和場(chǎng)景影響的特征作為后續(xù) RMETD-MF方法中使用的分類特征。
定義1: 一對(duì)通信結(jié)點(diǎn)交互產(chǎn)生的單向數(shù)據(jù)包集合稱為流(Flow),第i對(duì)通信節(jié)點(diǎn)之間的流Flowi定義為集合{SrcIP,DstIP,SrcPort,DstPort,TP},其中,SrcIP為該流中的源IP地址、DstIP是目的IP地址、SrcPort為源端口號(hào)、DstPort為目的端口號(hào)、TP表示通信節(jié)點(diǎn)間的傳輸層協(xié)議。
定義2: 一對(duì)通信結(jié)點(diǎn)交互產(chǎn)生的雙向網(wǎng)絡(luò)包集合定義為會(huì)話(Session),會(huì)話是源和目的可互換的雙向流。一個(gè)會(huì)話為客戶端與服務(wù)器的從建立連接到完成數(shù)據(jù)傳輸?shù)耐暾^(guò)程。網(wǎng)絡(luò)通信環(huán)境中,多個(gè)用戶通過(guò)建立多個(gè)連接發(fā)送和接收數(shù)據(jù)包,因此會(huì)話是流量分析和檢測(cè)的最小單位。
定義 3: 包長(zhǎng)/時(shí)間序列 S={P1,P2,…,Pn}為一個(gè)會(huì)話中數(shù)據(jù)包大小或數(shù)據(jù)包之間的時(shí)間間隔組成的序列。序列中的每個(gè)值Pi{i∈[1,n]}代表第i個(gè)數(shù)據(jù)包的大小或者第i個(gè)數(shù)據(jù)包與其之前的第(i-1)個(gè)數(shù)據(jù)包之間的時(shí)間間隔,排列順序和會(huì)話中數(shù)據(jù)包的傳輸順序一致。
TLS協(xié)議是加密流量傳輸中常用的協(xié)議,它主要分為握手階段和加密通信階段,TLS握手過(guò)程如圖1所示,完整的TLS握手過(guò)程如圖1(a)所示,會(huì)話復(fù)用時(shí)握手過(guò)程如圖1(b)所示。
如圖 1(a),一個(gè)完整的握手過(guò)程首先由客戶端向服務(wù)器端發(fā)送Client Hello消息,服務(wù)器接收到該消息后,將返回Server Hello消息,同時(shí)傳遞服務(wù)器的證書、服務(wù)器的密鑰交換信息,并攜帶客戶端的證書請(qǐng)求; 在客戶端接收到服務(wù)器端的Server Hello消息后,保存服務(wù)器端密鑰交換信息,并將自己的證書及驗(yàn)證信息、密鑰交換信息和Change Cipher Spec消息發(fā)送給服務(wù)器端; 服務(wù)器端接收到信息后,發(fā)送Change Cipher Spec消息給客戶端,由此建立了客戶端和服務(wù)器端的加密通信鏈路。
而在會(huì)話復(fù)用階段(圖 1(b)),客戶端和服務(wù)器端之間握手同樣也是從 Client Hello開始,以 Change Cipher Spec結(jié)束為止。
圖1 TLS握手過(guò)程Figure 1 The process of TLS handshake
握手階段消息為明文信息,加密通信階段為加密后的密文信息。在不對(duì)流量解密的情況下,TLS加密會(huì)話中可觀察到的為握手階段傳輸?shù)陌膬?nèi)容,以及無(wú)論數(shù)據(jù)包是否加密都可得到的數(shù)據(jù)包的長(zhǎng)度,時(shí)間,方向等傳輸層及以下各層的頭部信息。握手階段客戶端會(huì)請(qǐng)求及驗(yàn)證服務(wù)器端證書,可通過(guò)解析證書得到證書信息。加密會(huì)話的URL被加密,但其Client Hello消息中的Server Name Indication擴(kuò)展中指明了要訪問(wèn)的服務(wù)器域名,服務(wù)器證書中也會(huì)顯示服務(wù)器的公用名。由于域名和證書對(duì)分類結(jié)果的影響明顯,因此雖然這兩個(gè)特征也是在 TLS握手階段得到的,在特征向量中,域名和證書作為單獨(dú)特征向量進(jìn)行考慮。
大多數(shù)的惡意軟件并不是從零開始編寫的新型惡意軟件,而是通過(guò)對(duì)已有的惡意軟件進(jìn)行代碼復(fù)用和修改而生成的變體。同一惡意軟件的不同變體在代碼和行為上都較為相似,通常將這樣功能、行為類似的惡意軟件歸為同一個(gè)惡意家族。同一個(gè)惡意家族的軟件通常會(huì)調(diào)用相同或相似的函數(shù),執(zhí)行類似的行為,包括系統(tǒng)行為和網(wǎng)絡(luò)行為。
2.3.1 會(huì)話的統(tǒng)計(jì)特征分析
為了獲得惡意加密會(huì)話與正常加密會(huì)話的特征區(qū)別,我們分別統(tǒng)計(jì)了15個(gè)惡意家族的數(shù)據(jù)包和正常加密流量數(shù)據(jù)包的信息。由于同一惡意家族的加密會(huì)話存在一定的相似性,導(dǎo)致根據(jù)加密會(huì)話提取的統(tǒng)計(jì)特征在同一家族的加密會(huì)話中也十分相似。分析發(fā)現(xiàn):
(1) 包數(shù)量的特征
從數(shù)據(jù)包的數(shù)量上看,惡意加密流量和正常加密流量區(qū)別明顯。絕大多數(shù)惡意家族的有效載荷發(fā)送數(shù)據(jù)包為3~5個(gè); 除了惡意家族Trojan.MSIL.Disfa的約80%的加密會(huì)話接收了10~30個(gè)有有效載荷的數(shù)據(jù)包之外,大部分惡意家族的接收數(shù)據(jù)包數(shù)量為3~5個(gè)。而正常加密流量數(shù)據(jù)包的個(gè)數(shù)變化范圍較大,從3個(gè)到幾千個(gè),大部分正常加密數(shù)據(jù)包個(gè)數(shù)為幾十個(gè)。
(2) 包長(zhǎng)序列的特征
惡意家族的包長(zhǎng)序列具有一定的相似性,如trojan.win32.zbot家族的加密會(huì)大部分都鏈接到網(wǎng)站infoplusplus.com 或 ax100.net網(wǎng)站,其中,鏈接到infoplusplus.com的會(huì)話包長(zhǎng)序列為{403,105,51,176,508},而鏈接到 ax100.net網(wǎng)站的包長(zhǎng)序列為{396,105,51,170,509}。正常加密會(huì)話的包長(zhǎng)序列是變化的,并沒有固定的長(zhǎng)度。
(3) 會(huì)話持續(xù)時(shí)間的特征
觀察惡意家族的加密會(huì)話持續(xù)時(shí)間,可以發(fā)現(xiàn)除幾個(gè)惡意家族的會(huì)話持續(xù)時(shí)間較長(zhǎng)(如HEUR:Trojan.Win32.StartPage的大部分加密會(huì)話持續(xù)時(shí)間超過(guò)1min,最長(zhǎng)為177s),其他多數(shù)惡意家族約在20s內(nèi)完成加密會(huì)話。而正常的加密會(huì)話沒有此特征。
(4) 數(shù)據(jù)包順序與大小特征
惡意家族的發(fā)送/接收數(shù)據(jù)包的順序與大小較為相似。如惡意家族Trojan.Win32.SelfDel的26836個(gè)加密會(huì)話僅有 123種不同的數(shù)據(jù)包序列,惡意家族Trojan-Spy.Win32.Zbot的 16758個(gè)加密會(huì)話中僅有219種不同的數(shù)據(jù)包序列。而且,同一惡意家族的會(huì)話的不同數(shù)據(jù)包序列可能具有相同的數(shù)據(jù)包子序列,會(huì)話的前幾個(gè)數(shù)據(jù)包序列是相同的。
2.3.2 TLS協(xié)議特征分析
建立TLS連接的第一步是客戶端向服務(wù)器端發(fā)送明文Client Hello消息,并將自己所支持的按優(yōu)先級(jí)排列的加密套件信息和擴(kuò)展列表發(fā)送給服務(wù)器端,這一消息的生成方式取決于構(gòu)建客戶端應(yīng)用程序時(shí)所使用的軟件包和方法。服務(wù)端反饋Server Hello消息,包含選擇使用的加密套件、擴(kuò)展列表和隨機(jī)數(shù)等,這一消息基于服務(wù)器端所用庫(kù)和配置以及 Client Hello消息中的詳細(xì)信息創(chuàng)建。由于大部分惡意軟件會(huì)復(fù)用同一個(gè)惡意軟件的代碼,因此許多惡意軟件的Client Hello消息在一些特征上十分相似,如加密套件、擴(kuò)展等。
(1) 加密套件使用的特征
惡意會(huì)話和正常會(huì)話的客戶端加密套件列表如表1所示,其中加密套件列表中的數(shù)字是TLS為每個(gè)加密套件分配的唯一標(biāo)識(shí)號(hào)。
表1 客戶端加密套件列表所占比例Table 1 Proportion of the list of cipher suites provided by the client
由表1可知,惡意流量的129種加密套件列表中,67.85%采用了加密套件列表{47,53,5,10,49171,49172,49161,49162,50,56,19,4}; 19.09%的加密會(huì)話使用的是{49196,49195,49200,49199,159,158,49188,49187,49192,49191,49162,49161,49172,49171,57,51,157,156,61,60,53,47,10,106,64,56,50,19}。95%的惡意加密會(huì)話使用相同的7個(gè)加密套件列表。正常流量中共 266種不同的加密套件列表,分布較為分散,其中使用較多的加密套件列表為: 18.21%的加密會(huì)話使用的加密套件列表為{49195,49199,49162,49161,49171,49172,51,57,47,53,10}; 12.71%的加密會(huì)話使用的加密套件列表為{52393,52392,52244,52243,49195,49199,49196,49200,49161,49171,49162,49172,156,157,47,53,10}; 惡意會(huì)話中使用最高的加密套件列表在正常會(huì)話中所占的比例僅為2.20%和1.14%??梢姁阂饬髁亢驼A髁吭诩用芴准氖褂蒙嫌忻黠@區(qū)別。
客戶端所用的單個(gè)加密套件占比例高的情況統(tǒng)計(jì)如圖2所示,縱坐標(biāo)為占總數(shù)的比例。從圖2中可以看出加密套件4、5、19、50、56在惡意流量中的使用明顯多于正常流量中的使用。而這些加密套件被認(rèn)為是比較弱的加密套件,安全性不足,在正常的軟件中不被推薦使用??蛻舳怂眉用芴准€(gè)數(shù)如圖3所示,服務(wù)器端所選加密套件如圖4所示。由圖可以看出,惡意會(huì)話中客戶端集中使用12個(gè)和28個(gè)加密套件,服務(wù)器端選擇最多的加密套件是49200,47,49122; 而正常會(huì)話中,客戶端多使用17,14,11個(gè)加密套件,服務(wù)器端選擇最多的是49199,49200,47,49122。
圖2 客戶端加密套件比較Figure 2 Comparison of client cipher suites
圖3 客戶端加密套件個(gè)數(shù)比較Figure 3 Comparison of the number of client cipher suites
圖4 服務(wù)器端加密套件比較Figure 4 Comparison of Server cipher suites
(2) 擴(kuò)展加密套件使用的特征
擴(kuò)展加密套件顯示了支持協(xié)議、算法相關(guān)參數(shù)以及其他輔助信息,正常會(huì)話和惡意會(huì)話在客戶端及服務(wù)器端使用的情況如圖5~8所示。
圖5 客戶端擴(kuò)展比較Figure 5 Comparison of client extensions
圖6 客戶端擴(kuò)展數(shù)目比較Figure 6 Comparison of the number of client extensions
圖7 服務(wù)器端擴(kuò)展比較Figure 7 Comparison of server expansions
圖8 服務(wù)器端擴(kuò)展數(shù)目比較Figure 8 Comparison of the number of server extensions
由圖可知,正常加密會(huì)話客戶端常用的擴(kuò)展種類較多,惡意會(huì)話客戶端最多使用的擴(kuò)展標(biāo)識(shí)號(hào)為10,11,0,65281,5。惡意加密會(huì)話客戶端所使用的擴(kuò)展數(shù)目多為 5個(gè),而正常會(huì)話的客戶端擴(kuò)展數(shù)目較為多樣。正常會(huì)話與惡意會(huì)話在服務(wù)器端所用擴(kuò)展最多的均為 65281,數(shù)目最多的均為 1,但是分布情況存在一定的差異。
2.3.3 服務(wù)器證書特征
服務(wù)器證書是TLS協(xié)議中用來(lái)對(duì)服務(wù)器身份進(jìn)行驗(yàn)證的文件。由于會(huì)話復(fù)用的廣泛使用,36%的正常會(huì)話沒有傳輸證書,而 88%的惡意會(huì)話沒有傳輸證書。常見的CA證書是指由受信任的CA機(jī)構(gòu)頒發(fā)的證書,申請(qǐng)時(shí)會(huì)對(duì)域名所有權(quán)和企業(yè)相關(guān)信息進(jìn)行驗(yàn)證,安全級(jí)別較高,受各大瀏覽器的信任,需要付費(fèi)。而自簽名證書不需要付費(fèi),任何人都可以簽發(fā),其issuer與subject相同。
在傳輸了證書的加密會(huì)話中,3.34%的惡意會(huì)話證書版本為1,而正常會(huì)話中基本都是版本3。惡意證書與正常證書一個(gè)區(qū)別較大的特征是證書是否是自簽名證書,大部分惡意軟件為了方便會(huì)選擇使用自簽名證書。約48%的惡意加密會(huì)話為自簽名證書,而正常會(huì)話中約 12%的會(huì)話采用自簽名證書。一般情況下,證書的Common Name會(huì)填寫證書的域名或子域名,但是自簽名證書可以隨意填寫。85%的正常會(huì)話所用證書中的 Common Name為域名,62%為.com 域名,而惡意會(huì)話中只有 53%為域名,30%為.com域名。
圖9(a)~(d)顯示了惡意會(huì)話與正常會(huì)話在證書的使用上的區(qū)別。由圖9可知,正常會(huì)話的證書鏈的長(zhǎng)度常為2,3,而惡意會(huì)話中證書鏈長(zhǎng)度最常為1,這是因?yàn)閻阂鈺?huì)話的證書常為自簽名。惡意會(huì)話所用證書的有效時(shí)間最多的是 2~3年,也存在很多超過(guò)十年的有效時(shí)間的惡意會(huì)話,這是因?yàn)樽院灻C書支持超長(zhǎng)有效期,而正常會(huì)話所用證書的有效時(shí)間多分布在 0~4年間。正常會(huì)話的證書的 Subject Alt Names數(shù)目有接近40%的比例是大于100個(gè)的,惡意會(huì)話最多的為0~9個(gè),以接近40%的比例。惡意會(huì)話中證書擴(kuò)展數(shù)目最多的為3、10、9、0,而正常會(huì)話中最多的為9、10、8、3、2。
圖9 惡意會(huì)話與正常會(huì)話證書對(duì)比Figure 9 Comparison of certificates for malicious sessions and normal sessions
2.3.4 服務(wù)器域名特征
Client Hello中的Server Name Indication擴(kuò)展用于指示客戶端請(qǐng)求的服務(wù)器域名,防止一個(gè) IP連接多個(gè)服務(wù)器而造成錯(cuò)誤。當(dāng)Client Hello中無(wú)域名指示時(shí),則取證書中的Common Name作為服務(wù)器域名。
所分析的202559個(gè)惡意加密會(huì)話中,有約2.6%的會(huì)話既無(wú)Server Name又無(wú)Common Name,而正常加密會(huì)話中有約6.6%的會(huì)話既無(wú)Server Name又無(wú)Common Name; 惡意會(huì)話中域名較為分散,大多數(shù)為比較不常見的域名,而正常會(huì)話中域名多為常見域名。惡意會(huì)話域名在Alexa排名如圖10所示,可以看出,惡意會(huì)話所用域名有 85%以上不在前一百萬(wàn)排名內(nèi),與之相反,正常會(huì)話中85%以上都位于前一百萬(wàn)排名內(nèi)。
這是因?yàn)檎?huì)話多連向一些常見的正常網(wǎng)站,而惡意會(huì)話多連向一些由域名生成算法生成的不常見的網(wǎng)站,則其域名排名較為靠后。
圖10 惡意會(huì)話與正常會(huì)話域名排名對(duì)比Figure 10 Comparison of domain ranking of malicious sessions and normal sessions
通過(guò)分析,RMETD-MF方法的基本思想是通過(guò)監(jiān)控和捕獲網(wǎng)絡(luò)加密流量,提取流量中的區(qū)別比較明顯的會(huì)話統(tǒng)計(jì)特征和TLS協(xié)議相關(guān)特征,構(gòu)建863位特征向量,訓(xùn)練機(jī)器學(xué)習(xí)分類模型,并利用該訓(xùn)練模型對(duì)其他加密流量進(jìn)行檢測(cè),識(shí)別其是否是惡意流量。整體檢測(cè)流程如圖11所示。
如圖 11所示,整個(gè)測(cè)試流程包括流量捕獲、流量預(yù)處理、特征提取以及模型訓(xùn)練等四個(gè)部分。流量捕獲部分主要是采用工具wireshark、tcpdump等抓包工具來(lái)完成采集,為了得到訓(xùn)練階段加密的惡意流量及正常流量,流量捕獲階段將在沙箱中運(yùn)行惡意軟件和正常軟件生成流量數(shù)據(jù); 流量預(yù)處理階段主要完成對(duì)流量的清洗,過(guò)濾未加密流量和不完整的會(huì)話,生成可用于流量檢測(cè)的會(huì)話信息; 特征提取階段主要是根據(jù)需求,提取相關(guān)會(huì)話的統(tǒng)計(jì)特征和系欸特征信息,形成訓(xùn)練的 863位特征向量; 而模型訓(xùn)練階段主要是構(gòu)建惡意加密流量分析的模型。
圖11 整體檢測(cè)流程圖Figure 11 The overall detection process
為了獲得訓(xùn)練用的純凈加密流量和檢測(cè)階段的實(shí)時(shí)流量數(shù)據(jù),構(gòu)建了如圖 12所示的流量捕獲模型。
圖12中,正常流量的獲取通過(guò)在監(jiān)控計(jì)算機(jī)上運(yùn)行wireshark等工具捕獲訪問(wèn)正常加密網(wǎng)站或運(yùn)行正常軟件產(chǎn)生的流量來(lái)獲得,或者通過(guò)監(jiān)控較為干凈的網(wǎng)絡(luò)環(huán)境流量來(lái)獲得,并通過(guò)白名單過(guò)濾獲得白名單中的會(huì)話作為正常流量。
惡意流量的獲取采用沙箱方式,在沙箱中運(yùn)行惡意軟件,保存其運(yùn)行期間產(chǎn)生的流量,然后過(guò)濾掉沙箱間通信流量及系統(tǒng)白流量,將剩余的流量作為惡意流量。
為了提取出可用于加密流量惡意檢測(cè)的會(huì)話,對(duì)加密流量進(jìn)行預(yù)處理:
(1) 過(guò)濾未加密的流量,保留使用SSL/TLS協(xié)議的流量;
(2) 過(guò)濾會(huì)話,從混雜的包中提取會(huì)話,過(guò)濾未完成完整握手過(guò)程和未傳輸加密數(shù)據(jù)的會(huì)話。通過(guò)觀察會(huì)話中是否有Client Hello消息和Change Cipher Spec消息,來(lái)判斷握手是否完成; 通過(guò)觀察會(huì)話中是否有Application Data消息,來(lái)判斷會(huì)話是否傳輸了加密數(shù)據(jù)。
(3) 過(guò)濾重傳包、確認(rèn)包及傳輸丟失的壞包,以避免對(duì)分類造成影響。
提取每個(gè)加密會(huì)話有關(guān)流量的統(tǒng)計(jì)特征、SSL/TLS握手特征、證書特征和域名特征,形成特征向量,作為惡意流量識(shí)別的輸入。
3.3.1 會(huì)話的統(tǒng)計(jì)特征提取
(1) 元數(shù)據(jù)特征
元數(shù)據(jù)特征是指會(huì)話的一般信息,包括客戶端向服務(wù)器端發(fā)送的包數(shù)、服務(wù)器端向客戶端發(fā)送的包數(shù)、客戶端向服務(wù)器端發(fā)送的字節(jié)數(shù)、服務(wù)器端向客戶端發(fā)送的字節(jié)數(shù)、會(huì)話持續(xù)時(shí)間、平均每個(gè)發(fā)送包的字節(jié)數(shù)以及平均每個(gè)接收包的字節(jié)數(shù),形成7維的特征向量。
(2) 包長(zhǎng)與時(shí)間序列特征
會(huì)話中最大傳輸單位為1500字節(jié),將獲取的會(huì)話中數(shù)據(jù)包長(zhǎng)度分段統(tǒng)計(jì),10個(gè)分段的范圍分別是[0,1 5 0),[15 0 ,300),…,[13 5 0,+∞ ) ,構(gòu)建每個(gè)數(shù)據(jù)包有效載荷的長(zhǎng)度及相鄰包之間的轉(zhuǎn)換關(guān)系矩陣,采用 10*10的馬爾可夫狀態(tài)轉(zhuǎn)移概率矩陣,并按行拼接維100維特征向量。
構(gòu)建相鄰數(shù)據(jù)包的時(shí)間間隔序列特征,將時(shí)間間隔分為十個(gè)分段[0,50ms],[50ms,100ms],…,[450ms,+∞],根據(jù)相鄰包之間的時(shí)間間隔所在的區(qū)間及轉(zhuǎn)換關(guān)系構(gòu)建 10*10的馬爾可夫轉(zhuǎn)換矩陣,將其也按行拼接作為100維的特征向量。
(3) 包長(zhǎng)與時(shí)間分布特征
包長(zhǎng)分布: 將包長(zhǎng)分為150個(gè)不同的范圍(0,10),(10,20),…,(1490,+∞),根據(jù)每個(gè)包的長(zhǎng)度計(jì)算每個(gè)包長(zhǎng)區(qū)間分布的包數(shù),作為150維的特征。
時(shí)間分布: 將時(shí)間間隔分為 100個(gè)不同的范圍(0,0.005),(0.005,0.01),…,(0.45,+∞),根據(jù)每個(gè)包與前一個(gè)包的時(shí)間間隔計(jì)算每個(gè)時(shí)間間隔區(qū)間分布的包數(shù),作為100維的特征向量。
(4) 包長(zhǎng)與時(shí)間統(tǒng)計(jì)特征
分別計(jì)算包長(zhǎng)序列和時(shí)間序列的統(tǒng)計(jì)特征: 個(gè)數(shù),最小值,最小元素位置,25%分?jǐn)?shù),中位數(shù),75%分?jǐn)?shù),均值,最大值,最大元素位置,平均絕對(duì)方差,方差,標(biāo)準(zhǔn)差,形成24維的特征向量。
3.3.2 TLS握手特征提取
提取Client Hello中的加密套件列表信息和擴(kuò)展信息,結(jié)合Server Hello中的加密套件信息和擴(kuò)展信息,構(gòu)建握手特征的向量。
(1) 客戶端tls特征
觀察發(fā)現(xiàn)客戶端使用的加密套件共 260種,因此,設(shè)置260維向量,根據(jù)客戶端提供的加密套件列表,在對(duì)應(yīng)的向量位上置1或0,即若加密套件被使用,置為 1,否則為 0; 計(jì)算加密套件列表中加密套件的個(gè)數(shù),也作為一維特征向量輸入。
同時(shí),對(duì)客戶端支持的擴(kuò)展列表構(gòu)建43維向量,對(duì)應(yīng)所使用的 43個(gè)擴(kuò)展加密套件; 計(jì)算擴(kuò)展個(gè)數(shù),作為一維特征向量輸入。
(2) 服務(wù)器端tls特征
將服務(wù)器端所選擇的加密套件作為一維特征向量輸入,同時(shí)服務(wù)器端支持的擴(kuò)展列表構(gòu)建成43維特征向量,而擴(kuò)展個(gè)數(shù)也是1維特征向量。
3.3.3 證書特征提取
提取服務(wù)器證書的特征構(gòu)建特征向量,包括自簽名屬性、證書鏈長(zhǎng)度、有效時(shí)間、平均長(zhǎng)度、別名數(shù)量、擴(kuò)展數(shù)目、證書版本、證書序列號(hào)、證書主體、證書頒發(fā)者、證書的Subject和Issuer特征等共23個(gè),形成23維的特征向量,如表2所示。
表2 證書特征列表Table 2 List of certificate features
3.3.4 域名特征
提取以下兩個(gè)域名特征作為特征輸入:
(1) 域名特征
根據(jù)DGA生成算法可能導(dǎo)致惡意網(wǎng)站的域名與正常網(wǎng)站的字母數(shù)字等上的區(qū)別,提取有關(guān)域名的特征,包括域名中字母符號(hào)數(shù)目占所有字符的比例、數(shù)字符號(hào)數(shù)目占所有字符的比例以及非字母數(shù)字符號(hào)數(shù)目占所有字符的比例。
(2) 排名特征
根據(jù)域名在Alexa前100萬(wàn)列表中的排名,構(gòu)建一個(gè)長(zhǎng)度為6的向量,根據(jù)其是否在top100,top1000,top1w,top10w,top100w,not-in列表中來(lái)進(jìn)行向量設(shè)置,在則將該位置為 1,如果都不在就置為 0,若不在前100w列表就置not-in位為1。
采用機(jī)器學(xué)習(xí)的方法對(duì)輸入的特征向量進(jìn)行二分類,訓(xùn)練出分類模型,并在測(cè)試階段使用訓(xùn)練好的模型進(jìn)行流量檢測(cè),輸出正?;驉阂饧用芰髁康姆诸悪z測(cè)結(jié)果。
4.1.1 正常數(shù)據(jù)集
通過(guò)流量捕獲模型,共采集了三個(gè)來(lái)源的正常數(shù)據(jù)集:
(1) 校園網(wǎng)數(shù)據(jù)集: 分三個(gè)時(shí)間段采集的校園網(wǎng)內(nèi)部數(shù)據(jù),分別是: ①2017年12月20日至2018年04月13日; ②2019年03月18日至2019年03月21日以及; ③2019年11月08日至2019年11月16日的數(shù)據(jù),此數(shù)據(jù)集記為Campus_normal。
(2) 企業(yè)數(shù)據(jù)集: 采集從2019年8月1日到2019年8月21日共三周的企業(yè)網(wǎng)絡(luò)數(shù)據(jù)。并將此數(shù)據(jù)集標(biāo)記為Enterprise_normal。
(3) 學(xué)術(shù)數(shù)據(jù)集: 包括①2017年4月到2017年5月期間,從網(wǎng)站 https://www.stratosphereips.org/datasets-normal下載的正常數(shù)據(jù)集,標(biāo)記為CTU_normal; ②2016年9月14日到2016年9月26日使用 Google瀏覽器和 Chrome瀏覽器訪問(wèn)網(wǎng)站http://betternet.lhs.inria.fr/datasets/https/index.html而下載的數(shù)據(jù)集,標(biāo)記為Browser_normal。
流量預(yù)處理后,得到正常數(shù)據(jù)集,如表3所示。
4.1.2 惡意數(shù)據(jù)集
惡意數(shù)據(jù)集于2019年5月到2019年8月通過(guò)企業(yè)沙箱運(yùn)行已知惡意軟件而獲得。每個(gè)惡意軟件在沙箱中運(yùn)行三分鐘,去除系統(tǒng)流量及沙箱通信流量等噪聲,獲得原始數(shù)據(jù); 對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理后獲得惡意數(shù)據(jù)集,記為Malware,如表4所示。
表3 正常流量數(shù)據(jù)集Table 3 Normal traffic dataset
表4 惡意流量數(shù)據(jù)集Table 4 Malicious traffic dataset
定義準(zhǔn)確率等六個(gè)指標(biāo)來(lái)估計(jì)方法的分類效果:
為了評(píng)估RMETD-MF方法的有效性,首先進(jìn)行十折交叉驗(yàn)證實(shí)驗(yàn)。所用的正常數(shù)據(jù)集為分別從三個(gè)正常數(shù)據(jù)集中選取時(shí)間上靠前的一部分加密會(huì)話混合構(gòu)成,其中從校園網(wǎng)數(shù)據(jù)集中選取 96277個(gè)加密會(huì)話,從企業(yè)數(shù)據(jù)集中選取 252467個(gè)加密會(huì)話,從學(xué)術(shù)數(shù)據(jù)集中選取120724個(gè)加密會(huì)話,共469468個(gè)加密會(huì)話; 所用的惡意數(shù)據(jù)集為5月到7月在沙箱中運(yùn)行的惡意軟件產(chǎn)生的加密流量,共149374個(gè)加密會(huì)話。
分別采用隨機(jī)森林、邏輯回歸、決策樹等四種機(jī)器學(xué)習(xí)算法進(jìn)行十折交叉驗(yàn)證,結(jié)果如表5所示。
表5 不同的機(jī)器學(xué)習(xí)分類算法實(shí)驗(yàn)結(jié)果Table 5 Experimental results of different machine learning classification algorithms
由表5可知,各種機(jī)器學(xué)習(xí)算法都能達(dá)到86.89%以上的識(shí)別準(zhǔn)確率,這說(shuō)明RMETD-MF方法能夠有效識(shí)別惡意加密會(huì)話和正常加密會(huì)話。其中,分類效果最好的機(jī)器學(xué)習(xí)算法為隨機(jī)森林,因此后續(xù)實(shí)驗(yàn)評(píng)估選取了隨機(jī)森林算法來(lái)完成。
為了分析不同特征組合對(duì)檢測(cè)結(jié)果的影響,我們使用上述實(shí)驗(yàn)的數(shù)據(jù)集分別測(cè)試了僅統(tǒng)計(jì)特征、僅握手特征、僅證書特征、僅域名特征和結(jié)合多特征識(shí)別的方法十折交叉驗(yàn)證結(jié)果,如表6所示。
表6 不同的特征組合十折交叉驗(yàn)證結(jié)果Table 6 Ten-fold cross-validation results of different feature combinations
從表6中可以看出,使用全部特征時(shí),惡意會(huì)話檢測(cè)效果最好,準(zhǔn)確率達(dá)到 99.97%,查準(zhǔn)率達(dá)到99.96%,召回率達(dá)到99.91%,F1值達(dá)到99.94%。同時(shí)可以看出統(tǒng)計(jì)特征和握手特征的分類效果最好,而僅證書特征時(shí)的分類效果最差。
文獻(xiàn)[11]也采用了基于多種特征組合的方法,但與 RMETD-MF方法不同的是,文獻(xiàn)[11]未考慮會(huì)話中包大小和間隔時(shí)間的分布特征、域名特征、部分證書特征以及服務(wù)器端TLS的相關(guān)特征,且文獻(xiàn)[11]采用的是L1邏輯回歸算法。分別使用兩種方法對(duì)不同場(chǎng)景下的正常數(shù)據(jù)集和惡意數(shù)據(jù)集進(jìn)行十折交叉驗(yàn)證準(zhǔn)確率結(jié)果如表7所示,可知,兩種方法都能獲得 99.5%以上的準(zhǔn)確率,當(dāng)混合所有正常數(shù)據(jù)集時(shí),RMETD-MF方法仍能保持99.96%的準(zhǔn)確性,這說(shuō)明RMETD-MF方法與文獻(xiàn)[11]方法的識(shí)別效果相當(dāng)。
表7 兩種方法在不同數(shù)據(jù)集上交叉驗(yàn)證結(jié)果Table 7 Cross-validation results of two methods on different datasets
魯棒性是方法實(shí)際應(yīng)用的前提,為了驗(yàn)證方法的魯棒性,設(shè)計(jì)了時(shí)間變化和場(chǎng)景變化對(duì)評(píng)價(jià)指標(biāo)的影響。
(1) 時(shí)間變化測(cè)試
我們根據(jù)時(shí)間順序?qū)⒄?shù)據(jù)集和惡意數(shù)據(jù)集劃為訓(xùn)練集和測(cè)試集。選取2019年5月~2019年7月中旬的惡意流量、2017年12月~2018年2月的校園網(wǎng)流量及2019年8月前兩周的企業(yè)流量數(shù)據(jù)作為訓(xùn)練集; 選取2019年7月下旬~2019年8月的惡意流量、2019年3月和2019年11月的校園網(wǎng)流量、以及企業(yè)2019年8月第三周數(shù)據(jù)作為測(cè)試集。
第一組實(shí)驗(yàn)將校園網(wǎng)訓(xùn)練集與惡意流量訓(xùn)練集組合進(jìn)行訓(xùn)練,驗(yàn)證在惡意流量測(cè)試集和校園網(wǎng)測(cè)試集上的效果,記為時(shí)間測(cè)試 1; 第二組實(shí)驗(yàn)將企業(yè)訓(xùn)練集與惡意流量訓(xùn)練集組合進(jìn)行訓(xùn)練,驗(yàn)證在惡意流量測(cè)試集和企業(yè)測(cè)試集上的結(jié)果,記為時(shí)間測(cè)試 2; 第三組實(shí)驗(yàn)選取多個(gè)正常場(chǎng)景下(校園網(wǎng),企業(yè),瀏覽器)時(shí)間靠前的流量和惡意訓(xùn)練集組合作為訓(xùn)練集,驗(yàn)證相應(yīng)場(chǎng)景下時(shí)間靠后的流量上的結(jié)果,記為時(shí)間測(cè)試3。測(cè)試結(jié)果如表8所示。
從表8的實(shí)驗(yàn)結(jié)果可以看出,隨著時(shí)間的推移,RMETD-MF方法與文獻(xiàn)[11]相比可保持更好的分類效果,分類準(zhǔn)確率均可達(dá)到 98%以上。也可以看出,RMETD-MF方法在包含多種不同場(chǎng)景的數(shù)據(jù)集時(shí),仍可以保持99.9%的檢測(cè)準(zhǔn)確性,且誤報(bào)率和漏報(bào)率比文獻(xiàn)[11]更低。
表8 時(shí)間變化的測(cè)試結(jié)果Table 8 Model test results over time
(2) 場(chǎng)景變化測(cè)試
為了測(cè)試 RMETD-MF方法得到模型的適用范圍,我們測(cè)試了不同場(chǎng)景下的準(zhǔn)確率、誤報(bào)率、F1-score值等表征有效性的指標(biāo)。第一組實(shí)驗(yàn)測(cè)試選取 70%的校園網(wǎng)正常數(shù)據(jù)集與 70%的惡意數(shù)據(jù)集進(jìn)行訓(xùn)練,驗(yàn)證在企業(yè)正常數(shù)據(jù)集與 30%惡意數(shù)據(jù)集上的檢測(cè)效果,記為跨場(chǎng)景測(cè)試 1; 第二組實(shí)驗(yàn)選取70%的企業(yè)正常數(shù)據(jù)集和 70%的惡意數(shù)據(jù)集進(jìn)行訓(xùn) 練,測(cè)試在校園網(wǎng)數(shù)據(jù)集與剩余的 30%的惡意數(shù)據(jù) 集上的檢測(cè)效果,記為跨場(chǎng)景測(cè)試 2; 由于數(shù)據(jù)集不 相交,為了降低誤報(bào)率,從測(cè)試數(shù)據(jù)集中隨機(jī)劃分10%的正常數(shù)據(jù)集作為訓(xùn)練集的補(bǔ)充,分別測(cè)試了 隨著補(bǔ)充的會(huì)話數(shù)增加對(duì)準(zhǔn)確率等指標(biāo)的影響,結(jié) 果如表9、圖13和圖14所示。
表9 跨場(chǎng)景穩(wěn)定性測(cè)試Table 9 Cross-scenario stability test
從表9可以看出,當(dāng)不補(bǔ)充會(huì)話數(shù)時(shí),即使用完全不同的數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試時(shí),檢測(cè)的精度會(huì)下降很多,特別是誤報(bào)率很高,這是由于不同場(chǎng)景下的正常流量特征相差較大而造成的。由圖 13和圖 14可以看出,隨著測(cè)試場(chǎng)景下收集的會(huì)話數(shù)補(bǔ)充入訓(xùn)練集,檢測(cè)精度提高,誤報(bào)率降低,整體性能提升。結(jié)合表9數(shù)據(jù),當(dāng)補(bǔ)充了2000個(gè)會(huì)話時(shí),在跨場(chǎng)景測(cè)試 1中,RMETD-MF方法的召回率即可達(dá)到 98%以上,跨場(chǎng)景測(cè)試 2中,召回率可達(dá)到 99.4%以上,而文獻(xiàn)[11]的方法召回率僅提升到 78.4%和 92.1%; 只有在補(bǔ)充了35000個(gè)會(huì)話后,第一種跨場(chǎng)景測(cè)試的召回率才達(dá)到93.1%,第二種跨場(chǎng)景測(cè)試在補(bǔ)充了20000個(gè)會(huì)話后,召回率才達(dá)到 96.6%以上,這是因?yàn)镽METD-MF方法考慮了會(huì)話中包順序和大小分布特征及統(tǒng)計(jì)特征,并加入了服務(wù)器 TLS協(xié)議特征,因此,在補(bǔ)充少量會(huì)話包后,能提取相關(guān)時(shí)間推移和場(chǎng)景變化的特征,從而快速提高識(shí)別準(zhǔn)確性。這也說(shuō)明RMETD-MF方法在對(duì)場(chǎng)景變化情況下的魯棒性要比文獻(xiàn)[11]好。
圖13 跨場(chǎng)景測(cè)試1改進(jìn)測(cè)試Figure 13 Improved test results for cross-scenario test 1
圖14 跨場(chǎng)景測(cè)試2改進(jìn)測(cè)試Figure 14 Improved test results for cross-scenario test 2
本文提出了一種在不對(duì)加密流量做解密的情況下結(jié)合多種特征識(shí)別的惡意流量檢測(cè)的方法RMETD-MF。首先通過(guò)分析大量的正常和惡意加密流量,從中提取出具有區(qū)分度的統(tǒng)計(jì)特征、TLS握手特征、證書特征和域名特征。然后使用隨機(jī)森林對(duì)其進(jìn)行訓(xùn)練,利用訓(xùn)練的模型來(lái)對(duì)惡意流量進(jìn)行檢測(cè)。十折交叉驗(yàn)證結(jié)果表明,RMETD-MF方法可達(dá)到 97.7%以上的分類準(zhǔn)確性及 99.8%以上的識(shí)別效果。同時(shí),通過(guò)時(shí)間變化的實(shí)驗(yàn)和場(chǎng)景變化的測(cè)試實(shí)驗(yàn),可以看出 RMETD-MF方法與文獻(xiàn)[11]的方法相比,具有更好的魯棒性,并在付出較少的代價(jià)(補(bǔ)充較少的會(huì)話信息)情況下,能應(yīng)對(duì)流量的時(shí)間變化,能識(shí)別不同場(chǎng)景下的惡意流量。
由于目前仍然是使用TLS1.2協(xié)議作為流量加密的傳輸協(xié)議,因此,本研究是基于 TLS1.2的分析與測(cè)試,隨著 TLS1.3標(biāo)準(zhǔn)的推出與推廣,后續(xù)需要加強(qiáng)針對(duì)TLS1.3協(xié)議的加密流量檢測(cè)方法研究。
致 謝感謝國(guó)家自然科學(xué)基金項(xiàng)目(No.61772559、No.61672543)、中南大學(xué)研究生科研創(chuàng)新項(xiàng)目(No.1053320183917)的資助。