亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于擴展前綴樹的協(xié)議格式推斷方法

        2018-06-26 10:19:24田益凡張洪澤吳禮發(fā)
        計算機工程與應(yīng)用 2018年12期
        關(guān)鍵詞:字段報文樣本

        洪 征,田益凡,張洪澤,吳禮發(fā)

        解放軍陸軍工程大學(xué) 指揮控制工程學(xué)院,南京 210000

        1 引言

        協(xié)議規(guī)范是對網(wǎng)絡(luò)協(xié)議語法、語義以及同步等信息的具體描述,在網(wǎng)絡(luò)安全領(lǐng)域扮演著重要角色。僵尸網(wǎng)絡(luò)中,攻擊者使用C&C(Command and Control)協(xié)議來控制存在漏洞的主機實施DDoS(Distributed Denial of Service)攻擊等惡意行為,網(wǎng)絡(luò)管理員需要依據(jù)C&C協(xié)議規(guī)范來發(fā)現(xiàn)和分析僵尸網(wǎng)絡(luò)[1]。入侵檢測系統(tǒng)中,需要基于協(xié)議規(guī)范從繁雜的網(wǎng)絡(luò)流量中辨識出惡意流量。在模糊測試過程中,可以利用協(xié)議規(guī)范指導(dǎo)測試用例生成以實現(xiàn)更加高效的自動化漏洞挖掘[2-3]。然而出于利益、版權(quán)、安全等因素,軟件廠商和個人往往不愿意公開協(xié)議細節(jié),如微軟使用的網(wǎng)絡(luò)文件共享SMB(Server Message Block)協(xié)議,Oracle數(shù)據(jù)庫訪問的TNS(Transparence Network Substrate)協(xié)議以及微信、QQ等即時通信軟件所使用的協(xié)議都沒有公開協(xié)議細節(jié),這些未知協(xié)議在網(wǎng)絡(luò)中的廣泛使用,給安全防護帶來了極大的阻礙。

        對于未知協(xié)議而言,目前主要通過協(xié)議逆向分析方法[4]獲取其協(xié)議規(guī)范。依據(jù)分析對象的不同,逆向分析方法可分為兩類:基于網(wǎng)絡(luò)流量的分析方法和基于指令執(zhí)行軌跡的分析方法。基于網(wǎng)絡(luò)流量的分析方法對截獲的網(wǎng)絡(luò)數(shù)據(jù)流進行分析,通過生物信息學(xué)、統(tǒng)計分析、數(shù)據(jù)挖掘等方法,對報文樣本進行聚類分析,依據(jù)相同格式報文在取值上的相似性,分析獲取協(xié)議語法、語義信息?;谥噶顖?zhí)行軌跡的分析方法以協(xié)議解析過程中的指令執(zhí)行軌跡為分析對象,將協(xié)議輸入數(shù)據(jù)作為污點數(shù)據(jù)源,利用動態(tài)污點分析(Dynamic Taint Analysis)方法[5]跟蹤數(shù)據(jù)解析過程,依據(jù)協(xié)議解析程序如何使用污點數(shù)據(jù)以及相應(yīng)的上下文信息獲取協(xié)議規(guī)范。

        基于指令執(zhí)行軌跡的分析方法通常具有較高的準(zhǔn)確率,能夠獲得更全面的語義信息,但這類分析方法的實施需要分析人員擁有協(xié)議終端的可執(zhí)行程序,并要求依據(jù)協(xié)議解析環(huán)境進行分析,依賴于底層平臺,無法移植,通用性不強?;诰W(wǎng)絡(luò)流量的分析方法以網(wǎng)絡(luò)數(shù)據(jù)流為輸入,雖然其準(zhǔn)確率依賴于捕獲樣本的豐富程度,但實現(xiàn)靈活,適用于各種應(yīng)用場景,能夠?qū)嵤┳詣踊治?。本文針對基于網(wǎng)絡(luò)流量的分析方法進行研究,重點關(guān)注協(xié)議語法以及語義信息的提取。

        目前國內(nèi)外已有一些針對協(xié)議格式提取的研究成果,PI(Protocol Information)項目[6]是最早提出的基于網(wǎng)絡(luò)流量的協(xié)議格式推斷方法,引入了生物學(xué)中的多序列比對算法,通過將報文樣本進行比對對齊的方式提取協(xié)議格式信息。Cui等人提出一種基于遞歸聚類的協(xié)議格式提取方案Discoverer[7],按照文本和二進制兩種屬性對報文字節(jié)流進行標(biāo)注,得到報文屬性序列,并對其進行序列比對得到初始聚類結(jié)果,隨后利用格式標(biāo)志(Field Distinguish)字段進行遞歸聚類獲取協(xié)議格式。Krueger提出一種基于統(tǒng)計的格式推斷方法PRISMA[8]。該方法首先利用自然語言處理中的N-gram思想以及分隔符對報文序列進行分詞得到候選特征詞,進而使用統(tǒng)計學(xué)方法對候選特征詞進行篩選構(gòu)建特征矩陣,并以特征詞為基礎(chǔ)描述報文序列。Zhang等人則提出一種基于專家投票算法的特征詞提取方法ProWord[9],并將其應(yīng)用于流量分類。Luo等人提出一種基于位置信息的協(xié)議格式推斷方法AutoReEngine[10],采用Apriori算法獲取特征詞,利用位置信息對特征詞進行合并和篩選,得到協(xié)議關(guān)鍵詞集合,最終再次利用Apriori算法對協(xié)議關(guān)鍵詞進行組合提取協(xié)議格式及協(xié)議狀態(tài)機。

        以上方案都存在一些缺陷:PI項目直接對整個報文樣本進行序列比對,時間復(fù)雜度較高。Discoverer雖然利用報文屬性序列和格式標(biāo)志字段降低了時間復(fù)雜度,但其采用常見文本類分隔符對報文樣本進行劃分的處理方法并不適用于二進制協(xié)議。此外,對于未知協(xié)議而言哪些分隔符會在協(xié)議中被使用具有很大的不確定性。PRISMA中對文本協(xié)議使用分隔符方法進行劃分,也存在類似問題。且PRISMA在處理二進制協(xié)議時,采用N-gram方法選取固定長度的特征詞,而實際報文中特征詞的長度并不相同,固定長度的特征詞的權(quán)重也會受到隨機串的影響。AutoReEngine通過Apriori算法結(jié)合位置信息提取協(xié)議關(guān)鍵詞,對于字段位置可變的協(xié)議,如HTTP、SIP協(xié)議,可能遺失部分關(guān)鍵詞。

        為了提高協(xié)議格式推斷方法的通用性以及準(zhǔn)確率,本文提出一種基于擴展前綴樹的應(yīng)用層未知協(xié)議格式推斷方法,實現(xiàn)了原型系統(tǒng)EPT-PFI(Extended Prefix Tree based Protocol Format Inference)。EPT-PFI以截獲的網(wǎng)絡(luò)報文作為輸入,通過N-gram方法對報文樣本進行分詞,結(jié)合點間互信息PMI(Point Mutual Information)對候選關(guān)鍵詞進行合并提取協(xié)議關(guān)鍵詞,在此基礎(chǔ)上對報文樣本進行標(biāo)注獲得協(xié)議關(guān)鍵詞序列。而后構(gòu)建擴展前綴樹(Extended Prefix Tree,EPT)描述協(xié)議關(guān)鍵詞序列,并基于擴展前綴樹實現(xiàn)分段的多序列比對。最后,依據(jù)協(xié)議報文結(jié)構(gòu)對擴展前綴樹進行合并,獲取協(xié)議格式信息。

        2 基于擴展前綴樹的協(xié)議格式推斷

        2.1 問題定義

        協(xié)議規(guī)范由協(xié)議格式和協(xié)議狀態(tài)機兩部分構(gòu)成。協(xié)議狀態(tài)機指定了合法報文的傳送順序,通過特定的報文發(fā)送序列構(gòu)成特定會話(Session)以實現(xiàn)所需的功能。協(xié)議格式指定了會話中每條報文的語法以及語義信息,只有符合協(xié)議格式的才是合法報文,才能被協(xié)議終端正確解析。協(xié)議語法規(guī)定了報文的字段、結(jié)構(gòu)以及字段語義,定義了組成報文的每一個字段(Field)的關(guān)鍵詞、數(shù)據(jù)類型、位置以及長度等具體信息。協(xié)議語義則定義了每一個字段在協(xié)議解析過程中所代表的實際意義,如HTTP協(xié)議(Hyper Text Transfer Protocol)請求報文中的“HOST”字段指定了請求資源所在的主機和端口號。常見的協(xié)議報文主要涉及以下幾種形式[11]:

        (1)二進制形式,即預(yù)先規(guī)定若干個固定比特位為一個字段,字段內(nèi)容即代表該字段的取值,如DNS協(xié)議的前16個比特位標(biāo)識DNS ID號。

        (2)ASCII碼形式,即采用易于理解的ASCII字符表示字段含義,使用預(yù)定義的分隔符(空格、回車換行等)作為字段結(jié)束標(biāo)志,如MIME協(xié)議報文中的協(xié)議版本字段“MIME-Version”。

        (3)TLV(Type-Length-Value)形式,即使用固定長度字節(jié)表示字段類型,固定長度字節(jié)的Length表名該字段取值的字節(jié)數(shù),而其后緊跟的指定長度內(nèi)容即字段取值,如eDonkey協(xié)議格式。

        (4)指針形式,即采用指針指出某一個字段的開始和結(jié)束,如DNS協(xié)議響應(yīng)報文中的回答計數(shù)指定了回答區(qū)域的條目數(shù)。

        通信報文中一些字段是固定字段,一些是可變字段。但由于協(xié)議規(guī)范以及使用條件的制約,同種協(xié)議中同類格式的報文樣本往往會體現(xiàn)出一些統(tǒng)計相似性或相關(guān)性,具體來說就是在報文樣本中有一些具有固定模式、頻繁出現(xiàn)的比特串或字符串。文獻[11]將這些具有固定模式的串統(tǒng)稱為協(xié)議關(guān)鍵詞。以圖1所示HTTP協(xié)議報文為例,請求報文中的請求方法字段“GET”和協(xié)議版本字段“HTTP/1.1”,響應(yīng)報文中的響應(yīng)碼“200 OK”,以及“Key-Value”格式的字段中起標(biāo)識作用的字符串“Key”,如“Host”、“Connection”和“Date”等,這些能夠標(biāo)識報文類型或者協(xié)議字段的字符串都可以被稱為協(xié)議關(guān)鍵詞。

        圖1 HTTP協(xié)報文示例

        另外,由于分隔符通常在單個報文中多次出現(xiàn)且位置變化較大,對于協(xié)議分析會造成較大困擾,所以本文在沿用文獻[11]定義的基礎(chǔ)上,將分隔符排除在協(xié)議關(guān)鍵詞之外。而分隔符通常為一到兩個字節(jié),如逗號、回車換行符等,可以通過設(shè)置N-gram分詞方法中N的取值來過濾掉分隔符。

        本文的協(xié)議格式提取方案建立在協(xié)議關(guān)鍵詞分析的基礎(chǔ)之上?,F(xiàn)有研究采用分隔符對文本協(xié)議進行分詞以得到協(xié)議關(guān)鍵詞,但未知協(xié)議的分隔符存在較大不確定性。對于二進制協(xié)議,目前方法通常采用N-gram提取關(guān)鍵詞,但所得到的關(guān)鍵詞為固定長度N,而實際協(xié)議關(guān)鍵詞的長度往往不固定,所以這類方法與實際存在出入。論文提出一種基于點間互信息的協(xié)議關(guān)鍵詞提取方法,適用于二進制協(xié)議和文本協(xié)議。首先采用N-gram分詞方法對報文樣本進行處理,在得到固定長度的候選關(guān)鍵詞后,結(jié)合點間互信息對候選關(guān)鍵詞進行合并,推斷獲得不同長度的協(xié)議關(guān)鍵詞。

        在信息論中,熵是對事物不確定性的度量,而點間互信息(Point Mutual Information)是在熵的基礎(chǔ)上提出來的概念,這一概念經(jīng)常被用于自然語言處理以及數(shù)據(jù)挖掘領(lǐng)域來衡量兩個單詞間的相關(guān)程度。單詞wi,wj之間的互信息可以定義為:

        p(wi,wj)表示單詞wi,wj同時出現(xiàn)在一個報文中的概率,p(wi)表示單詞wi出現(xiàn)在報文樣本中的概率,p(wj)表示單詞wj出現(xiàn)在報文樣本中的概率。PMI(wi,wj)衡量的是兩個單詞之間的相關(guān)性,即確定了一個單詞后另一個單詞的不確定性(即熵值)的減少量,PMI(wi,wj)越大,則兩個單詞之間的相關(guān)性越高。

        對于通過分詞獲得的候選關(guān)鍵詞而言,如果兩個候選詞是一個協(xié)議關(guān)鍵詞的子串,那么它們之間將具有較大的相關(guān)性。本文引入點間互信息來衡量候選關(guān)鍵詞之間的相關(guān)性。如果兩個候選詞位置相鄰、存在N-1個連續(xù)的相同字符(如“HTT”和“TTP”)且相關(guān)性較大,則將兩者合并為一個長度大于N的候選詞,如此重復(fù)以獲得任意長度的協(xié)議關(guān)鍵詞。

        獲取協(xié)議關(guān)鍵詞后,依據(jù)報文樣本對應(yīng)的協(xié)議關(guān)鍵詞序列構(gòu)建擴展前綴樹,實現(xiàn)報文樣本的初始聚類以及同類報文的分段。隨后,采用分段的多序列比對獲取報文的詳細格式信息。并通過對擴展前綴樹進行合并以減少冗余,得到最終協(xié)議格式。

        2.2 方法概述

        本文提出的協(xié)議格式推斷方法,主要包括4個處理階段:預(yù)處理階段、協(xié)議關(guān)鍵詞提取階段、報文結(jié)構(gòu)提取階段以及協(xié)議格式合并階段,主要流程如圖2所示。其中預(yù)處理階段的主要工作是對原始數(shù)據(jù)流進行劃分獲取報文樣本集合。協(xié)議關(guān)鍵詞提取階段將利用N-gram分詞方法對報文樣本進行處理,結(jié)合互信息獲取協(xié)議關(guān)鍵詞序列。報文結(jié)構(gòu)推斷階段依據(jù)協(xié)議關(guān)鍵詞序列構(gòu)建擴展前綴樹,通過基于擴展前綴樹描述的分段多序列比對推斷協(xié)議格式。協(xié)議格式合并階段將基于報文結(jié)構(gòu)對擴展前綴樹進行合并,得到詳細的協(xié)議格式信息。

        2.2.1 預(yù)處理階段

        圖2 原型系統(tǒng)EPT-PFI的主要處理流程

        對于未知協(xié)議而言,分析對象是連續(xù)的網(wǎng)絡(luò)數(shù)據(jù)流,由于網(wǎng)絡(luò)分層結(jié)構(gòu)以及分片機制,往往需要以會話和報文為粒度對數(shù)據(jù)流進行分割得到便于分析的報文樣本集合[12],以會話為粒度的分割被稱為會話劃分,以報文為粒度的分割被稱為報文定界。

        會話劃分是從連續(xù)的網(wǎng)絡(luò)數(shù)據(jù)流中分離出通信實體間的單次會話,主要依靠底層協(xié)議提供的信息實現(xiàn)。對于應(yīng)用層協(xié)議而言,可以使用協(xié)議五元組<源IP地址,源端口號,目的IP地址,目的端口號,傳輸層協(xié)議類型>得到獨立的通信會話。

        報文定界是從一次獨立會話中分離出單個協(xié)議報文。對于應(yīng)用層協(xié)議而言,可以利用傳輸層協(xié)議的報文首部和首部的長度字段實現(xiàn)。定界之后得到的報文樣本作為后續(xù)階段的輸入。

        2.2.2 協(xié)議關(guān)鍵詞提取階段

        此階段的目的是從經(jīng)過預(yù)處理的報文樣本中提取協(xié)議關(guān)鍵詞,并使用協(xié)議關(guān)鍵詞對報文進行標(biāo)注得到協(xié)議關(guān)鍵詞序列。原始報文樣本集合可以表示為S={m1,m2,…,mi,…,ms},其中mi為樣本集合中的某一個報文,表示報文mi中的第 j個字符。得到初始報文樣本后,采用N-gram分詞方法對報文樣本進行逐一處理,得到所有在樣本集合中出現(xiàn)過的長度為N的字符串,如對報文進行N-gram分詞,將得到等字符串。計算每一個字符串相對于完整報文樣本的出現(xiàn)頻率。在統(tǒng)計時,如果一個字符串在一個報文中出現(xiàn)多次,只進行一次統(tǒng)計,因為此階段處理的目的是獲取候選關(guān)鍵詞集合,而協(xié)議關(guān)鍵詞是對協(xié)議格式或者報文字段的一種標(biāo)識,往往不會在同一樣本中重復(fù)出現(xiàn)。

        在得到的字符串中,大部分字符串出現(xiàn)的頻率較低,它們通常對應(yīng)著報文中的變值字段或者是變值字段的子串,這些字段取值不確定甚至完全隨機產(chǎn)生。協(xié)議格式提取希望確定的是相對穩(wěn)定的協(xié)議報文構(gòu)成結(jié)構(gòu),故設(shè)置閾值Tfreq,對這些出現(xiàn)頻率較低的字符串進行過濾。將頻率高于閾值的字符串作為候選關(guān)鍵詞添加到候選關(guān)鍵詞集合G中。

        由于候選關(guān)鍵詞集合G中的元素都是通過N-gram分詞得到,其長度皆為N,而實際協(xié)議報文中,協(xié)議關(guān)鍵詞長度并不完全相同。對于長度大于N的協(xié)議關(guān)鍵詞,可以由長度為N的子串合并得到,如HTTP協(xié)議中的關(guān)鍵詞“Host”可以由“Hos”和“ost”合并得到。鑒于這種相關(guān)性,本文使用點間互信息對集合G中的候選詞進行合并,以得到不同長度的協(xié)議關(guān)鍵詞。

        為了對候選關(guān)鍵詞進行合并,首先,需要依據(jù)候選關(guān)鍵詞集合G對報文樣本進行標(biāo)注,得到對應(yīng)的候選關(guān)鍵詞序列,其中表示報文mi中的第 j個候選關(guān)鍵詞,表示在報文樣本集合中出現(xiàn)的頻率,表示在報文mi中相對于報文起始位置的偏移。進而得到整個報文樣本對應(yīng)的候選詞序列集合Seq={key_seq1,key_seq2,…,key_seqi,…}。

        隨后,基于互信息對集合Seq中的每個候選關(guān)鍵詞序列key_seqi中的協(xié)議關(guān)鍵詞進行合并,具體步驟如下。

        步驟1從左至右遍歷候選關(guān)鍵詞序列key_seqi,尋找位置相鄰且存在相同的連續(xù)N-1個字符(即滿足以下條件)的候選關(guān)鍵詞:

        (1)候選詞,并且

        (2)候選詞位置相鄰-=1。

        (3)候選詞的后N-1個字符與的前N-1個字符相同:bg+lj-N+2…bg+lj-1=bh…bh+N-2。

        步驟2對于滿足步驟1中條件的候選詞,搜索點間互信息集合PMI(初始為空),若其中存在PMI()則直接獲取其值,若不存在則計算它們之間的互信息PMI()并存入集合PMI中。得到候選詞之間的互信息后,若PMI()超過所設(shè)定的閾值TPMI,則合并候選詞1的重疊部分得到新的候選詞w:

        步驟3從key_seqi中刪除,將值替換為w。隨后從繼續(xù)遍歷更新后的key_seqi,重復(fù)步驟1~3直至遍歷完key_seqi。

        步驟4由于協(xié)議關(guān)鍵詞一般不會在同一報文中重復(fù)出現(xiàn),故遍歷key_seqi,刪除在同一個關(guān)鍵詞序列中出現(xiàn)多次的元素,得到最終的協(xié)議關(guān)鍵詞序列以及更新后的關(guān)鍵詞序列集合Seq。

        2.2.3 協(xié)議格式推斷階段

        通過上述步驟能夠得到每個報文樣本對應(yīng)的協(xié)議關(guān)鍵詞,而相同格式的報文對應(yīng)的關(guān)鍵詞序列往往相同,因此可以依據(jù)協(xié)議關(guān)鍵詞序列對報文樣本進行聚類,將同種格式報文聚成一類,依據(jù)同類報文樣本在結(jié)構(gòu)上的相似性提取協(xié)議格式信息。本文提出使用擴展前綴樹描述協(xié)議關(guān)鍵詞序列,擴展前綴樹中的每條路徑代表一種關(guān)鍵詞序列,節(jié)點對應(yīng)協(xié)議關(guān)鍵詞,節(jié)點之間的邊代表報文樣本中對應(yīng)關(guān)鍵詞之間的報文片段。采用擴展前綴樹的描述方法,一方面便于實現(xiàn)對報文樣本的初始聚類,另一方面便于實現(xiàn)分段的多序列比對。

        2.2.3.1 構(gòu)建擴展前綴樹

        前綴樹(Prefix Tree)是一種有序多叉樹結(jié)構(gòu),通常以字符串為輸入,利用字符串的公共前綴來實現(xiàn)快速檢索以及字符串匹配等操作。本文對前綴樹進行擴展,將協(xié)議關(guān)鍵詞序列作為輸入,協(xié)議關(guān)鍵詞作為節(jié)點,按照順序?qū)f(xié)議關(guān)鍵詞插入前綴樹中,以得到的擴展前綴樹描述報文樣本對應(yīng)的協(xié)議關(guān)鍵詞序列。

        為了構(gòu)建擴展前綴樹,在得到協(xié)議關(guān)鍵詞序列集合Seq后,遍歷集合Seq,將其中的元素依次插入樹結(jié)構(gòu)中。同時,為了排除樣本中的噪聲,在構(gòu)建擴展前綴樹的過程中記錄每種關(guān)鍵詞序列對應(yīng)的報文樣本總數(shù),刪除樣本數(shù)小于閾值Tnum的關(guān)鍵詞序列。舉例說明,對于包含表1所示元素的集合Seq,首先構(gòu)建根節(jié)點“Start”表示起始位置,隨后遍歷集合Seq,依據(jù)其中的協(xié)議關(guān)鍵詞序列將得到圖3所示的擴展前綴樹。

        圖3 擴展前綴樹示例

        擴展前綴樹中的每條路徑表示一種協(xié)議格式,圖中共有6種協(xié)議格式。樹中的每一個節(jié)點表示一個協(xié)議關(guān)鍵詞,節(jié)點之間的邊表示真實報文中對應(yīng)協(xié)議關(guān)鍵詞之間的報文片段。例如,擴展前綴樹第1條和第2條路徑中“GET”節(jié)點與“HTTP”節(jié)點之間的邊,表示格式符合表1第1種或第3種關(guān)鍵詞序列的對應(yīng)的報文樣本示例中協(xié)議關(guān)鍵詞“GET”和“HTTP”之間的報文片段“admin.php”和“index.php”。

        構(gòu)建擴展前綴樹的過程實際是對報文樣本進行聚類以及對聚類子類中的報文進行分段的過程,同種格式的報文會匯聚在同一條路徑上,并且依據(jù)節(jié)點對應(yīng)的協(xié)議關(guān)鍵詞分為多個片段,這種表示方式有利于后續(xù)提取每個報文片段的結(jié)構(gòu)以及語義信息。

        2.2.3.2 序列比對

        對于得到的擴展前綴樹,采用先深搜索遍歷每一條路徑,對同一路徑上相鄰兩節(jié)點之間的報文(即擴展前綴樹中的邊)采用Needleman-Wunsch多序列比對算法進行比對,以提取詳細的協(xié)議格式信息。包括協(xié)議字段取值類型(字符串、整數(shù)或二進制數(shù)等)、取值范圍(包含常量字段、枚舉字段、隨機字段)等,并在擴展前綴樹上做相應(yīng)標(biāo)注。

        舉例來看,若圖3擴展前綴樹中第1條路徑所對應(yīng)的報文如圖4所示,其協(xié)議關(guān)鍵詞序列為<“GET”,“HTTP”,“Host”,“User-Agent”>(圖中“_”表示報文中本身包含的空格,“--”表示序列比對填充的空格)。通過多序列比對能夠得到詳細的格式信息,如第2個片段取值為一個浮點數(shù)后接回車換行符,且浮點數(shù)取值為“1.1”或“1.0”。

        圖4 報文示例

        通過這種分段的多序列比對,能夠抽象出每個序列片段的報文結(jié)構(gòu),相對于PI項目等直接對整個報文進行序列比對,降低了時間復(fù)雜度。同時這種分段的格式提取方法,將報文依據(jù)協(xié)議關(guān)鍵詞進行劃段,也解決了多序列比對方法應(yīng)用于結(jié)構(gòu)復(fù)雜、報文過長的協(xié)議樣本效果不佳的問題。

        2.2.4 協(xié)議格式合并階段

        由于實際使用的通信協(xié)議往往具有較強的靈活性,完全依據(jù)協(xié)議關(guān)鍵詞序列進行協(xié)議格式提取容易產(chǎn)生較多的冗余格式,即一種協(xié)議格式在推斷時被劃分為多種不同的協(xié)議格式。過多的格式冗余將導(dǎo)致推斷結(jié)果的適用性降低。

        一方面,一些報文字段的位置順序是可變的。如HTTP 協(xié) 議 中 ,“GET admin.php HTTP/1.1 Host:www.foobar.com User-Agent:Opera/9.20”和“GET index.php HTTP/1.1 User-Agent:Mozillia/5.0 Host:www.baidu.com ”兩條報文實際上對應(yīng)于一種協(xié)議格式,其中“Host”關(guān)鍵詞和“User-Agent”關(guān)鍵詞的先后順序是可以變化的。但是在擴展前綴樹中,兩條報文對應(yīng)的協(xié)議關(guān)鍵詞序列不同,將被作為不同的協(xié)議格式。另一方面,一些報文中的協(xié)議關(guān)鍵詞屬于枚舉類型。例如,HTTP請求方法字段可以在“GET”、“POST”、“HEAD”等協(xié)議關(guān)鍵詞組成的集合中枚舉。例如“GET admin.phpHTTP/1.1 Host:www.foobar.com User-Agent:Opera/9.20”和“POST/eapi/pl/count HTTP/1.1 Host:music.163.com User-Agent:Mozilla/5.0”兩條報文僅僅請求方法不同,實際隸屬于同一種協(xié)議格式。

        表1 關(guān)鍵詞序列集合的示例

        因此需要對得到的擴展前綴樹進行合并,本文提出以下合并策略:

        (1)若擴展前綴樹中兩條路徑所包含的節(jié)點種類完全相同,或某一條路徑包含的協(xié)議關(guān)鍵詞是另一條路徑對應(yīng)關(guān)鍵詞的子集,并且兩條路徑上相同節(jié)點對應(yīng)的邊結(jié)構(gòu)相似,則認為這兩條路徑對應(yīng)著位置可變的協(xié)議格式,故將兩者合并為一種格式(保留節(jié)點數(shù)較多的路徑)。例如,圖3擴展前綴樹中路徑1和路徑2、路徑5和路徑6所包含的節(jié)點種類完全相同,只是部分節(jié)點位置不同,若兩條路徑中相同節(jié)點間的邊對應(yīng)的結(jié)構(gòu)相似,則可刪除其中任一條路徑,得到如圖5所示擴展前綴樹。

        圖5 第一種格式合并策略的示例

        (2)若兩條路徑僅有一個節(jié)點不同,且與此節(jié)點相關(guān)的邊在兩條路徑上結(jié)構(gòu)相似,則認為這兩條路徑中的不同節(jié)點對應(yīng)著同種協(xié)議格式的枚舉字段的兩種取值,故將兩節(jié)點合并為一個節(jié)點,兩條路徑合并為一種協(xié)議格式。譬如,采用方法(1)對圖3擴展前綴樹進行合并后,最左邊的路徑和最右邊的路徑中僅有一個節(jié)點“GET”和“POST”不同,中間兩條路徑中僅有一個節(jié)點“200 OK”和“404 Not found”不同,則可實施合并,得到如圖6所示的擴展前綴樹。

        圖6 第二種格式合并策略的示例

        通過格式合并得到的最終擴展前綴樹即代表了目標(biāo)協(xié)議的詳細格式,每一條路徑對應(yīng)一種協(xié)議格式。這種協(xié)議格式表示方式能夠有效減少冗余,提高協(xié)議格式結(jié)果的實用性。

        3 實驗結(jié)果及分析

        3.1 實驗方法

        為了對本文提出的方法進行驗證,在重用Netzob[13]多序列比對代碼的基礎(chǔ)上,實現(xiàn)了原型系統(tǒng)EPT-PFI。實驗中,選取文本協(xié)議HTTP和FTP與二進制協(xié)議DNS和NetBIOS作為實驗對象。同時選取了現(xiàn)有的協(xié)議逆向工具Netzob、AutoReEngine進行對比試驗。本文采用文獻[7]中的準(zhǔn)確率(Correctness)和精簡率(Conciseness)作為評價指標(biāo)對實驗結(jié)果進行評估。準(zhǔn)確率表示的是推斷所得格式與實際格式相符的報文樣本所占的比例,準(zhǔn)確率越接近1說明推斷結(jié)果越接近實際格式。精簡率表示的是推斷所得格式的種類數(shù)目與實際樣本中包含的格式種類數(shù)的比值。由于是比值,精簡率沒有單位。精簡率越接近1說明所得結(jié)果越接近真實格式。由于協(xié)議格式推斷中??赡軐⑼N格式報文劃分為多種格式造成冗余,因此精確率越小說明得到的協(xié)議格式種類越少,冗余越少。

        3.2 結(jié)果分析

        本文在配置為2.93 GHz的CPU、4 GB內(nèi)存、操作系統(tǒng)為Windows 7的PC上基于Python語言實現(xiàn)了論文中提出的方法??紤]到AutoReEngine關(guān)鍵字識別方法實用性強,準(zhǔn)確率高,并且具有代表性[5],基于SPMF平臺[14]提供的Apriori算法實現(xiàn)了AutoReEngine方法,與本文方法進行比較。

        原型系統(tǒng)EPT-PFI設(shè)定閾值Tfreq為0.6,設(shè)定閾值TPMI為0.8,依據(jù)文獻[15]N-gram分詞中N 取3。表2、表3是分別針對HTTP協(xié)議所獲得的協(xié)議關(guān)鍵詞(其中“_”表示空格)。分析實驗結(jié)果:(1)從表2可以看出,EPT-PFI得到的協(xié)議關(guān)鍵詞與實際基本吻合(所得關(guān)鍵詞附帶“ ”或“_”,因為它們總是同時出現(xiàn),所以被合并),但受限于樣本的多樣性,可能將某些可變字段被識別成了固定字段,如協(xié)議版本字段“HTTP/1.1”,這是由于所捕獲的樣本中基本都是使用的1.1版本的HTTP協(xié)議。而其中的協(xié)議關(guān)鍵詞“HTTP/1.1”兩邊沒有攜帶空格換行等符號,是由于HTTP協(xié)議請求報文和應(yīng)答報文中都包含版本號字段。(2)綜合分析表2和表3可知,相對于AutoReEngine,EPT-PFI提取的協(xié)議關(guān)鍵詞更加豐富,這是由于HTTP協(xié)議首部行中各個字段的位置是可變的,導(dǎo)致對應(yīng)的關(guān)鍵詞位置偏移較大。依據(jù)這些關(guān)鍵詞結(jié)合擴展前綴樹描述,能夠獲取首部行中各個字段的報文結(jié)構(gòu),得到更加詳細的協(xié)議格式信息。

        表2 EPT-PFI針對HTTP協(xié)議提取的協(xié)議關(guān)鍵詞

        表3 AutoReEngine針對HTTP協(xié)議提取的協(xié)議關(guān)鍵詞

        如圖7、圖8分別為采用EPT-PFI、Netzob、AutoReEngine對4種目標(biāo)協(xié)議進行實驗所得結(jié)果。從實驗結(jié)果可以看出:(1)EPT-PFI在準(zhǔn)確率上高于Netzob,稍低于AutoReEngine。AutoReEngine準(zhǔn)確率幾乎都達到了100%,這是因為AutoReEngine只保留了位置相對固定的協(xié)議關(guān)鍵詞,對于字段位置可變的協(xié)議關(guān)鍵詞都會被Apriori算法剪枝,如HTTP協(xié)議中的“Host”、“Connection”等字段由于在報文樣本中出現(xiàn)的位置變化較大而被忽略。因此,AutoReEngine只能夠提取出位置相對固定的字段關(guān)鍵詞,但無法獲取詳細的格式信息。(2)在精簡率上Netzob明顯高于EPT-PFI和AutoReEngine,說明所得協(xié)議格式冗余較多,這是由于Netzob是在多序列比對的基礎(chǔ)上進行報文聚類的,可能將同種格式報文劃分為多種格式。而EPT-PFI由于采用了基于擴展前綴樹的格式合并,其精簡率略優(yōu)于AutoReEngine。綜合來看,Netzob對于文本協(xié)議效果明顯優(yōu)于二進制協(xié)議,而本文方法對于文本協(xié)議和二進制協(xié)議都能取得較好結(jié)果。

        圖7 正確率實驗結(jié)果

        圖8 精簡率實驗結(jié)果

        通過上述實驗分析,可以看出原型系統(tǒng)MI-PFE能夠較好地完成文本協(xié)議以及二進制協(xié)議的格式推斷工作。

        4 總結(jié)

        本文提出了一種基于擴展前綴樹的協(xié)議格式推斷方法,通過N-gram分詞結(jié)合互信息獲取協(xié)議關(guān)鍵詞,依據(jù)協(xié)議關(guān)鍵詞序列構(gòu)建擴展前綴樹,在擴展前綴樹描述的基礎(chǔ)上進行分段多序列比對,最終通過對報文結(jié)構(gòu)的擴展前綴樹進行合并得到最終協(xié)議格式。實驗表明,本方法能夠適用于文本協(xié)議和二進制協(xié)議,并且與現(xiàn)有的協(xié)議格式推斷工具相比具有一定優(yōu)勢。

        [1]羅建楨,余順爭,蔡君.基于最大似然概率的協(xié)議關(guān)鍵詞長度確定方法[J].通信學(xué)報,2016,37(6):119-128.

        [2]Sija B D,Goo Y H,Shim K S,et al.A survey of automatic protocol reverse engineering approaches,methods,and tools on the inputs and outputs view[J].Security&Communication Networks,2018:1-17.

        [3]Gascon H,Wressnegger C,Yamaguchi F,et al.Pulsar:Stateful black-box fuzzing of proprietary network protocols[M]//Security and Privacy in Communication Networks.Germany:Spring International Publishing,2015:330-347.

        [4]Duchêne J,Guernic C L,Alata E,et al.State of the art of network protocol reverse engineering tools[J].Journal of Computer Virology&Hacking Techniques,2017:1-16.

        [5]Narayan J,Shukla S K,Clancy T C.A survey of automatic protocol reverse engineering tools[J].ACM Computing Surveys,2015,48(3):1-26.

        [6]Marshall B.Protocol information project[EB/OL].(2004-10-05)[2017-12-24].http://www.4tphi.net/~awalters/PI/PI.html.

        [7]Cui W,Kannan J,Wang H J.Discoverer:Automatic protocolreverse engineering from network traces[C]//16th USENIX Security Symposium.Boston:USENIX Association,2007:199-212.

        [8]Krueger T,Kraemer N.PRISMA:Protocol inspection and state machine analysis[J].Journal of the American Chemical Society,2015,98(25):8101-8107.

        [9]Zhang Zhuo,Zhang Zhibin,Lee P P C,et al.ProWord:An unsupervised approach to protocol feature word extraction[C]//Proceedings IEEE INFOCOM,2014:1393-1401.

        [10]Luo J Z,Yu S Z.Position-based automatic reverse engineering of network protocols[J].Journal of Network&Computer Applications,2013,36(3):1070-1077.

        [11]黎敏,余順爭.抗噪的未知應(yīng)用層協(xié)議協(xié)議格式最佳分段方法[J].軟件學(xué)報,2013,24(3):604-617.

        [12]李偉明,張愛芳,劉建財,等.網(wǎng)絡(luò)協(xié)議的自動化模糊測試漏洞挖掘方法[J].計算機學(xué)報,2011,34(2):242-255.

        [13]Bossert G,Hiet G.Towards automated protocol reverse engineering using semantic information[C]//ACM Symposium on Information,Computer and Communications Security,2014:51-62.

        [14]Fournier-Viger P,Gomariz A,Gueniche T,et al.SPMF:A Java open-source pattern mining library[J].Journal of Machine Learning Research,2014,15(1):3389-3393.

        [15]Wang Y,Zhang Z,Yao D D,et al.Inferring protocol state machine from network traces:A probabilistic approach[C]//International Conference on Applied Cryptography and Network Security.Berlin:Springer-Verlag,2011:1-18.

        猜你喜歡
        字段報文樣本
        基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
        汽車電器(2022年9期)2022-11-07 02:16:24
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        用樣本估計總體復(fù)習(xí)點撥
        CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
        淺析反駁類報文要點
        中國外匯(2019年11期)2019-08-27 02:06:30
        推動醫(yī)改的“直銷樣本”
        隨機微分方程的樣本Lyapunov二次型估計
        ATS與列車通信報文分析
        村企共贏的樣本
        CNMARC304字段和314字段責(zé)任附注方式解析
        欧美国产日韩a在线视频| 亚洲黄片av在线播放| 麻豆网神马久久人鬼片| 吃奶摸下的激烈视频| 亚洲av在线播放观看| 国产成人高清视频在线观看免费 | 国产午夜福利在线播放| 337p日本欧洲亚洲大胆色噜噜 | 国产成人午夜精品免费视频| 免费国人成人自拍视频| 成人国产精品三上悠亚久久| 猫咪av成人永久网站在线观看| 精品国产一区二区三区久久久狼| 大白屁股流白浆一区二区三区| 日本一区二区三区熟女俱乐部 | 久久久国产精品樱花网站| 一区二区三区在线免费av| 免费亚洲一区二区三区av| 精品久久欧美熟妇www| 伊人久久综在合线亚洲不卡| 色av色婷婷18人妻久久久| 欧美成人家庭影院| 人人妻人人澡人人爽久久av| 一区二区久久不射av| 日本高清一区二区不卡| 亚洲va欧美va日韩va成人网| 精品欧美一区二区在线观看 | 亚洲无码观看a| 亚洲av男人的天堂一区| 色综合视频一区中文字幕| 久久亚洲高清观看| 女同舌吻互慰一区二区| 后入到高潮免费观看| 狠狠久久久久综合网| 少妇勾引视频网站在线观看| 午夜久久久久久禁播电影| 亚洲色欲色欲www在线播放| 色哟哟av网站在线观看| 久草手机视频在线观看| 老妇女性较大毛片| 国产精品久久国产三级国电话系列|