王一鵬,云曉春,張永錚,李書豪
(1. 中國科學院 計算技術研究所,北京 100190;2. 中國科學院大學,北京 100049;3. 中國科學院 信息工程研究所,北京 100093)
識別網絡數據流中所承載的應用協議在網絡與安全領域有著眾多應用,例如入侵檢測和防范系統(IDS/IPS)、網絡測量、面向應用的緩存和路由機制、面向應用感知的負載均衡、流量分類和隧道檢測等。以其在入侵檢測和防范系統中的應用為例,入侵檢測和防范系統通常依照已有的協議規范,通過對數據分組載荷部分的有效解析從而實現積極、有效的安全防護策略。然而,互聯網中許多網絡協議屬于未知協議或者私有協議,這些網絡協議沒有公開可得到的協議規范文檔,這給網絡協議分類與識別帶來新的挑戰。根據Internet2 NetFlow組織對骨干網中流量的統計發現:超過40%的網絡數據流屬于未知的應用協議[1],其中惡意代碼流量占有相當的比例。同時,傳統以端口分配規則(IANA[2]規范)判定協議類別的流量分類方法也面臨著諸多新的問題。例如,互聯網中大量涌現的 Peer-to-Peer(P2P)協議因其在服務質量(QoS[3])上的巨大優勢,在文件分享和在線流媒體等領域中取得了廣泛應用。然而,大多數P2P應用協議并不遵守IANA規范,通常采用動態端口等技術進行偽裝,從而逃避網絡服務提供者(ISP)的檢測。當面臨大量未知流量時,傳統的檢測方法或手段很難對相關未知應用協議做出正確識別。針對上述問題,設計合理、有效的未知網絡協議識別方法給網絡信息安全研究人員帶來了新的挑戰。
網絡協議識別方法根據其研究對象的不同可劃分為基于傳輸層端口、基于數據分組載荷[6~14]和基于網絡流行為[4,5]3種類別。目前,基于數據分組載荷的分析方法主要通過基于主機端的協議解析[6~9]和基于網絡端的協議指紋[10~14]2種方式構建所分析協議的分類特征。其中,基于協議指紋的分析方法又可劃分為人工分析和自動分析2種。人工分析方法依照經驗或先驗知識獲取協議指紋信息,這種分析過程通常耗時、費力。自動化的分析方法應用模式識別、機器學習等理論對網絡數據流中的協議指紋信息進行自動提取,從而最大可能地減少人工成本開銷。本文僅針對自動化的協議指紋提取工作展開相關討論。
傳統的網絡協議識別方法大多屬于非主動學習的機器學習方法。這類方法依照所獲得的離線學習樣本構建單一或者多種協議分類模型,從而實現對網絡協議的準確識別。這類方法實驗效果的優劣均依賴所分析的訓練樣本集合。然而,在實際分析過程中,未知協議網絡數據流(如僵尸網絡)的獲取與標記工作嚴重依賴領域專家。這是一件費時且繁雜的工作。甚至在樣本數據量過大時,人工標記已無法滿足實際需求。因此,在復雜的網絡環境中如何以最小的樣本標記代價構建準確的協議識別模型,是目前網絡協議識別領域的研究熱點。
針對上述問題,本文提出了一種基于主動學習的未知網絡協議識別方法,基于該方法設計并實現了ProLearner系統。該方法以網絡數據流為輸入,自動地從混雜網絡流量中對所分析協議的網絡數據流進行準確識別。該方法只分析 TCP/UDP數據分組的載荷部分,不需要對程序的可執行代碼進行逆向分析,也不依賴協議規范中的先驗知識(如分隔符等)。同時,該方法可解決面向連接協議(如TCP)和面向無連接協議(如UDP)的識別問題,并可適用于文本和二進制類協議的分析。該方法的主要特點是通過采用主動學習算法,在學習過程中只選擇最有價值的樣本訓練分類器。這種抽樣策略使得學習效率(樣本標記時間、學習訓練時間等)得到大幅度的提高。在實踐過程中,通過對訓練樣本的合理選取,在樣本標記代價很小的前提下,同樣可以保證很高的識別準確率和召回率。
本文屬于基于數據分組載荷的研究方法。下面對此部分相關工作進行介紹。
2007年,CABALLERO等人[6]通過分析應用程序的可執行代碼和數據分組載荷部分信息,采用協議逆向工程中的動態分析方法對協議的信息格式進行提取。2008年,LIN等人[7]和WONDRACEK等人[8]通過對可執行程序處理協議報文的工作流程進行觀察分析,構建分析工具從而實現對協議格式信息的自動提取。2008年,CUI等人[9]提出并設計了Tupni系統,該系統利用逆向工程分析方法對輸入數據流中的諸如記錄序列、記錄類別等格式信息自動地提取,從而實現有效的協議解析。
與以上工作不同,本文方法不需要對可執行程序進行逆向分析。
2005年,HAFFNER等人[10]提出了一種自動化的協議指紋構建方法——ACAS。該方法以所分析協議網絡數據流中前64 byte作為協議特征,應用機器學習算法構建協議分類模型。2006年,KANNAN等人[11]提出了一種基于泊松過程的協議格式特征挖掘方法。該方法是一個半自動化的方法,可有效識別屬于同一會話的多個連接;但該方法只針對TCP數據流進行分析,并且利用了TCP數據分組中的SYN、FIN和RST等標志作為先驗條件。2006年,MA等人[12]提出了一種基于無監督學習的協議推理方法,該方法通過對網絡流的載荷部分進行分析,利用聚類方法實現對網絡協議的自動識別。2007年,CUI等人[13]提出并設計了Discoverer系統。CUI的方法利用統計學習和數據挖掘的研究方法,自動地從特定協議的網絡數據流中提取該協議的格式信息。Discoverer系統在分析文本類協議過程中需要依賴經驗分隔符,在一定程度上限制了該系統的通用性。2010年,FIANAMORE等人提出了一個基于數據分組載荷特征的協議分類系統——KISS[14]。該系統基于假設檢驗和機器學習理論,通過構建統計化的協議指紋信息實現對 UDP網絡數據流準確、快速的識別。該方法只針對 UDP數據流分析建模,在適用范圍上受到了一定的限制。
然而,上述研究均未涉及應用主動學習方法以減少在學習過程中樣本的標記代價,從而實現協議分類模型的構建。
本文提出并設計實現了一個基于主動學習的未知網絡協議識別系統——ProLearner。如圖 1所示,ProLearner系統由兩階段構成:離線學習和在線識別。離線學習是ProLearner系統的第一階段。在這個階段,通過對離線訓練樣本進行學習進而構建協議識別模型。離線學習階段首先對網絡數據分組的載荷部分進行數據分組建模,依照建模后得到的數據分組特征向量,采用面向SVM的主動學習算法構建協議分類模型。
本文使用自然語言處理中的 n-gram模型實現對網絡數據分組的抽象建模。n-gram模型可以將原始網絡數據分組中的字節序列映射到新的特征維度空間。n-gram模型的主要優點是:在并不依賴任何先驗知識(如分割符等)的前提下,可以將任意的網絡數據分組表示為 n-gram序列的形式。因此,n-gram模型適用于文本類和二進制類的協議分析。數據分組建模部分由2個部分組成,分別是數據分組n-gram序列化和數據分組向量化。
3.1.1 數據分組n-gram序列化
數據分組 n-gram序列化利用計算語言學和概率論中的 n-gram模型對所分析的網絡數據分組進行分析建模。數據分組 n-gram序列化操作利用n-gram模型將網絡數據分組轉化為以n-gram元素為基本單元的網絡數據分組。
每個含有特定信息的網絡數據分組都含有一個或多個協議關鍵字。網絡協議識別的目標就是從數據分組中提取出能有效對網絡協議合理區分的協議關鍵字。從本質上說,協議關鍵字是任意長度的字節序列。例如,“250”和“OK”是 SMTP的協議關鍵字。對于文本類協議,通常可以利用經驗分割符(如空格符和制表符)對協議中的關鍵字進行有效劃分。然而,除了要處理文本類協議(如SMTP和HTTP),本文方法同樣也需要處理二進制類協議(如SMB和RTP)。因此,在實踐中較優的選擇是不依賴經驗知識,而將數據分組內容看作若干相同長度且由基本元素構成的組合序列。這樣的分析方法對文本和二進制類協議都適用,從而可以大大提高系統在實際中的可擴展性和通用性。
在自然語言處理中,n-gram模型已成功應用于解決相似問題,因此本文利用n-gram模型來對網絡數據分組的載荷部分進行建模分析。在計算語言學與概率學領域中,n-gram 是給定序列的(至少為 n個元素的序列) n個連續元素的子序列。例如,如果將每個字節視為一個元素,那么 SMTP協議報文——“MAIL_FROM”所產生的 3-gram元素是:“MAI”、“AIL”、“IL_”、“L_F”、“_FR”、“FRO”和”ROM”。具體而言,給定一個網絡數據分組,n-gram產生模塊將字節大小為 m的網絡數據分組序列 b1b2…bm分解為 n-gram(n≤m)序列:b1b2…bnb2b3…bn+1…bm-n+1bm-n+2…bm。基于 n-gram 的序列化操作,網絡數據分組中的每個字節都被映射到新的維度空間。值得注意的是,在n-gram分析中通常應盡量避免較大的 n值,因為較大的 n值會使得n-gram集合中元素的數目過于龐大,在實踐中需要使用大量的訓練數據集合才可以避免狀態空間過于稀疏。
n值的選擇是n-gram序列化的一個關鍵問題,該值的選擇應盡量保證系統對不同協議的分析效果都較優秀。通過對多種協議的實驗分析發現,n-gram元素的出現頻率與其在頻率表中的排名是在以log-log為刻度的坐標軸下近似的一條直線,如圖2所示。其中,R2代表擬合系數,其越接近1,表示擬合效果越好。這種現象滿足了自然語言中齊夫定律(Zipf's law)[15]的分布特性,因此認為可以利用齊夫定律來近似地找到使得語言模型為最佳的擬合參數。對于網絡協議數據分組的前16 byte,在n為不同取值的情況下,進行實驗對比分析發現,當n=3時的擬合效果最好。

圖1 ProLearner系統架構

圖2 SMTP協議中n-gram元素的概率分布
3.1.2 數據分組向量化
通過n-gram分析,數據分組中的字節序列被映射為n-gram序列。然而以n-gram序列形式描述的數據分組無法直接進行后續的運算處理。為解決這一問題,作者使用數據分組向量化操作對數據分組中的n-gram進行描述。通過該操作,每個數據分組都被表示為一個特征向量,特征向量的每個維度是唯一的 n-gram元素,特征向量的分量數值代表n-gram元素在所分析數據分組中出現的次數。例如,假定有4種類型n-gram元素,分別為“HEL”、“ELO”、“DAT”和“ATA”。那么SMTP數據分組“DATA”向量化分析后的結果為 (0, 0, 1, 1)。其中數值0代表所分析數據分組中沒有該n-gram元素,數值1代表該n-gram元素出現1次。
經過數據分組建模分析后,ProLearner得到數據分組的特征向量。依照這些分類特征,ProLearner利用面向SVM的主動學習算法進行訓練并得到所分析協議的分類模型。下面將詳細介紹本文所使用的面向SVM的主動學習方法。
3.2.1 主動學習方法概述
有監督機器學習(supervised machine learning)領域根據對學習樣本處理方式的不同,可將分類模型劃分為兩大類別:被動學習模型和主動學習模型。被動學習模型隨機地從訓練數據中選取樣本進行分類模型構建。然而,訓練集本身經常包含許多信息量太少的樣本,甚至可能是冗余或者噪音樣本。這些樣本的出現不僅使得樣本標記工作大大增加、訓練時間大幅度提高,而且還有可能導致分類器泛化能力的下降。與被動學習模型不同,主動學習模型采取主動的策略,選擇最有利于提高分類器性能指標的訓練樣本,并只對這些樣本進行標記。這樣的選擇策略有效地避免了學習模型本身對于重復的、無意義的樣本的學習,使標記訓練樣本的代價大幅度降低,同時減少了訓練過程的時間開銷。
在主動學習中,主動抽樣策略的出現是主動學習模型與傳統被動學習模型最大的不同。根據抽樣策略對未標記樣本處理方式的不同,可將主動學習算法劃分為:成員查詢綜合 (membership query synthesis)算法[16]、基于流(stream-based)的主動學習[17]和基于池(pool-based)的主動學習[18]。其中,基于池的主動學習算法是目前研究最充分、使用最廣泛的一類策略。按照選擇未標記樣本標準的不同,pool-based 算法又可分為基于不確定性的抽樣 (UBS, uncertainty based sampling)策略、基于委員會投票的選擇(QBC, query by committee)策略和基于估計誤差縮減(EER, estimated error reduction)的抽樣策略等幾種策略[19]。本文采用了基于不確定性的抽樣策略。
評價主動學習算法相對于被動學習算法性能的提升通常可以從2個角度進行考慮。一個角度是:在給定性能指標的前提下,主動學習方法相對于被動學習方法訓練樣本數量的精簡比例。另一角度是:在給定訓練樣本數目的前提下,主動學習方法相對于被動學習方法性能的提升比例。在實際執行過程中,主動學習方法通常需要使用一定的終止策略。一方面可以控制樣本標記的數目,從而減少總的執行時間;另一方面可以控制主動學習方法的學習效果,如準確率和召回率。
3.2.2 面向SVM的主動學習方法
由于SVM分類器在高維度和小樣本數據分類中的突出表現,本文采用以SVM作為基準分類器的主動學習算法來構建協議分類模型。
給定未標記樣本集合U的情況下,面向SVM的主動學習算法l主要由分類器f、查詢函數q和已標記樣本集合X 3部分組成[20],如圖3所示。主動學習算法是一個迭代訓練分類器f的過程。其中,查詢函數q是主動學習模型與被動學習模型最大的不同。
在面向 SVM 的主動學習算法中,查詢函數 q所采取的查詢策略為:每次選取距離分類超平面最近的一個或幾個樣本,并將這個或這些樣本提交給領域專家標記,這種查詢策略也被稱為不確定抽樣(UBS)。這些新的已標記好的訓練樣本將被加入到已標記樣本集合X中,用于重新對分類器f的訓練。不確定抽樣選擇策略總是選擇不確定性最大的樣本進行學習,因為這些樣本最有可能是SVM 分類器的支持向量。這樣的選擇策略可以有效避免SVM分類器對無意義、重復樣本的學習,從而大大減少標注時間,提高學習效率。

圖3 主動學習算法過程
主動學習的過程如圖3所示,其具體算法過程如下。
輸入:已標記訓練樣本集合X中少量已標記樣本x(至少包含一個正樣本和一個負樣本),未標記測試樣本集合U中(包含有正樣本和負樣本)大量未標記樣本u。r為主動學習終止條件。
輸出:分類器f和已標注樣本集合X。
1) 根據已標記訓練樣本集合 X中少量已標記樣本x,訓練構造SVM分類器f,從而樣本集合X被劃分為 2 類,f : X →{-1, 1}。
2) 利用已構造的SVM分類器f對U中所有未標記的樣本u進行分類。
3) 根據分類器f的分類結果,查詢函數q判定未標記樣本集合U中每個樣本的信息量,將信息量最大、最不確定(距離超平面最近)的樣本交由領域專家進行標記。
4) 將經由領域專家標記好的樣本加入到已標記樣本集合X中,根據更新后的已標記樣本集合X對分類器模型f進行評估。
5) 若達到終止條件r時,則算法終止,返回分類器f;否則重復步驟1)~步驟4)。
在線識別階段通過利用離線學習階段得到的分類器實現對實時網絡流量的協議判別。在線識別階段的輸入是待測網絡數據分組。通過對數據分組載荷部分進行n-gram建模,得到該數據分組的特征向量。依照其分類特征和離線學習階段訓練得到的分類器ProLearner對所分析網絡數據分組的協議屬性進行判別。在線識別階段的輸出結果為2類:一類是屬于目標協議的網絡數據分組,另一類是非目標協議的網絡數據分組。
為了驗證ProLearner系統在實際網絡環境中的有效性,作者使用真實的網絡數據流量對該系統進行驗證。在實驗階段,假定幾種協議的網絡數據流是未知的,從而模擬對未知網絡協議識別的整個交互過程。
對于特定協議網絡數據流的獲取通常可以采用以下2種方法:1) 在可控環境下運行所分析協議的可執行程序代碼,從而獲得該協議的網絡數據分組(例如GT方法[21]);2)對于使用非可變傳輸層端口的協議,在可控環境下進行端口監聽的方式。2種方法都可在已獲得程序可執行代碼的前提下,實現對未知協議網絡流量的獲取。然而,在已獲得的網絡數據流中,可能同時混雜有其他非所分析協議的網絡數據流。因此,在這個環節中需要領域專家的參與,從而對訓練樣本進行有效、合理的區分。在本文中,作者采用第2種方法實現對數據集合的構建。
本文選取了4種協議對ProLearner系統的性能進行測試,分別是 SMTP、DNS、XUNLEI和CIFS/SMB協議,這些協議中既包含有面向連接的協議(如TCP),也包含面向無連接的協議(如UDP),同時,也包含文本和二進制類協議。SMTP協議通常用于電子郵件通信,CIFS/SMB協議主要用來提供共享的文件訪問策略。為了獲得這2種協議的網絡數據流,作者采用TCP端口過濾的方法進行數據采集,SMTP端口號為 25, CIFS/SMB端口號為445。DNS協議是域名系統,其主要用于將域名信息轉化為數字化的網絡地址,XUNLEI協議是當今十分流行的P2P文件共享應用,其在國內骨干網流量中占有相當的比例。為了獲得這2種協議的網絡數據流,作者使用UDP端口過濾的方法對數據進行采集,DNS端口號為53,XUNLEI端口號為15 000。非目標協議的網絡數據流(負樣本)則通過在以上指定之外的端口來進行捕獲。在每種協議的數據集合中隨機提取10 000條所分析協議的網絡數據分組和2 000條非目標協議的數據分組。采用模5(即5-fold)交叉驗證的方法,重復實驗10次取平均值。
給定ProLearner系統要分析的某種未知協議,首先定義以下3種數據集合。
1) true positives (TP): 被 ProLearner系統識別為某協議的網絡數據分組,且確實是屬于該協議的網絡數據分組集合。
2) false positives (FP): 被 ProLearner系統識別為某協議的網絡數據分組,但并不屬于該協議的網絡數據分組集合。
3) false negatives (FN): 被 ProLearner系統識別為非某協議的網絡數據分組,但其實是屬于該協議的網絡數據分組集合。
基于以上3種數據集合,本文采用機器學習領域中通常使用的準確率(precision)、召回率(recall)和F-Measure 3種評價指標來對ProLearner系統的有效性和可靠性進行評價。3種評價指標定義如下。

由于準確率與召回率分別描述系統性能的2個方面,單一使用準確率和召回率作為評價指標具有局限性,因此,本文選用F-Measure指標將這2個指標進行綜合考慮,從而選擇最優方案。
ProLearner系統的整個過程需要確定以下幾個參數:
1) 每個數據分組分析的字節數l;
2) SVM模型中核函數的參數C和γ;
3) 集合X中已標記樣本個數的初始值T。
5.3.1 每個數據分組分析的字節數l
本文以網絡數據分組的載荷部分作為研究對象。在實驗分析過程中,ProLearner系統選取每個數據分組的前l byte進行分析。通常而言,分析過程中l選取的越大,其越能準確地反映出所分析協議載荷部分的特征,從而使得ProLearner系統在識別過程中的分類準確率越高。然而,分類方法的計算復雜性和內存開銷同樣也隨著l的變大而相應增加。在驗證實驗中,作者選擇了一個折中數值,設l為16。
5.3.2 SVM模型中的參數
本文SVM模型中所選用的核函數為徑向基核函數(radial basis function)。徑向基核函數可以將樣本映射到一個更高維的空間,從而對復雜特征的樣本集進行有效分類。徑向基核函數中有2個可調節參數分別為C和γ,其中,C為懲罰因子,γ 為核參數。通過交叉驗證進行對比發現,模型中參數的最佳取值為C=1 000,γ=0.5。
5.3.3 召回率和準確率
本節對數據集中的4種協議在集合X中已標記樣本個數的初始值T為10、30和50這3種不同取值的情況下分別進行實驗。在對所獲得的網絡協議數據集合進行分析時,傳統方法通常采用隨機抽樣的方法來構建學習集合。因此,在驗證對比實驗中,作者分別對每種協議進行訓練和測試,并比較其在主動學習策略和隨機抽樣方法下的準確率、召回率和F-Measure 3種評價指標。
DNS和XUNLEI 2種協議的實驗結果如圖4和圖5所示。對于這2種協議,在T為不同取值的情況下,通過對比實驗發現:當已標記樣本集合的數目達到100時,主動學習方法和隨機抽樣方法的召回率均已達到約 100%。然而,通過觀察發現當已標記樣本數量為100、150、200、250和300時,主動學習方法的準確率接近100%,而隨機抽樣策略的準確率大約在85%左右。主動學習方法的實驗效果明顯優于隨機抽樣策略。圖4和圖5同時表明,對于DNS和XUNLEI這2種協議,隨著T值的增大,主動學習方法達到識別最佳實驗效果的收斂速度將減慢。
圖6為CIFS/SMB協議的實驗結果。通過改變T值進行實驗對比發現:當已標記樣本集合的數量達到100時,主動學習和隨機抽樣方法2種策略的識別準確率基本達到一致。從圖6中可以發現,主動學習方法的召回率已達到約100%,且不隨T值的增大而改變。而隨機抽樣策略的召回率相對于主動學習方法則比較低,且隨樣本數量的增加而緩慢提高。對于CIFS/SMB協議,隨機抽樣策略的召回率在小樣本的情況下與主動學習方法在實際效果上有一定的差距。

圖4 主動學習方法與隨機采樣方法在DNS中的對比實驗

圖5 主動學習方法與隨機采樣方法在XUNLEI中的對比實驗

圖6 主動學習方法與隨機采樣方法在CIFS/SMB中的對比實驗

圖7 主動學習方法與隨機采樣方法在SMTP協議中的對比實驗
SMTP協議的實驗結果如圖7所示。通過改變T值進行對比實驗發現:主動學習方法的F-Measure指標在大多數情況下均高于隨機抽樣策略。當T=50,已標記樣本數量增加到300時,主動學習方法達到最佳的識別效果,其F-Measure指標為0.98。此時隨機抽樣策略的F-Measure指標為0.92。從3組對比實驗可以發現,對于SMTP協議,需要將已標記樣本集合中初始的樣本數目適當增大,從而獲得較優的識別效果。
在實驗驗證階段,作者使用包含文本和二進制的真實網絡數據流對ProLearner系統的有效性進行測試。多種協議的實驗結果表明,在已標記樣本量很少的情況下,ProLearner系統能夠從混雜的網絡流量中準確地識別所分析的網絡協議。在針對未知網絡協議的識別過程中,相對于隨機抽樣策略,主動學習方法可以使用較少的已標記樣本達到較優的學習效率(高準確率和高召回率),從而有效地降低了學習過程中標記的樣本數目。然而,本文的方法并不適用于解決加密網絡數據流的識別問題,這也是本文方法的局限性。
隨著網絡流量的日益復雜多樣,有效的未知網絡協議識別方法成為信息安全領域一個重要的研究方向。由于未知協議網絡數據流的獲取與標記工作通常需要高昂的人工成本,因此需要研究可適用于實際網絡環境的樣本標記方法。本文從網絡數據流出發,構建了一整套基于主動學習的未知網絡協議識別方法。該方法僅依靠原始網絡數據流實現對未知網絡協議的有效識別。實驗結果表明,本文方法對面向連接和面向無連接的協議均可取得較好的實驗結果。在保證識別準確率和召回率的前提下,有效地降低了學習過程中所需的標記樣本數量。因此,本文的方法可直接應用于實際的網絡環境。
[1] Internet netflow statistics[EB/OL]. http://netflow.internet2.edu, 2010.
[2] TCP and UDP port numbers[EB/OL]. http://www.iana.org/assignments/port-numbers, 2008.
[3] ROUGHAN M, SEN S, SPATSCHECK O, et al. Class-of-service mapping for QoS: a statistical signature-based approach to IP traffic classification[A]. Proceedings of the 4th ACM SIGCOMM Conference on Internet Measurement[C]. Taormina, Sicily, Italy, 2004.135-148.
[4] ZHANG J, CHEN C, XIANG Y. An effective network traffic classification method with unknown flow detection[J]. IEEE Transactions on Network and Service Management, 2013, 10(1):1-15.
[5] KARAGIANNIS T, PAPAGIANNAKI K, FALOUTSOS M. BLINC:multilevel traffic classification in the dark[J]. SIGCOMM Computer Communication Review, 2005, 35(4):229-240.
[6] CABALLERO J, YIN H, LIANG Z, et al. Polyglot: automatic extraction of protocol message format using dynamic binary analysis[A].Proceedings of the 14th ACM Conference on Computer and Communications Security[C]. Virginia, USA, 2007.317-329.
[7] LIN Z, JIANG X, XU D, et al. Automatic protocol format reverse engineering through context-aware monitored execution[A]. Proceedings of the 15th Network and Distributed System Security Symposium[C]. California, USA, 2008.1-17.
[8] WONDRACEK G, MILANI P, KRUEGEL C, et al. Automatic network protocol analysis[A]. Proceedings of the 16th Network and Distributed System Security Symposium[C]. California, USA, 2008.1-18.
[9] CUI W, PEINADO M, CHEN K, et al. Tupni: automatic reverse engineering of input formats[A]. Proceedings of the 15th ACM Conference on Computer and Communications Security[C]. Virginia, USA, 2008.391-402.
[10] HAFFNER P, SEN S, SPATSCHECK O, et al. ACAS: automated construction of application signatures[A]. Proceedings of the 2005 ACM SIGCOMM Workshop on Mining Network Data[C]. Pennsylvania, USA, 2005.197-202.
[11] KANNAN J, JUNG J, PAXSON V, et al. Semi-automated discovery of application session structure[A]. Proceedings of the 6th ACM SIGCOMM Conference on Internet Measurement[C]. New York, USA, 2006.119-132.
[12] MA J, LEVCHENKO K, KREIBICH C, et al. Unexpected means of protocol inference[A]. Proceedings of the 6th ACM SIGCOMM Conference on Internet Measurement[C]. Rio de Janeriro, Brazil, 2006.313-326.
[13] CUI W, KANNAN J, WANG H J. Discoverer: automatic protocol reverse engineering from network traces[A]. Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium[C]. Boston,MA, 2007.313-326.
[14] FINAMORE A, MELLIA M, MEO M, et al. KISS: stochastic packet inspection classifier for UDP traffic[J]. IEEE/ACM Transactions on Networking, 2010, 18(5):1505-1515.
[15] MANNING C, SCHUTZE H. Foundations of Statistical Natural Language Processing[M]. MIT Press, 1999.
[16] ANGLUIN D. Queries and concept learning[J]. Machine Learning,1988, 2(4):319-342.
[17] COHN D, ATLAS L, LADNER R. Improving generalization with active learning[J]. Machine Learning, 1994, 15(2):201-221.
[18] LEWIS D, GALE W. A sequential algorithm for training text classifiers[A]. Proceedings of the 17th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval[C].New York, USA, 1994.3-12.
[19] SETTLES B. Active learning literature survey[EB/OL]. http://research.cs.wisc.edu/techreports/2009/TR1648.pdf.
[20] TONG S, KOLLER D. Support vector machine active learning with applications to text classification[J]. Journal of Machine Learning Research, 2002, 2:45-66.
[21] GRINGOLI F, SALGARELLI L, DUSI M, et al. GT: picking up the truth from the ground for internet traffic[J]. SIGCOMM Computer Communication Review, 2009, 39(5):12-18.