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