1.一種基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,包括以下步驟:
(1)將報(bào)文樣本集按會話劃分成不同的報(bào)文集合,并對每個(gè)報(bào)文集合中的報(bào)文內(nèi)容進(jìn)行劃分,將報(bào)文從報(bào)文負(fù)載開始劃分成多個(gè)域;
(2)對多個(gè)報(bào)文集合從報(bào)文負(fù)載開始,依次按域進(jìn)行序列號的初始識別;
(3)根據(jù)報(bào)文長度的不同或已識別出的格式標(biāo)志位,對經(jīng)步驟(1)劃分后的每個(gè)報(bào)文集合進(jìn)行劃分,使各報(bào)文子集格式相同;
(4)在劃分的格式相同的報(bào)文子集中,對初始識別出的序列號進(jìn)行驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果取消或修正誤判。
2.如權(quán)利要求1所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,步驟(1)又包括以下步驟:
1-1)根據(jù)源IP地址、目的IP地址、源端口號、目的端口號、傳輸層協(xié)議號對報(bào)文樣本集進(jìn)行劃分,確保每個(gè)報(bào)文集合{Pno}均是由同一個(gè)會話產(chǎn)生的,其中no表示報(bào)文集合編號;
1-2)將{Pno}作為根節(jié)點(diǎn)為每個(gè)報(bào)文集合構(gòu)造相應(yīng)的樹形結(jié)構(gòu),并對形成的結(jié)構(gòu)樹T{Pno}中的報(bào)文內(nèi)容進(jìn)行劃分,設(shè)定一個(gè)字節(jié)為一個(gè)域,將報(bào)文從報(bào)文負(fù)載開始依次按字節(jié)進(jìn)行劃分,從而將每個(gè)報(bào)文轉(zhuǎn)換成由多個(gè)域組成的報(bào)文數(shù)組。
3.如權(quán)利要求2所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,步驟(3)又包括以下步驟:
3-1)判斷步驟(1)劃分后的報(bào)文集合是否是變長數(shù)據(jù),若是變長數(shù)據(jù)則按照數(shù)據(jù)長度對報(bào)文集合進(jìn)行劃分,使得各報(bào)文子集均是定長報(bào)文集合,更新并記錄其劃分出的所有報(bào)文子集;
3-2)若步驟(1)劃分后的報(bào)文集合是定長數(shù)據(jù),則判斷在上次報(bào)文劃分位置之后能否尋找到格式標(biāo)志位,若存在則跳轉(zhuǎn)到3-3);否則結(jié)束整個(gè)序列號的判定過程;
3-3)根據(jù)其它相關(guān)信息對報(bào)文集合進(jìn)行劃分,使得各報(bào)文子集格式相同,更新{Pi}結(jié)構(gòu)樹并記錄其劃分出的所有報(bào)文子集。
4.如權(quán)利要求1所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,步驟(2)中,采用改進(jìn)的層次聚類方法合并報(bào)文集合,并從報(bào)文負(fù)載開始,依次按域進(jìn)行序列號識別,若多個(gè)報(bào)文集合的數(shù)據(jù)長度不同,則以最短報(bào)文中包含的域?yàn)榻缫来芜M(jìn)行識別。
5.如權(quán)利要求4所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,所述改進(jìn)的層次聚類方法包括:
2-1)構(gòu)造序列號信息庫,用于存放識別出的序列號信息;
2-2)判斷中同層的報(bào)文集合個(gè)數(shù)set_num,若set_num<2,則對單個(gè)報(bào)文集合內(nèi)的序列號進(jìn)行識別;否則計(jì)算用于表示每對報(bào)文集合合并后各域的序列號判斷結(jié)果的相似度矩陣,其中數(shù)值amn,q表示報(bào)文集合m和報(bào)文集合n合并后第q域的序列號判斷結(jié)果,若為非序列號,則對應(yīng)取值為+∞;否則為序列號信息庫中對應(yīng)的編號;
2-3)在對報(bào)文集合的各域進(jìn)行序列號識別后,若存在相似矩陣,則在相似矩陣中查找所有不為+∞的取值,分別判斷為多報(bào)文集合共用序列號,并將其相關(guān)信息在序列號信息庫進(jìn)行更新;更新相似度矩陣,將共用序列號的報(bào)文集合在矩陣對應(yīng)的行/列進(jìn)行合并;若不存在相似矩陣,結(jié)束序列號的初始識別過程;
2-4)當(dāng)矩陣中全為+∞或全合并成一個(gè)報(bào)文集合時(shí),結(jié)束層次聚類。
6.如權(quán)利要求4所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,每個(gè)域的序列號識別方法是通過識別報(bào)文集合中對應(yīng)域的周期,并根據(jù)單周期或多周期比例識別方法,識別出對應(yīng)的序列號,最后依據(jù)迭代方法識別序列號高位。
7.如權(quán)利要求6所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,識別報(bào)文集合中對應(yīng)域的周期的方法包括:首先,根據(jù)報(bào)文個(gè)數(shù)和域取值個(gè)數(shù)篩選出可識別的域;其次,依次判斷相鄰兩個(gè)報(bào)文對應(yīng)域的差值的正負(fù)狀態(tài)Δ,組成差值狀態(tài)數(shù)組{Δj},其中j為該報(bào)文集合中的報(bào)文序號;再次,識別出|Δj+1-Δj|≠0的報(bào)文作為切分點(diǎn)報(bào)文,根據(jù)切分點(diǎn)將報(bào)文劃分成多個(gè)周期;若無切分點(diǎn)報(bào)文,則認(rèn)為是單周期,無需劃分;
單周期比例識別方法包括:首先,在周期中判斷各非零差值所占的比率(i≠0),其中i為相鄰兩個(gè)報(bào)文對應(yīng)域的差值,Δi_num為對應(yīng)周期中差值為i的個(gè)數(shù),dnum為該周期的報(bào)文個(gè)數(shù);其次,判斷該周期中是否存在滿足下列條件:max{ri}≥μ1的周期差值,max{ri}為差值比率的最大值,μ1為單周期內(nèi)差值比率閾值,若存在則判定該域?yàn)樾蛄刑栍颍駝t判斷該域?yàn)榉切蛄刑栍?,結(jié)束對該域的識別;
多周期比例識別方法包括:首先,在各個(gè)周期中判斷各非零差值所占的比率(i≠0),其中Δi_num為對應(yīng)周期中差值為i的個(gè)數(shù),dnum為該周期的報(bào)文個(gè)數(shù);其次,判斷該周期中是否存在滿足下列條件:max{ri}≥μ2的周期差值,max{ri}為差值比率的最大值,μ2為周期內(nèi)差值比率閾值;若不存在則該周期無周期差值;再次,在所有周期差值中,判斷是否存在滿足下列條件:的周期差值,為周期差值比率的最大值,dcycle_num為該域存在的周期差個(gè)數(shù),di_num為該域周期差值為i的個(gè)數(shù),η為周期間差值比率閾值,若存在則判定該域?yàn)樾蛄刑栍颍駝t判斷該域?yàn)榉切蛄刑栍?,結(jié)束對該域的識別。
8.如權(quán)利要求7所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,步驟(4)又包括:
4-1)針對已識別出的序列號域,采用步驟(2)進(jìn)行重新判斷,同時(shí)將該算法中的μ和η的取值增加j*ζ,即:max{ri}≥μ1+j*ζ;max{ri}≥μ2+j*ζ和且max{μ1+j*ζ,μ2+j*ζ,η+j*ζ}≤Ω,其中j為報(bào)文樣本集劃分的次數(shù),ζ為每次準(zhǔn)確率增加的程度,Ω為保證能避免突變等影響的準(zhǔn)確率閾值;
4-2)若該域被重新判斷為非序列號,則消去該序列號域,跳轉(zhuǎn)到4-4);
4-3)若重新判斷仍為序列號,但序列號差值不符,則更新該序列號域信息,跳轉(zhuǎn)到4-4);
4-4)根據(jù)結(jié)構(gòu)樹找到原序列號對應(yīng)的所有父輩及它們的所有報(bào)文子集,修改對應(yīng)域的序列號層次,使其序列號層次與當(dāng)前報(bào)文子集的層次相同;更新序列號信息庫,并修正原序列號對應(yīng)的報(bào)文集合范圍。
9.如權(quán)利要求6所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,識別序列號高位的方法包括:首先,判斷該序列號左右相鄰的域是否是序列號高位,若判斷該域/位為序列號域,在該域左右相鄰的域中識別2字節(jié)序列號的高位;其次,若判斷該序列號為2字節(jié),則在該域左右相鄰的2個(gè)域中識別4字節(jié)序列號的高位。
10.如權(quán)利要求9所述的基于網(wǎng)絡(luò)報(bào)文的序列號識別方法,其特征在于,2字節(jié)序列號的序列號高位識別方法包括:首先,在序列號的各個(gè)周期中,判斷其左右相鄰的域值是否一致,若不一致則判定該域不是序列號高位,結(jié)束對該域的識別;其次,判斷序列號域數(shù)據(jù)是否存在多個(gè)周期,若為單周期,則判定該域?yàn)樾蛄刑柛呶徊⒔Y(jié)束對該域的識別;再次,判斷多周期間,該域周期差值是否符合序列號高位周期差值規(guī)律,若符合則判定該位為序列號高位,否則不是序列號高位,結(jié)束對該域的識別,序列號高位周期差值規(guī)律是兩周期的周期差值等于周期相差個(gè)數(shù)乘以相鄰周期差值;
4字節(jié)序列號的序列號高位識別方法包括:首先根據(jù)2字節(jié)序列號的高位按周期進(jìn)行劃分;其次,判斷各周期內(nèi)該序列號左右相鄰的2個(gè)域數(shù)據(jù)是否一致,若不一致則判定該域不是序列號高位且該序列號域僅由2字節(jié)組成,結(jié)束對該序列號域的識別;再次,根據(jù)已識別出的序列號域,推斷序列號高位的架構(gòu);將序列號高位中的低位1和序列號低位中的高位2組合起來看作1個(gè)2字節(jié)序列號,調(diào)用2字節(jié)序列號的序列號高位識別方法,對序列號高位中的低位1進(jìn)行判斷,若判斷成功則該低位1存在,否則判定該域?yàn)榉切蛄刑柛呶徊⒔Y(jié)束對該序列號域的識別;最后,將序列號高位看作1個(gè)2字節(jié)序列號,調(diào)用2字節(jié)序列號的序列號高位識別方法,對序列號高位中的高位1進(jìn)行判斷,若判斷成功則該高位1存在,與低位1共同組成序列號高位;否則判定該域?yàn)榉切蛄刑柛呶?,結(jié)束對序列號的識別。