国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種私有協(xié)議分析與識別方法

      文檔序號:7819177閱讀:366來源:國知局
      一種私有協(xié)議分析與識別方法
      【專利摘要】本發(fā)明涉及協(xié)議通信【技術(shù)領(lǐng)域】,本發(fā)明公開了一種私有協(xié)議分析與識別方法,其具體為:步驟一:先將采用私有協(xié)議進(jìn)行通信的客戶端軟件進(jìn)行脫殼處理;再對原始程序進(jìn)行反匯編;然后對其匯編代碼中的關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試;步驟二:抓取該私有協(xié)議的網(wǎng)絡(luò)流數(shù)據(jù),并按協(xié)議交互的不同階段進(jìn)行報文數(shù)據(jù)包分類,然后分別解析出每類報文數(shù)據(jù)包的字段結(jié)構(gòu);步驟三:對交互過程中的協(xié)議特征進(jìn)行提取和歸納;其中:協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的字段結(jié)構(gòu)特征;步驟四:利用步驟三中所得到的協(xié)議特征,設(shè)置協(xié)議識別的匹配表達(dá)式,對網(wǎng)絡(luò)中獲取到的流量進(jìn)行識別。通過上述方法實現(xiàn)了私有協(xié)議的分析和識別。
      【專利說明】 一種私有協(xié)議分析與識別方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及協(xié)議通信【技術(shù)領(lǐng)域】,尤其涉及一種私有協(xié)議分析與識別方法。

      【背景技術(shù)】
      [0002]協(xié)議規(guī)范是進(jìn)行網(wǎng)絡(luò)通信的必要條件,也是網(wǎng)絡(luò)安全技術(shù)和網(wǎng)絡(luò)監(jiān)管的基礎(chǔ),如模糊測試,漏洞挖掘,入侵檢測,協(xié)議重用,流量審計等關(guān)鍵技術(shù)都依賴于協(xié)議的詳細(xì)描述信息。當(dāng)前互聯(lián)網(wǎng)承載了、流媒體、網(wǎng)絡(luò)游戲、文件共享等越來越多的新的應(yīng)用,它們所使用的網(wǎng)絡(luò)協(xié)議大多是未公開的。人們對這些私有協(xié)議開展了分析和識別研究,分析目標(biāo)是恢復(fù)協(xié)議規(guī)范的報文格式和交互過程,并進(jìn)一步利用所得到的協(xié)議特征進(jìn)行識另I」,判斷出具體的協(xié)議名稱。
      [0003]協(xié)議分析方面,最早的研究是1虹8匕11 86(1(106在2004年啟動的?I項目中通過引入生物信息學(xué)的序列比對算法對目標(biāo)協(xié)議的結(jié)構(gòu)進(jìn)行分析,但該算法對樣本集數(shù)量有很高的要求?;?等人提出的'方法主要用于分析報文結(jié)構(gòu)中用戶參數(shù)、狀態(tài)標(biāo)識和長度等動態(tài)字段,但不對協(xié)議的完整結(jié)構(gòu)進(jìn)行分析。觀察到報文結(jié)構(gòu)解析是一個層次化的過程,逐層解析時通常有一些格式標(biāo)識字段決定了子結(jié)構(gòu)的解析方式,該團(tuán)隊進(jìn)一步提出了以遞歸分類為核心的協(xié)議分析方案0^211161X1等人于2007年首次提出采用動態(tài)污點(diǎn)的協(xié)議分析方法,并設(shè)計了相應(yīng)的原型系統(tǒng)?017810〖,該系統(tǒng)采用離線的方式對報文格式中的分隔符、定位符和關(guān)鍵字進(jìn)行分析和識別。在?017810〖的基礎(chǔ)上,
      基于多次監(jiān)控的分析結(jié)果,將所有格式相同的報文進(jìn)行語義信息融合,從而提出了一種改進(jìn)方案。國內(nèi)的學(xué)者李偉明在?I的基礎(chǔ)上,提出了自動化網(wǎng)絡(luò)協(xié)議模糊測試的方案,采用類型匹配提取和多序列比對算法推斷報文中的文本字段、二進(jìn)制字段和長度字段,但由于沒有考慮字段序號等約束語義,該方案并不能保證所生成的模糊測試數(shù)據(jù)絕對有效。何永君等人對基于指令序列的協(xié)議分析方法進(jìn)行了研究,開發(fā)了在動態(tài)二進(jìn)制分析平臺0711肅01?10上的原型系統(tǒng)冊?詘。
      [0004]協(xié)議識別方面,最早的方法是基于協(xié)議所使用的端口進(jìn)行識別,但由于現(xiàn)在多數(shù)新出現(xiàn)的應(yīng)用已經(jīng)不再采用固定端口,該方法的準(zhǔn)確率已經(jīng)低于50%,識別算法的錯誤率高。2002年至2004年主要研究的是基于協(xié)議載荷內(nèi)容特征的識別方法,通過詳細(xì)分析目標(biāo)應(yīng)用協(xié)議,找出協(xié)議在交互過程中所特有的字段作為特征,再以此特征去匹配網(wǎng)絡(luò)流進(jìn)行識別。該方法雖然準(zhǔn)確率高,但需要消耗大量的人力和系統(tǒng)資源去發(fā)現(xiàn)協(xié)議特征,工作量過于龐大。2007年以后,研究主要集中在將機(jī)器學(xué)習(xí)的方法引入到協(xié)議識別領(lǐng)域,利用對協(xié)議交互流量數(shù)據(jù)的機(jī)器學(xué)習(xí)過程辨別出協(xié)議之間的差異,然后利用這些差異性進(jìn)行協(xié)議識另I」。該方法的準(zhǔn)確率較高,而且可以解決大量標(biāo)注數(shù)據(jù)的問題。值得注意的是,由于協(xié)議識別本質(zhì)上是根據(jù)對協(xié)議規(guī)范的特征進(jìn)行提取而實現(xiàn)的,因此對私有協(xié)議來說,協(xié)議分析是進(jìn)行協(xié)議識別的基礎(chǔ)。
      [0005]當(dāng)前針對私有協(xié)議分析和識別方法主要存在以下問題:
      (1)協(xié)議分析和識別的準(zhǔn)確性不高。由于當(dāng)前的網(wǎng)絡(luò)應(yīng)用協(xié)議一般都比較復(fù)雜,現(xiàn)有的方法只能恢復(fù)出報文格式的少量信息,進(jìn)而影響了協(xié)議識別階段的準(zhǔn)確性。
      [0006](2)難以對加密協(xié)議進(jìn)行分析和識別?,F(xiàn)有方法主要針對私有的非加密協(xié)議進(jìn)行分析,由于加密協(xié)議對協(xié)議載荷甚至字段結(jié)構(gòu)等進(jìn)行了加密處理,現(xiàn)有方法難以適用。
      [0007](3)分析時所依賴的樣本集數(shù)量較大,時空復(fù)雜度高。在對報文格式進(jìn)行提取時,特別是對長報文的情況,字段結(jié)構(gòu)的解析往往需要大量的報文樣本集。而指令序列的分析方法由于指令較多,由此帶來處理過程復(fù)雜,時間和空間需求較大。
      [0008](4)缺乏完整的方法,難以對以后新出現(xiàn)的協(xié)議開展分析和識別。現(xiàn)有的方法大多只關(guān)注分析和識別流程的一個部分,沒有提出整體的識別方法。此外,這些方法一般針對某種具體類型的協(xié)議進(jìn)行分析,缺乏通用性。


      【發(fā)明內(nèi)容】

      [0009]針對現(xiàn)有技術(shù)中的協(xié)議識別方法存在的不能識別私有的加密協(xié)議的技術(shù)問題,本發(fā)明公開了一種私有協(xié)議分析與識別方法。
      [0010]本發(fā)明公開了一種私有協(xié)議分析與識別方法,其具體包括以下的步驟:步驟一:先將采用私有協(xié)議進(jìn)行通信的客戶端軟件進(jìn)行脫殼處理,得到脫殼后的原始程序;再對原始程序進(jìn)行反匯編,得到該原始程序的匯編代碼;然后對其匯編代碼中的關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試,從而得到該私有協(xié)議的報文類型的字段長度和構(gòu)造特征;其中關(guān)鍵函數(shù)包括:1.報文數(shù)據(jù)包的構(gòu)造函數(shù);2.發(fā)送和接收報文數(shù)據(jù)包的函數(shù);3.加密和解密函數(shù);步驟二:抓取該私有協(xié)議的網(wǎng)絡(luò)流數(shù)據(jù),并按協(xié)議交互的不同階段進(jìn)行報文數(shù)據(jù)包分類,然后分別解析出每類報文數(shù)據(jù)包的字段結(jié)構(gòu);步驟三:對交互過程中的協(xié)議特征進(jìn)行提取和歸納;其中:協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的字段結(jié)構(gòu)特征;步驟四:利用步驟三中所得到的協(xié)議特征,設(shè)置協(xié)議識別的匹配表達(dá)式,對網(wǎng)絡(luò)中獲取到的流量進(jìn)行識別。
      [0011]更進(jìn)一步地,上述脫殼的具體過程為:首先確定殼的類型;其次找出程序入口點(diǎn),進(jìn)而將內(nèi)存中的進(jìn)程數(shù)據(jù)抓取出來轉(zhuǎn)存為文件格式,調(diào)整并對齊相對虛擬地址和文件地址;最后修復(fù)轉(zhuǎn)存文件的輸入地址表,形成最終脫殼后的原始程序。
      [0012]更進(jìn)一步地,上述步驟二中的協(xié)議交互的不同階段具體通過以下的方式得到:對報文數(shù)據(jù)包進(jìn)行聚類分析,通過提取報文數(shù)據(jù)包的字段結(jié)構(gòu)特征將報文數(shù)據(jù)包歸類為協(xié)議交互的不同階段,從而明確該協(xié)議的交互過程有幾個階段。
      [0013]更進(jìn)一步地,上述報文數(shù)據(jù)包的字段結(jié)構(gòu)特征具體采用遞歸聚類的解析方法得到。
      [0014]更進(jìn)一步地,上述遞歸聚類的解析方法具體為:首先對報文樣本集進(jìn)行基本塊序列的劃分,然后對同類型的基本塊進(jìn)行多序列比對,從而得到所有可能的子字段劃分和特征標(biāo)識,最后利用遞歸算法的回溯過程確定最有可能正確的字段結(jié)構(gòu)劃分,從而完成報文數(shù)據(jù)包結(jié)構(gòu)解析和特征提取。
      [0015]更進(jìn)一步地,上述方法還包括在完成聚類分析后,進(jìn)行污點(diǎn)數(shù)據(jù)的指令分析。
      [0016]更進(jìn)一步地,上述污點(diǎn)數(shù)據(jù)的指令分析的具體過程為:挑選出協(xié)議的每個交互階段的一條報文數(shù)據(jù)進(jìn)行標(biāo)識,被標(biāo)示的報文稱為污點(diǎn)數(shù)據(jù),然后利用對協(xié)議軟件的動態(tài)調(diào)試的方法對這條數(shù)據(jù)的處理過程進(jìn)行跟蹤,利用協(xié)議實體本身的解析過程得到該報文的數(shù)據(jù)格式;其中對這條數(shù)據(jù)的處理過程所選取的指令包括軟件的報文數(shù)據(jù)包接收函數(shù)和解密函數(shù)的指令。
      [0017]更進(jìn)一步地,上述步驟三具體為:根據(jù)步驟二得到的信息,進(jìn)一步對協(xié)議特征進(jìn)行提取和匯總;協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的格式特征,逐個對解析出的字段記錄其特征,先記錄下固定字段的特征,對可變的字段部分采用機(jī)器學(xué)習(xí)對其特征進(jìn)行樣本集的學(xué)習(xí)和挖掘,提取出與這些可變字段相關(guān)的信息。
      [0018]更進(jìn)一步地,上述步驟四具體為:首先根據(jù)報文數(shù)據(jù)包格式特征對數(shù)據(jù)流量進(jìn)行篩選,忽略不符合該協(xié)議的報文數(shù)據(jù)包;然后在剩下的報文數(shù)據(jù)包中按照協(xié)議交互過程的特征進(jìn)行判斷,若網(wǎng)絡(luò)流報文數(shù)據(jù)包的聚類符合交互過程,則屬于目標(biāo)協(xié)議,否則不屬于目標(biāo)協(xié)議。
      [0019]通過采用以上的技術(shù)方案,本發(fā)明的有益效果為:該方法能通用地分析和識別私有的加密和非加密協(xié)議,彌補(bǔ)了以前的同類方法只能用于識別非加密協(xié)議的缺點(diǎn),通過對加解密函數(shù)的分析,使得能夠解密報文數(shù)據(jù)中的密文字段部分,從而將加密協(xié)議轉(zhuǎn)化為難度相對較低的非加密協(xié)議進(jìn)行分析。
      [0020]可能行壓縮和加密操作關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試,該方法能有效地分析和識別不同加密程度的私有協(xié)議,適用于分析協(xié)議數(shù)據(jù)部分加密或全部加密的情況。該方法實現(xiàn)簡單,準(zhǔn)確性較高,并且具有分析和識別過程僅需要較少的網(wǎng)絡(luò)流數(shù)據(jù)包的優(yōu)點(diǎn),按協(xié)議交互的不同階段進(jìn)行報文數(shù)據(jù)包分類,然后分別解析出每類報文數(shù)據(jù)包的字段結(jié)構(gòu),由于網(wǎng)絡(luò)協(xié)議交互過程的種類有限,因此識別階段只需要較少的報文數(shù)據(jù)包即可完成結(jié)果的識別。該方法提供了一套私有協(xié)議分析和識別的方法,能用于分析將來出現(xiàn)的私有協(xié)議。

      【專利附圖】

      【附圖說明】
      [0021]圖1為本發(fā)明的私有協(xié)議的識別方法的流程圖。
      [0022]圖2為軟件實體逆向分析及結(jié)果的流程圖。
      [0023]圖3為網(wǎng)絡(luò)流數(shù)據(jù)分析流程及結(jié)果的流程圖。
      [0024]圖4為協(xié)議特征提取過程及結(jié)果的流程圖。
      [0025]圖5為協(xié)議識別過程及判斷結(jié)果的流程圖。

      【具體實施方式】
      [0026]下面結(jié)合說明書附圖,詳細(xì)說明本發(fā)明的【具體實施方式】。
      [0027]本發(fā)明公開了一種私有協(xié)議分析與識別方法,其具體包括以下的步驟:
      步驟一:先將采用私有協(xié)議進(jìn)行通信的客戶端軟件進(jìn)行脫殼處理,得到脫殼后的原始程序;再對原始程序進(jìn)行反匯編,得到該原始程序的匯編代碼;然后對其匯編代碼中的關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試,從而得到該私有協(xié)議的報文類型的字段長度和構(gòu)造特征;其中關(guān)鍵函數(shù)包括:1.報文數(shù)據(jù)包的構(gòu)造函數(shù);2.發(fā)送和接收報文數(shù)據(jù)包的函數(shù);3.加密和解密函數(shù)。對于加密協(xié)議的分析,該步驟是得到協(xié)議數(shù)據(jù)字段劃分及其特征的方法,通過該步驟至少可以解析出協(xié)議數(shù)據(jù)包中一部分?jǐn)?shù)據(jù)字段的結(jié)構(gòu),比如長度和格式特征,一方面這可以為后續(xù)網(wǎng)絡(luò)流數(shù)據(jù)分析(步驟二)中的整條協(xié)議數(shù)據(jù)的解析提供必要字段格式劃分參考模板,從而幫助完成整條數(shù)據(jù)的協(xié)議格式規(guī)范標(biāo)注。另一方面,所得到的報文類型和結(jié)構(gòu)特征也可用于和后續(xù)抓取的實際的網(wǎng)絡(luò)流數(shù)據(jù)包進(jìn)行比對,提高協(xié)議格式恢復(fù)的準(zhǔn)確性。這些經(jīng)過比對后相符的協(xié)議特征就可以加入步驟三中所要提取的目標(biāo)特征集,最終用于對以后獲取的協(xié)議數(shù)據(jù)進(jìn)行識別。步驟二:抓取該私有協(xié)議的網(wǎng)絡(luò)流數(shù)據(jù),并按協(xié)議交互的不同階段進(jìn)行報文數(shù)據(jù)包分類,然后分別解析出每類報文數(shù)據(jù)包的字段結(jié)構(gòu);步驟三:對交互過程中的協(xié)議特征進(jìn)行提取和歸納;其中:協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的字段結(jié)構(gòu)特征;步驟四:利用步驟三中所得到的協(xié)議特征,設(shè)置協(xié)議識別的匹配表達(dá)式,對網(wǎng)絡(luò)中獲取到的流量進(jìn)行識別。本發(fā)明能夠識別出私有的加密協(xié)議,彌補(bǔ)了以前的同類方法只能用于識別非加密協(xié)議的缺點(diǎn)。加解密函數(shù)是私有加密協(xié)議分析中最重要的部分,實驗表明,多數(shù)加密協(xié)議的數(shù)據(jù)加解密部分和報文構(gòu)造、發(fā)送和接受部分是相互獨(dú)立的。對這類函數(shù)的分析使得解密報文數(shù)據(jù)中的密文字段部分,從而將加密協(xié)議轉(zhuǎn)化為難度相對較低的非加密協(xié)議進(jìn)行分析。
      [0028]如圖1所示的本發(fā)明的私有協(xié)議的識別方法的流程圖。該方法主要包括如下四個步驟:步驟一、對協(xié)議實體進(jìn)行逆向分析;步驟二、網(wǎng)絡(luò)流數(shù)據(jù)分析、步驟三、協(xié)議特征提取和歸納;步驟四、協(xié)議流量數(shù)據(jù)識別。
      [0029]步驟一:對協(xié)議實體進(jìn)行逆向分析,獲取協(xié)議數(shù)據(jù)處理的關(guān)鍵函數(shù)和交互信息。協(xié)議在運(yùn)行過程中總是存在報文的交互過程,這具體是由協(xié)議實體負(fù)責(zé)完成的。在網(wǎng)絡(luò)環(huán)境下協(xié)議實體主要是指該協(xié)議的客戶端和服務(wù)器軟件,由于服務(wù)器端軟件不太容易獲得,因此我們主要對協(xié)議的客戶端軟件進(jìn)行逆向分析。逆向分析的主要工作內(nèi)容有三個方面(如圖2所示的軟件實體逆向分析及結(jié)果的流程圖):
      (1)對軟件進(jìn)行脫殼處理。
      [0030]對于目前大多數(shù)的網(wǎng)絡(luò)應(yīng)用軟件,軟件開發(fā)者一般都會對這些軟件進(jìn)行加殼處理。加殼的原理就是在原程序上附上一段額外的代碼,采用某種算法對原程序進(jìn)行壓縮和加密,并改變程序的執(zhí)行入口點(diǎn)。加殼后的軟件代碼變化很大,無法直接采用反匯編方式獲取原程序的執(zhí)行代碼進(jìn)行分析,因此必須進(jìn)行脫殼。脫殼就是將加殼后的程序解壓或者解密,使程序從原始入口點(diǎn)開始運(yùn)行。脫殼的步驟首先是利用?210或者或者等查殼工具確定殼的類型。其次,根據(jù)程序?qū)崿F(xiàn)語言的代碼特征找出程序入口點(diǎn),進(jìn)而將內(nèi)存中的進(jìn)程數(shù)據(jù)抓取出來轉(zhuǎn)存為文件格式,調(diào)整并對齊相對虛擬地址和文件地址。最后修復(fù)轉(zhuǎn)存文件的輸入地址表,形成最終脫殼后的原始程序。
      [0031](2)對軟件進(jìn)行反匯編分析
      得到脫殼的軟件后,就可以利用10八?如等反匯編工具對軟件進(jìn)行反匯編,得到程序的匯編代碼,然后進(jìn)行分析。這里需要重點(diǎn)定位三類函數(shù),一是報文數(shù)據(jù)包的構(gòu)造函數(shù),二是發(fā)送和接收報文數(shù)據(jù)包的函數(shù),三是加密和解密函數(shù),分析前兩類函數(shù),其目的是找出與之相關(guān)的函數(shù)調(diào)用關(guān)系以及所使用的操作系統(tǒng)接口函數(shù)等關(guān)鍵信息。第三類加解密函數(shù)是私有加密協(xié)議分析中最重要的部分,實驗表明,多數(shù)加密協(xié)議的數(shù)據(jù)加解密部分和報文構(gòu)造、發(fā)送和接受部分是相互獨(dú)立的。對這類函數(shù)的分析使得解密報文數(shù)據(jù)中的密文字段部分,從而將加密協(xié)議轉(zhuǎn)化為難度相對較低的非加密協(xié)議進(jìn)行分析。
      [0032](3)對關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試。
      [0033]利用10八?1?0工具提供的強(qiáng)大的動態(tài)調(diào)試功能,對這三類函數(shù)進(jìn)行動態(tài)的跟蹤調(diào)試,從而弄清協(xié)議產(chǎn)生的各種類型的報文數(shù)據(jù)包的構(gòu)造過程和字段信息。其中較為重要的是跟蹤協(xié)議對加解密函數(shù)的調(diào)用信息,找出密鑰的產(chǎn)生和使用過程,從而進(jìn)一步得到協(xié)議對加密后將要發(fā)送的報文數(shù)據(jù)包的信息。對這三類函數(shù)的動態(tài)調(diào)試可以得到協(xié)議的不同報文類型的字段長度和構(gòu)造特征,并且可以用于分析私有的加密協(xié)議。
      [0034]步驟二:抓取協(xié)議的網(wǎng)絡(luò)流數(shù)據(jù)進(jìn)行分析,獲得協(xié)議的交互階段以及報文字段結(jié)構(gòu)的劃分信息(如圖3所示的網(wǎng)絡(luò)流數(shù)據(jù)分析流程及結(jié)果的流程圖X該步驟主要對網(wǎng)絡(luò)流依次進(jìn)行兩種類型的分析,第一種是對這些報文數(shù)據(jù)包進(jìn)行聚類分析,目標(biāo)是通過提取這些報文數(shù)據(jù)包的字段結(jié)構(gòu)特征將這些報文數(shù)據(jù)包歸類為協(xié)議交互的不同階段,從而明確該協(xié)議的交互過程有哪幾個階段,這也是協(xié)議的重要特征。比如對一個典型的網(wǎng)絡(luò)即時通訊協(xié)議,交互的階段可分為用戶登錄驗證階段和隨后的聊天數(shù)據(jù)通訊階段。實際中,由于報文數(shù)據(jù)包字段結(jié)構(gòu)特征提取是一個逐層解析的過程,即子字段的解析由上一個級別的字段結(jié)構(gòu)解析決定,因此我們主要采用遞歸聚類的解析方法。遞歸聚類的方法首先對報文樣本集進(jìn)行基本塊序列的劃分,然后對同類型的基本塊進(jìn)行多序列比對方法得到所有可能的子字段劃分和特征標(biāo)識,最后利用遞歸算法的回溯過程確定最有可能正確的字段結(jié)構(gòu)劃分,從而完成報文數(shù)據(jù)包結(jié)構(gòu)解析和特征提取。第一種分析完成后,我們就可以開展第二種分析,即污點(diǎn)數(shù)據(jù)的指令分析。挑選出協(xié)議的每個交互階段的一條報文數(shù)據(jù)進(jìn)行標(biāo)識(稱為污點(diǎn)數(shù)據(jù)),然后利用對協(xié)議軟件的動態(tài)調(diào)試的方法對這條數(shù)據(jù)的處理過程進(jìn)行跟蹤,利用協(xié)議實體本身的解析過程為我們得到報文的數(shù)據(jù)格式提供幫助,這其中我們選取的指令主要是軟件的報文數(shù)據(jù)包接收函數(shù)和解密函數(shù)的指令。對于加密協(xié)議而言,該方法能發(fā)現(xiàn)軟件解密函數(shù)的調(diào)用實施過程并獲取到解密后的報文信息,從而適用于對加密協(xié)議的分析。與傳統(tǒng)的網(wǎng)絡(luò)流分析和指令分析方法相比,我們的方法有兩個優(yōu)點(diǎn):第一,由于在對網(wǎng)絡(luò)流量的報文進(jìn)行遞歸聚類的分析階段僅需要判斷出報文屬于哪一個協(xié)議交互階段,而不同階段的報文一般具有明顯的特征差別,因此很大程度上降低了對網(wǎng)絡(luò)流量報文數(shù)據(jù)包的樣本集需求量。第二,指令序列并不需要該軟件的全部指令,而只是重點(diǎn)關(guān)注接收函數(shù)和解密函數(shù)的指令。此外,對要分析的報文,僅僅是選擇不同交互階段的一個報文數(shù)據(jù)包進(jìn)行分析,這就大大減少了需要調(diào)試和跟蹤的指令數(shù)量,降低了實現(xiàn)的復(fù)雜度。
      [0035]步驟三:對協(xié)議特征的進(jìn)行提取和歸納(如圖4所示的協(xié)議特征提取過程及結(jié)果的流程圖根據(jù)步驟二得到的信息,進(jìn)一步對協(xié)議特征進(jìn)行提取和匯總。協(xié)議特征包括交互過程信息,比如交互輪數(shù),每輪雙方所發(fā)的報文數(shù)據(jù)包個數(shù)等,然后就是報文數(shù)據(jù)包的格式特征,我們逐個對解析出的字段記錄其特征,先記錄下固定字段的特征,對可變的字段部分我們采用機(jī)器學(xué)習(xí)對其特征進(jìn)行樣本集的學(xué)習(xí)和挖掘,從而提取出與這些可變字段相關(guān)的信息,比如可變字段的長度范圍,取值范圍等。由于給予機(jī)器學(xué)習(xí)的樣本集已經(jīng)是明確的某個交互階段的報文數(shù)據(jù)包集合,因此可以采用有監(jiān)督的機(jī)器學(xué)習(xí)方法。該方法利用同類型的網(wǎng)絡(luò)流報文數(shù)據(jù)包作為訓(xùn)練樣本集,并提取網(wǎng)絡(luò)流數(shù)據(jù)的統(tǒng)計特征,得到的結(jié)果準(zhǔn)確性高。在訓(xùn)練過程中,可以利用特征過濾或特征選擇算法求出對協(xié)議識別最有效的特征組合,減少算法學(xué)習(xí)時所需要的數(shù)據(jù)量和執(zhí)行時間,并能提高下一步進(jìn)行識別的正確性。
      [0036]步驟四:進(jìn)行協(xié)議流量數(shù)據(jù)的識別。根據(jù)步驟三中所得到的協(xié)議特征,設(shè)置協(xié)議識別的匹配表達(dá)式,對網(wǎng)絡(luò)中獲取到的流量進(jìn)行識別。整個識別過程如圖5所示的協(xié)議識別過程及判斷結(jié)果的流程圖。具體為首先根據(jù)報文數(shù)據(jù)包格式特征對數(shù)據(jù)流量進(jìn)行篩選,忽略不符合該協(xié)議的報文數(shù)據(jù)包。然后在剩下的報文數(shù)據(jù)包中按照協(xié)議交互過程的特征進(jìn)行判斷,若網(wǎng)絡(luò)流報文數(shù)據(jù)包的聚類符合交互過程,則屬于目標(biāo)協(xié)議,否則不屬于目標(biāo)協(xié)議。由于網(wǎng)絡(luò)協(xié)議交互過程的種類有限,因此識別階段只需要較少的報文數(shù)據(jù)包即可完成結(jié)果的識別。
      [0037]上述的實施例中所給出的系數(shù)和參數(shù),是提供給本領(lǐng)域的技術(shù)人員來實現(xiàn)或使用發(fā)明的,發(fā)明并不限定僅取前述公開的數(shù)值,在不脫離發(fā)明的思想的情況下,本領(lǐng)域的技術(shù)人員可以對上述實施例作出種種修改或調(diào)整,因而發(fā)明的保護(hù)范圍并不被上述實施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。
      【權(quán)利要求】
      1.一種私有協(xié)議分析與識別方法,其具體包括以下的步驟:步驟一:先將采用私有協(xié)議進(jìn)行通信的客戶端軟件進(jìn)行脫殼處理,得到脫殼后的原始程序;再對原始程序進(jìn)行反匯編,得到該原始程序的匯編代碼;然后對其匯編代碼中的關(guān)鍵函數(shù)進(jìn)行動態(tài)調(diào)試,從而得到該私有協(xié)議的報文類型的字段長度和構(gòu)造特征;其中關(guān)鍵函數(shù)包括:1.報文數(shù)據(jù)包的構(gòu)造函數(shù);2.發(fā)送和接收報文數(shù)據(jù)包的函數(shù);3.加密和解密函數(shù);步驟二:抓取該私有協(xié)議的網(wǎng)絡(luò)流數(shù)據(jù),并按協(xié)議交互的不同階段進(jìn)行報文數(shù)據(jù)包分類,然后分別解析出每類報文數(shù)據(jù)包的字段結(jié)構(gòu);步驟三:對交互過程中的協(xié)議特征進(jìn)行提取和歸納;其中:協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的字段結(jié)構(gòu)特征;步驟四:利用步驟三中所得到的協(xié)議特征,設(shè)置協(xié)議識別的匹配表達(dá)式,對網(wǎng)絡(luò)中獲取到的流量進(jìn)行識別。
      2.如權(quán)利要求1所述的私有協(xié)議識別方法,其特征在于所述脫殼的具體過程為:首先確定殼的類型;其次找出程序入口點(diǎn),進(jìn)而將內(nèi)存中的進(jìn)程數(shù)據(jù)抓取出來轉(zhuǎn)存為文件格式,調(diào)整并對齊相對虛擬地址和文件地址;最后修復(fù)轉(zhuǎn)存文件的輸入地址表,形成最終脫殼后的原始程序。
      3.如權(quán)利要求2所述的私有協(xié)議的識別方法,其特征在于所述步驟二中的協(xié)議交互的不同階段具體通過以下的方式得到:對報文數(shù)據(jù)包進(jìn)行聚類分析,通過提取報文數(shù)據(jù)包的字段結(jié)構(gòu)特征將報文數(shù)據(jù)包歸類為協(xié)議交互的不同階段,從而明確該協(xié)議的交互過程有幾個階段。
      4.如權(quán)利要求3所述的私有協(xié)議的識別方法,其特征在于所述報文數(shù)據(jù)包的字段結(jié)構(gòu)特征具體采用遞歸聚類的解析方法得到。
      5.如權(quán)利要求4所述的私有協(xié)議的識別方法,其特征在于所述遞歸聚類的解析方法具體為:首先對報文樣本集進(jìn)行基本塊序列的劃分,然后對同類型的基本塊進(jìn)行多序列比對,從而得到所有可能的子字段劃分和特征標(biāo)識,最后利用遞歸算法的回溯過程確定最有可能正確的字段結(jié)構(gòu)劃分,從而完成報文數(shù)據(jù)包結(jié)構(gòu)解析和特征提取。
      6.如權(quán)利要求5所述的私有協(xié)議的識別方法,其特征在于所述方法還包括在完成聚類分析后,進(jìn)行污點(diǎn)數(shù)據(jù)的指令分析。
      7.如權(quán)利要求6所述的私有協(xié)議的識別方法,其特征在于所述污點(diǎn)數(shù)據(jù)的指令分析的具體過程為:挑選出協(xié)議的每個交互階段的一條報文數(shù)據(jù)進(jìn)行標(biāo)識,被標(biāo)示的報文稱為污點(diǎn)數(shù)據(jù),然后利用對協(xié)議軟件的動態(tài)調(diào)試的方法對這條數(shù)據(jù)的處理過程進(jìn)行跟蹤,利用協(xié)議實體本身的解析過程得到該報文的數(shù)據(jù)格式;其中對這條數(shù)據(jù)的處理過程所選取的指令包括軟件的報文數(shù)據(jù)包接收函數(shù)和解密函數(shù)的指令。
      8.如權(quán)利要求6所述的私有協(xié)議的識別方法,其特征在于所述步驟三具體為:根據(jù)步驟二得到的信息,進(jìn)一步對協(xié)議特征進(jìn)行提取和匯總;協(xié)議特征包括交互過程信息和報文數(shù)據(jù)包的格式特征,逐個對解析出的字段記錄其特征,先記錄下固定字段的特征,對可變的字段部分采用機(jī)器學(xué)習(xí)對其特征進(jìn)行樣本集的學(xué)習(xí)和挖掘,提取出與這些可變字段相關(guān)的信息。
      9.如權(quán)利要求8所述的私有協(xié)議的識別方法,其特征在于所述步驟四具體為:首先根據(jù)報文數(shù)據(jù)包格式特征對數(shù)據(jù)流量進(jìn)行篩選,忽略不符合該協(xié)議的報文數(shù)據(jù)包;然后在剩下的報文數(shù)據(jù)包中按照協(xié)議交互過程的特征進(jìn)行判斷,若網(wǎng)絡(luò)流報文數(shù)據(jù)包的聚類符合交互過程,則屬于目標(biāo)協(xié)議,否則不屬于目標(biāo)協(xié)議。
      【文檔編號】H04L29/06GK104506484SQ201410628565
      【公開日】2015年4月8日 申請日期:2014年11月11日 優(yōu)先權(quán)日:2014年11月11日
      【發(fā)明者】張李軍, 吉慶兵, 于飛, 蘭天, 陳曼, 劉丹, 羅杰 申請人:中國電子科技集團(tuán)公司第三十研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1