亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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

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


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

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

【專利附圖】

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

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