劉 淵,張春瑞,孟凡治,李 桐,岳 旸
(中國(guó)工程物理研究院 計(jì)算機(jī)應(yīng)用研究所,四川 綿陽621900)
協(xié)議逆向工程研究主要有兩種方法:一種是基于軟件指令分析的協(xié)議逆向,另一種是基于網(wǎng)絡(luò)數(shù)據(jù)分析的協(xié)議逆向[1]?;谲浖噶罘治龅膮f(xié)議逆向是指以協(xié)議實(shí)現(xiàn)軟件為對(duì)象,通過控制流或數(shù)據(jù)流分析等技術(shù),全程跟蹤軟件在協(xié)議處理過程中的指令執(zhí)行軌跡從而進(jìn)行協(xié)議解析;當(dāng)前研究主要借助于二進(jìn)制程序漏洞挖據(jù)研究中的動(dòng)態(tài)污點(diǎn)分析技術(shù)[2],以程序接收的協(xié)議數(shù)據(jù)作為污點(diǎn)源,動(dòng)態(tài)跟蹤并獲取數(shù)據(jù)在程序指令執(zhí)行過程中的上下文信息及內(nèi)存處理信息,從而獲得協(xié)議狀態(tài)及其傳輸格式?;诰W(wǎng)絡(luò)數(shù)據(jù)分析的協(xié)議逆向是指以實(shí)際網(wǎng)絡(luò)通信數(shù)據(jù)為對(duì)象,采用數(shù)據(jù)挖掘方法,通過對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行模式提取、特征分析、時(shí)序關(guān)聯(lián)等逐步對(duì)其中呈現(xiàn)的字段域的位置、長(zhǎng)度及數(shù)據(jù)的前后轉(zhuǎn)換關(guān)系進(jìn)行定位和分析,從而獲取協(xié)議的格式及狀態(tài)信息。
上述兩種協(xié)議逆向方法有其各自應(yīng)用場(chǎng)景,本文主要介紹當(dāng)前基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向工程的研究進(jìn)展,主要貢獻(xiàn)如下:①從數(shù)據(jù)處理過程定義了協(xié)議逆向分析的3個(gè)階段;②提出了每個(gè)階段的主要任務(wù),闡述了當(dāng)前各階段關(guān)鍵技術(shù)的研究現(xiàn)狀;③總結(jié)了未來基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析研究趨勢(shì)和方向。
基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向工程是以網(wǎng)絡(luò)數(shù)據(jù)作為研究對(duì)象,主要存在以下特點(diǎn):
(1)網(wǎng)絡(luò)數(shù)據(jù)是指經(jīng)物理層信號(hào)處理后的比特?cái)?shù)據(jù),可以是無線或有線網(wǎng)絡(luò),只是無線網(wǎng)絡(luò)數(shù)據(jù)在信號(hào)處理過程中,除解調(diào)解碼外還會(huì)涉及一些不屬于物理或鏈路層的額外數(shù)據(jù)。
(2)通過網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行協(xié)議逆向是一種被動(dòng)方式,只能對(duì)采集到的數(shù)據(jù)本身進(jìn)行分析,不可能像基于軟件指令分析的協(xié)議逆向一樣可以主動(dòng)在協(xié)議實(shí)現(xiàn)軟件中采取一些手段進(jìn)行跟蹤,如代碼插樁、動(dòng)態(tài)污點(diǎn)分析等,否則會(huì)改變?cè)紨?shù)據(jù)。
(3)通過網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行協(xié)議逆向分析的主要方法是基于統(tǒng)計(jì)特征的數(shù)據(jù)挖掘方法,其結(jié)果的準(zhǔn)確率受限于算法設(shè)計(jì)的有效性與完備性,但即使算法精度很高,分析結(jié)果準(zhǔn)確率也難以達(dá)到100%。
本文中網(wǎng)絡(luò)數(shù)據(jù)具有以下特點(diǎn):一是數(shù)據(jù)元素單一性,輸入的比特?cái)?shù)據(jù)為二進(jìn)制形式,其中包含的元素非 “0”即“1”,不可能出現(xiàn)其它元素;二是數(shù)據(jù)存在順序性,每個(gè)比特?cái)?shù)據(jù)之間的順序是固定不可變的。針對(duì)此類數(shù)據(jù)進(jìn)行協(xié)議逆向分析的基本流程如圖1所示。
圖1 基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析基本流程
從圖1可以看出基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析可分為3個(gè)階段,分別是協(xié)議數(shù)據(jù)分類、協(xié)議格式解析以和協(xié)議狀態(tài)推斷。各階段主要任務(wù)如下:
(1)協(xié)議數(shù)據(jù)分類:本階段主要是將混合多個(gè)協(xié)議的二進(jìn)制數(shù)據(jù)進(jìn)行分類與分割,首先是要將多個(gè)協(xié)議的數(shù)據(jù)區(qū)分為單個(gè)協(xié)議數(shù)據(jù),然后將單個(gè)協(xié)議中不同類型的協(xié)議幀分割開來,如控制幀、管理幀、數(shù)據(jù)幀等,便于后續(xù)分析的進(jìn)一步處理。
(2)協(xié)議格式解析:這個(gè)階段是針對(duì)分類后的同一類型協(xié)議幀,將幀頭對(duì)齊后確定協(xié)議的字段域及格式,區(qū)分協(xié)議幀中各個(gè)字段的位置和長(zhǎng)度,形成同一類型幀的格式模板,重復(fù)將不同類型的幀模板識(shí)別出,最終形成整個(gè)協(xié)議各類幀的格式解析結(jié)果。實(shí)際上,本階段的格式解析還需要與上階段的數(shù)據(jù)分類進(jìn)行必要的迭代分析,以提高準(zhǔn)確率。
(3)協(xié)議狀態(tài)推斷:最后階段則是要推斷出協(xié)議的狀態(tài)轉(zhuǎn)換過程,首先利用協(xié)議格式解析的結(jié)果,識(shí)別整個(gè)協(xié)議運(yùn)行過程中存在的狀態(tài),接著分析各個(gè)狀態(tài)之間的轉(zhuǎn)換關(guān)系,并利用有限狀態(tài)機(jī)等方式將協(xié)議狀態(tài)轉(zhuǎn)換過程刻畫出來,從而形成協(xié)議狀態(tài)的推斷結(jié)果。
目前協(xié)議分類從傳統(tǒng)的基于端口、關(guān)聯(lián)規(guī)則、流量統(tǒng)計(jì)等分類方法[3]轉(zhuǎn)移到基于隱馬爾可夫模型、基于正則表達(dá)式等方法上,但這些方法適用的對(duì)象主要都是已知協(xié)議。針對(duì)完全未知協(xié)議的數(shù)據(jù)分類,特別是在無先驗(yàn)知識(shí)情況下針對(duì)二進(jìn)制協(xié)議網(wǎng)絡(luò)數(shù)據(jù)的分類研究相對(duì)較少,當(dāng)前的研究基本都將此問題轉(zhuǎn)化為采用各種數(shù)據(jù)挖掘方法查找頻繁序列[4],根據(jù)頻繁項(xiàng)對(duì)數(shù)據(jù)進(jìn)行分割,然后再對(duì)分割好的數(shù)據(jù)進(jìn)行聚類,最后形成分類,其技術(shù)流程一般如圖2所示。
圖2 無先驗(yàn)知識(shí)情況下未知協(xié)議數(shù)據(jù)分類流程
金凌等[5]提出了基于頻繁比特序列挖掘算法的二進(jìn)制協(xié)議數(shù)據(jù)分析方法,即從大量的網(wǎng)絡(luò)通信比特?cái)?shù)據(jù)中挖掘出頻繁序列,在計(jì)算所有序列模式的出現(xiàn)次數(shù)后,選取哪些比特序列為頻繁序列是該算法的核心,一般設(shè)定頻繁閾值來選取。由于具有頻繁特性的幀同步碼和協(xié)議幀中的固定字段基本上分布在幀頭部,所以頻繁比特序列的分布情況可以反映出協(xié)議幀頭的分布,有利于去除載荷數(shù)據(jù)對(duì)幀分類的干擾。該文獻(xiàn)在處理較短模式的頻繁序列時(shí)效果較好,但沒有給出如何確定協(xié)議幀邊界的方法。類似的一些研究采用多模式匹配算法查找頻繁比特序列,成熟的算法較多,如AC 算法和Wu-Manber算法等,并在一些情況下采用模糊串匹配算法,以減少序列模式的種類,提高模式匹配的準(zhǔn)確度[6]。
將挖掘到的頻繁序列作為協(xié)議幀的數(shù)據(jù)特征,進(jìn)行聚類找出聚類中心,作為后續(xù)分類依據(jù)。任景彪等[7]采用Kmeans算法,經(jīng)過迭代使每個(gè)聚類中的數(shù)據(jù)點(diǎn)到中心的平方和最小,當(dāng)每個(gè)對(duì)象與中心的距離收斂時(shí)完成聚類。但是對(duì)于協(xié)議逆向分析,K-means算法的局限性在于需要首先指定起始聚類中心與聚類個(gè)數(shù),而起始聚類中心的確定現(xiàn)在還沒有效果好的解決方案,通常需要一定的先驗(yàn)知識(shí)作為依據(jù)。
梁波[8]采用聚類算法處理通過特定分類標(biāo)識(shí)形成的網(wǎng)絡(luò)流,之后將具有相似行為或相同特征的網(wǎng)絡(luò)流聚成一簇,通過統(tǒng)計(jì)不同網(wǎng)絡(luò)流的雙向報(bào)文數(shù)量、時(shí)間間隔、報(bào)文長(zhǎng)度、活躍或空閑時(shí)間等特征,判斷是否為同一簇網(wǎng)絡(luò)流,最后采用深度包檢測(cè)技術(shù)和正則表達(dá)式匹配的識(shí)別結(jié)果評(píng)估聚類效果。但該方法標(biāo)識(shí)數(shù)據(jù)流仍然使用傳統(tǒng)的IP地址與端口,且統(tǒng)計(jì)特征對(duì)突發(fā)流量分類的處理相對(duì)困難。
楊化志[9]通過引入?yún)f(xié)議的端口號(hào)、協(xié)議數(shù)據(jù)包起始點(diǎn)、協(xié)議數(shù)據(jù)包長(zhǎng)度等已知特征信息,并以少量已標(biāo)記協(xié)議類型的數(shù)據(jù)和大量未標(biāo)記的數(shù)據(jù)作為訓(xùn)練集,先選取協(xié)議特征并計(jì)算數(shù)據(jù)流的相似度,之后利用AP 聚類算法對(duì)數(shù)據(jù)集進(jìn)行聚類得到簇的集合,最后將簇的集合映射到具體的網(wǎng)絡(luò)協(xié)議。該分類方法準(zhǔn)確率較高,但在訓(xùn)練階段實(shí)際上已引入了已知協(xié)議的數(shù)據(jù)。
杜永前[10]引入機(jī)器學(xué)習(xí)機(jī)制提出了未知協(xié)議的解析框架,該框架包括了特征選擇、弱分類器構(gòu)造、Boosting算法提升以及訓(xùn)練反饋等過程。針對(duì)未知協(xié)議的特性,提出了基于單字節(jié)的特征選擇方法,采用了決策樹算法構(gòu)造弱分類器,并將其應(yīng)用到Boosting算法的提升訓(xùn)練中。此外,在解析過程中,使用了主動(dòng)學(xué)習(xí)框架,為協(xié)議解析提供了反饋機(jī)制,提高未知協(xié)議解析的精度和工作效率。但該成果在針對(duì)較為復(fù)雜的協(xié)議時(shí)特征選擇有效性將有所降低,同時(shí)采用逐步匹配的分類效率較低。
何中陽等[11]提出了一種基于隱馬爾可夫模型進(jìn)行協(xié)議分類的方法,將包長(zhǎng)、包時(shí)間間隔和傳輸方向作為協(xié)議特征矢量,采用 “前向算法”對(duì)被測(cè)數(shù)據(jù)進(jìn)行分類識(shí)別,其準(zhǔn)確率較高且分類識(shí)別速度較快快,也能在一定程度上對(duì)加密協(xié)議進(jìn)行分類識(shí)別,但其識(shí)別的對(duì)象主要是應(yīng)用層協(xié)議,且在其模型建立的第一步是需要根據(jù)端口號(hào)對(duì)數(shù)據(jù)流進(jìn)行初步分類。
王杰等[12]通過使用正則表達(dá)式對(duì)應(yīng)用層協(xié)議進(jìn)行分類識(shí)別,由于正則表達(dá)式存在狀態(tài)數(shù)增加時(shí)其算法時(shí)間復(fù)雜度和空間復(fù)雜度都會(huì)急劇增加的缺點(diǎn),提出了尋找最優(yōu)狀態(tài)數(shù)的算法以降低算法復(fù)雜度,該方法能夠比較高效的對(duì)協(xié)議進(jìn)行快速分類,但準(zhǔn)確率還有待進(jìn)一步提高。
在協(xié)議逆向工程中,數(shù)據(jù)分類應(yīng)根據(jù)網(wǎng)絡(luò)數(shù)據(jù)來源的不同區(qū)分為:多方通信數(shù)據(jù)中點(diǎn)對(duì)點(diǎn)通信數(shù)據(jù)的分類、點(diǎn)對(duì)點(diǎn)通信數(shù)據(jù)中單協(xié)議數(shù)據(jù)的分類、單協(xié)議數(shù)據(jù)中同類型幀的分類。從前面陳述可以看出,當(dāng)前還沒有對(duì)這3種數(shù)據(jù)進(jìn)行綜合分類的研究,大多數(shù)研究的數(shù)據(jù)對(duì)象相對(duì)比較單一,沒有對(duì)網(wǎng)絡(luò)數(shù)據(jù)對(duì)象本身的復(fù)雜性進(jìn)行針對(duì)性的區(qū)分,因此,其中的研究成果難以直接應(yīng)用,尤其是在無先驗(yàn)知識(shí)時(shí)還應(yīng)考慮到3 種類型數(shù)據(jù)混合的網(wǎng)絡(luò)通信實(shí)際情況。
本階段的主要任務(wù)是針對(duì)已分類的協(xié)議幀數(shù)據(jù),將同類幀的各種特征字段的位置、長(zhǎng)度解析出來,形成該類型幀的格式模板。
PI項(xiàng)目由Beddoe提出,巧妙地采用了生物信息領(lǐng)域中計(jì)算DNA 序列相似性的思想,將協(xié)議數(shù)據(jù)當(dāng)作DNA 序列數(shù)據(jù)進(jìn)行處理。首先對(duì)協(xié)議數(shù)據(jù)幀通過局部序列比較算法,獲取協(xié)議幀之間的距離矩陣,之后根據(jù)距離矩陣從葉子節(jié)點(diǎn)開始逐步向上構(gòu)建協(xié)議進(jìn)化樹,最后根據(jù)協(xié)議進(jìn)化樹對(duì)每個(gè)幀進(jìn)行漸進(jìn)序列比對(duì),這個(gè)處理過程的核心就是標(biāo)識(shí)每個(gè)協(xié)議幀在是在一些特征字段上的空位,從而對(duì)齊特征字段。PI開創(chuàng)性地提出了這種面向未知協(xié)議的格式識(shí)別方法,但其精度只能達(dá)到字節(jié)級(jí),對(duì)于一些比特級(jí)字段難以識(shí)別,同時(shí)還存在難以分析復(fù)雜具有嵌套類型的協(xié)議數(shù)據(jù)。
針對(duì)PI的上述問題,Cui等提出了RolePlayer方案:主要識(shí)別協(xié)議幀報(bào)文結(jié)構(gòu)中的多種動(dòng)態(tài)信息,如狀態(tài)字段標(biāo)識(shí)等,在此基礎(chǔ)上,還能夠自動(dòng)識(shí)別出協(xié)議的類別。但RolePlayer不對(duì)協(xié)議幀的整體結(jié)構(gòu)進(jìn)行分析,同時(shí)也面臨著依賴先驗(yàn)知識(shí)、對(duì)結(jié)構(gòu)復(fù)雜的協(xié)議識(shí)別效果不好的問題。之后Cui等又提出了Discoverer方案,利用報(bào)文解析過程中一些關(guān)鍵性標(biāo)志字段決定報(bào)文層次結(jié)構(gòu)的思想,不斷重復(fù)迭代通過聚類識(shí)別部分標(biāo)識(shí)字段、推斷字段語義、根據(jù)字段再進(jìn)行報(bào)文分類的過程,直到報(bào)文數(shù)量收斂到預(yù)定的閾值。Discoverer通過上述方法可以獲得協(xié)議幀中的關(guān)鍵字段,但其在推斷語義時(shí)實(shí)際隱含帶入了一定的先驗(yàn)知識(shí),且該方法的格式識(shí)別準(zhǔn)確率較低[13]。
潘璠等[14]提出了基于分塊聚類的消息分類與格式推斷方法,該方法核心思想與Discoverer類似,首先將通信消息劃分為基本塊,然后以基本塊為單位同樣引入漸進(jìn)多序列比對(duì)算法對(duì)消息序列進(jìn)行分析計(jì)算,基本塊的劃分能夠有效減少多序列比對(duì)規(guī)模,提高比對(duì)效率。經(jīng)過多序列比對(duì)后容易將消息中不同的格式字段分割開,最后根據(jù)回溯策略識(shí)別消息格式并根據(jù)字段的特性推測(cè)消息語義。
Luo等[15]提出一種自動(dòng)化的應(yīng)用層網(wǎng)絡(luò)協(xié)議逆向解析方法,該方法采用改進(jìn)的Apriori算法,首先獲取頻繁字符串,并建立字符串之間的關(guān)聯(lián)規(guī)則,基于字符串出現(xiàn)頻率及其位置分布規(guī)律來提取協(xié)議消息中的關(guān)鍵詞,之后再次利用改進(jìn)的Apriori算法,建立關(guān)鍵詞模式序列,并且依據(jù)該序列來推斷消息格式。該方法在處理文本協(xié)議時(shí)準(zhǔn)確率較高,但在處理二進(jìn)制協(xié)議時(shí)其準(zhǔn)確率受限于統(tǒng)計(jì)的準(zhǔn)確率。
張釗等[16]采用基于多序列比對(duì)的方法,與Discoverer類似,通過判斷字段內(nèi)容與其后跟隨序列長(zhǎng)度之間的約束關(guān)系,來識(shí)別報(bào)文中的長(zhǎng)度字段。其實(shí)質(zhì)上等同于查找報(bào)文中取值相對(duì)固定的字段,但現(xiàn)在很多協(xié)議存在的長(zhǎng)度字段較少,且長(zhǎng)度字段所占的bit位數(shù)較短,使其存在一定的解析困難。
杜有翔等[17]在基于Discoverer方案對(duì)樣本集進(jìn)行劃段、聚類和語義推斷時(shí),將先驗(yàn)知識(shí)加入到報(bào)文分析中,用于指導(dǎo)報(bào)文的語義推斷,以提高報(bào)文分析的準(zhǔn)確率和效率。其引入的先驗(yàn)知識(shí)主要包括長(zhǎng)度字段、格式標(biāo)識(shí)字段、序號(hào)字段等相對(duì)位置和長(zhǎng)度固定的字段。
一般來說,協(xié)議幀格式中有固定字段 (如協(xié)議版本號(hào))、交叉字段 (如IP地址)、漸變字段 (如序列號(hào))等有規(guī)律的字段,這些字段確定之后,協(xié)議幀中其余各個(gè)字段的相對(duì)位置和長(zhǎng)度也就較容易推斷。同時(shí),由于較多協(xié)議是以字節(jié)為單位進(jìn)行字段劃分的,因此大多研究以byte為基本單元進(jìn)行分詞,也降低了研究難度。目前,協(xié)議格式解析研究的主要問題還是在無先驗(yàn)知識(shí)情況下格式推斷的準(zhǔn)確率較低。
對(duì)已分類的協(xié)議幀進(jìn)行格式解析后,將根據(jù)格式字段變化進(jìn)行協(xié)議狀態(tài)識(shí)別,推斷每個(gè)協(xié)議幀所處的狀態(tài),標(biāo)識(shí)出狀態(tài)之間的轉(zhuǎn)換關(guān)系,并通過融合、化簡(jiǎn)后最終形成完整的協(xié)議狀態(tài)轉(zhuǎn)換圖。
Shevertalov等提出PEXT 方案,該方案主要是針對(duì)應(yīng)用層協(xié)議進(jìn)行識(shí)別,首先使用最長(zhǎng)公共子串對(duì)協(xié)議報(bào)文進(jìn)行聚類,并將每個(gè)報(bào)文標(biāo)記相應(yīng)的類別ID,接著將每個(gè)協(xié)議會(huì)話轉(zhuǎn)換成聚類類別ID 序列,之后通過比對(duì)會(huì)話ID 序列與實(shí)際網(wǎng)絡(luò)數(shù)據(jù)中的ID 序列相似性,識(shí)別狀態(tài)并獲得狀態(tài)轉(zhuǎn)換關(guān)系,從而建立協(xié)議轉(zhuǎn)換狀態(tài)機(jī)。
肖明明等也提出了一種應(yīng)用層協(xié)議狀態(tài)識(shí)別框架[18],該框架包括消息格式提取、PTA (前綴樹)合并、狀態(tài)樹標(biāo)記和狀態(tài)樹合并4個(gè)步驟。但文中沒有對(duì)各個(gè)步驟所使用的方法進(jìn)行詳細(xì)描述,并且文中假設(shè)協(xié)議狀態(tài)轉(zhuǎn)換條件集合是已知的,該條件約束限制較強(qiáng)。之后又提出一種基于差錯(cuò)糾正文法推斷的應(yīng)用層協(xié)議狀態(tài)機(jī)推斷方法[19],通過識(shí)別協(xié)議狀態(tài)標(biāo)識(shí)符以及標(biāo)識(shí)符間的順序關(guān)系來構(gòu)造狀態(tài)序列,并根據(jù)ECGI(差錯(cuò)糾正文法推斷)對(duì)狀態(tài)機(jī)進(jìn)行構(gòu)造、修正與約簡(jiǎn)。該方法假設(shè)狀態(tài)標(biāo)識(shí)符集是已知的,只需通過字符串匹配就能準(zhǔn)確識(shí)別報(bào)文中具體的標(biāo)識(shí)符字段。但在對(duì)未知協(xié)議報(bào)文進(jìn)行協(xié)議狀態(tài)重構(gòu)時(shí),通常并沒有已知的狀態(tài)標(biāo)識(shí)符集合。
王一鵬等提出了一個(gè)概率協(xié)議狀態(tài)機(jī) (P-PSM)方法[20],期望在沒有先驗(yàn)知識(shí)的情況下僅利用已有通信報(bào)文數(shù)據(jù)實(shí)現(xiàn)對(duì)協(xié)議狀態(tài)機(jī)的重構(gòu)。首先使用Kolmogorov-Smirnov(K-S)算法對(duì)報(bào)文頭部n-gram 序列進(jìn)行報(bào)文關(guān)鍵字段提取,抽取盡可能長(zhǎng)的報(bào)文關(guān)鍵字段,然后使用聚類方法,對(duì)相似的報(bào)文進(jìn)行聚類并標(biāo)記狀態(tài),最后根據(jù)報(bào)文間的先后順序構(gòu)建概率協(xié)議狀態(tài)機(jī)。該方法構(gòu)建的協(xié)議狀態(tài)描述了狀態(tài)間的轉(zhuǎn)換關(guān)系,但沒有體現(xiàn)狀態(tài)間的轉(zhuǎn)換條件。
王一鵬等后又提出一種基于主動(dòng)學(xué)習(xí)的未知協(xié)議識(shí)別方法[21],以減小人工對(duì)樣本的標(biāo)記工作。該方法使用數(shù)據(jù)分組n-gram 序列化和向量化對(duì)數(shù)據(jù)分組向量化建模,并以此向量作為SVM 學(xué)習(xí)算法的輸入進(jìn)行訓(xùn)練學(xué)習(xí),訓(xùn)練出能夠?qū)f(xié)議進(jìn)行識(shí)別的模型。該方法基于機(jī)器學(xué)習(xí)還是需要根據(jù)對(duì)知識(shí)標(biāo)記的樣本。
黃笑言等[22]提出一種針對(duì)文本類協(xié)議通信報(bào)文的協(xié)議狀態(tài)機(jī)重構(gòu)方法,該方法采用統(tǒng)計(jì)算法提取報(bào)文關(guān)鍵字段,并利用報(bào)文間的強(qiáng)順序關(guān)系和必經(jīng)順序關(guān)系對(duì)報(bào)文進(jìn)行融合標(biāo)注,最后利用報(bào)文間的弱順序關(guān)系構(gòu)建協(xié)議狀態(tài)轉(zhuǎn)換圖。該方法假設(shè)報(bào)文關(guān)鍵字段通常具有在會(huì)話中頻繁出現(xiàn)的特性,可通過頻繁序列挖掘算法來發(fā)現(xiàn)報(bào)文關(guān)鍵字段,但在實(shí)際協(xié)議通信中,有些關(guān)鍵字段并不具有頻繁特性,從而造成關(guān)鍵字段提取不完全。
總體上對(duì)于未知協(xié)議數(shù)據(jù)的逆向分析,特別是對(duì)于從鏈路層到應(yīng)用層的協(xié)議都未知的網(wǎng)絡(luò)通信數(shù)據(jù),進(jìn)行協(xié)議狀態(tài)推斷的研究還不多,現(xiàn)有的研究成果都有較強(qiáng)的限制條件,可用性和準(zhǔn)確性的提高還需進(jìn)一步深入研究。
從上述研究狀況可以看出,當(dāng)前基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向工程研究主要是采用頻繁序列查找、多序列比對(duì)、數(shù)理統(tǒng)計(jì)等方法,獲得的逆向分析結(jié)果與完整的協(xié)議運(yùn)行規(guī)范描述還存在較大差距,未來研究應(yīng)從以下幾個(gè)方面繼續(xù)深入開展:
(1)目前基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析方法基本都是以頻繁序列挖掘?yàn)榛A(chǔ),通過提高查找頻繁序列的準(zhǔn)確性來提高協(xié)議識(shí)別的準(zhǔn)確性,但每種分析方法都有其缺陷,因此,研究新的基于其它數(shù)學(xué)理論的分析方法將是今后協(xié)議逆向分析的一個(gè)創(chuàng)新性研究方向。
(2)從網(wǎng)絡(luò)數(shù)據(jù)中識(shí)別協(xié)議,多數(shù)研究默認(rèn)輸入數(shù)據(jù)已經(jīng)是完整的協(xié)議幀,而在實(shí)際應(yīng)用中只能夠獲得01比特?cái)?shù)據(jù)流,須經(jīng)過協(xié)議數(shù)據(jù)分類與格式解析的迭代處理后才能從比特流中分出一個(gè)一個(gè)的協(xié)議幀,由此,協(xié)議幀的準(zhǔn)確切分方法研究[23]將為后續(xù)研究的有效性奠定基礎(chǔ)。
(3)在零先驗(yàn)知識(shí)情況下進(jìn)行準(zhǔn)確的協(xié)議逆向分析在工程實(shí)現(xiàn)上是非常困難的,目前已有部分研究引入了先驗(yàn)知識(shí),以提高協(xié)議識(shí)別的針對(duì)性和實(shí)用性,但先驗(yàn)知識(shí)如何獲取、先驗(yàn)知識(shí)的已知程度、哪些先驗(yàn)知識(shí)是合理的、先驗(yàn)知識(shí)的引入方法等,也是非常值得研究的一個(gè)重要方向。
(4)當(dāng)前絕大多數(shù)研究都是針對(duì)離線的靜態(tài)數(shù)據(jù)進(jìn)行事后分析,很少涉及在線的實(shí)時(shí)分析,但實(shí)時(shí)分析對(duì)于解決入侵檢測(cè)與防御、病毒監(jiān)測(cè)與防護(hù)等網(wǎng)絡(luò)安全問題非常重要,因此,在線網(wǎng)絡(luò)數(shù)據(jù)的實(shí)時(shí)協(xié)議逆向分析也是未來的一個(gè)重要研究方向,包括非結(jié)構(gòu)化數(shù)據(jù)的高速分析、并行處理算法等。
(5)現(xiàn)在越來越多的網(wǎng)絡(luò)協(xié)議都規(guī)定在傳輸信息時(shí)用戶可選擇使用加密算法,但加密會(huì)打亂原有數(shù)據(jù)呈現(xiàn)的規(guī)律特征,現(xiàn)有的技術(shù)方法都難以適用,目前針對(duì)加密網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析研究較少,且多是針對(duì)應(yīng)用層的協(xié)議識(shí)別[11,24,25],因此,如何突破加密進(jìn)行協(xié)議逆向分析將是未來研究焦點(diǎn)之一。
綜上所述,本文指出了基于網(wǎng)絡(luò)數(shù)據(jù)的協(xié)議逆向分析的主要特點(diǎn)和關(guān)鍵技術(shù),較系統(tǒng)地梳理了主要的研究?jī)?nèi)容及其研究現(xiàn)狀,評(píng)價(jià)了現(xiàn)有技術(shù)方法的優(yōu)缺點(diǎn),可以得出,目前以頻繁序列挖掘算法及相關(guān)統(tǒng)計(jì)方法為基礎(chǔ)的協(xié)議逆向分析研究,因其3個(gè)階段都會(huì)存在分析誤差,而前一階段的輸出又是后一階段的輸入,導(dǎo)致此類方法將最終產(chǎn)生較大的累積誤差,因此,未來非常需要研究頻繁序列挖掘之外的新的基礎(chǔ)分析方法。同時(shí),指出了合理引入先驗(yàn)知識(shí)、在線實(shí)時(shí)分析、加密網(wǎng)絡(luò)數(shù)據(jù)分析等將是未來協(xié)議逆向工程研究的熱點(diǎn)問題和需要突破的關(guān)鍵技術(shù)。
[1]Paolo Milani Comparetti,Gilbert Wondracek,Christopher Kruegel,et al.Prospex:Protocol specification extraction[C]//30th IEEE Symposium on Security and Privacy,2009:110-125.
[2]Gilbert Wondracek,Paolo Milani Comparetti,Christopher Kruegel,et al.Automatic network protocol analysis [C]//Proceedings of the 15th Annual Network and Distributed System Security Symposium,2008:125-130.
[3]LIU Qiuju,LIU Shulun,F(xiàn)ENG Yanru.Method of application-level protocol identification based on classification and feature matching [J].Computer Engineering and Design,2012,33 (7):2792-2796 (in Chinese).[劉秋菊,劉書倫,馮艷茹.基于分類與特征匹配的應(yīng)用層協(xié)議識(shí)別方法 [J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33 (7):2792-2796.]
[4]ZHANG Chunrui,LIU Yuan,LI Fen,et al.Survey on key technology of wireless network confrontation [J].Computer Engineering and Design,2012,33 (8):2906-2910 (in Chinese).[張春瑞,劉淵,李芬,等.無線網(wǎng)絡(luò)對(duì)抗關(guān)鍵技術(shù)研究綜述[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33 (8):2906-2910.]
[5]JIN Ling.Study on bit stream oriented unknown frame head identification [D].Shanghai:Shanghai Jiao Tong University,2011:29-48 (in Chinese).[金凌.面向比特流的未知幀頭識(shí)別技術(shù)研究 [D].上海:上海交通大學(xué),2011:29-48.]
[6]SONG Jiang,ZHANG Chunrui,ZHANG Nan,et al.Network traffic identification based on data finger-print[J].Application Research of Computers,2012,29 (12):4604-4606(in Chinese).[宋疆,張春瑞,張楠,等.基于數(shù)據(jù)報(bào)指紋關(guān)系的未知協(xié)議識(shí)別與發(fā)現(xiàn) [J].計(jì)算機(jī)應(yīng)用研究,2012,29(12):4604-4606.]
[7]REN Jingbiao,YIN Shaohong.An effective method for initial centrepoints of K-means clustering [J].Computer and Modemization,2010 (7):84-86 (in Chinese). [任景彪,尹紹宏.一種有效的K-means聚類初始中心選取方法 [J].計(jì)算機(jī)與現(xiàn)代化,2010 (7):84-86.]
[8]LIANG Bo.Research and implement of network identification system based on clustering algorithm [D].Jinan:Shandong University,2012:12-29 (in Chinese).[梁波.基于聚類算法的網(wǎng)絡(luò)應(yīng)用協(xié)議識(shí)別系統(tǒng)的研究與實(shí)現(xiàn) [D].濟(jì)南:山東大學(xué),2012:12-29.]
[9]YANG Huazhi.Research and implementation of application traffic classification &restoring [D].Suzhou:Suzhou Univer-sity,2011:1-64 (in Chinese).[楊化志.應(yīng)用層協(xié)議識(shí)別和還原方法的研究與實(shí)現(xiàn) [D].蘇州:蘇州大學(xué),2011:1-64.]
[10]DU Yongqian.Unknown protocol parsing based on boosting algorithm [D].Nanjing:Nanjing University of Posts and Telecommunications,2008:1-53 (in Chinese). [杜永前.基于Boosting算法的未知協(xié)議解析 [D].南京:南京郵電大學(xué),2008:1-53.]
[11]HE Zhongyang,YANG Baiwei,LI Ou,et al.Protocol identification based on hidden Markov model[J].Journal of Information Engineering University,2011,12 (5):596-600(in Chinese).[何中陽,楊白薇,李鷗,等.基于隱馬爾可夫模型的協(xié)議識(shí)別技術(shù) [J]信息工程大學(xué)學(xué)報(bào),2011,12(5):596-600.]
[12]WANG Jie,SHI Chenghui.Dynamic application layer protocol identification program based on regular expressions [J].Computer Engineering and Applications,2010,46 (18):103-106 (in Chinese). [王杰,石成輝.基于正則表達(dá)式的動(dòng)態(tài)應(yīng)用層協(xié)議識(shí)別方案 [J]計(jì)算機(jī)工程與應(yīng)用,2010,46(18):103-106.]
[13]Joao Antunes,Nuno Ferreira Neves,Paulo Verissimo.Reverse engineering of protocols from network traces [C]//18th Working Conference on Reverse Engineering,2011:169-178.
[14]PAN Fan,HONG Zheng,DU Youxiang,et al.Efficient protocol reverse method based on network trace analysis[J].International Journal of Digital Content Technology and its Applications,2012,20 (6):201-210.
[15]Luo Jianzhen,Yu Shunzheng.Position-based automatic reverse engineering of network protocols [J].Journal of Network and Computer Applications, 2013, 36 (3 ):1070-1077.
[16]ZHANG Zhao,TANG Wen,WEN Qiaoyan.A length semantic constraints based approach for mining packet formats of unknown protocols[J].Journal of Beijing University of Posts and Telecommunications,2012,35 (6):55-59 (in Chinese).[張釗,唐文,溫巧燕.一種基于長(zhǎng)度語義約束的報(bào)文格式挖掘方法 [J].北京郵電大學(xué)學(xué)報(bào),2012,35 (6):55-59.]
[17]DU Youxiang,WU Lifa,PAN Fan,et al.A semiautomatic protocol reverse method based on message sequence analysis[J].Computer Engineering,2012,38 (19):277-280 (in Chinese).[杜有翔,吳禮發(fā),潘璠,等.一種基于報(bào)文序列分析的半自動(dòng)協(xié)議逆向方法 [J].計(jì)算機(jī)工程,2012,38(19):277-280.]
[18]Mingming X,Shunzheng Y.Recovering models of network protocol using grammatical inference [J].Procedia Engineering,2011,15:3764-3768.
[19]XIAO Mingming,YU Shunzheng.Protocol reverse engineering using grammatical inference [J].Journal of Computer Research and Development,2013,50 (10):2044-2058 (in Chinese).[肖明明,余順爭(zhēng).基于文法推斷的協(xié)議逆向工程[J].計(jì)算機(jī)研究與發(fā)展,2013,50 (10):2044-2058.]
[20]Wang Yipeng,Zhang Zhibin,Yao Danfeng,et al.Inferring protocol state machine from network traces:A probabilistic approach [C]//9th Applied Cryptography and Network Security,2011:1-18.
[21]WANG Yipeng,YUN Xiaochun,ZHANG Yongzheng,et al.Network protocol identification based on active learning and SVM algorithm [J].Journal on Communications,2013,34 (10):135-142 (in Chinese). [王一鵬,云曉春,張永錚,等.基于主動(dòng)學(xué)習(xí)和SVM 方法的網(wǎng)絡(luò)協(xié)議識(shí)別技術(shù)[J].通信學(xué)報(bào),2013,34 (10):135-142.]
[22]HUANG Xiaoyan,CHEN Xingyuan,ZHU Ning,et al.Protocol state machine reverse method based on labeling state[J].Journal of Computer Applications,2013,33 (12):3486-3489 (in Chinese). [黃笑言,陳性元,祝寧,等.基于狀態(tài)標(biāo)注的協(xié)議狀態(tài)機(jī)逆向方法 [J].計(jì)算機(jī)應(yīng)用,2013,33 (12):3486-3489.]
[23]LI Tong,ZHANG Chunrui,LI Fen,et al.The research on delimiting the frame of wireless unkown protocol based on the frequent itemsets [C]//22th the Proceedings of Annual Informaiton Secrecy,2012:247-252 (in Chinese). [李桐,張春瑞,李芬,等.基于頻繁集的無線未知協(xié)議幀切分技術(shù)研究 [C]//第二十二屆全國(guó)信息保密學(xué)術(shù)會(huì)議論文集,2012:247-252.]
[24]Altschaffel R,Clausing R,Kraetzer C,et al.Statistical pattern recognition based content analysis on encrypted network:Traffic for the team viewer application [C]//7th International Conference on IT Security Incident Management and IT Forensics.Nuremberg:IEEE Computer Society,2013:113-121.
[25]Freire MM,Carvalho DA,Pereira M.Detection of encrypted traffic in edonkey network through application signatures[C]//The First International Conference on Advances in P2P Systems.Sliema:IEEE Computer Society,2009:174-179.