本發(fā)明屬于計算機網(wǎng)絡安全技術領域,更為具體地講,涉及一種基于誤碼率模型的未知通信協(xié)議識別方法。
背景技術:
隨著通信技術的飛速發(fā)展,網(wǎng)絡通信成為了人們日常生活的主要交流方式,隨之而來的則是越來越嚴重的網(wǎng)絡信息安全問題。對于傳統(tǒng)的網(wǎng)絡安全技術而言,只能解決部分問題,而準確地識別通信數(shù)據(jù)所使用的協(xié)議對于克服傳統(tǒng)網(wǎng)絡安全技術缺陷具有重要的意義,是研究區(qū)分服務、入侵檢測、流量監(jiān)控以及分析用戶行為的前提和基礎。目前,網(wǎng)絡協(xié)議識別技術得到了快速的發(fā)展和應用,主要包括基于端口、流特征以及負載行為進行識別?;谥丝谔栕R別技術主要是對應用層協(xié)議進行識別,其原理是根據(jù)各個應用層協(xié)議在IANA中注冊的端口號來識別協(xié)議;基于流特征檢測技術實質上是一類基于統(tǒng)計屬性的數(shù)據(jù)流分類算法,主要利用協(xié)議規(guī)范的不同而導致數(shù)據(jù)流屬性的差異來區(qū)別各個協(xié)議;基于負載進行協(xié)議識別就是使用數(shù)據(jù)特征來對協(xié)議進行識別。
在以上的傳統(tǒng)協(xié)議識別技術中,常采用多模式匹配等精確識別方法來進行協(xié)議的特征提取,隨后根據(jù)提取的數(shù)據(jù)特征進行數(shù)據(jù)協(xié)議識別。但是,在實際數(shù)據(jù)傳輸過程中常常存在誤幀情況,例如在無線通信過程中,以下原因將可能造成誤幀:1、接收信號很弱時。2、導頻污染的時候。3、在小區(qū)間切換時。4、在切換區(qū)域內無法切換時。特別是第4種情況下將出現(xiàn)嚴重的誤幀,目前要求的誤幀率一般是小于等于1%,其中1%~2%表示通話質量良好,2%~3%表示通話質量一般,3%~5%表示通話質量較差,5%~10%表示通話質量非常差,因此,誤幀的情況在通信過程中出現(xiàn)的概率很大。另外以太網(wǎng)和802.3對數(shù)據(jù)幀的長度最大限制分別為1500和1492字節(jié),且協(xié)議特征串一般在1到6字節(jié)之間。因此,選取最短特征串、最小誤幀率和最長特征串、最大誤幀率計算得出特征串錯誤率在0.00667‰到0.4‰之間。即最壞的情況下,數(shù)據(jù)幀將會有0.4‰的概率無法識別而被丟棄。特別是對于國防安全和軍事對抗領域來說,此精度遠遠不能滿足需求。
基于以上分析,當誤碼剛好存在于數(shù)據(jù)所具有的協(xié)議特征串中的時候,基于多模式匹配等方法的精確識別系統(tǒng)往往無法識別此數(shù)據(jù),從而對誤碼數(shù)據(jù)不作為而丟棄,此時將導致數(shù)據(jù)識別率下降。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種基于誤碼率模型的未知通信協(xié)議識別方法,在正常的誤碼情況下,對具有誤碼的幀進行模糊特征提取,且在最大誤比特數(shù)范圍內的幀依然進行未知通信協(xié)議識別,由此來提高數(shù)據(jù)識別率,從而達到更好的識別效果。
為實現(xiàn)上述發(fā)明目的,本發(fā)明一種基于誤碼率模型的未知通信協(xié)議識別方法,其特征在于,包括以下步驟:
(1)、數(shù)據(jù)采集及預處理
利用網(wǎng)絡抓包工具抓取網(wǎng)絡中的通信數(shù)據(jù),再將通信數(shù)據(jù)按照幀格式進行存儲,且每一幀進行二進制處理,最后將處理完成的已知協(xié)議通信數(shù)據(jù)作為訓練數(shù)據(jù),將未知協(xié)議通信數(shù)據(jù)作為被識別數(shù)據(jù);
(2)、對訓練數(shù)據(jù)進行特征提取,得到協(xié)議特征庫
(2.1)、利用模式匹配算法提取頻繁集
根據(jù)已有網(wǎng)絡協(xié)議特征字符串允許的長度,窮舉所有的1~6字節(jié)的二進制字符串,記為{p1,p2,p3,......,pm},pm表示第m個二進制字符串,最后將窮舉的所有二進制字符串作為模式字符串;
提取訓練數(shù)據(jù)中的每一幀數(shù)據(jù),組成目標字符串{t1,t2,t3,......,tn},tn表示第n幀數(shù)據(jù);
將{p1,p2,p3,......,pm}和{t1,t2,t3,......,tn}作為模式匹配算法的輸入,通過模式匹配算法進行匹配,并記錄匹配成功的模式字符串以及其在目標字符串中的位置,最后統(tǒng)計相同位置上出現(xiàn)同一模式字符串的幀數(shù),并將幀數(shù)占比大于M%的模式字符串定義為此協(xié)議的頻繁字符串,最后將所有頻繁字符串組成頻繁集{f1,f2,f3,......,fK},fK表示第K個頻繁字符串;
(2.2)、利用關聯(lián)規(guī)則分析算法提取協(xié)議特征
將頻繁集{f1,f2,f3,......,fK}及頻繁字符串在各個幀中出現(xiàn)的位置作為關聯(lián)規(guī)則分析算法的輸入,通過關聯(lián)規(guī)則分析算法對頻繁字符串進行關聯(lián)規(guī)則分析,得到關聯(lián)字符串,再統(tǒng)計出關聯(lián)字符串出現(xiàn)的次數(shù)和位置,并將關聯(lián)字符串出現(xiàn)的次數(shù)占比大于M%的關聯(lián)字符串作為識別規(guī)則,最后將識別規(guī)則中的頻繁字符串{f1,f2,f3,......,fk}存入?yún)f(xié)議特征庫中,其中,fk表示第k(k≤K)個頻繁字符串;
(3)、利用模糊匹配算法獲取模糊特征集
(3.1)、計算被識別數(shù)據(jù)允許的最大誤比特數(shù)
其中,L1表示允許的最長特征串的長度,L2表示被識別數(shù)據(jù)幀的幀長度,F(xiàn)ER表示被識別數(shù)據(jù)的誤幀率;
(3.2)、根據(jù)協(xié)議特征庫,利用模糊匹配算法提取最大誤比特數(shù)范圍內的所有模糊特征字符串
將被識別數(shù)據(jù)、頻繁字符串{f1,f2,f3,......,fk}和被識別數(shù)據(jù)允許的最大誤比特數(shù)作為模糊匹配算法的輸入,通過模糊匹配算法進行匹配,記錄匹配成功的模糊特征字符串及其在被識別數(shù)據(jù)幀中的位置,并存入到模糊特征集中;
(4)、采用Jena自動推理機識別幀的協(xié)議類型
首先建立推理規(guī)則庫,再將模糊特征集中的模糊特征字符串和推理規(guī)則庫作為Jena自動推理機的輸入,并進行推理,得出每一組模糊特征字符串所對應的協(xié)議類型,即為此幀的協(xié)議類型。
本發(fā)明的發(fā)明目的是這樣實現(xiàn)的:
本發(fā)明一種基于誤碼率模型的未知通信協(xié)議識別方法,通過將多模式匹配算法和關聯(lián)規(guī)則分析算法相結合,提取已知協(xié)議的協(xié)議特征串,構建協(xié)議特征庫。然后,在識別被識別數(shù)據(jù)采用的協(xié)議類型的時候,計算被識別數(shù)據(jù)允許的最大誤比特數(shù),并在此誤比特數(shù)范圍內采用模糊匹配算法提取被識別數(shù)據(jù)的特征串。最后,通過自動推理得到被識別數(shù)據(jù)所采用的協(xié)議類型。因此,本識別方法能夠提高數(shù)據(jù)識別率,對于具有誤碼的數(shù)據(jù)具有良好的識別效果。
同時,本發(fā)明一種基于誤碼率模型的未知通信協(xié)議識別方法還具有以下有益效果:
(1)、通過將多模式匹配算法和關聯(lián)規(guī)則分析算法相結合,能夠準確的提取現(xiàn)有協(xié)議的協(xié)議特征串,剔除錯誤的協(xié)議特征串,為構建完整準確的協(xié)議特征庫提供途徑;
(2)、實際識別過程中,采用模糊特征提取算法,與傳統(tǒng)的精確協(xié)議識別技術相比較,提高了數(shù)據(jù)的利用率,從而也提高了數(shù)據(jù)識別率。同時,在識別的過程中,引入了最大誤比特數(shù)的概念,對于識別過程中的數(shù)據(jù)誤碼程度進行了控制,保證了誤碼數(shù)據(jù)的識別準確率;
(3)、提取了數(shù)據(jù)模糊特征串之后,使用Jena推理機或者SVM來對數(shù)據(jù)進行推理或者分類識別,提高了協(xié)議識別的自動化程度,從而,提高了協(xié)議識別的效率。
附圖說明
圖1是本發(fā)明基于誤碼率模型的未知通信協(xié)議識別方法流程圖;
圖2是Jena自動推理機的識別流程圖;
圖3是SVM支持向量機的識別流程圖。
具體實施方式
下面結合附圖對本發(fā)明的具體實施方式進行描述,以便本領域的技術人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當已知功能和設計的詳細描述也許會淡化本發(fā)明的主要內容時,這些描述在這里將被忽略。
實施例
圖1是本發(fā)明基于誤碼率模型的未知通信協(xié)議識別方法流程圖。
在本實施例中,如圖1所示,本發(fā)明一種基于誤碼率模型的未知通信協(xié)議識別方法,包括以下步驟:
S1、數(shù)據(jù)采集及預處理
數(shù)據(jù)采集:利用winpcap、libpcap等工具抓取網(wǎng)絡中的通信數(shù)據(jù),其獲取的數(shù)據(jù)可以是無線或有線數(shù)據(jù);也可以通過其他數(shù)據(jù)收集工具來采集除TCP/IP協(xié)議之外的其他通信協(xié)議數(shù)據(jù),例如衛(wèi)星通信數(shù)據(jù)等,但所有采集的用來識別的數(shù)據(jù)其使用的協(xié)議應該具有明確的協(xié)議特征,以便于具有逆向識別的可能。
數(shù)據(jù)預處理:對于網(wǎng)絡協(xié)議,其傳輸過程中多以幀為單位進行傳輸,且采集的通信數(shù)據(jù)也基本是以幀為單位進行存儲的,因此對于采集的通信數(shù)據(jù)均以嚴格的幀格式進行存儲處理,且每一幀數(shù)據(jù)格式可以采用二進制或者十六進制處理,本實施例中,每一幀數(shù)據(jù)使用二進制處理;通信數(shù)據(jù)處理完成后,將其中的已知協(xié)議的通信數(shù)據(jù)作為訓練數(shù)據(jù),將未知協(xié)議的通信數(shù)據(jù)作為被識別數(shù)據(jù)。本實施例中選取了有線網(wǎng)絡數(shù)據(jù)來進行分析,并以應用層HTTP協(xié)議作為分析對象來闡述整個識別方法。
S2、對訓練數(shù)據(jù)進行特征提取,得到協(xié)議特征庫
對訓練數(shù)據(jù)進行特征提取的主要目的是獲取特定協(xié)議的協(xié)議特征,且此處只針對數(shù)據(jù)包特征。在本實施例中,采用特征提取的方法可以是多模式匹配算法和數(shù)據(jù)挖掘中的關聯(lián)規(guī)則分析算法相結合,其中,利用多模式匹配算法來提取頻繁集,其算法包括AC算法、AC-BM算法、Wu-Manber算法等;利用數(shù)據(jù)挖掘中的關聯(lián)規(guī)則分析算法對提取的頻繁集進行關聯(lián)分析,剔除錯誤的頻繁集,其中可用的算法包括Apriori算法、FP-Growth算法。
下面對兩種算法進行詳細說明,具體包括:
S2.1、利用模式匹配算法提取頻繁集
根據(jù)已有網(wǎng)絡協(xié)議特征字符串允許的長度,窮舉所有的1~6字節(jié)的二進制字符串,記為{p1,p2,p3,......,pm},pm表示第m個二進制字符串,最后將窮舉的所有二進制字符串作為模式字符串;
提取訓練數(shù)據(jù)中的每一幀數(shù)據(jù),組成目標字符串{t1,t2,t3,......,tn},tn表示第n幀數(shù)據(jù);
將{p1,p2,p3,......,pm}和{t1,t2,t3,......,tn}作為模式匹配算法的輸入,通過模式匹配算法進行匹配,并記錄匹配成功的模式字符串以及其在目標字符串中的位置,最后統(tǒng)計相同位置上出現(xiàn)同一模式字符串的幀數(shù),并將幀數(shù)占比大于95%的模式字符串定義為此協(xié)議的頻繁字符串,最后將所有頻繁字符串組成頻繁集{f1,f2,f3,......,fK},fK表示第K個頻繁字符串;
S2.2、利用關聯(lián)規(guī)則分析算法提取協(xié)議特征
將頻繁集{f1,f2,f3,......,fK}及頻繁字符串在各個幀中出現(xiàn)的位置作為關聯(lián)規(guī)則分析算法的輸入,通過關聯(lián)規(guī)則分析算法對頻繁字符串進行關聯(lián)規(guī)則分析,得到關聯(lián)字符串,也叫做關聯(lián)規(guī)則,再統(tǒng)計出關聯(lián)字符串出現(xiàn)的次數(shù)和位置,并將出現(xiàn)次數(shù)占比大于95%的關聯(lián)規(guī)則作為識別規(guī)則,
最后將識別規(guī)則中的頻繁字符串{f1,f2,f3,......,fk}存入?yún)f(xié)議特征庫中,其中,fk表示第k(k≤K)個頻繁字符串;
在本實施例中,對于HTTP協(xié)議而言,其實是采用TCP協(xié)議作為傳輸層協(xié)議的應用層協(xié)議,其具有以下特征:
(1)HTTP協(xié)議首部有“HTTP/1.1”版本特征字符串,可唯一表征HTTP協(xié)議。
(2)上行數(shù)據(jù)請求時必然存在的“POST”字段;
(3)下行數(shù)據(jù)請求時必然存在的“GET”字段;
以上只是協(xié)議部分特征串,其余還有“HEAD”、“PUT”以及“200OK”返回碼等,此特征可以作為判定HTTP協(xié)議的特征串,但是卻不是每一個報文均會有以上所有信息,除此之外,還有協(xié)議頭部的識別信息,例如協(xié)議類型,源目IP,源目端口等。
S3、利用模糊匹配算法獲取模糊特征集
S3.1、對于被識別數(shù)據(jù)進行模糊特征提取時,需要考慮數(shù)據(jù)存在誤碼的情況,因此,采用如下公式來計算被識別數(shù)據(jù)的允許最大誤比特數(shù);
其中,L1表示允許的最長特征串的長度,L2表示被識別數(shù)據(jù)幀的幀長度,F(xiàn)ER表示被識別數(shù)據(jù)的誤幀率;
根據(jù)以上定義,以HTTP協(xié)議為例,在采集的HTTP報文中,L1/L2的范圍是0.82%-28.33%,其對應特征串分別是“GET,HTTP/1.1”和“HHTP/1.1 200ok\r\n”,隨后由以上數(shù)據(jù)計算最大誤比特數(shù),可得:
Character_error=28.33%*0.4‰*1500*8=1.36(個比特)
即由以上結果可知,最大允許誤比特數(shù)為1個比特,此結果是在通信情況最差的環(huán)境下計算而得,其具體值可以依據(jù)具體的應用環(huán)境來進行適當?shù)恼{整,以便于達到最好的識別效果。
S3.2、根據(jù)協(xié)議特征庫進行模糊特征提取時,將允許匹配的數(shù)據(jù)串有一定的誤差,即在最大誤比特數(shù)范圍以內,利用模糊匹配算法提取最大誤比特數(shù)范圍內的所有模糊特征字符串;其中,模糊匹配算法包括動態(tài)規(guī)劃算法、非確定型有窮自動機NFA、位并行算法和過濾算法等。
根據(jù)協(xié)議特征庫,利用模糊匹配算法提取最大誤比特數(shù)范圍內的所有模糊特征字符串的具體方法為:將被識別數(shù)據(jù)、頻繁字符串{f1,f2,f3,......,fk}和被識別數(shù)據(jù)允許的最大誤比特數(shù)作為模糊匹配算法的輸入,通過模糊匹配算法進行匹配,記錄匹配成功的模糊特征字符串及其在被識別數(shù)據(jù)幀中的位置,并存入到模糊特征集中;
S4、確定數(shù)據(jù)的模糊特征集之后,可以采用Jena自動推理機或者SVM來進行協(xié)議的最終識別。
如圖2所示,采用Jena自動推理機識別幀的協(xié)議類型的流程為:
首先建立推理規(guī)則庫,例如推理規(guī)則A—>Z或者A,B—>Z,即表示某一幀數(shù)據(jù)具有A特征串或者同時具有AB特征串時候,此幀數(shù)據(jù)才被判定為Z協(xié)議,例如HTTP協(xié)議識別中,將“GET,HTTP/1.1”=>“HTTP”作為一條推理規(guī)則;
然后將模糊特征集中的模糊特征字符串和推理規(guī)則庫作為Jena自動推理機的輸入,并進行推理,得出每一組模糊特征字符串所對應的協(xié)議類型,即為此幀的協(xié)議類型。
如圖3所示,采用SVM識別數(shù)據(jù)協(xié)議類型的流程為:
建立SVM模型:將頻繁字符串{f1,f2,f3,......,fk}作為訓練數(shù)據(jù)輸入到SVM中訓練,得到SVM模型;
將模糊特征集中的模糊特征字符串輸入到SVM模型中,通過SVM模型識別出每一幀的數(shù)據(jù)協(xié)議類型。
盡管上面對本發(fā)明說明性的具體實施方式進行了描述,以便于本技術領域的技術人員理解本發(fā)明,但應該清楚,本發(fā)明不限于具體實施方式的范圍,對本技術領域的普通技術人員來講,只要各種變化在所附的權利要求限定和確定的本發(fā)明的精神和范圍內,這些變化是顯而易見的,一切利用本發(fā)明構思的發(fā)明創(chuàng)造均在保護之列。