一種基于n-gram多特征的流量載荷類型檢測(cè)方法
【專利摘要】本發(fā)明公開了一種基于n?gram多特征的流量載荷類型檢測(cè)方法。本方法為:1)讀取樣本網(wǎng)絡(luò)流的數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包的按五元組標(biāo)記其所屬的樣本網(wǎng)絡(luò)流;然后計(jì)算該樣本網(wǎng)絡(luò)流五元組的哈希值作為鍵,如果哈希表中不存在該項(xiàng),則將該哈希值作為新的鍵并分配一結(jié)構(gòu)體作為鍵值Value,插入哈希表中;如果存在該鍵,則在哈希表中獲得對(duì)應(yīng)的結(jié)構(gòu)體,將該數(shù)據(jù)包的載荷數(shù)據(jù)保存到該結(jié)構(gòu)體中;2)對(duì)每一結(jié)構(gòu)體中的載荷數(shù)據(jù)進(jìn)行n?gram子串分割,生成該樣本網(wǎng)絡(luò)流的特征向量;3)根據(jù)特征向量訓(xùn)練得到一分類模型;4)對(duì)于待分類的網(wǎng)絡(luò)流,生成該網(wǎng)絡(luò)流的特征向量,然后利用該分類模型判斷該網(wǎng)絡(luò)流的類型。本發(fā)明大大提高了檢測(cè)效率。
【專利說明】
-種基于n-gram多特征的流量載荷類型檢測(cè)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于網(wǎng)絡(luò)流量信息安全領(lǐng)域,設(shè)及一種對(duì)流量按其載荷類型進(jìn)行檢測(cè)的方 法,能夠應(yīng)用于提高網(wǎng)絡(luò)服務(wù)質(zhì)量、優(yōu)化網(wǎng)絡(luò)帶寬分配、加強(qiáng)網(wǎng)絡(luò)安全管理等方面。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的普及和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)流量呈現(xiàn)爆炸式增長,如何高效 地網(wǎng)絡(luò)帶寬規(guī)劃、網(wǎng)絡(luò)入侵檢測(cè)與防御W及流量計(jì)費(fèi),是當(dāng)前網(wǎng)絡(luò)服務(wù)提供商和網(wǎng)絡(luò)管理 者所面臨的挑戰(zhàn)。網(wǎng)絡(luò)流量分類技術(shù)能夠按照網(wǎng)絡(luò)應(yīng)用類型或協(xié)議類型對(duì)流量進(jìn)行分類, 可為上述亟需解決的問題提供重要的技術(shù)支撐。
[0003] 目前已有的網(wǎng)絡(luò)流量分類技術(shù),主要是將網(wǎng)絡(luò)流量分類到具體的網(wǎng)絡(luò)應(yīng)用和網(wǎng)絡(luò) 協(xié)議,方法有4種:基于端口的流量分類方法、基于有效負(fù)載的流量分類方法、基于主機(jī)行為 模式的流量分類方法W及基于機(jī)器學(xué)習(xí)的流量分類方法。
[0004] (1)基于端口的流量分類方法
[0005] 能夠用于高速實(shí)時(shí)流量分類,但是由于隨機(jī)端口 W及端口偽裝技術(shù)的濫用,該方 法已逐漸失效。
[0006] (2)基于有效負(fù)載的流量分類方法
[0007] 在實(shí)際工程中應(yīng)用最為廣泛,主要得益于快速準(zhǔn)確的類字符串指紋匹配算法。但 是由于應(yīng)用協(xié)議指紋的提取只能針對(duì)已知的非加密網(wǎng)絡(luò)應(yīng)用,因此無法處理加密流量或者 其它未知網(wǎng)絡(luò)應(yīng)用的流量。
[000引(3)基于主機(jī)行為模式的流量分類方法
[0009] 該方法具有很強(qiáng)的理論意義,不依賴協(xié)議特征,不需要對(duì)數(shù)據(jù)包進(jìn)行解析,通過主 機(jī)交互的行為信息來識(shí)別網(wǎng)絡(luò)流量,由于模型較為復(fù)雜難W保證實(shí)時(shí)性要求,并且無法精 細(xì)化識(shí)別出應(yīng)用類型。
[0010] (4)基于機(jī)器學(xué)習(xí)的流量分類方法
[0011] 假設(shè)對(duì)于給定的網(wǎng)絡(luò)應(yīng)用,流的行為統(tǒng)計(jì)特征(流間隔、單包字節(jié)長度、相鄰包時(shí) 間間隔等)具有唯一性,可W基于此類特征分類不同網(wǎng)絡(luò)應(yīng)用流量。但缺點(diǎn)是很難找出有效 的特征對(duì)網(wǎng)絡(luò)應(yīng)用或協(xié)議產(chǎn)生的流量進(jìn)行準(zhǔn)確的分類,而且分類過程耗費(fèi)資源較多,應(yīng)用 于在線環(huán)境有一定困難。
[0012] 針對(duì)未知應(yīng)用流量和加密流量的分析和識(shí)別問題,提出了對(duì)流量載荷類型進(jìn)行識(shí) 別與分類,方法主要有W下巧中:
[0013] (1)基于假設(shè)檢驗(yàn)的分類方法
[0014] 該方法主要針對(duì)的是加密流量的識(shí)別,利用加密數(shù)據(jù)的隨機(jī)性特點(diǎn),對(duì)網(wǎng)絡(luò)報(bào)文 逐一實(shí)施累積和檢驗(yàn),根據(jù)報(bào)文長度將結(jié)果進(jìn)行加權(quán)綜合,無需解密操作,也無需匹配特定 內(nèi)容,實(shí)現(xiàn)了對(duì)加密流量的普適識(shí)別.可動(dòng)態(tài)調(diào)整報(bào)文的檢測(cè)數(shù)量,W達(dá)到時(shí)延和準(zhǔn)確率的 統(tǒng)一。缺點(diǎn)是無法應(yīng)用于其他載荷類型的識(shí)別,且容易誤識(shí)別壓縮類型的網(wǎng)絡(luò)流量。
[0015] (2)基于流行為特征的分類方法
[0016] 由于特定加密協(xié)議在連接建立階段交互的報(bào)文,內(nèi)容相似,格式固定,往往具有特 定的流量特征,如報(bào)文長度、報(bào)文到達(dá)時(shí)間等。利用運(yùn)些特定流量特征,借助于機(jī)器學(xué)習(xí)的 方法可實(shí)現(xiàn)對(duì)特定加密協(xié)議的識(shí)別。但是由于加密操作通常不會(huì)明顯改變報(bào)文的長度和到 達(dá)時(shí)間,運(yùn)使得大部分業(yè)務(wù)數(shù)據(jù)使用明文傳輸和使用加密傳輸時(shí)具有相同的流量特征。一 些算法聲稱能夠識(shí)別加密流量,本質(zhì)上是識(shí)別經(jīng)加密傳輸?shù)臉I(yè)務(wù)。例如P2P軟件經(jīng)明文傳輸 和經(jīng)加密傳輸數(shù)據(jù)時(shí),其流量特征相同。無論是否加密傳輸,運(yùn)些算法都能夠識(shí)別其為P2P 業(yè)務(wù)。但是,運(yùn)些算法無法識(shí)別其業(yè)務(wù)流量是否加密。
[0017] (3)基于載荷賭值等統(tǒng)計(jì)特征的分類方法
[0018] 目前已有很多研究者將賭值特征應(yīng)用于載荷類型的分類,并結(jié)合機(jī)器學(xué)習(xí) SVM等 方法,將載荷類型分類為文本、加密、二進(jìn)制等類型,但是W往的運(yùn)類方法采用了較為單一 統(tǒng)計(jì)特征來刻畫不同的載荷類型,并且忽略了子串頻數(shù)分布的"長尾效應(yīng)",導(dǎo)致整體分類 平均準(zhǔn)確率僅在86%左右,個(gè)別類別的準(zhǔn)確甚至低于80%,難W滿足實(shí)際需求。
【發(fā)明內(nèi)容】
[0019]針對(duì)上述已有方法存在的問題,本發(fā)明公開了一種基于n-gram多特征的流量載荷 類型(文本、音頻、視頻、圖片、可執(zhí)行文件、壓縮、加密等)檢測(cè)方法。
[0020] 首先給出本
【發(fā)明內(nèi)容】
設(shè)及的部分定義:
[0021] (1)定義l:n-gram連續(xù)子串集合指的是W長度為η的滑動(dòng)窗口分割原串得到的子 串集合,運(yùn)里的原串指的是載荷內(nèi)容;
[0022] 例如,原串為"alAcccde妃',η = 2時(shí),滑動(dòng)窗口如圖1,得到2-gram子串集合:
[0023] S2= {ab,t)b,bc,cc,cc,cd,de,ef ,fg}
[0024] (2)定義2:高頻連續(xù)子串集合指的是對(duì)n-gram連續(xù)子串集合去重,并統(tǒng)計(jì)各個(gè)子 串的頻數(shù),由頻數(shù)超過闊值k的子串所構(gòu)成的集合;
[002引例如,η = 2,k = 1時(shí),高頻連續(xù)子串集合,即超過闊值1的2-gram連續(xù)子串集合為:
[0026] S ' 2,1 = {ab, t)b, be, CC, cd, de, ef, f g}
[0027] (3)定義3:連續(xù)相同字符子串集合指的是由形如"bb","ccc"運(yùn)樣僅包含一種字符 的連續(xù)子串所構(gòu)成的集合;
[0028] 本發(fā)明具體步驟包括:
[0029] (1)初始化參數(shù):Payload結(jié)構(gòu)體置0,Payload結(jié)構(gòu)體中包括分別緩存對(duì)應(yīng)網(wǎng)絡(luò)流 已經(jīng)接收的載荷數(shù)據(jù)payloadjxiff,pa^oatbuff中接收的載荷數(shù)據(jù)長度payloatlen和 已經(jīng)處理的數(shù)據(jù)包數(shù)pkt_num;Payload_ft結(jié)構(gòu)體置0,用于保存對(duì)每條網(wǎng)絡(luò)流提取的載荷 特征;設(shè)置方法全局參數(shù)max_payload_len,表示接收每條流載荷數(shù)據(jù)的最大長度;設(shè)置 min_payload_len,表示用于提取載荷特征的最小數(shù)據(jù)長度;設(shè)置heatlen,表示數(shù)據(jù)包協(xié) 議頭估計(jì)的長度;設(shè)置max_packet_num,表示用于采集載荷特征的最大包數(shù);設(shè)置最大高頻 子串頻數(shù)闊值K,設(shè)置最大n-gram最大窗口長度闊值N; train_f lag初始置為true,表示先進(jìn) 入分類模型的訓(xùn)練階段,在模型訓(xùn)練完成后置為化Ise,進(jìn)入在線分類階段;
[0030] Payload 結(jié)構(gòu)體為:
[0034] (2)設(shè)置train_flag為化ue,進(jìn)入模型的訓(xùn)練階段,輸入已知載荷類型的樣本網(wǎng)絡(luò) 流量;
[0035] (3)讀取數(shù)據(jù)包并進(jìn)行流重組:讀取網(wǎng)絡(luò)流量中的數(shù)據(jù)包,按五元組(源IP、目的 IP、源端口、目的端口、TCP/UDP)標(biāo)記該數(shù)據(jù)包所屬的網(wǎng)絡(luò)流,計(jì)算該網(wǎng)絡(luò)流五元組的哈希 值,作為鍵Key,在哈希表中查找,如果不存在該項(xiàng),則W該哈希值作為新的鍵Key,為該網(wǎng)絡(luò) 流分配一新的化yload結(jié)構(gòu)體作為鍵值Value,插入哈希表中;如果哈希表中存在該項(xiàng),則進(jìn) 行步驟4);
[0036] (4)根據(jù)數(shù)據(jù)包的五元組計(jì)算得到的哈希值作為鍵Key,在哈希表中獲得對(duì)應(yīng)的 Payload結(jié)構(gòu)體,跳過數(shù)據(jù)包開始位置head_len長度后,將之后的載荷數(shù)據(jù)保存進(jìn)化yload 中,并將該流已處理數(shù)據(jù)包數(shù)pkt_num加1,直至達(dá)到max_payload_len長度,轉(zhuǎn)入步驟(5); 如果當(dāng)前處理的數(shù)據(jù)包數(shù)超過max_packe t_num,且pa}d oad_l en不小于min_pa}d oad_l en則 轉(zhuǎn)入步驟(5);如果當(dāng)前處理的數(shù)據(jù)包是該流最后一個(gè)數(shù)據(jù)包,且payloa^len不小于min_ pa}doad_len,則轉(zhuǎn)入步驟(5),如果該網(wǎng)絡(luò)流處理完畢后的pa}doad_len小于min_payload_ len,則不對(duì)該流進(jìn)行后續(xù)特征提取,并將該流移除哈希表;繼續(xù)執(zhí)行步驟(3);
[0037] (5)若train_flag為true,則執(zhí)行步驟(6),否則執(zhí)行步驟(9);
[0038] (6)對(duì)流的載荷數(shù)據(jù)進(jìn)行n-gram子串分割,取[1,N]間各個(gè)不同值η作為滑動(dòng)窗口 大小,分割原載荷數(shù)據(jù),得到n-gram連續(xù)子串集合W及形如"bb","CCC"運(yùn)樣僅包含一種字 符的連續(xù)相同字符子串集合;
[0039] (7)統(tǒng)計(jì)n-gram連續(xù)子串集合中各項(xiàng)的頻數(shù),取[1,Κ]間各個(gè)不同值k作為頻數(shù)闊 值,過濾n-gram連續(xù)子串集合,得到高頻連續(xù)子串集合;
[0040] (8)對(duì)步驟(6)中得到連續(xù)相同字符子串集合和步驟(7)中的高頻連續(xù)子串集合提 取如下統(tǒng)計(jì)特征,完成后轉(zhuǎn)入步驟(10):
[0041] (8.1)提取高頻連續(xù)子串集合的統(tǒng)計(jì)特征:頻數(shù)超過闊值k的不同元素種數(shù)mn,k、元 素巧大頻數(shù)mfn,k、均值meann,k、方差dn,k、f曰息賄hn,k;
[0042 ] (8.2)提取連續(xù)相同字符子串集合的統(tǒng)計(jì)特征:連續(xù)相同字符子串的數(shù)量sc_num、 連續(xù)相同字符子串的種數(shù)sc_diff_num、最大連續(xù)相同字符子串的長度sc_max_len、連續(xù)相 同字符子串的平均長度sc_mean_len;
[0043] (9)根據(jù)步驟(11)中分類特征集,對(duì)流載荷數(shù)據(jù)進(jìn)行n-gram子串分割,并提取對(duì)應(yīng) 特征,構(gòu)造每條流的特征向量;轉(zhuǎn)入步驟(10);
[0044] (10)對(duì)除信息賭W外的其他特征均進(jìn)行取對(duì)數(shù)處理,如方差特征山,1對(duì)數(shù)處理后 為log(di,i),將步驟(8)各個(gè)特征表示成該流的特征向量;
[0045] (11)若化ain_flag為化ue,并且數(shù)據(jù)包尚未讀完,則轉(zhuǎn)入步驟(3),如果數(shù)據(jù)包已 讀完則標(biāo)識(shí)各流特征向量的載荷類型,并利用卡方檢驗(yàn)和信息增益的方法對(duì)所有樣本網(wǎng)絡(luò) 流的特征向量計(jì)算得分并排序,按從前往后的順序,依次選擇排在兩種方法前10的特征作 為分類特征集(共選擇10個(gè)特征)作為對(duì)應(yīng)網(wǎng)絡(luò)流的分類特征集,轉(zhuǎn)入步驟(12);若train, flag為false則轉(zhuǎn)入步驟(13);
[0046] (12)利用C4.5決策樹作為分類模型,用步驟(11)中的分類特征集構(gòu)造訓(xùn)練樣本, 得到C4.5分類模型;對(duì)C4.5分類模型中的分類規(guī)則,轉(zhuǎn)換成IF-ELSE規(guī)則;轉(zhuǎn)入步驟(14);
[0047] (13)根據(jù)步驟(12)中的IF-化SE規(guī)則,判斷特征向量的對(duì)應(yīng)的載荷類型,輸出網(wǎng)絡(luò) 流的載荷類型,轉(zhuǎn)入步驟(3);
[004引(14)設(shè)置train_flag為化Ise,輸入需要分類的網(wǎng)絡(luò)流量,轉(zhuǎn)入步驟(3)。
[0049] 與已公開的方法相比,本發(fā)明具有如下優(yōu)點(diǎn):
[0050] (1)只需要提取網(wǎng)絡(luò)流前若干包的載荷特征信息,分類速度較快且只需要使用每 條流少量的載荷內(nèi)容,占用內(nèi)存較?。?br>[0051] (2)支持對(duì)多種載荷類型進(jìn)行分類,包括文本、音頻、視頻、圖片、可執(zhí)行文件、壓 縮、加密等;
[0052] (3)對(duì)載荷內(nèi)容進(jìn)行n-gram分割,并在利用闊值篩選后的高頻子串集合上提取有 效特征,相比已有方法具有更高的分類準(zhǔn)確率和召回率;
[0053] (4)具有靈活的參數(shù)設(shè)置,可W設(shè)置提取特征的載荷內(nèi)容的長度、數(shù)據(jù)包頭部長 度、載荷最小長度等,在性能和分類效果之間做出平衡;
[0054] (5)可W根據(jù)給定的載荷類型及已有數(shù)據(jù)集,調(diào)整所使用的特征集合,獲得更好的 分類效果。
【附圖說明】
[0055] 圖1為長度為2的滑動(dòng)窗口;
[0056] 圖2為基于n-gram的載荷特征提取示意圖;
[0057] 圖3為基于n-gram多特征的流量分類流程圖。
【具體實(shí)施方式】
[0058] 下面,結(jié)合具體的實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。圖2是對(duì)載荷數(shù)據(jù)進(jìn)行n-gram特 征提取的示意圖,對(duì)應(yīng)步驟(6)至步驟(10),圖3是基于n-gram多特征的載荷類型分類方法 流程圖。
[0059] (1)初始化參數(shù):Payload結(jié)構(gòu)體置0,用于緩存已經(jīng)接收的載荷數(shù)據(jù)payloacL buff,接收的數(shù)據(jù)長度payload_len和已經(jīng)處理的數(shù)據(jù)包數(shù)pkt_num;Payload_ft結(jié)構(gòu)體置 0,用于保存提取的載荷特征;設(shè)置max_payload_len,表示接收每條流載荷數(shù)據(jù)的最大長 度;設(shè)置min_pay load_l en,表示用于提取載荷特征的最小數(shù)據(jù)長度;設(shè)置head_len,表示數(shù) 據(jù)包協(xié)議頭估計(jì)的長度;設(shè)置max_packet_num,表示用于采集載荷特征的最大包數(shù);設(shè)置最 大高頻子串頻數(shù)闊值K,設(shè)置最大n-gram最大窗口長度闊值N;化ain_flag置為化ue,表示需 要進(jìn)行分類模型的訓(xùn)練;
[0060] (2)輸入已知載荷類型的樣本網(wǎng)絡(luò)流量,設(shè)置train_f lag為true;
[0061] (3)讀取數(shù)據(jù)包并進(jìn)行流重組,按五元組(源IP、目的IP、源端口、目的端口、TCP/ UDP)標(biāo)記每條網(wǎng)絡(luò)流,對(duì)每條新網(wǎng)絡(luò)流W五元組的哈希值作為Key,化yload結(jié)構(gòu)體作為 化lue,插入化shMap中;
[0062] (4)逐個(gè)處理每個(gè)數(shù)據(jù)包,計(jì)算數(shù)據(jù)包的五元組的哈希值,從化shMap中獲得 Pay load結(jié)構(gòu)體,g兆過head_len將剩余的載荷數(shù)據(jù)保存進(jìn)化y load中,并將該流已處理數(shù)據(jù) 包數(shù)地t_num加1,直至達(dá)到max_pay 1 oad_len長度,轉(zhuǎn)入步驟(5);如果當(dāng)前處理的數(shù)據(jù)包數(shù) 超過max_packet_num,且payload_len不小于min_payload_len則轉(zhuǎn)入步驟巧);如果當(dāng)前處 理的數(shù)據(jù)包是該流最后一個(gè)數(shù)據(jù)包或達(dá)到流重組超時(shí)時(shí)間,且payloacLlen不小于min_ 口曰5^1〇日(1_16]1,則轉(zhuǎn)入步驟(;5),如果9日5^1〇日(1_16]1小于111;[]1_9日71〇日(1_16]1,則不對(duì)該流進(jìn)行后 續(xù)特征提取,并將該流移除化shMap;繼續(xù)執(zhí)行步驟(3);
[0063] (5)若train_flag為true,則執(zhí)行步驟(6),否則執(zhí)行步驟(9);
[0064] (6)對(duì)流的載荷數(shù)據(jù)B進(jìn)行n-gram子串分割,取[1,N]間各個(gè)不同值η作為滑動(dòng)窗口 大小,分割原載荷數(shù)據(jù),得到n-gram連續(xù)子串集合Sn= {si,S2,S3,. . .,si,. . .,SL-n+i},L表示 載荷數(shù)據(jù)B的長度;同時(shí)得到形如"bb","ccc"運(yùn)樣僅包含一種字符的連續(xù)相同字符子串集 合;
[0065] 舉例如下:
[0066] 原串為"alAcccdefg",n = 2時(shí),滑動(dòng)窗口如圖1,得到2-gram子串集合:
[0067] S2= {ab,t)b,bc,cc,cc,cd,de,ef ,fg};
[0068] (7)統(tǒng)計(jì)n-gram連續(xù)子串集合Sn中各項(xiàng)的頻數(shù),取[1,Κ]間各個(gè)不同值k作為頻數(shù) 闊值,過濾n-gram連續(xù)子串集合,得到高頻連續(xù)子串集合S ' η, k;
[0069] S n,k 二{s l,k,S 2,k,S 3,k,...,S m,k},k二1,2,3,...,Κ
[0070] k表示給定的頻數(shù)闊值,m表示頻數(shù)不小于闊值k的不重復(fù)元素的個(gè)數(shù);
[0071]
用|s'i,k|表示元素 S'i,k的頻數(shù),|S'n,k|表示集合S'n,k中所有元素的總頻數(shù),貝U
[0072] 例如,載荷內(nèi)容為"a化cccdefg",取n = 2,可W劃分成2-gram連續(xù)子串集合S2 = (ab,bb,bc,cc,cc,cd,de,ef,fg};
[0073] 當(dāng)k = l時(shí),得到S'2,l={ab,t)b,bc,cc,cd,de,ef,fg},|S'2,l|=9;
[0074] 當(dāng)4 = 2時(shí),得到5'2,2=山。},|5'2,2|=2;
[0075] (8)對(duì)步驟(6)中得到連續(xù)相同字符子串集合和步驟(7)中的高頻連續(xù)子串集合提 取如下統(tǒng)計(jì)特征,完成后轉(zhuǎn)入步驟(10):
[0076] (8.1)提取高頻連續(xù)子串集合的統(tǒng)計(jì)特征:
[0077] 頻數(shù)超過闊值k的不同元素種數(shù):mn,k=m;
[0078] 元素最大頻數(shù):mfn,k=max( I s'i,k| ),i = l,2, . . .,m,反映了頻數(shù)分布的峰值;
[0079] 均隹
反映了連續(xù)字符集合Sn的各元素頻數(shù)大小的平均水平;
[0080] 方差
反映了數(shù)據(jù)偏離均值的分散程度;
[0081] 信息賭
I反映了系統(tǒng)的混亂程度,它與元素個(gè)數(shù)和每個(gè)元 素的頻數(shù)大小都相關(guān);
[0082 ] (8.2)提取連續(xù)相同字符子串集合的統(tǒng)計(jì)特征:
[0083] 連續(xù)相同字符子串的數(shù)量sc_mim:所有連續(xù)相同字符子串出現(xiàn)的總數(shù);
[0084] 連續(xù)相同字符子串的種數(shù)sc_diff_num:所有出現(xiàn)過的不同種類(構(gòu)成子串的字符 不同或者子串長度不同)的連續(xù)相同字符子串的數(shù)量;
[0085] 最大連續(xù)相同字符子串的長度sc_max_len:出現(xiàn)過的連續(xù)相同字符子串的最大長 度;
[0086] 連續(xù)相同字符子串的平均長度sc_mean_len:出現(xiàn)過的所有連續(xù)相同字符子串的 總長度除Wsc_mim得到的結(jié)果;
[0087] (9)根據(jù)步驟(11)中分類特征集,對(duì)流載荷數(shù)據(jù)進(jìn)行n-gram子串分割,并提取對(duì)應(yīng) 特征,轉(zhuǎn)入步驟(10);
[0088] (10)對(duì)除信息賭W外的其他特征均進(jìn)行取對(duì)數(shù)處理,如方差特征山,1對(duì)數(shù)處理后 為log (di, 1 ),將各個(gè)特征表示成每條流的特征向量:
[0089] (sc_num, . . . ,sc_mean_len,mi,i,...山,1, . . . ,mn'k, . . . ,hn'k)
[0090] 其中,n = l,2,3. . .,N,k = l,2,3,. . .,Κ;
[0091] (11)若化ain_flag為化ue,并且數(shù)據(jù)包尚未讀完,則轉(zhuǎn)入步驟(3),如果數(shù)據(jù)包已 讀完則標(biāo)識(shí)各流特征向量的載荷類型,并利用卡方檢驗(yàn)和信息增益的方法綜合選擇排在前 10的特征作為分類特征集,轉(zhuǎn)入步驟(12);若train_flag為化Ise則轉(zhuǎn)入步驟(13);
[0092] (12)利用C4.5決策樹作為分類模型,用步驟(11)中的分類特征集構(gòu)造訓(xùn)練樣本, 得到C4.5分類模型;對(duì)C4.5分類模型中的分類規(guī)則,轉(zhuǎn)換成IF-ELSE規(guī)則;轉(zhuǎn)入步驟(14); [0093 ] (13)根據(jù)步驟(12)中的IF-ELSE規(guī)則,判斷特征向量的對(duì)應(yīng)的載荷類型,輸出網(wǎng)絡(luò) 流的載荷類型,轉(zhuǎn)入步驟(3);
[0094] (14)設(shè)置train_flag為化Ise,輸入需要分類的網(wǎng)絡(luò)流量,轉(zhuǎn)入步驟(3)。
【主權(quán)項(xiàng)】
1. 一種基于n-gram多特征的流量載荷類型檢測(cè)方法,其步驟為: 1) 讀取所選已知載荷類型的各樣本網(wǎng)絡(luò)流的數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包的按五元組標(biāo)記其 所屬的樣本網(wǎng)絡(luò)流;然后計(jì)算該樣本網(wǎng)絡(luò)流五元組的哈希值作為鍵Key,根據(jù)該鍵Key在哈 希表中查找,如果不存在該項(xiàng),則將該哈希值作為新的鍵Key,為該樣本網(wǎng)絡(luò)流分配一 Payload結(jié)構(gòu)體作為鍵值Value,插入哈希表中;如果存在該鍵Key,則在哈希表中獲得對(duì)應(yīng) 的Pay load結(jié)構(gòu)體,將該數(shù)據(jù)包的載荷數(shù)據(jù)保存到該P(yáng)ay load結(jié)構(gòu)體中; 2) 對(duì)步驟1)得到的每一Pay load結(jié)構(gòu)體:對(duì)Pay load結(jié)構(gòu)體中的載荷數(shù)據(jù)進(jìn)行n-gram子 串分割,得到該P(yáng)ay load結(jié)構(gòu)體對(duì)應(yīng)樣本網(wǎng)絡(luò)流的連續(xù)相同字符子串集合和n-gram連續(xù)子 串集合,然后統(tǒng)計(jì)該n-gram連續(xù)子串集合中各項(xiàng)的頻數(shù),得到一高頻連續(xù)子串集合;然后從 該連續(xù)相同字符子串集合、高頻連續(xù)子串集合中提取該樣本網(wǎng)絡(luò)流的統(tǒng)計(jì)特征,生成該樣 本網(wǎng)絡(luò)流的特征向量; 3) 根據(jù)步驟2)得到的特征向量,訓(xùn)練得到一分類模型; 4) 對(duì)于待分類的網(wǎng)絡(luò)流,生成該網(wǎng)絡(luò)流的特征向量,然后利用該分類模型判斷該網(wǎng)絡(luò) 流的類型。2. 如權(quán)利要求1所述的方法,其特征在于,該P(yáng)ay load結(jié)構(gòu)體中包括用于存儲(chǔ)已接收載 荷數(shù)據(jù)的字段payload_buff、已接收的載荷數(shù)據(jù)長度的字段payload_len和數(shù)據(jù)包數(shù)pkt_ num〇3. 如權(quán)利要求1或2所述的方法,其特征在于,步驟1)中,將該數(shù)據(jù)包的載荷數(shù)據(jù)保存到 該P(yáng)ay load結(jié)構(gòu)體時(shí),將該P(yáng)ay load結(jié)構(gòu)體的已處理數(shù)據(jù)包數(shù)pkt_num加1。4. 如權(quán)利要求3所述的方法,其特征在于,如果該P(yáng)ayload結(jié)構(gòu)體的載荷數(shù)據(jù)長度 pay 1 oad_len達(dá)到設(shè)定的最大長度max_pay 1 oad_len,轉(zhuǎn)入步驟2)。5. 如權(quán)利要求3所述的方法,其特征在于,如果該P(yáng)ay load結(jié)構(gòu)體已接收的數(shù)據(jù)包數(shù)超 過設(shè)定的最大包數(shù)max_packet_num,且payload_len不小于設(shè)定的最小數(shù)據(jù)長度min_ payload_len則轉(zhuǎn)入步驟2)。6. 如權(quán)利要求3所述的方法,其特征在于,如果該P(yáng)ay load結(jié)構(gòu)體當(dāng)前處理的數(shù)據(jù)包是 對(duì)應(yīng)樣本網(wǎng)絡(luò)流最后一個(gè)數(shù)據(jù)包或達(dá)到設(shè)定的流重組超時(shí)時(shí)間,且payl〇ad_len不小于設(shè) 定的最小數(shù)據(jù)長度min_payload_len,則轉(zhuǎn)入步驟2)。7. 如權(quán)利要求3所述的方法,其特征在于,如果該P(yáng)ay load結(jié)構(gòu)體對(duì)應(yīng)的樣本網(wǎng)絡(luò)流處 理完畢后的payload_len小于設(shè)定的最小數(shù)據(jù)長度min_payload_len,則將該樣本網(wǎng)絡(luò)流移 除哈希表。8. 如權(quán)利要求1所述的方法,其特征在于,對(duì)Pay load結(jié)構(gòu)體中的載荷數(shù)據(jù)進(jìn)行n-gram 子串分割的方法為:取[1,N]間各個(gè)不同值η作為滑動(dòng)窗口大小,分割原載荷數(shù)據(jù),得到n-gram連續(xù)子串集合以及連續(xù)相同字符子串集合。9. 如權(quán)利要求1所述的方法,其特征在于,從高頻連續(xù)子串集合中提取的統(tǒng)計(jì)特征包 括:頻數(shù)超過閾值k的不同元素種數(shù)mn, k、元素最大頻數(shù)mf n, k、均值meann, k、方差dn, k、信息熵 hn,k;從連續(xù)相同字符子串集合中提取的統(tǒng)計(jì)特征包括:連續(xù)相同字符子串的數(shù)量sc_num、 連續(xù)相同字符子串的種數(shù)sc_diff_num、最大連續(xù)相同字符子串的長度 SC_maX_len、連續(xù)相 同字符子串的平均長度sc_mean_len。10. 如權(quán)利要求1所述的方法,其特征在于,訓(xùn)練得到該分類模型的方法為:首先利用卡 方檢驗(yàn)和信息增益的方法對(duì)各樣本網(wǎng)絡(luò)流的特征向量計(jì)算得分并排序,為各樣本網(wǎng)絡(luò)流選 取若干特征作為對(duì)應(yīng)樣本網(wǎng)絡(luò)流的分類特征集;然后利用決策樹作為分類模型,用該分類 特征集構(gòu)造訓(xùn)練樣本,得到分類模型。
【文檔編號(hào)】H04L12/26GK105871619SQ201610240406
【公開日】2016年8月17日
【申請(qǐng)日】2016年4月18日
【發(fā)明人】庹宇鵬, 張永錚, 常鵬
【申請(qǐng)人】中國科學(xué)院信息工程研究所