本發(fā)明涉及網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域:
,具體而言,涉及一種網(wǎng)絡(luò)協(xié)議識別方法。
背景技術(shù):
:隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)流量激增,這些流量中不僅包含了已知網(wǎng)絡(luò)協(xié)議,還包含了大量的未知網(wǎng)絡(luò)協(xié)議流量,面對這些大量的數(shù)據(jù)流量時,需要分別進行識別。現(xiàn)有的針對已知網(wǎng)絡(luò)協(xié)議的識別方法,大多分為兩類:一類是是基于端口進行的,但是端口識別法會出現(xiàn)大量誤報漏報的情況;另一類是基于單個數(shù)據(jù)包進行字符串匹配的方式,這種方式需要人為不斷收集樣本和不斷更新協(xié)議庫,工作量很大。而現(xiàn)有針對未知網(wǎng)絡(luò)協(xié)議識別的方法,大多基于機器學習的,這些方法或者采用了非監(jiān)督機器學習,或者采用了監(jiān)督機器學習,要么無法準確分類,要么依賴大量標定數(shù)據(jù)集,另一方面,這些方法大多是基于整個流的協(xié)議匹配,這種誤報比較少,但是識別速度無法滿足未知網(wǎng)絡(luò)協(xié)議實時識別的要求。綜上所述,現(xiàn)有技術(shù)中對采用同一種方式來識別現(xiàn)有網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議的研究較少,且現(xiàn)有技術(shù)都需要人為的進行收集大量樣本和分析,并更新協(xié)議庫。因此我們需要一種技術(shù)能夠同時識別已知網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議,并且能夠自適應的去更新協(xié)議庫,提高未知網(wǎng)絡(luò)協(xié)議的識別率和識別速度,做到對網(wǎng)絡(luò)協(xié)議的實時識別。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于提供一種網(wǎng)絡(luò)協(xié)議識別方法,能夠同時識別已知網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議,并且能夠自適應的去更新協(xié)議庫,提高未知網(wǎng)絡(luò)協(xié)議的識別率和識別速度。為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:一種網(wǎng)絡(luò)協(xié)議識別方法,所述方法包括:獲取在傳輸網(wǎng)絡(luò)數(shù)據(jù)時同一會話開始時的多個數(shù)據(jù)包作為待識別網(wǎng)絡(luò)數(shù)據(jù)包;將所述待識別網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造成網(wǎng)絡(luò)協(xié)議模型;將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,其中已知網(wǎng)絡(luò)協(xié)議模型庫中模型是由已知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的;如果與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配成功,則所述網(wǎng)絡(luò)協(xié)議模型為已知網(wǎng)絡(luò)協(xié)議模型;如果與已知網(wǎng)絡(luò)協(xié)議模型庫中所有模型匹配失敗,則所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議模型,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中已有模型進行匹配,并采用未知網(wǎng)絡(luò)協(xié)議更新策略對未知網(wǎng)絡(luò)協(xié)議模型庫進行更新,其中未知網(wǎng)絡(luò)協(xié)議模型庫中模型是由未知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的。本發(fā)明提供的網(wǎng)絡(luò)協(xié)議識別方法,采用同一套網(wǎng)絡(luò)協(xié)議識別算法,能夠同時識別已知網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議,并通過獨特的網(wǎng)絡(luò)協(xié)議模型構(gòu)造方法和更新策略能夠自適應的去更新網(wǎng)絡(luò)協(xié)議模型庫,提高未知網(wǎng)絡(luò)協(xié)議的識別率和識別速度,做到對網(wǎng)絡(luò)協(xié)議的實時識別。為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。附圖說明為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢將更加清晰。在全部附圖中相同的附圖標記指示相同的部分。并未刻意按實際尺寸等比例縮放繪制附圖,重點在于示出本發(fā)明的主旨。圖1示出了本發(fā)明實施例提供的一種網(wǎng)絡(luò)協(xié)議識別方法的流程圖;圖2示出了本發(fā)明實施例提供的一種網(wǎng)絡(luò)協(xié)議模型構(gòu)造方法的流程圖;圖3示出了本發(fā)明實施例提供的一種將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配方法的流程圖;圖4示出了本發(fā)明實施例提供的一種將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配并更新未知網(wǎng)絡(luò)協(xié)議模型庫方法的流程圖;圖5示出了本發(fā)明實施例提供的另一種將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配并更新未知網(wǎng)絡(luò)協(xié)議模型庫方法的流程圖;圖6示出了本發(fā)明實施例提供的另一種網(wǎng)絡(luò)協(xié)議識別方法的流程圖。具體實施方式下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。參閱圖1,本發(fā)明實施例提供的一種網(wǎng)絡(luò)協(xié)議識別的方法,所述方法包括:步驟S101,獲取在傳輸網(wǎng)絡(luò)數(shù)據(jù)時的同一會話開始時的多個數(shù)據(jù)包作為待識別網(wǎng)絡(luò)數(shù)據(jù)包;步驟S102,將所述待識別網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造成網(wǎng)絡(luò)協(xié)議模型;步驟S103,將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,其中已知網(wǎng)絡(luò)協(xié)議模型庫中模型是由已知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的;步驟S104,判斷將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中已有模型是否匹配成功;步驟S105,如果與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配成功,則所述網(wǎng)絡(luò)協(xié)議模型為已知網(wǎng)絡(luò)協(xié)議模型;步驟S106,如果與已知網(wǎng)絡(luò)協(xié)議模型庫中所有模型匹配失敗,則所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議模型,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中已有模型進行匹配,并采用未知網(wǎng)絡(luò)協(xié)議更新策略對未知網(wǎng)絡(luò)協(xié)議模型庫進行更新,其中未知網(wǎng)絡(luò)協(xié)議模型庫中模型是由未知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的。本實施例提供的網(wǎng)絡(luò)協(xié)議識別方法中,通過采用相同的網(wǎng)絡(luò)協(xié)議模型構(gòu)造方法對已知網(wǎng)絡(luò)協(xié)議和未知網(wǎng)絡(luò)協(xié)議進行模型構(gòu)造,能夠在同一機制下統(tǒng)一識別已知網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議,并且通過不斷的匹配和更新協(xié)議模型,能夠自適應的去更新協(xié)議庫,提高未知網(wǎng)絡(luò)協(xié)議的識別率和識別速度。參閱圖2,本發(fā)明實施例提供的一種網(wǎng)絡(luò)協(xié)議模型構(gòu)造的方法,所述方法包括:步驟S201,人工指定至少一個構(gòu)造所述網(wǎng)絡(luò)協(xié)議模型所需的模型屬性參數(shù);步驟S202,根據(jù)所述待識別網(wǎng)絡(luò)數(shù)據(jù)包,計算所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)對應的頻率分布,各個頻率分布共同構(gòu)成了所述網(wǎng)絡(luò)協(xié)議模型。例如,假設(shè)指定的網(wǎng)絡(luò)協(xié)議模型所需的模型屬性參數(shù)為以下兩個參數(shù):(1)一個TCP鏈接的前8個包的前四次變化時的每個方向發(fā)送的字節(jié)數(shù);(2)一個TCP鏈接的前5個包的字符出現(xiàn)頻率。首先計算第一個模型參數(shù)的頻率分布,即一個TCP鏈接的前8個包的前四次變化時的每個方向發(fā)送的字節(jié)數(shù)的頻率分布。需要注意的是,如果此TCP鏈接中前8個包中不止包含四次方向的變化,則只記錄前四次方向變化的的統(tǒng)計值;如果此TCP鏈接中前8個包中不足包含四次方向的變化,則記錄實際方向變化的情況的統(tǒng)計值。假設(shè)前8個包中有四次方向的變化,每次方向改變時,前一個傳輸方向上的傳輸?shù)目傋止?jié),記做NumOfByte,假設(shè)分別為:65,128,257,300。將第每次變化時所對應的總字節(jié)數(shù)除以64,即NNumOfByte/64,得出結(jié)果記為ChunkNum。此時求出前四次變化所對應的ChunkNum分別為1,2,4,4。將前四次方向變化的索引記為IndexDirection,IndexDirection的取值為00,01,10,11,表示四次變化。將ChunkNum與IndexDirection組成一個8比特無符號整數(shù),記為IndexADB,作為對應的輸出,其中低六位表示ChunkNum,高2位表示其對應的變化索引IndexDirection。根據(jù)此規(guī)則,求出前四次方向變化對應的IndexADB,如下表所示,分別為:1,66,132,196。初始化一個容量為256,初始值全為0的統(tǒng)計數(shù)組,如下表所示:012…66…132…196…255000…0…0…0…0此時,更新統(tǒng)計數(shù)組,將數(shù)組索引為1,66,132,196對應的值加1,如下表所示:012…66…132…196…255010…1…1…1…0其對應的頻率數(shù)組為:012…66…132…196…25500.250…0.25…0.25…0.25…0即網(wǎng)絡(luò)協(xié)議模型的第一個模型參數(shù)的頻率分布:一個TCP鏈接的前8個包的前四次變化時的每個方向發(fā)送的字節(jié)數(shù)對應的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A1={1,66,132,196},B1=U-A1。其次,計算第二個模型參數(shù)的頻率分布,一個TCP鏈接的前5個包的字符出現(xiàn)頻率的頻率分布。假設(shè)一個TCP鏈接的前5個包中所攜帶載荷以字符串表示分別為:“AAA”,“BBB”,“CCC”,“DDD”,“EEE”。統(tǒng)計這前5個包中的字符出現(xiàn)的頻率,其中A出現(xiàn)3次,B出現(xiàn)了3次,C出現(xiàn)了3次,D出現(xiàn)了3次,E出現(xiàn)了3次,而A,B,C,D,E分別對應的ASCII碼分別為:65,66,67,68,69。初始化一個容量為256,初始值全為O的統(tǒng)計數(shù)組,如下袁所示:012…66…132…196…255000…0…0…0…0此時,更新統(tǒng)計數(shù)組,將數(shù)組索引為65,66,67,68,69對應的值加上對應出現(xiàn)的次數(shù),這樣統(tǒng)計數(shù)組如下表所示:012…6566676869…255000…33333…0其對應的頻率數(shù)組為:012…6566676869…255000…0.20.20.20.20.2…0即網(wǎng)絡(luò)協(xié)議模型的第二個模型參數(shù)的頻率分布:一個TCP鏈接的前5個包的字符出現(xiàn)頻率的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A2={65,66,67,68,69},B2=U-A2。此時,所述網(wǎng)絡(luò)協(xié)議模型由這兩個模型參數(shù)的頻率分布共同構(gòu)成。通過這種方法可以統(tǒng)一的對已知網(wǎng)絡(luò)協(xié)議和未知網(wǎng)絡(luò)協(xié)議構(gòu)造協(xié)議模型,統(tǒng)一的對已知網(wǎng)絡(luò)協(xié)議和未知網(wǎng)絡(luò)協(xié)議進行識別。參閱圖3,本發(fā)明實施例提供的一種將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配的方法,所述方法包括:步驟S301,將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中的模型按照從頭到尾的順序逐一進行匹配;步驟S302,將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與已知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應的各個屬性參數(shù)的頻率分布計算KL距離,并對所有KL距離求和;步驟S303,如果所述KL距離之和小于預設(shè)的第一距離閾值,則認為匹配成功,即認為該待識別網(wǎng)絡(luò)數(shù)據(jù)包為已知網(wǎng)絡(luò)協(xié)議;步驟S304,如果所述KL距離之和大于等于預設(shè)的第一距離閾值,則認為匹配失?。徊襟ES305,如果匹配失敗,判斷是否匹配到已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型;步驟S306,如果是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則結(jié)束匹配,所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議;步驟S307,如果不是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則繼續(xù)匹配。例如,假設(shè)當前從已知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型如下所示,包含兩個模型參數(shù)的頻率分布,第一個模型參數(shù)為:一個TCP鏈接的前8個包的前四次變化時的每個方向發(fā)送的字節(jié)數(shù),對應的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A1={2,66},B1=U-A1。第二個模型參數(shù)為:一個TCP鏈接的前5個包的字符出現(xiàn)頻率,對應的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A2={32,33,34,65,66},B2=U-A2。假設(shè)此時所述網(wǎng)絡(luò)協(xié)議模型對應的兩個模型參數(shù)的頻率分布如下,第一個模型參數(shù)為:一個TCP鏈接的前8個包的前四次變化時的每個方向發(fā)送的字節(jié)數(shù),對應的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A3={1,66,132,196},B3=U-A3。第二個模型參數(shù)為:一個TCP鏈接的前5個包的字符出現(xiàn)頻率,對應的頻率分布為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A4={65,66,67,68,69},B4=U-A4。計算所述網(wǎng)絡(luò)協(xié)議模型與當前已知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型的第一個模型參數(shù)的KL距離,記為KL1,計算公式為:D(P||Q)=∑p(i)log(p(i)/q(i))其中P表示真實分布,Q表示擬合分布。根據(jù)公式,計算出KL1=0.15。同理,計算出第二個模型參數(shù)的KL距離,記為KL2,KL2=0。則此時KL距離的和為:0.15,若假設(shè)預設(shè)的第一距離閾值為1,則認為匹配成功,即認為該待識別網(wǎng)絡(luò)數(shù)據(jù)包所對應的會話屬于已知網(wǎng)絡(luò)協(xié)議;若假設(shè)預設(shè)的第一距離閾值為0.1,則認為匹配失敗,此時判斷是否匹配到已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,如果是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則結(jié)束匹配,所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議,如果不是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則繼續(xù)按照上述方法進行匹配。在匹配的過程中,采用KL距離來度量協(xié)議模型之間的差異,對于每次匹配成功之后的更新,不需要大量復雜運算即可更新模型,計算量大大減少,從而減少網(wǎng)絡(luò)協(xié)議識別的時間,保障了未知協(xié)議識別的實時性。參閱圖4,本發(fā)明實施例提供的一種將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配并更新未知網(wǎng)絡(luò)協(xié)議模型庫的方法,所述方法包括:步驟S401,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中的模型按照從頭到尾的順序逐一進行匹配;步驟S402,將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與未知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應的各個屬性參數(shù)的頻率分布計算KL距離,并對所有KL距離求和;步驟S403,判斷KL距離之和是否小于預設(shè)的第二距離閾值;步驟S404,如果所述KL距離之和小于預設(shè)的第二距離閾值,則認為匹配成功,更新匹配成功的未知網(wǎng)絡(luò)協(xié)議模型,并將所述匹配成功的未知網(wǎng)絡(luò)協(xié)議模型的位置在未知網(wǎng)絡(luò)協(xié)議模型庫中向前移動一位,并結(jié)束匹配;步驟S405,如果所述KL距離之和大于等于預設(shè)的第二距離閾值,則認為匹配失敗,繼續(xù)匹配,直到匹配完未知網(wǎng)絡(luò)協(xié)議模型庫中的所有模型,則將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫中。例如,假設(shè)未知網(wǎng)絡(luò)協(xié)議模型庫中當前存放了3個未知網(wǎng)絡(luò)協(xié)議模型,如下表所示:未知協(xié)議模型1未知協(xié)議模型2未知協(xié)議模型3此時將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中的3個未知模型按照從頭到尾的順序逐一進行匹配,將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與未知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應的各個屬性參數(shù)的頻率分布計算KL距離,并對所述所有KL距離求和,并對所述所有KL距離求和;判斷KL距離之和是否小于預設(shè)的第二距離閾值;如果上述KL距離之和大于等于預設(shè)的第二距離閾值,即首先與未知協(xié)議模型1匹配,如果未成功,則繼續(xù)與未知協(xié)議模型2匹配,如果此時匹配成功,則首先更新未知協(xié)議模型2的模型參數(shù)的頻率分布。假設(shè)所述網(wǎng)絡(luò)協(xié)議模型只由一個模型參數(shù)的頻率分布構(gòu)成,其對應的統(tǒng)計數(shù)組如下表所示:012…66…132…196…255010…1…1…1…0其對應的頻率數(shù)組為:012…66…132…196…25500.250…0.25…0.25…0.25…0假設(shè)與所述網(wǎng)絡(luò)協(xié)議模型匹配成功的網(wǎng)絡(luò)協(xié)議庫中協(xié)議模型的統(tǒng)計數(shù)組如下表所示:012…6566255000…330其對應的頻率數(shù)組為:012…6566…255000…0.50.5…0首先更新對應的統(tǒng)計數(shù)組,即對應索引號的統(tǒng)計值相加,得出更新后的統(tǒng)計數(shù)組如下結(jié)果:則其對應的更新后的頻率數(shù)組為:012…6566…132…196…25500.10…0.30.4…0.1…0.1…0即更新后的未知網(wǎng)絡(luò)協(xié)議的模型為:其中,設(shè)集合U為0到255之間所有整數(shù)的集合,A1={1,132,196},A2={65},A3={66},B4=U-A1-A2-A3。接著把未知協(xié)議模型2在模型庫中的位置往前移動一位,移動后,未知網(wǎng)絡(luò)協(xié)議模型庫如下表所示:若假設(shè)此時所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中全部匹配完,且全部匹配失敗,則該所述未知網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫中,此時未知網(wǎng)絡(luò)協(xié)議模型庫如下表所示:所述未知協(xié)議模型未知協(xié)議模型1未知協(xié)議模型2未知協(xié)議模型3本實施例提供的網(wǎng)絡(luò)協(xié)議識別方法中,通過不斷的插入新的未知協(xié)議模型到未知網(wǎng)絡(luò)協(xié)議模型庫中,使得該未知網(wǎng)絡(luò)協(xié)議模型庫能夠自適應的更新,而無需在系統(tǒng)開始前收集大量的未知網(wǎng)絡(luò)協(xié)議的樣本;并且每次命中,將該命中的未知網(wǎng)絡(luò)協(xié)議模型的位置在未知網(wǎng)絡(luò)協(xié)議模型庫中向前移動一位,這種方式可以保證高頻未知網(wǎng)絡(luò)協(xié)議的位置一直在未知網(wǎng)絡(luò)協(xié)議庫的前面,保證高頻未知網(wǎng)絡(luò)協(xié)議能夠優(yōu)先匹配,減少匹配時間;同時,對于每次匹配成功的協(xié)議模型重新調(diào)整模型參數(shù)的頻率分布,能夠動態(tài)的更新協(xié)議模型,結(jié)合高頻協(xié)議優(yōu)先匹配的特點,可以保證高頻協(xié)議能夠獲得更多樣本,使其更加精確,保證屬于同一協(xié)議的樣本能夠趨向集中于此協(xié)議的高頻協(xié)議模型,降低了同一協(xié)議生成多個低頻的網(wǎng)絡(luò)協(xié)議模型的幾率,提高了識別的準確性和速度。參閱圖5,作為本發(fā)明更新未知網(wǎng)絡(luò)協(xié)議模型庫的優(yōu)選實施方式,本發(fā)明實施例提供的另一種將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配并更新未知網(wǎng)絡(luò)協(xié)議模型庫的方法,所述方法包括:步驟S501,設(shè)置未知網(wǎng)絡(luò)協(xié)議模型庫為一個有序表,大小閾值為N,初始狀態(tài)時,未知網(wǎng)絡(luò)協(xié)議模型庫為空;步驟S502,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中的模型按照從頭到尾的順序逐一進行匹配;步驟S503,將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與未知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應的各個屬性參數(shù)的頻率分布計算KL距離,并對所有KL距離求和;步驟S504,判斷KL距離之和是否小于預設(shè)的第二距離閾值;步驟S505,如果所述KL距離之和小于預設(shè)的第二距離閾值,則認為匹配成功,更新匹配成功的未知網(wǎng)絡(luò)協(xié)議模型,并將所述匹配成功的未知網(wǎng)絡(luò)協(xié)議模型的位置在未知網(wǎng)絡(luò)協(xié)議模型庫中向前移動一位,并結(jié)束匹配;步驟S506,如果所述KL距離之和大于等于預設(shè)的第二距離閾值,則認為匹配失敗,判斷當前模型是否為未知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型;步驟S507,如果當前模型不是未知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則繼續(xù)匹配;步驟S508,如果當前模型是未知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,判斷當前未知網(wǎng)絡(luò)協(xié)議模型庫中存放的未知網(wǎng)絡(luò)協(xié)議模型數(shù)量是否為N;步驟S509,如果不是,則將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面;步驟S510,如果是,則淘汰未知網(wǎng)絡(luò)協(xié)議模型庫中位于最末位置的未知網(wǎng)絡(luò)協(xié)議,并將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面。例如,假設(shè)未知網(wǎng)絡(luò)協(xié)議模型庫的大小閾值為N=5,初始狀態(tài)為空,若假設(shè)此時未知網(wǎng)絡(luò)協(xié)議模型庫已經(jīng)全部放滿,即如下表所示:未知協(xié)議模型1未知協(xié)議模型2未知協(xié)議模型3未知協(xié)議模型4未知協(xié)議模型5假設(shè)此時所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中全部匹配完,且全部匹配失敗,則此時淘汰未知網(wǎng)絡(luò)協(xié)議模型庫中位于最末位置的未知網(wǎng)絡(luò)協(xié)議,即未知協(xié)議模型5,并該所述未知網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面,此時未知網(wǎng)絡(luò)協(xié)議模型庫如下表所示:所述未知協(xié)議模型未知協(xié)議模型1未知協(xié)議模型2未知協(xié)議模型3未知協(xié)議模型4本實施例提供的網(wǎng)絡(luò)協(xié)議識別方法中,通過限制未知網(wǎng)絡(luò)協(xié)議模型庫大小以并設(shè)置淘汰策略,可以減少匹配次數(shù)以及計算機內(nèi)存空間的消耗;另外,將該未知網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面,可以保證新的未知網(wǎng)絡(luò)協(xié)議在未知網(wǎng)絡(luò)協(xié)議庫中停留時間更長,防止一些低頻率的未知網(wǎng)絡(luò)協(xié)議被不斷的淘汰和插入。參閱圖6,作為本發(fā)明的優(yōu)選實施方式,本發(fā)明實施例提供的另一種網(wǎng)絡(luò)協(xié)議識別的方法,所述方法包括:步驟S601,獲取在傳輸網(wǎng)絡(luò)數(shù)據(jù)時的同一會話開始時的多個數(shù)據(jù)包作為待識別網(wǎng)絡(luò)數(shù)據(jù)包;步驟S602,將所述待識別網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造成網(wǎng)絡(luò)協(xié)議模型;步驟S603,將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,其中已知網(wǎng)絡(luò)協(xié)議模型庫中模型是由已知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的;步驟S604,判斷將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中已有模型是否匹配成功;步驟S605,如果與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配成功,則所述網(wǎng)絡(luò)協(xié)議模型為已知網(wǎng)絡(luò)協(xié)議模型;步驟S606,如果與已知網(wǎng)絡(luò)協(xié)議模型庫中所有模型匹配失敗,則所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議模型,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中已有模型進行匹配,并采用未知網(wǎng)絡(luò)協(xié)議更新策略對未知網(wǎng)絡(luò)協(xié)議模型庫進行更新,其中未知網(wǎng)絡(luò)協(xié)議模型庫中模型是由未知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的;步驟S607,采取更新策略對已知網(wǎng)絡(luò)協(xié)議模型庫進行更新,具體為:設(shè)置時間周期閾值,周期性地檢查未知網(wǎng)絡(luò)協(xié)議模型庫中各個模型被命中的次數(shù),如果某個未知網(wǎng)絡(luò)協(xié)議模型的命中次數(shù)大于預設(shè)的次數(shù)閾值,則將該未知網(wǎng)絡(luò)協(xié)議模型從未知網(wǎng)絡(luò)協(xié)議模型庫中移除,加入已知網(wǎng)絡(luò)協(xié)議模型庫中。本實施例提供的網(wǎng)絡(luò)協(xié)議識別方法中,不僅能夠做到同時識別已知網(wǎng)絡(luò)協(xié)議以及未知網(wǎng)絡(luò)協(xié)議,并且把高頻未知網(wǎng)絡(luò)協(xié)議當做已知網(wǎng)絡(luò)協(xié)議放入已知網(wǎng)絡(luò)協(xié)議模型庫中,當累積大量樣本后,可以當做一個固定的模型,不再動態(tài)更新,節(jié)約識別時間;另一方面把高頻未知網(wǎng)絡(luò)協(xié)議從未知網(wǎng)絡(luò)協(xié)議模型庫中移出后,增大低頻的未知協(xié)議被匹配到的可能性,減少匹配時間,提高未知網(wǎng)絡(luò)協(xié)議的識別率和識別速度,做到對網(wǎng)絡(luò)協(xié)議的實時識別。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。當前第1頁1 2 3