一種文本協(xié)議的逆向解析方法和系統(tǒng)的制作方法
【專利摘要】一種文本協(xié)議的逆向解析方法和系統(tǒng),包括:抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集;對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息;對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng);將每一數(shù)據(jù)流中相同的特征項(xiàng)按行提取出來,將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征。本發(fā)明從同一文本協(xié)議大量數(shù)據(jù)包中分析共性和關(guān)聯(lián)性,得出協(xié)議格式,使得逆向解析更為精確。
【專利說明】一種文本協(xié)議的逆向解析方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種協(xié)議逆向解析,更具體地,涉及一種文本協(xié)議的逆向解析方法和系統(tǒng)。
【背景技術(shù)】
[0002]信息在不同計(jì)算機(jī)系統(tǒng)之間交互的過程中,網(wǎng)絡(luò)通信協(xié)議發(fā)揮了不可替代的作用,得到越來越高的關(guān)注。協(xié)議消息的格式對諸多網(wǎng)絡(luò)安全應(yīng)用必不可少,如漏洞挖掘、入侵檢測系統(tǒng)等。但是許多網(wǎng)絡(luò)應(yīng)用協(xié)議是非開放的,尤其在企業(yè)網(wǎng)絡(luò)中,正式的協(xié)議描述文檔越來越少,使得人們不能直接通過協(xié)議規(guī)范獲取協(xié)議消息的特征。協(xié)議逆向解析不依賴于協(xié)議規(guī)范或描述,通過分析協(xié)議的數(shù)據(jù)包或交互過程等技術(shù)方式,可以逆向提取協(xié)議的格式字段等信息,進(jìn)而進(jìn)行其它應(yīng)用如自動生成測試?yán)取?br>
[0003]當(dāng)前協(xié)議逆向解析有2種方案:基于協(xié)議報文序列分析和基于程序執(zhí)行軌跡分析。
[0004]基于協(xié)議報文序列分析的核心技術(shù)是序列比對,對于同一種協(xié)議來說,其不同的報文樣本之間具有相似性,序列比對的目的就是尋找相似性內(nèi)容或結(jié)構(gòu)。其流程如下:通過局部序列比對算法計(jì)算報文字節(jié)序列之間的相對距離;按照序列相對距離的遠(yuǎn)近,根據(jù)UPGMA(非加權(quán)成對群算術(shù)平均法)算法構(gòu)建進(jìn)化樹;采用漸進(jìn)比對算法遍歷進(jìn)化樹,通過層層采用全局序列比對算法實(shí)現(xiàn)多序列比對,最后得出協(xié)議結(jié)構(gòu)。
[0005]序列比對的局限性在于對于緊湊、簡單、序列結(jié)構(gòu)較為類似的協(xié)議,其識別效果較好,對于復(fù)雜、冗余較多的協(xié)議,其效率和準(zhǔn)確度明顯降低,而實(shí)際情況是很多協(xié)議格式是比較復(fù)雜的。此外,序列比對以字節(jié)作為基元,粒度小,不具有針對性,分析較為繁瑣。
[0006]基于程序執(zhí)行軌跡的協(xié)議逆向解析理論依據(jù)在于網(wǎng)絡(luò)應(yīng)用程序?qū)f(xié)議數(shù)據(jù)的處理過程包含了大量有關(guān)協(xié)議消息格式的信息,通過分析網(wǎng)絡(luò)應(yīng)用程序?qū)f(xié)議數(shù)據(jù)進(jìn)行處理的相關(guān)指令及數(shù)據(jù)流信息可以得到協(xié)議格式。基于程序執(zhí)行軌跡的分析是動態(tài)分析的方法,其關(guān)鍵技術(shù)是動態(tài)污點(diǎn)分析技術(shù)。其基本流程如下:動態(tài)監(jiān)控網(wǎng)絡(luò)協(xié)議數(shù)據(jù)的處理過程,實(shí)時記錄程序執(zhí)行軌跡,將程序從協(xié)議消息讀入到內(nèi)存空間的每個輸入字節(jié)標(biāo)記為污點(diǎn)數(shù)據(jù),并對應(yīng)于一個唯一的污點(diǎn)標(biāo)簽(在輸入消息中的偏移);對程序執(zhí)行軌跡進(jìn)行分析,根據(jù)一定的解析策略得到協(xié)議的字段,如分隔符、關(guān)鍵詞、定長域、變長域等。例如分隔符的解析策略是在執(zhí)行指令中查找與協(xié)議數(shù)據(jù)中連續(xù)位置進(jìn)行比較的常量字符,定長域的解析策略是域的解析范圍由指令中的常量參數(shù)指定,等等;將解析出的字段與污點(diǎn)標(biāo)簽(即位置)關(guān)聯(lián)起來,即可得出基本的協(xié)議結(jié)構(gòu)。
[0007]基于程序執(zhí)行軌跡的動態(tài)分析方法,其缺點(diǎn)在于程序執(zhí)行軌跡需要在程序執(zhí)行過程中實(shí)時記錄,而進(jìn)行實(shí)時記錄目前尚無公開的工具,因此分析對象的獲取較難,而且實(shí)時記錄程序執(zhí)行軌跡所需的時空開銷很大,每次只是對單條協(xié)議消息的處理,導(dǎo)致精確度也不聞。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問題是提供一種更為精確的文本協(xié)議的逆向解析方法和系統(tǒng)。
[0009]為了解決的上述技術(shù)問題,本發(fā)明提供了一種對文本協(xié)議的逆向解析方法,包括:
[0010]抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集;
[0011]對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息;
[0012]對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng);
[0013]將每一數(shù)據(jù)流中相同的特征項(xiàng)按行提取出來,將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征。
[0014]較佳地,
[0015]所述分隔符為分隔符集中的分隔符,包括回車換行符、空格符、制表符、逗號、冒號和分號;
[0016]所述對每一文本文件,使用分隔符進(jìn)行分詞處理,包括:
[0017]先根據(jù)回車換行符將該數(shù)據(jù)流的內(nèi)容劃分為一行或多行;
[0018]再使用其他分隔符對每一行進(jìn)行劃分,得到一個或多個數(shù)據(jù)項(xiàng),并記錄每一數(shù)據(jù)項(xiàng)位置信息,包括數(shù)據(jù)項(xiàng)所在行、列的值。
[0019]較佳地,
[0020]所述對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng),包括:
[0021]判斷出現(xiàn)該數(shù)據(jù)項(xiàng)是否滿足以下條件之一:
[0022]條件一,位置固定;
[0023]條件二,t(DF)≤ K1X N 且 t (TF) <K2 X N ;
[0024]如果滿足其中的任一條件,則該數(shù)據(jù)項(xiàng)為特征項(xiàng),否則非特征項(xiàng);
[0025]其中,t(DF)為出現(xiàn)該數(shù)據(jù)項(xiàng)的數(shù)據(jù)流的個數(shù),t (TF)為所述數(shù)據(jù)集中該數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù),N為所述數(shù)據(jù)集包括的數(shù)據(jù)流的總數(shù),K1為預(yù)設(shè)的第一比值,K1U ;K2為預(yù)設(shè)的第二比值,Κ2>1。
[0026]較佳地,
[0027]所述K1在1/5~1/2的范圍取值,所述1(2在3~6的范圍取值。
[0028]較佳地,
[0029]所述將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征,包括:
[0030]對固定域聚類,得到固定域的取值集合;
[0031]對可變域聚類,得到可變域的域類型和長度信息,其中,所述域類型為文本域和數(shù)字域中的一種,所述長度信息為變長和定長中的一種。
[0032]相應(yīng)地,本發(fā)明提供的對文本協(xié)議的逆向解析系統(tǒng)包括:[0033]預(yù)處理模塊,用于抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集;
[0034]分詞模塊,用于對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息;
[0035]特征提取模塊,用于對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng);
[0036]結(jié)構(gòu)建模模塊,用于將每一數(shù)據(jù)流中相同的特征項(xiàng)按行提取出來,將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征。
[0037]較佳地 ,
[0038]所述分詞模塊使用的所述分隔符為分隔符集中的分隔符,包括回車換行符、空格符、制表符、逗號、冒號和分號;
[0039]所述分詞模塊對每一文本文件,使用分隔符進(jìn)行分詞處理,包括:
[0040]先根據(jù)回車換行符將該數(shù)據(jù)流的內(nèi)容劃分為一行或多行;
[0041]再使用其他分隔符對每一行進(jìn)行劃分,得到一個或多個數(shù)據(jù)項(xiàng),并記錄每一數(shù)據(jù)項(xiàng)位置信息,包括數(shù)據(jù)項(xiàng)所在行、列的值。
[0042]較佳地,
[0043]所述特征提取模塊對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng),包括:
[0044]判斷出現(xiàn)該數(shù)據(jù)項(xiàng)是否滿足以下條件之一:
[0045]條件一,位置固定;
[0046]條件二,t(DF)≥ K1X N 且 t (TF) <K2 X N ;
[0047]如果滿足其中的任一條件,則該數(shù)據(jù)項(xiàng)為特征項(xiàng),否則非特征項(xiàng);
[0048]其中,t(DF)為出現(xiàn)該數(shù)據(jù)項(xiàng)的數(shù)據(jù)流的個數(shù),t (TF)為所述數(shù)據(jù)集中該數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù),N為所述數(shù)據(jù)集包括的數(shù)據(jù)流的總數(shù),K1為預(yù)設(shè)的第一比值,K1U ;K2為預(yù)設(shè)的第二比值,Κ2>1。
[0049]較佳地,
[0050]所述K1在1/5~1/2的范圍取值,所述1(2在3~6的范圍取值。
[0051]較佳地,
[0052]所述結(jié)構(gòu)建模模塊將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征,包括:
[0053]對固定域聚類,得到固定域的取值集合;
[0054]對可變域聚類,得到可變域的域類型和長度信息,其中,所述域類型為文本域和數(shù)字域中的一種,所述長度信息為變長和定長中的一種。
[0055]上述基于文本挖掘的協(xié)議逆向解析方法和系統(tǒng),針對文本協(xié)議,從同一協(xié)議大量數(shù)據(jù)包中分析共性和關(guān)聯(lián)性,得出協(xié)議格式,使得逆向解析更為精確。
【專利附圖】
【附圖說明】
[0056]圖1是本發(fā)明實(shí)施例協(xié)議逆向解析方法的總體流程示意圖;[0057]圖2是本發(fā)明實(shí)施例協(xié)議逆向解析方法的流程圖;
[0058]圖3是本發(fā)明實(shí)施例使用二叉樹分詞的示意圖;
[0059]圖4是本發(fā)明實(shí)施例協(xié)議逆向解析系統(tǒng)的模塊圖。
【具體實(shí)施方式】
[0060]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
[0061]實(shí)施例一
[0062]本實(shí)施例逆向解析針對的是文本協(xié)議,例如,SIP協(xié)議是一種文本協(xié)議,每條SIP消息由以下三部分組成:
[0063]起始行:每個SIP消息由起始行開始(請求消息是請求行,響應(yīng)消息是狀態(tài)行)。起始行用于傳達(dá)消息類型(在請求中是方法類型,在響應(yīng)中是響應(yīng)代碼)與協(xié)議版本。
[0064]SIP頭:用于傳遞 消息屬性和消息意義,其中格式為:〈名字 >:〈值>。
[0065]消息體:用于描述初始會話。例如,在多媒體會話中包括音頻和視頻編碼類型,采樣率等。消息體能夠顯示在請求與響應(yīng)中。
[0066]以請求消息的起始行為例,協(xié)議中定義的格式如下:
[0067]Request-Line = Method SP Request-URI SP SIP-Version CRLF
[0068]其中:
[0069]“Method”表示方法類型,值可以為“ INVITE”,“ACK”, “OPTIONS”,“BYE”,“CANCEL”,“REGISTER”或 extension-method ;
[0070]“ SP ”表示空格;
[0071 ] “Request-URI ”表示請求方的通用資源標(biāo)識符(URL),可以為SIP-URL或absoluteURL ;
[0072]“SIP-Version” 表示協(xié)議版本,如為 “SIP/2.0” ;
[0073]“CRLF” 表示回車。
[0074]下面再給出一條SIP請求消息和一條SIP響應(yīng)消息的示例:
[0075]請求消息示例:
[0076]INVITE sip:121255512120211.123.66.222SIP/2.0 (CRLF)
[0077]Via: SIP/2.0/UDP 211.123.66.223:5060 ;branch = a71b6d57-507c77f2 (CRLF)
[0078]Via: SIP/2.0/UDP 10.0.0.1:5060 !received = 202.123.211.25 ;rport =12345 (CRLF)
[0079]From:<sip:2125551000i211.123.66.223〉;tag = 108bcdl4(CRLF)
[0080]To:sip:121255512120211.123.66.222(CRLF)
[0081]Contact: sip:2125551000010.0.0.1 (CRLF)
[0082]Call-1D:4c88fdle-62bb-4abf-b620-a75659435b76il0.3.19.6(CRLF)
[0083]CSeq:703141INVITE (CRLF)
[0084]Content-Length:138(CRLF)
[0085]Content-Type: application/sdp(CRLF)[0086]User-Agent: HearMe SoftPHONE (CRLF)
[0087](CRLF)
[0088]……(消息體略)
[0089]響應(yīng)消息示例: [0090]SIP/2.02000K(CRLF)
[0091]Via:SIP/2.0/UDP pc33.atlanta.com ;branch = z9hG4bKhjhs8ass877 ;received=192.0.2.4 (CRLF)
[0092]To:<sip:carolichicag0.com〉;tag = 93810874(CRLF)
[0093]From:Alice<sip:aliceiatlanta.com〉;tag = 1928301774(CRLF)
[0094]Call-1D:a84b4c76e66710(CRLF)
[0095]Cseq:631040PT10NS(CRLF)
[0096]Contact:〈sip:carolichicag0.com〉(CRLF)
[0097]Contact:maiIto:carolichicag0.com(CRLF)
[0098]Allow:1NVITE, ACK, CANCEL, OPTIONS, BYE (CRLF)
[0099]Accept: application/sdp(CRLF)
[0100]Accept-Encoding:gzip(CRLF)
[0101]Accept-Language:en(CRLF)
[0102]Supported:foo(CRLF)
[0103]Content-Type: application/sdp(CRLF)
[0104]Content-Length:274
[0105](CRLF)
[0106]......(消息體略)
[0107]從上面2個示例可以看出,消息內(nèi)容被分為多行,每行內(nèi)容又包括固定域和/或可變域。
[0108]如圖1所示,本實(shí)施例對文本協(xié)議的逆向解析方法包括預(yù)處理、分詞、特征提取和結(jié)構(gòu)建模4個處理階段,其中,對網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行預(yù)處理得到協(xié)議數(shù)據(jù)流,對協(xié)議數(shù)據(jù)流進(jìn)行分詞得到數(shù)據(jù)項(xiàng),對數(shù)據(jù)項(xiàng)進(jìn)行特征提取得到特征信息,對特征信息進(jìn)行結(jié)構(gòu)建模塊即可得到協(xié)議結(jié)構(gòu)。
[0109]本實(shí)施例的逆向解析方法的具體流程如圖2所示,包括:
[0110]步驟110,預(yù)處理:抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集;
[0111]在一個示例中,可以通過建立網(wǎng)絡(luò)通信過程,用wireshark或Ethereal等抓包工具獲取某種協(xié)議的大量數(shù)據(jù)包,存儲為Pcap格式。pcap文件格式是bpf保存原始數(shù)據(jù)包的格式,很多軟件都在使用,如tcpdump、Ethereal、wireshark等等。pcap并不是原始的網(wǎng)絡(luò)字節(jié)流,而是對其進(jìn)行重新組裝形成一種新的數(shù)據(jù)格式。
[0112]一個 pcap 文件由 Pcap Header、若干 Packet Peader 和 Packet Data 組成。其中,Packet Data是一個協(xié)議消息從數(shù)據(jù)鏈路層開始的完整內(nèi)容。預(yù)處理時要層層去除PcapHeader, Packet Header以及Packet Data中的數(shù)據(jù)幀頭、IP頭和TCP頭等信息,提取出每個Pacaket Data中的應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式(即ASCII字符形式)的數(shù)據(jù)流,例如,把提取出的每個Pacaket Data的應(yīng)用層數(shù)據(jù)存儲為一個文本文件,每一文本文件即一個數(shù)據(jù)流,對多個網(wǎng)絡(luò)數(shù)據(jù)包預(yù)處理得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集,作為下一階段的輸入。文中,各個數(shù)據(jù)流用di (i = I, 2,…,η)表示,數(shù)據(jù)集用S(dl, d2,…,dn)表示。
[0113]預(yù)處理時,將數(shù)據(jù)以ASCII字符的形式而非十六進(jìn)制或二進(jìn)制表示,分析判斷更為直觀;而且可以為后續(xù)的基于文本挖掘的分析過程去除文件頭、數(shù)據(jù)頭等噪聲的影響。
[0114]步驟120,分詞:對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息;
[0115]對于預(yù)處理階段得到的數(shù)據(jù)流CliQ = 1,2,...,!!),這一階段將用一系列的分隔符對它們進(jìn)行分詞處理,劃分為數(shù)據(jù)項(xiàng)。在一個示例中,分隔符集可設(shè)定為{“\r\n”(回車換行符)、“\x20” (空格符)、“\t” (制表符)、“:”(冒號)、“;”(分號)、“,”(逗號)}。
[0116]首先,根據(jù)\r\n將數(shù)據(jù)流按行劃分完畢。
[0117]然后,循環(huán)讀取分隔符集中的其它分隔符對每行進(jìn)行劃分。在一個示例中,可以建立二叉樹模型來描述(不局限于此):將每行數(shù)據(jù)視為一個根節(jié)點(diǎn),按照除\1"\11外的分隔符集中的第一個分隔符劃分,在分隔符出現(xiàn)的第一個位置,劃分為2部分,再對右子節(jié)點(diǎn)劃分,依次進(jìn)行。讀取下一個分隔符,劃分第一步生成的樹中的葉子節(jié)點(diǎn),每個葉子節(jié)點(diǎn)(如果被劃分)被劃分為2部分,再對右子節(jié)點(diǎn)劃分。以上循環(huán)持續(xù)進(jìn)行,直至分隔符集中的分隔符用完為止,得到二叉樹葉子節(jié)點(diǎn)的內(nèi)容即為劃分得到的數(shù)據(jù)項(xiàng)。
[0118]由此,一個數(shù)據(jù)流被劃分為多個數(shù)據(jù)項(xiàng)(term),表示為(IiU1, t2,…,乜),記錄每個term的位置信息,包括所在的行、列(即相對于行首位置的偏移)。對(Ii依次進(jìn)行分詞處理,作為下一階段的輸入。
[0119]圖下面給出一個示例,數(shù)據(jù)流dn如下:
[0120]GET/img/log0.gif HTTP/1.1 (CRLF)
[0121]Accept:1mage/png, image/svg+xml, image/* ;q = 0.8,*/* ;q = 0.5 (CRLF)
[0122]Referer: http: //bbs.byr.cn/ (CRLF)
[0123]Accept-Language:zh_CN(CRLF)
[0124]User-Agent:MoziIla/5.0 (compatible ;MSIE9.0 ;ffindows NT6.1 ;Trident/5.0 ;360SE) (CRLF)
[0125]Accept-Encoding:gzip, deflate (CRLF)
[0126]Host: static, byr.cn (CRLF)
[0127]Connection:Keep-Alive (CRLF)
[0128]根據(jù)\r\n將數(shù)據(jù)流按行劃分完畢后,對行的處理如下,例如,圖3示出了對Accept:1mage/png, image/svg+xml, image/* ;q = 0.8, */* ;q = 0.5 這一--白勺戈?!分過程。圖中①代表用分隔符“:”進(jìn)行的第一次劃分。序號②、③代表用分隔符“;”進(jìn)行的第二、三次劃分。序號④、⑤、⑥代表用分隔符“,”進(jìn)行的第四、五、六次劃分。序號I一7代表劃分得到的7個文本片段,且它們位于該行的列數(shù)分別為I一7。其它行的劃分類比上述過程。
[0129]上述處理中,以ASCII字符形式表示和分隔符的設(shè)定控制了后續(xù)分析的粒度大小。不以字節(jié)為基元,避免了因粒度太小造成時空開銷過大;通過分隔符進(jìn)行分詞,避免了粒度太大而造成分析不準(zhǔn)確。
[0130]步驟130,特征提取:對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng);
[0131]本實(shí)施例中,判斷出現(xiàn)該數(shù)據(jù)項(xiàng)是否滿足以下條件之一:
[0132]條件一,位置固定;
[0133]條件二,t(DF)≥ K1X N 且 t (TF) <K2 X N ;
[0134]如果滿足其中的任一條件,則該數(shù)據(jù)項(xiàng)為特征項(xiàng),否則非特征項(xiàng);
[0135]其中,t(DF)為出現(xiàn)該數(shù)據(jù)項(xiàng)的數(shù)據(jù)流的個數(shù),t (TF)為所述數(shù)據(jù)集中該數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù),N為所述數(shù)據(jù)集包括的數(shù)據(jù)流的總數(shù),K1為預(yù)設(shè)的第一比值,1〈1,經(jīng)研究對比,較佳地,在1/5~1/2的范圍取值,如取1/3 ;K2為預(yù)設(shè)的第二比值,Κ2>1,較佳地,在3~6的范圍取值,如取為4。
[0136]如果數(shù)據(jù)項(xiàng)的位置(行,列值)固定,則將其作為特征項(xiàng)。
[0137]如果數(shù)據(jù)項(xiàng)的位置不固定,可以再考慮其在數(shù)據(jù)集和數(shù)據(jù)流中出現(xiàn)的頻次。如果一個數(shù)據(jù)項(xiàng)(值相同的為同一數(shù)據(jù)項(xiàng))的t(DF)很低(如低于閾值K1XN),認(rèn)為它代表數(shù)據(jù)流集的能力不強(qiáng),不作為特征項(xiàng)。如果t(DF)大于等于閾值K1XN,再考慮該數(shù)據(jù)項(xiàng)的t(DF),如果t(TF)很高(如大于等于閾值K2XN),那認(rèn)為它對于代表文本集沒有區(qū)分度,有可能是噪聲或無意義字符,因此也把它排除作為特征項(xiàng)。如果t(TF)小于閾值1(2\1則可作為特征項(xiàng)。數(shù)據(jù)集S越大,這種衡量越為有效。
[0138]在確定特征項(xiàng)后,將各個特征項(xiàng)及其位置信息作為特征信息,作為下一階段的輸入。
[0139]例如,抓取了 558個http請求消息數(shù)據(jù)包,得到部分統(tǒng)計(jì)結(jié)果如下表所示:
[0140]
【權(quán)利要求】
1.一種對文本協(xié)議的逆向解析方法,包括: 抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集; 對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息; 對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng); 將每一數(shù)據(jù)流中相同的特征項(xiàng)按行提取出來,將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征。
2.如權(quán)利要求1所述的方法,其特征在于: 所述分隔符為分隔符集中的分隔符,包括回車換行符、空格符、制表符、逗號、冒號和分號; 所述對每一文本 文件,使用分隔符進(jìn)行分詞處理,包括: 先根據(jù)回車換行符將該數(shù)據(jù)流的內(nèi)容劃分為一行或多行; 再使用其他分隔符對每一行進(jìn)行劃分,得到一個或多個數(shù)據(jù)項(xiàng),并記錄每一數(shù)據(jù)項(xiàng)位置信息,包括數(shù)據(jù)項(xiàng)所在行、列的值。
3.如權(quán)利要求1或2所述的方法,其特征在于: 所述對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng),包括: 判斷出現(xiàn)該數(shù)據(jù)項(xiàng)是否滿足以下條件之一: 條件一,位置固定; 條件二,t (DF)≥ K1XN 且 t (TF)〈K2XN ; 如果滿足其中的任一條件,則該數(shù)據(jù)項(xiàng)為特征項(xiàng),否則非特征項(xiàng); 其中,t(DF)為出現(xiàn)該數(shù)據(jù)項(xiàng)的數(shù)據(jù)流的個數(shù),t (TF)為所述數(shù)據(jù)集中該數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù),N為所述數(shù)據(jù)集包括的數(shù)據(jù)流的總數(shù),K1為預(yù)設(shè)的第一比值,K1U ;K2為預(yù)設(shè)的第二比值,Κ2>1。
4.如權(quán)利要求3所述的方法,其特征在于: 所述K1在1/5~1/2的范圍取值,所述1(2在3~6的范圍取值。
5.如權(quán)利要求1或2或4所述的方法,其特征在于: 所述將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征,包括: 對固定域聚類,得到固定域的取值集合; 對可變域聚類,得到可變域的域類型和長度信息,其中,所述域類型為文本域和數(shù)字域中的一種,所述長度信息為變長和定長中的一種。
6.一種對文本協(xié)議的逆向解析系統(tǒng),包括: 預(yù)處理模塊,用于抓取一文本協(xié)議的多個網(wǎng)絡(luò)數(shù)據(jù)包,從每一網(wǎng)絡(luò)數(shù)據(jù)包中提取應(yīng)用層數(shù)據(jù)并轉(zhuǎn)換為文本形式的數(shù)據(jù)流,得到的多個數(shù)據(jù)流組成一數(shù)據(jù)集; 分詞模塊,用于對所述數(shù)據(jù)集中的每一數(shù)據(jù)流,使用分隔符進(jìn)行分詞處理,將該數(shù)據(jù)流的內(nèi)容劃分為多個數(shù)據(jù)項(xiàng)并記錄各個數(shù)據(jù)項(xiàng)的位置信息;特征提取模塊,用于對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng); 結(jié)構(gòu)建模模塊,用于將每一數(shù)據(jù)流中相同的特征項(xiàng)按行提取出來,將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于: 所述分詞模塊使用的所述分隔符為分隔符集中的分隔符,包括回車換行符、空格符、制表符、逗號、冒號和分號; 所述分詞模塊對每一文本文件,使用分隔符進(jìn)行分詞處理,包括: 先根據(jù)回車換行符將該數(shù)據(jù)流的內(nèi)容劃分為一行或多行; 再使用其他分隔符對每一行進(jìn)行劃分,得到一個或多個數(shù)據(jù)項(xiàng),并記錄每一數(shù)據(jù)項(xiàng)位置信息,包括數(shù)據(jù)項(xiàng)所在行、列的值。
8.如權(quán)利要求6或7所述的系統(tǒng),其特征在于: 所述特征提取模塊對每一數(shù)據(jù)項(xiàng),根據(jù)其位置信息及在所述數(shù)據(jù)流、數(shù)據(jù)集中出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果,確定該數(shù)據(jù)項(xiàng)是否為特征項(xiàng),包括: 判斷出現(xiàn)該數(shù)據(jù)項(xiàng)是否滿足以下條件之一: 條件一,位置固定; 條件二,t (DF)≥ K1XN 且 t (TF)〈K2XN ; 如果滿足其中的任一條件,則該數(shù)據(jù)項(xiàng)為特征項(xiàng),否則非特征項(xiàng); 其中,t(DF)為出現(xiàn)該數(shù)據(jù)項(xiàng)的數(shù)據(jù)流的個數(shù),t (TF)為所述數(shù)據(jù)集中該數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù),N為所述數(shù)據(jù)集包括的數(shù)據(jù)流的總數(shù),K1為預(yù)設(shè)的第一比值,K1U ;K2為預(yù)設(shè)的第二比值,Κ2>1。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于: 所述K1在1/5~1/2的范圍取值,所述1(2在3~6的范圍取值。
10.如權(quán)利要求6或7或9所述的系統(tǒng),其特征在于: 所述結(jié)構(gòu)建模模塊將特征項(xiàng)作為固定域,將相鄰的非特征項(xiàng)合并后作為可變域,進(jìn)行聚類分析,確定所述文本協(xié)議的格式特征,包括: 對固定域聚類,得到固定域的取值集合; 對可變域聚類,得到可變域的域類型和長度信息,其中,所述域類型為文本域和數(shù)字域中的一種,所述長度信息為變長和定長中的一種。
【文檔編號】H04L29/06GK104023018SQ201410258281
【公開日】2014年9月3日 申請日期:2014年6月11日 優(yōu)先權(quán)日:2014年6月11日
【發(fā)明者】李建宇, 劉媛媛 申請人:中國聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司