国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于網(wǎng)絡(luò)數(shù)據(jù)流的未知密碼協(xié)議逆向分析*

2022-07-17 13:55張文政吉慶兵
信息安全與通信保密 2022年6期
關(guān)鍵詞:二進制數(shù)據(jù)流報文

陳 曼,張文政,吉慶兵

(中國電子科技集團公司第三十研究所,四川 成都 610041)

0 引 言

由于用戶對隱私數(shù)據(jù)保護的需求不斷增加,促使網(wǎng)絡(luò)應(yīng)用大量使用密碼協(xié)議,在網(wǎng)絡(luò)數(shù)據(jù)流中的加密流量的比例不斷提高。為了對加密網(wǎng)絡(luò)應(yīng)用進行網(wǎng)絡(luò)監(jiān)管,必須對加密流量進行識別。

當(dāng)前,大量的網(wǎng)絡(luò)應(yīng)用使用私有的密碼協(xié)議進行加密,如即時通信軟件WhatsApp、Telegram,代理軟件Shadowsocks、V2Ray 等。對這些流量進行網(wǎng)絡(luò)監(jiān)管的一種重要方法是對密碼協(xié)議的格式進行逆向分析,恢復(fù)協(xié)議格式。

目前網(wǎng)絡(luò)協(xié)議格式解析技術(shù)主要包括2 類方法,即基于目標主機程序執(zhí)行軌跡的方法和基于網(wǎng)絡(luò)數(shù)據(jù)流信息的方法。其中,基于目標主機程序執(zhí)行軌跡的方法借助特定二進制分析平臺對應(yīng)用程序執(zhí)行路徑進行跟蹤,從而恢復(fù)網(wǎng)絡(luò)協(xié)議格式。該類方法需要在目標主機上獲取執(zhí)行協(xié)議的應(yīng)用程序,應(yīng)用局限性較大,無法真正滿足網(wǎng)絡(luò)環(huán)境對數(shù)據(jù)報文監(jiān)測需求?;诰W(wǎng)絡(luò)數(shù)據(jù)流信息的方法主要以捕獲的網(wǎng)絡(luò)流量數(shù)據(jù)為分析對象,依據(jù)協(xié)議字段的取值變化頻率和特征推斷得到協(xié)議格式,但目前研究主要是針對明文協(xié)議,對于密碼協(xié)議的逆向分析研究較少。

本文對密碼協(xié)議的執(zhí)行流程進行了分析,將密碼協(xié)議交互過程分為安全連接建立階段和數(shù)據(jù)傳輸階段,重點對安全連接建立階段的協(xié)議格式進行分析,提出了基于網(wǎng)絡(luò)數(shù)據(jù)流的密碼協(xié)議逆向分析方法,通過逆向得到的數(shù)據(jù)格式,可以得到協(xié)議識別方案。

1 研究現(xiàn)狀

針對文本協(xié)議、二進制協(xié)議、密碼協(xié)議,研究人員提出了基于網(wǎng)絡(luò)數(shù)據(jù)流的未知協(xié)議逆向分析的不同分析方法。

針對文本協(xié)議的逆向分析研究較早。2004年,Beddoe[1]通過引入生物信息學(xué)的多序列比對算法,對報文的結(jié)構(gòu)信息進行提取,稱為PI 項目;2007 年,Cui 等人[2]依賴于ASCII 為典型字符編碼的定界符,提出了Discoverer 方案,提取字段域格式;2014 年,鐘曉歡等人[3]引入TF-IDF 文本特征模型,對文本類協(xié)議消息進行分析;2014 年,詹成等人[4]提出一種基于統(tǒng)計分析的協(xié)議格式推測技術(shù),利用N-gram 方法得到候選特征詞集合,使用統(tǒng)計學(xué)中的K-S(Kolmogorov-Smirnov)測試,篩選冗余特征詞。

針對二進制協(xié)議的逆向研究是為了彌補上述分析方法無法對二進制協(xié)議進行分析的問題來分析的。2009 年,Trifilo 等人[5]提出方差分布的方法確定二進制特征;2013 年,羅建楨等人[6]采用基于位置的協(xié)議逆向方法,使用關(guān)聯(lián)挖掘方法,確定字段域邊界的可能位置;2014 年,Zhang 等人[7]提出ProWord 方法,設(shè)計關(guān)鍵字內(nèi)接邊界和外接邊界的信息熵來確定字段域的位置。

針對密碼協(xié)議的研究相對較少。2015 年,朱玉娜等人[8]提出SPFPA 方案,在序列模式挖掘和關(guān)鍵詞提出的基礎(chǔ)上,依照密文長度域啟發(fā)式識別規(guī)則,識別密文域;2019 年,何旭東等人[9]提出基于混合網(wǎng)絡(luò)軌跡的安全協(xié)議格式逆向方法,輸出目標協(xié)議軌跡的格式。

2 典型密碼協(xié)議分析

密碼協(xié)議是指兩個或兩個以上的參與者為完成密碼通信中某項特定任務(wù)而約定的一系列步驟。新應(yīng)用使用的密碼協(xié)議通常是現(xiàn)有密碼協(xié)議的變體。本文對典型密碼協(xié)議的交互行為特點和數(shù)據(jù)特點進行分析,為未知密碼協(xié)議逆向分析提供技術(shù)支撐。

2.1 密碼協(xié)議交互行為分析

圖1和圖2 分別給出了互聯(lián)網(wǎng)上常用密碼協(xié)議安全傳輸層協(xié)議(Transport Layer Security,TLS)和點對點隧道協(xié)議(Point-to-Point Tunneling Protocol,PPTP)的協(xié)議交互過程。不失一般性,密碼協(xié)議交互過程一般分為兩個階段:安全連接建立階段和數(shù)據(jù)傳輸階段。第一階段是建立安全連接,也稱為“密碼協(xié)議協(xié)商階段”,包括握手、認證和密鑰交換,在這個過程中通信雙方協(xié)商支持的加密算法,交換加密參數(shù),互相認證并生成密鑰;第二階段采用第一階段產(chǎn)生的密鑰,按協(xié)商好的加密算法加密傳輸應(yīng)用數(shù)據(jù)。

在安全連接建立階段,密碼協(xié)議交互過程中,一個參與者在接收到對端在該階段需要傳輸?shù)乃袛?shù)據(jù)后,才會對該階段的數(shù)據(jù)進行處理,生成全部響應(yīng)并發(fā)送。

在密碼協(xié)議從安全連接建立階段向數(shù)據(jù)傳輸階段轉(zhuǎn)換時,通常會在安全連接建立階段產(chǎn)生一個固定格式的雙向確認信息,確保安全協(xié)議的所有參與者生成了相同的密鑰。

2.2 密碼協(xié)議數(shù)據(jù)分析

安全連接建立階段,除文本信息外,還包括各種二進制值,如枚舉類型的二進制值、具有特定范圍的二進制值、隨機數(shù)等。枚舉類型的二進制值通常是協(xié)議的版本、協(xié)議的類型、可選參數(shù)集合等。具有特定范圍的二進制值通常表示長度信息。隨機數(shù)通常是消息認證碼、時鮮值、公鑰、簽名等。

數(shù)據(jù)傳輸階段通常不包含任何文本信息,其主要組成是表示協(xié)議類型、長度等的二進制域及密文域。其中,二進制域的長度分為固定長度和非固定長度。非固定長度的字段組成可能為:(1)長度、非固定長度二進制域;(2)長度、固定長度二進制域、非固定長度二進制域;(3)長度、長度、非固定長度二進制域、非固定長度二進制域。

3 未知密碼協(xié)議逆向分析

根據(jù)密碼協(xié)議交互行為特點及數(shù)據(jù)特點,本文設(shè)計了未知密碼協(xié)議逆向分析的步驟,并以TLS 協(xié)議為例驗證了基于網(wǎng)絡(luò)數(shù)據(jù)流的逆向分析技術(shù)的有效性。

3.1 未知密碼協(xié)議逆向分析框架

未知密碼協(xié)議逆向分析框架包括4 個主要部分,如圖3 所示。

3.1.1 數(shù)據(jù)預(yù)處理

協(xié)議逆向的原始輸入為某個特定密碼協(xié)議的連續(xù)網(wǎng)絡(luò)數(shù)據(jù)流。先以會話和報文為粒度對輸入進行分割,再剔除原始數(shù)據(jù)中的冗余和干擾,如報文序列中可能出現(xiàn)的重傳、亂序、分片等。

3.1.2 密碼協(xié)議階段劃分

根據(jù)密碼協(xié)議交互特點,先根據(jù)時間特征和數(shù)據(jù)流方向特征將報文進行合并和排序,再針對合并后的雙向數(shù)據(jù)流的各種統(tǒng)計特征和熵特征,劃分密碼協(xié)議的安全連接建立階段和數(shù)據(jù)傳輸階段。

3.1.3 協(xié)議關(guān)鍵詞提取

協(xié)議關(guān)鍵詞提取階段,首先,通過隨機采樣獲取樣本的子集,對樣本子集進行多序列對齊;其次,利用對齊后的樣本以數(shù)據(jù)挖掘方法獲取報文載荷序列中的頻繁模式集;最后,根據(jù)啟發(fā)式方法計算頻繁模式是協(xié)議關(guān)鍵詞的概率,取概率大的頻繁模式作為協(xié)議關(guān)鍵詞。

3.1.4 協(xié)議格式識別

在獲取協(xié)議關(guān)鍵詞后,根據(jù)序列比對算法對關(guān)鍵詞之間的順序關(guān)系、從屬關(guān)系等進行識別,并對協(xié)議語義分析,對非定長字段進行進一步識別,獲取協(xié)議格式。

3.2 密碼協(xié)議階段劃分

根據(jù)第2 節(jié)的分析,密碼協(xié)議劃分為安全連接建立階段和數(shù)據(jù)傳輸階段。

首先,對報文進行預(yù)處理。對于時間序列上連續(xù)的多個報文,如果這些報文都是同一個方向,即都是從客戶端發(fā)往服務(wù)器,或都是從服務(wù)器發(fā)往客戶端,則將這些報文組合成一個報文。用+表示報文方向為從客戶端發(fā)往服務(wù)器;用-表示報文方向為從服務(wù)器發(fā)往客戶端,用t1,t2,… ,tn表示報文到達的時間,則每個報文可以用二元組(ti, + / ?) 表示。若報文的序列為(ti, + )和(ti+1, + ),則合并報文為(ti, + );若報文的序列為(ti, ?)和(ti+1, ?),則合并報文為(ti, ?);若報文的序列為(ti, + )和(ti+1, ?),則不合并報文,即保留兩個報文;若報文的序列為(ti, ?)和(ti+1, + ),也不合并報文。

其次,對密碼協(xié)議的交互行為進行初步識別。對于組合后的報文,取前10個報文進行分析,按照報文字節(jié)數(shù)(具體數(shù)值)、報文方向(+/-)、報文序號(ti的下標i)對報文進行統(tǒng)計分析,根據(jù)不同階段的統(tǒng)計特點,初步劃分出安全連接建立階段和數(shù)據(jù)傳輸階段。

最后,對密碼協(xié)議的交互行為進行精細化識別。對于初步劃分出的不同階段,分別計算不同階段報文序列的多元組熵,根據(jù)多元組熵的特征在加密和非加密流量數(shù)據(jù)上的明顯差異,進一步確定階段劃分的正確性。多元組熵特征是指在以n元組集合的形式對報文序列進行切割后,滿足不同長度、頻率條件的字符組集合的一系列熵值。

3.3 協(xié)議關(guān)鍵詞提取

對于3.2 節(jié)劃分得到的安全連接建立階段的報文,利用層次化分析的方式進行字段劃分,然后進行協(xié)議關(guān)鍵詞提取。

一是隨機選取相同方向、相同序號的若干個報文,采用多序列比對算法,將報文進行對齊。在多序列比對算法之前隨機選取報文,可以有效地減小對齊所需的時間。對于隨機選取的報文進行對齊,協(xié)議中出現(xiàn)次數(shù)最多的不變字段仍然得以保存。在基于隨機采樣的多序列對齊后,完成了協(xié)議格式的初步提取,得到的不變字段中,包含了協(xié)議報文格式中包含的關(guān)鍵字,如版本號、枚舉類型的關(guān)鍵字等。

二是對于對齊后的報文,將相同不變字段之間的部分作為輸入,通過數(shù)據(jù)挖掘的方法,得到兩個關(guān)鍵字之間的頻繁模式集。頻繁模式集挖掘得到的信息中通常包含了協(xié)議的子協(xié)議中包含的關(guān)鍵字。

三是將不變字段和頻繁模式集組合,統(tǒng)一稱為協(xié)議的格式信息集。利用多模式匹配算法對所有樣本進行匹配,得到協(xié)議的格式信息集中的所有項在樣本中的存在性和位置信息,并根據(jù)格式信息集在所有樣本中出現(xiàn)的頻度,對協(xié)議的格式信息集進行更新,得到關(guān)鍵詞的候選集合。

四是得到關(guān)鍵詞候選集合后,采用啟發(fā)式關(guān)鍵詞提取方法提取協(xié)議的關(guān)鍵詞。關(guān)鍵詞候選集合中的每一項稱為一個預(yù)選關(guān)鍵詞。按預(yù)選關(guān)鍵詞對所有報文進行分類,對于每一個預(yù)選關(guān)鍵詞,先計算類內(nèi)報文的相似性、類間報文的相似性、分類后的類數(shù)、分類后報文結(jié)構(gòu)的相似度;再采用概率因子圖模型,計算預(yù)選關(guān)鍵詞為協(xié)議關(guān)鍵詞的概率,取概率最高的前N項為協(xié)議的關(guān)鍵詞。

3.4 協(xié)議格式識別

根據(jù)3.3 節(jié)中得到的協(xié)議關(guān)鍵詞,以及協(xié)議關(guān)鍵詞在樣本中的位置,確定關(guān)鍵詞之間的順序關(guān)系、從屬關(guān)系及語義關(guān)系。

如果關(guān)鍵詞A 與關(guān)鍵詞B 出現(xiàn)的位置存在先后關(guān)系,則它們之間存在順序關(guān)系;如果關(guān)鍵詞A 后總是出現(xiàn)關(guān)鍵詞B,但是與關(guān)鍵詞A相同位置的關(guān)鍵詞C 與關(guān)鍵詞B 之間不存在順序關(guān)系,則關(guān)系詞A 與關(guān)鍵詞B 之間存在從屬關(guān)系。

字段的語義是指協(xié)議將如何使用該字段,本文主要對長度字段相關(guān)的語義關(guān)系進行了分析。根據(jù)2.2 節(jié)的分析,長度字段或者緊跟著關(guān)鍵詞,或者在關(guān)鍵詞后的固定位置上。長度字段的表示方法分為兩種:一種是采用固定長度的字符來表示長度;另外一種是通過某種固定格式表示長度。

對于采用固定長度字符表示長度的方法,第一步,計算報文樣本最大長度M,然后,分別計算特征詞后固定位置固定長度的字符表示的長度的最大值L,若L大于M,則該固定位置固定長度的字符肯定不是長度字段。第二步,查找未被排除的字段與樣本長度的對應(yīng)關(guān)系,若能對應(yīng)上,說明該固定位置固定長度的字符是長度字段,否則,重復(fù)第一步和第二步,將其中的報文最大長度變換為關(guān)鍵詞到報文結(jié)尾的最大長度、關(guān)鍵詞之間的報文長度等。

對于采用固定格式表示長度的方法,首先,查找兩個關(guān)鍵詞之間是否存在頻繁項,該頻繁項出現(xiàn)的位置即是長度字段開始的位置。其次,嘗試對該字段開始的格式進行解析,查找長度字段與報文長度的對應(yīng)關(guān)系,確定長度字段。

3.5 實驗結(jié)果

本文以TLS 協(xié)議作為驗證協(xié)議,驗證了本文方法的有效性。

3.5.1 網(wǎng)絡(luò)數(shù)據(jù)流生成

驗證所需的原始協(xié)議流量數(shù)據(jù)集由作者所在實驗室局域網(wǎng)環(huán)境中采集得到。實驗室局域網(wǎng)環(huán)境中包括12 臺普通臺式機、4 臺筆記本電腦、1 臺交換機(型號為TP-LINK TL-SH6428)和1 臺流量鏡像服務(wù)器(Intel(R) Xeon(R) CPU X5670、60GB 內(nèi)存、128GB 硬盤)。流量鏡像服務(wù)器在2021 年11 月1 日至11 月5 日之間采集到所有數(shù)據(jù)構(gòu)成了本文實驗結(jié)果所使用的原始協(xié)議流量數(shù)據(jù)集。

在獲取原始協(xié)議流量數(shù)據(jù)集后,將原始協(xié)議流量數(shù)據(jù)集中的流量,通過tcpreplay 命令進行流量重放,通過開源軟件Ntop 對原始協(xié)議流量數(shù)據(jù)集進行識別。Ntop 軟件中,標簽的不同數(shù)值表明不同的協(xié)議類型。由于本文使用TLS協(xié)議驗證方案的有效性,因此,僅保留了對應(yīng)TLS 的標簽的50 000 條流量作為輸入。

3.5.2 未知密碼協(xié)議逆向分析

(1)數(shù)據(jù)預(yù)處理。先從50 000 條TLS 協(xié)議數(shù)據(jù)流中篩選得到包含完整的前20 個數(shù)據(jù)包的流量,然后對其中的重傳、亂序和分片進行了處理,得到交互流程完整、協(xié)議格式準確的協(xié)議數(shù)據(jù)流。

(2)密碼協(xié)議階段劃分。通過合并同方向的報文,并利用統(tǒng)計分析和多元組熵檢測的方法,將從服務(wù)器發(fā)往客戶端的ChangeCipherSpec數(shù)據(jù)包作為分界點,準確地區(qū)分了安全連接建立階段和數(shù)據(jù)傳輸階段。

(3)協(xié)議關(guān)鍵詞提取。成功選取TLS 記錄協(xié)議版本號、記錄協(xié)議長度、握手協(xié)議類型、握手版本號等作為協(xié)議關(guān)鍵詞。

(4)協(xié)議格式識別。成功恢復(fù)了記錄協(xié)議長度、握手協(xié)議長度、會話ID 長度、擴展長度等字段,并進一步獲取了關(guān)鍵詞與長度字段的相互關(guān)系,恢復(fù)了TLS 記錄協(xié)議的基本格式。

4 結(jié) 語

對密碼協(xié)議網(wǎng)絡(luò)流量的監(jiān)管是網(wǎng)絡(luò)監(jiān)管中的重點和難點問題,也是進行網(wǎng)絡(luò)對抗的基礎(chǔ)。在對已知密碼協(xié)議網(wǎng)絡(luò)流量監(jiān)管方面,已有大量的研究成果和相應(yīng)的監(jiān)管產(chǎn)品,但是對于未知密碼協(xié)議網(wǎng)絡(luò)流量的監(jiān)管技術(shù)目前仍處于探索階段。本文在未知密碼協(xié)議網(wǎng)絡(luò)流量監(jiān)管的技術(shù)研究點之一,即基于網(wǎng)絡(luò)數(shù)據(jù)流的密碼協(xié)議逆向分析方面,展開了研究工作。一方面,對典型密碼協(xié)議的結(jié)構(gòu)特點和數(shù)據(jù)特點進行了分析,采用基于網(wǎng)絡(luò)數(shù)據(jù)流的密碼協(xié)議逆向分析方法搭建了圍繞數(shù)據(jù)預(yù)處理階段、密碼協(xié)議階段劃分、協(xié)議關(guān)鍵詞提取和協(xié)議格式識別的未知密碼協(xié)議逆向分析的基本框架;另一方面,對于逆向分析的每個階段進行了算法設(shè)計,以TLS 協(xié)議為對象,驗證了本文提出的基于網(wǎng)絡(luò)數(shù)據(jù)流的密碼協(xié)議逆向分析方法的有效性。

猜你喜歡
二進制數(shù)據(jù)流報文
基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
以太網(wǎng)QoS技術(shù)研究及實踐
優(yōu)先級驅(qū)動的泛化航電網(wǎng)絡(luò)實時性能分析
用二進制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
汽車維修數(shù)據(jù)流基礎(chǔ)(上)
有用的二進制
汽車維修數(shù)據(jù)流基礎(chǔ)(下)
基于XML的數(shù)據(jù)流轉(zhuǎn)換在民航離港系統(tǒng)中應(yīng)用
有趣的進度
淺析反駁類報文要點
星子县| 庆城县| 军事| 栾城县| 达日县| 定陶县| 外汇| 江源县| 重庆市| 武清区| 闽清县| 汤阴县| 甘洛县| 灵台县| 容城县| 宁蒗| 华宁县| 永仁县| 甘洛县| 安乡县| 张家港市| 襄汾县| 军事| 绵阳市| 海晏县| 阳新县| 榆树市| 汉源县| 永康市| 华蓥市| 哈尔滨市| 扎囊县| 唐海县| 洛阳市| 山丹县| 平山县| 长乐市| 登封市| 江山市| 句容市| 永年县|