趙 荻 尹志超 崔蘇蘇 曹中華 盧志剛
1(中國科學(xué)院信息工程研究所 北京 100085)
2(中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 100049)
3(北京華境安技術(shù)有限公司 北京 100085)
出于隱私保護(hù)和安全防護(hù)的需要,加密流量在網(wǎng)絡(luò)流量中的占比不斷攀升,谷歌報告顯示排名前100位的非Google網(wǎng)站有97位默認(rèn)使用超文本傳輸安全協(xié)議(hypertext transfer protocol secure, HTTPS)加密[1].然而,網(wǎng)絡(luò)管理員難以辨認(rèn)加密后的流量內(nèi)容,無法及時發(fā)現(xiàn)惡意流量.因此,如何對加密流量進(jìn)行精準(zhǔn)識別和快速分類已成為網(wǎng)絡(luò)安全領(lǐng)域亟待解決的問題.
現(xiàn)有研究大多提取流量統(tǒng)計特征,或?qū)⒃剂髁恐苯幼鳛闄C(jī)器學(xué)習(xí)模型的輸入進(jìn)行分類[2-3].近來,也有研究者注意到網(wǎng)絡(luò)流量的時空特性,嘗試建立流序列進(jìn)行識別[4].然而,目前的研究依舊存在不足:其一,網(wǎng)絡(luò)流間存在關(guān)聯(lián),但多數(shù)方法在特征提取時都未保留流量的結(jié)構(gòu)特性;其二,大部分研究集中于加密流量的統(tǒng)計特征分析,對加密協(xié)議特性挖掘不足.因此,本文提出一種結(jié)合協(xié)議分析的流量圖表示方法,并進(jìn)一步提出了基于GCN的模型GCN-RF.本文貢獻(xiàn)如下:
1) 提出一種網(wǎng)絡(luò)流量的圖表示方法.本文綜合考慮網(wǎng)絡(luò)流時空特性、統(tǒng)計特性和結(jié)構(gòu)特性,建立流的圖模型.
2) 提出針對SSL/TLS協(xié)議的特征提取方案.本文以協(xié)議身份認(rèn)證工具——證書——為主要分析對象,從機(jī)密性、時效性等多個角度深入研究協(xié)議特性,總結(jié)了有利于加密惡意流量識別的特征.
3) 提出基于圖卷積神經(jīng)網(wǎng)絡(luò)的惡意TLS流量識別模型.結(jié)合圖神經(jīng)網(wǎng)絡(luò)和SSL/TLS協(xié)議特征,提出以GCN為核心的惡意TLS流量識別模型GCN-RF,實現(xiàn)高準(zhǔn)確率的流量分類.
4) 在真實公開數(shù)據(jù)集上的實驗,結(jié)果表明,對比目前的經(jīng)典方法,本文模型在準(zhǔn)確率、查準(zhǔn)率、查全率、F1分?jǐn)?shù)上均提升5%以上.
加密流量識別往往以源IP、源端口、目的IP、目的端口和協(xié)議五元組定義的流為識別單位.目前,加密惡意流量分類方法可以劃分為3類:基于載荷和端口的識別技術(shù)、基于機(jī)器學(xué)習(xí)的技術(shù)和基于深度學(xué)習(xí)的技術(shù).其中第1類已經(jīng)難以應(yīng)對越發(fā)復(fù)雜的網(wǎng)絡(luò),往往作為其他技術(shù)的補充手段存在.因此,本文對基于機(jī)器學(xué)習(xí)的主流方法以及基于深度學(xué)習(xí)的主流方法進(jìn)行了總結(jié).
基于機(jī)器學(xué)習(xí)的方法往往通過先驗知識分析惡意流量的行為模式,人工確定流量的有效特征,提取后輸入到機(jī)器學(xué)習(xí)算法中進(jìn)行分類.對于確定流量惡意與否的二分類問題,Anderson等人[5]統(tǒng)計了TLS流量的部分特征數(shù)據(jù),分析了正常和惡意軟件產(chǎn)生的流量的區(qū)別,并總結(jié)了部分可以提高分類器性能的特征.
而針對惡意流量的多分類問題,研究者更關(guān)注惡意流量的來源和惡意攻擊的類型.文獻(xiàn)[6]提取流量頭部特征,借助聚類分析惡意應(yīng)用間的差異,成功識別出90%以上的惡意軟件家族.
總體而言,基于機(jī)器學(xué)習(xí)的技術(shù)取得了一定成果,但模型性能很大程度上取決于人工設(shè)計的特征,對不同情景適應(yīng)性較差.在面對復(fù)雜多變的現(xiàn)實網(wǎng)絡(luò)環(huán)境時,這些方法難以達(dá)到預(yù)期水準(zhǔn).
隨著深度學(xué)習(xí)的興起,也有研究者將現(xiàn)有神經(jīng)網(wǎng)絡(luò)模型與流量分類結(jié)合,讓模型自主分析流量特征.文獻(xiàn)[7]使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN),將流量的前784B轉(zhuǎn)換為圖像后進(jìn)行識別.文獻(xiàn)[8]則提取流的前4個數(shù)據(jù)包的前40×40B,處理后輸入CNN進(jìn)行訓(xùn)練.
也有研究者提取關(guān)鍵特征表征流量信息,再利用神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步分析.如文獻(xiàn)[9]從原始流量中提取上下文信息,使用Perlin噪聲將信息編碼到圖像中,再輸入CNN進(jìn)行識別.文獻(xiàn)[10]則結(jié)合集成學(xué)習(xí)方法,深入挖掘網(wǎng)絡(luò)行為的同時提升了模型的魯棒性.
以上方法都有其優(yōu)越之處,但大多沒有考慮網(wǎng)絡(luò)流量的關(guān)聯(lián)性,在特征提取過程中忽視了流量本身的結(jié)構(gòu)特征.此外,對于協(xié)議特征的挖掘也不夠深入.
因此,本文以TLS流量為研究對象,綜合分析流量結(jié)構(gòu)、內(nèi)容特性,提取部分關(guān)鍵特征完善流量表征方法,并實現(xiàn)加密流量的圖表示,借助GCN進(jìn)行深入的分析與分類.
本文通過將網(wǎng)絡(luò)流量的圖表示、數(shù)據(jù)處理和GCN神經(jīng)網(wǎng)絡(luò)模型分析等模塊進(jìn)行組合,實現(xiàn)了惡意TLS流量檢測的流程化,建立了具有可行性的檢測模型.如圖1所示:
圖1 基于圖卷積神經(jīng)網(wǎng)絡(luò)的加密惡意流量檢測模型框架
本文從網(wǎng)關(guān)處采集流量并離線保存為pcap格式.隨后,對原始流量進(jìn)行清洗,舍去異常值,填補缺失值,保證數(shù)據(jù)的完整性.由于本文以SSL/TLS協(xié)議為主要研究對象,去除非加密流.處理后流量按照單向流,即具有相同源IP、源端口、目的IP、目的端口和協(xié)議的流進(jìn)行劃分.
本文將流作為節(jié)點,依據(jù)流間關(guān)系建立邊,在盡可能保留流信息的基礎(chǔ)上提出適應(yīng)GCN模型輸入的網(wǎng)絡(luò)流圖表征方案.
本文用G=(V,A)表示無向圖.經(jīng)預(yù)處理和特征提取后,1條流可視為1個特征集合,對應(yīng)圖中的1個節(jié)點.假設(shè)每個節(jié)點有m維特征,節(jié)點可表示為vi={t1,t2,…,tm}.V={v1,v2,…,vn}表示節(jié)點的集合,綜合得到圖的特征矩陣H∈n×m.
對相關(guān)數(shù)據(jù)進(jìn)行分析可以發(fā)現(xiàn),同源的惡意攻擊往往會呈現(xiàn)出相似甚至一致的行為特性.例如,同一手段的攻擊可能會針對固定的幾個端口進(jìn)行.因此,如圖2所示,本文設(shè)計具有相同源IP、目的端口或數(shù)據(jù)包數(shù)的流存在關(guān)聯(lián),在圖中為對應(yīng)流設(shè)置連邊.對于流量圖而言,A∈n×n是表示節(jié)點關(guān)系的矩陣.假設(shè)vi與vj間存在1條連邊,則對應(yīng)矩陣A中的元素aij則為1.
圖2 流量的屬性關(guān)系與圖連邊
本文應(yīng)用特征工程提取原始數(shù)據(jù)特征以表征網(wǎng)絡(luò)流,并將網(wǎng)絡(luò)流轉(zhuǎn)換為圖節(jié)點.基本的特征提取借助開源的網(wǎng)絡(luò)流量分析工具Zeek[11]進(jìn)行.
2.4.1 統(tǒng)計特征
一些統(tǒng)計特征已被實驗驗證在加密流量分類中是有效的.這些特征大多通過各層的明文特征計算而來,不受加密的影響,能較好且穩(wěn)定地反映流量特性.本文提取流統(tǒng)計特征如表1所示:
表1 本文提取的流級統(tǒng)計特征
2.4.2 協(xié)議特征
本文對SSL/TLS流量進(jìn)行了深入分析.SSL/TLS協(xié)議使用X.509數(shù)字證書作為身份認(rèn)證工具,為通信雙方提供加密和安全保證,這意味著證書能在很大程度上反映服務(wù)器、客戶端乃至傳輸本身的狀態(tài).同時,X.509證書存在于TLS協(xié)議的握手階段,出現(xiàn)時間較早,便于收集與分析.
TLS協(xié)議版本分析:TLS協(xié)議不斷更新迭代,TLS1.2和1.3版本是目前的主流,早期版本功能不完整、安全性偏低、使用率較低、可疑度較高.
證書版本分析:早期證書缺少版本號字段,不支持使用擴(kuò)展功能,相比后續(xù)版本,功能受限,安全性不足.目前正常網(wǎng)絡(luò)主體使用的證書大多數(shù)為版本3.由此可知,如果檢測到更早版本的證書,該流量非正常的可能性相對更高.
證書簽名分析:頒發(fā)機(jī)構(gòu)的可信性和逐層認(rèn)證是保證X.509數(shù)字證書可靠性的重要一環(huán),然而網(wǎng)絡(luò)中也存在部分缺少可信機(jī)構(gòu)認(rèn)證、頒發(fā)者和使用者一致的自簽名證書.文獻(xiàn)[12]對SSL Blacklist的數(shù)據(jù)進(jìn)行分析后發(fā)現(xiàn),與活躍惡意軟件相關(guān)的服務(wù)器大多使用了自簽名證書.由此不難看出,自簽名證書相對可信度偏低.
證書有效期分析:在蘋果、谷歌等公司的共同倡議下,2020年9月1日之后發(fā)行的SSL/TLS證書的最長有效期將限定在13個月.顯然,有效期過長的證書對應(yīng)的流量存在異常的可能性較高.
密碼套件分析:Anderson等人[5]通過分析實驗數(shù)據(jù)發(fā)現(xiàn),檢測到的所有惡意TLS會話幾乎都使用了TLS_RSA_WITH_3DES_EDE_CBC_SHA等3個弱密碼套件,這些套件在技術(shù)不斷發(fā)展的今天存在被破解的可能.可以認(rèn)為,惡意服務(wù)器的證書更可能使用過時的密碼套件.
綜上所述,本文在對SSL/TLS流量特性進(jìn)行分析后的協(xié)議特征如表2所示:
表2 本文提取的TLS流量協(xié)議特征
經(jīng)上述處理后,數(shù)據(jù)將輸入2層GCN進(jìn)行分析,最后通過隨機(jī)森林(random forest, RF)分類器進(jìn)行分類.GCN接受處理后的流量圖為輸入,即特征矩陣H和鄰接矩陣A,前者記錄了處理后的所有流和其特征,代表圖中的所有節(jié)點;后者記錄了流間的屬性關(guān)系,代表圖中的連邊.
分類模型由2層GCN進(jìn)行特征提取,使用ReLU作為激活函數(shù).GCN的層特征傳播公式為
(1)
Z=f(X,A)=
(2)
損失函數(shù)為
(3)
本文使用隨機(jī)森林分類器代替常規(guī)的softmax函數(shù)進(jìn)行結(jié)果分類.分類器以GCN提取的特征矩陣作為輸入,輸出為各個節(jié)點(各條流)的預(yù)測結(jié)果.
3.1.1 數(shù)據(jù)集
本文使用的數(shù)據(jù)集由10000個exe類型軟件產(chǎn)生的流量組成,其中黑白樣本比例為1∶1,為奇安信技術(shù)研究院天穹沙箱運行并采集其產(chǎn)生的流量篩選生成,流量內(nèi)容為443端口產(chǎn)生的SSL/TLS數(shù)據(jù)包[14].經(jīng)數(shù)據(jù)預(yù)處理得到流表示的數(shù)據(jù)集后,數(shù)據(jù)類別分布將出現(xiàn)變化.由于樣本分布不平衡會限制模型對少數(shù)類別的識別能力,對黑白樣本數(shù)量進(jìn)行調(diào)整以保持相對一致.
經(jīng)處理后的數(shù)據(jù)集樣本分布如表3所示:
表3 實驗用數(shù)據(jù)集的樣本分布
3.1.2 實驗環(huán)境
實驗使用具有2個單核CPU的Inter Xeon處理器,內(nèi)存為12GB,使用Tesla T4 GPU進(jìn)行相關(guān)計算.操作系統(tǒng)為Ubuntu18.04,CUDA版本為11.2,使用Python3.7語言,基于深度學(xué)習(xí)框架Pytorch建立模型.
3.1.3 評價指標(biāo)
本文研究分類問題的基本目標(biāo)是準(zhǔn)確、完整,即正確識別更全面的加密流量蹤跡,避免誤分類.因此,實驗采用準(zhǔn)確率(Accuracy)、查準(zhǔn)率(Precision)、查全率(Recall)以及F1分?jǐn)?shù)(F1-Score)4項評價指標(biāo),計算公式如下:
3.1.4 超參數(shù)
本文通過網(wǎng)格搜索確定最優(yōu)參數(shù),具體地,將學(xué)習(xí)率設(shè)置為0.001,隨機(jī)失活dropout為0.03,權(quán)重衰減系數(shù)為0.0005.
3.1.5 對比基準(zhǔn)模型
為了驗證本文模型的有效性,在封閉世界數(shù)據(jù)集中進(jìn)行測試并選取以下模型進(jìn)行對比實驗:
1) 邏輯回歸算法.經(jīng)典機(jī)器學(xué)習(xí)分類算法.該算法旨在尋找輸出與輸入向量的直接關(guān)系,通過比較概率值來判斷類別.
2) 決策樹算法.經(jīng)典機(jī)器學(xué)習(xí)分類算法.決策樹的葉節(jié)點對應(yīng)分類,非葉節(jié)點對應(yīng)屬性劃分,在每一步選擇合適屬性歸類樣本,確定最終結(jié)果.
3) 樸素貝葉斯算法.經(jīng)典機(jī)器學(xué)習(xí)分類算法.基于特征條件獨立假設(shè)學(xué)習(xí)輸入輸出的聯(lián)合概率分布,并利用貝葉斯定理求出給定輸入后驗概率最大的輸出.
4) CNN[15].對于每條流,提取原始流量的前784B,轉(zhuǎn)換為28×28的灰度圖像后輸入CNN進(jìn)行分類.
本文在包含真實世界流量的公開數(shù)據(jù)集上對模型性能進(jìn)行測試,以7∶3的比例劃分訓(xùn)練集與測試集.實驗?zāi)康臑閷W(wǎng)絡(luò)流進(jìn)行二分類,識別加密流量中的惡意流量.結(jié)果通過準(zhǔn)確率、查準(zhǔn)率、查全率、F1分?jǐn)?shù)4項指標(biāo)進(jìn)行評估量化,以比較不同方法的分類性能.同時本文使用5折交叉驗證獲得可信結(jié)果.
表4示出惡意加密流量分類實驗的結(jié)果.從中可以看出,基于機(jī)器學(xué)習(xí)的方法準(zhǔn)確率普遍偏低.機(jī)器學(xué)習(xí)方法高度依賴人工選取的特征,分類準(zhǔn)確率受特征選擇影響波動極大,且適應(yīng)能力較弱,在不同數(shù)據(jù)集上可能得到差距極大的結(jié)果.
表4 加密惡意流量檢測評估結(jié)果
基于深度學(xué)習(xí)的方法中,CNN模型性能相比GCN模型稍顯遜色,誤分類情況較多.主要原因是CNN模型未考慮流量結(jié)構(gòu)關(guān)聯(lián),流量轉(zhuǎn)為圖片的過程中部分特征被破壞,導(dǎo)致準(zhǔn)確率下降.
本文模型在處理流量時盡可能保留了其結(jié)構(gòu)特性,使得相似行為產(chǎn)生的流量更具關(guān)聯(lián)性,有助于未知節(jié)點的分類.此外,本文針對SSL/TLS流量進(jìn)行了分析,總結(jié)了有助于分類的協(xié)議特征.結(jié)果顯示,本文提出的GCN-RF方法在所有評估指標(biāo)下都取得了最優(yōu)結(jié)果,比最優(yōu)基線方法提升5%以上.可見,本文提出的方案是切實有效的.
本文進(jìn)行了對比實驗以確認(rèn)協(xié)議特征在加密惡意流量分類中的效果.在GCN-RF框架的基礎(chǔ)上,使用統(tǒng)計特征、統(tǒng)計特征+協(xié)議特征進(jìn)行特征提取分別進(jìn)行實驗.此外設(shè)置均相同.
實驗的結(jié)果如圖3所示.協(xié)議特征的加入對模型分類性能起到一定的提升作用.僅使用統(tǒng)計特征表征節(jié)點時,分類準(zhǔn)確率為94%,而綜合提取統(tǒng)計特征和協(xié)議特征后,準(zhǔn)確率提升約5%.可見,密碼套件等協(xié)議特征在反映流量特性上具備一定的作用,加入這類特征有助于識破惡意攻擊者的偽裝,區(qū)分其與正常流量.總體而言,深入分析加密協(xié)議特性有助于研究者更好地識別流量,本文提出的特征提取方案具備可行性.
圖3 節(jié)點特征分析實驗結(jié)果
本文針對加密流量識別下的惡意流量識別領(lǐng)域展開研究.針對傳統(tǒng)流量特征提取易丟失流量結(jié)構(gòu)信息的問題,本文提出了將網(wǎng)絡(luò)流轉(zhuǎn)換為圖的方法.同時,深入挖掘SSL/TLS協(xié)議內(nèi)容特性,提出有助于分類的協(xié)議特征,并建立圖神經(jīng)網(wǎng)絡(luò)模型對惡意TLS流量進(jìn)行識別,經(jīng)實驗驗證了模型的有效性.
為了進(jìn)一步提升模型的性能,本文未來工作擬聚焦于收集更全面、真實、平衡的加密惡意流量數(shù)據(jù)集,并使用更具效果的深度學(xué)習(xí)算法填補分類環(huán)節(jié).