本發(fā)明涉及網(wǎng)絡(luò)安全,尤其涉及一種面向數(shù)據(jù)鏈路層的工控網(wǎng)絡(luò)流量分類方法。
背景技術(shù):
1、工業(yè)控制網(wǎng)絡(luò)(industrial?control?system,ics)是由計(jì)算機(jī)技術(shù)與過(guò)程控制部件相結(jié)合構(gòu)成的自動(dòng)控制系統(tǒng)。這一系統(tǒng)包含傳感器、控制器、執(zhí)行器、傳輸器以及輸入/輸出接口等關(guān)鍵部分。這些組件通過(guò)工業(yè)通信路徑,遵循特定的通信協(xié)議相連,共同構(gòu)成了具備自動(dòng)控制能力的工業(yè)生產(chǎn)或加工系統(tǒng)。
2、網(wǎng)絡(luò)流量分類技術(shù)是一項(xiàng)常用于識(shí)別和分類通過(guò)網(wǎng)絡(luò)傳輸?shù)母鞣N數(shù)據(jù)流量的關(guān)鍵技術(shù)。網(wǎng)絡(luò)流量分類在網(wǎng)絡(luò)管理、安全監(jiān)控、服務(wù)質(zhì)量保證以及用戶行為分析等多個(gè)領(lǐng)域發(fā)揮著至關(guān)重要的作用。例如,網(wǎng)絡(luò)流量分類可以幫助安全分析師快速識(shí)別潛在的惡意活動(dòng),如僵尸網(wǎng)絡(luò)通信、間諜軟件通信、未授權(quán)的數(shù)據(jù)傳輸?shù)?;安全系統(tǒng)可以區(qū)分正常和異常流量模式,從而有效預(yù)警潛在的安全威脅;企業(yè)和服務(wù)提供商可以了解用戶的網(wǎng)絡(luò)使用習(xí)慣和偏好。
3、目前的網(wǎng)絡(luò)流量分類研究主要集中在機(jī)器學(xué)習(xí)算法的應(yīng)用上,尤其是深度學(xué)習(xí)模型,這些模型在處理具有多維特征的網(wǎng)絡(luò)流量數(shù)據(jù)時(shí)展現(xiàn)出卓越的能力。深度學(xué)習(xí)模型能夠從大量數(shù)據(jù)中自動(dòng)識(shí)別和提取有價(jià)值的特征,這使得它們?cè)谟?xùn)練過(guò)程中能夠掌握復(fù)雜的數(shù)據(jù)模式和內(nèi)在關(guān)聯(lián)。因此,相比傳統(tǒng)的基于端口和負(fù)載的方法,在實(shí)際應(yīng)用中,這些模型通常在處理大規(guī)模數(shù)據(jù)集時(shí)表現(xiàn)更為出色,且能夠?qū)崿F(xiàn)更準(zhǔn)確的分類結(jié)果。此外,一些先進(jìn)的機(jī)器學(xué)習(xí)算法還能在網(wǎng)絡(luò)流量中自動(dòng)識(shí)別新的攻擊模式或未知應(yīng)用產(chǎn)生的流量,這是傳統(tǒng)方法難以實(shí)現(xiàn)的。與基于固定規(guī)則的非機(jī)器學(xué)習(xí)方法相比,基于機(jī)器學(xué)習(xí)的流量分類技術(shù)通常能更有效地適應(yīng)新的流量模式和復(fù)雜的網(wǎng)絡(luò)環(huán)境。
4、論文“yao?z,ge?j,wu?y,et?al.encrypted?traffic?classification?based?ongaussian?mixture?models?and?hidden?markov?models[j].journal?of?network?andcomputer?applications,2020,166:102711.”提出了一種基于高斯混合模型和隱馬爾可夫模型的流量分類模型mghmm,完成協(xié)議分類,并通過(guò)實(shí)驗(yàn)對(duì)混淆流量進(jìn)行識(shí)別。該方法能夠應(yīng)對(duì)動(dòng)態(tài)端口和加密流量,提高對(duì)復(fù)雜網(wǎng)絡(luò)環(huán)境的適應(yīng)性,但計(jì)算成本較高。
5、論文“wang?y,yun?x,zhang?y,et?al.amulti-scale?feature?attentionapproach?to?network?traffic?classification?and?its?model?explanation[j].ieeetransactions?on?network?and?service?management,2022,19(2):875-889.”提出使用卷積神經(jīng)網(wǎng)絡(luò)(cnn)作為深度包分析模型的構(gòu)建塊,利用單個(gè)數(shù)據(jù)包的原始字節(jié)序列進(jìn)行深度分析,識(shí)別生成的應(yīng)用協(xié)議或應(yīng)用,從而實(shí)現(xiàn)準(zhǔn)確的網(wǎng)絡(luò)流量分類。該方法使用卷積神經(jīng)網(wǎng)絡(luò)(cnn)作為深度包分析模型的構(gòu)建塊。但該方法的分類性能高度依賴于輸入數(shù)據(jù)的質(zhì)量和預(yù)處理的準(zhǔn)確性,沒(méi)有考慮到對(duì)不平衡數(shù)據(jù)的處理。
6、綜上所述,現(xiàn)有的工業(yè)控制網(wǎng)絡(luò)流量分類方法存在對(duì)不平衡數(shù)據(jù)集檢測(cè)效果差、場(chǎng)景過(guò)于封閉等問(wèn)題,導(dǎo)致其準(zhǔn)確率低,難以在工業(yè)物聯(lián)網(wǎng)中進(jìn)行應(yīng)用,實(shí)用性和參考性不高。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提出一種面向數(shù)據(jù)鏈路層的工控網(wǎng)絡(luò)流量分類方法,采用一種組合分類策略實(shí)現(xiàn)工控流量的精確分類。(1)考慮到工控流量數(shù)據(jù)的稀缺性,設(shè)計(jì)一種適用于工業(yè)控制系統(tǒng)現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)鏈路層流量數(shù)據(jù)的實(shí)時(shí)切割與收集方法。(2)提出一種基于k-means二次聚類的半監(jiān)督分類器,能有效利用有限的標(biāo)簽數(shù)據(jù)識(shí)別已知和未知工控協(xié)議,提高了實(shí)際應(yīng)用中的靈活性和準(zhǔn)確性。(3)提出一種半監(jiān)督的組合分類方法,通過(guò)改進(jìn)的k近鄰密度峰值聚類和分類器預(yù)測(cè)結(jié)果的結(jié)合,提升了工控流量的分類準(zhǔn)確性和可靠性。
2、本發(fā)明的技術(shù)方案如下:一種面向數(shù)據(jù)鏈路層的工控流量分類方法,包括步驟如下:
3、步驟一:對(duì)數(shù)據(jù)鏈路層的工控流量進(jìn)行實(shí)時(shí)切割、收集與預(yù)處理,獲得降維后的數(shù)據(jù)矩陣z;
4、步驟二:構(gòu)建基于最近集群的半監(jiān)督分類器,結(jié)合有限的有標(biāo)簽數(shù)據(jù)和大量無(wú)標(biāo)簽數(shù)據(jù),采用二次聚類技術(shù)以提升聚類的可靠性;
5、步驟三:提出一種基于k近鄰改進(jìn)的密度峰值聚類算法,對(duì)工控流量數(shù)據(jù)進(jìn)行聚類,計(jì)算每個(gè)數(shù)據(jù)點(diǎn)的局部密度和距離峰值,將工控流量數(shù)據(jù)分成不同的簇;
6、步驟四:將基于最近集群的半監(jiān)督分類器分類結(jié)果與步驟三的聚類結(jié)果相結(jié)合,形成一種組合分類策略,得到最終分類結(jié)果。
7、所述步驟一實(shí)時(shí)切割、收集具體為:
8、將數(shù)據(jù)鏈路層工控流量的實(shí)時(shí)切割與收集分為寬松開(kāi)始階段、截?cái)嚅_(kāi)始階段和恢復(fù)階段;
9、所述寬松開(kāi)始階段時(shí),為了在獲取足夠多有效數(shù)據(jù)的同時(shí)確保流量切割的合理性和有效性,將活躍時(shí)間閾值tact初始設(shè)置為t1,120≤t1≤150;對(duì)數(shù)據(jù)鏈路層的工控流量分割后得到的流量會(huì)話進(jìn)行檢查,檢測(cè)到分割截?cái)嗟牧髁繒?huì)話完整,則表明當(dāng)前tact值與理想的截?cái)鄷r(shí)間存在偏差,降低tact值;此階段中,tact的更新遵循指數(shù)規(guī)律減小,公式如下:
10、tact=t/2
11、當(dāng)tact不斷減小,低于閾值tthresh時(shí),進(jìn)入截?cái)嚅_(kāi)始階段;tact更新遵循線性規(guī)律減小,更新公式如下所示:
12、tact=tact-t2,(4≤t2≤8)
13、在數(shù)據(jù)鏈路層的工控流量截?cái)嗪?,檢查流量會(huì)話發(fā)現(xiàn)流量會(huì)話不完整時(shí),立即進(jìn)入恢復(fù)階段;截?cái)嚅_(kāi)始閾值tthresh設(shè)置為當(dāng)前tact?2倍,并將tact重置為120秒,隨后重新回到寬松開(kāi)始階段。
14、所述步驟一中預(yù)處理包括數(shù)據(jù)對(duì)齊和基于奇異值分解的主成分分析;
15、所述數(shù)據(jù)對(duì)齊通過(guò)衡量相對(duì)于數(shù)據(jù)鏈路層的工控流量原始數(shù)據(jù)因填充或截?cái)嗖僮鞫a(bǔ)充或損失的比特?cái)?shù)量評(píng)估這一目標(biāo);其中對(duì)齊長(zhǎng)度l的取值范圍公式定義如下所示;
16、
17、min(|x1|,…,|xn|)≤l≤max(|x1|,…,|xn|)
18、其中,xi表示第i條二進(jìn)制工控流量;
19、所述基于奇異值分解的主成分分析包括數(shù)據(jù)中心化、奇異值分解、主成分提取并降維;
20、所述數(shù)據(jù)中心化具體為:
21、xc=x-μ
22、其中,數(shù)據(jù)矩陣x是m×n的矩陣,其中m是樣本數(shù),n是特征數(shù),μ是數(shù)據(jù)矩陣x中每個(gè)特征的均值向量;
23、所述奇異值分解對(duì)數(shù)據(jù)中心化后的數(shù)據(jù)矩陣xc進(jìn)行奇異值分解:
24、xc=u∑vt
25、其中,u是一個(gè)m×m的左奇異矩陣,∑是一個(gè)m×n的對(duì)角矩陣,包含奇異值;vt是一個(gè)n×n的右奇異矩陣;
26、所述主成分提取并降維具體為:主成分從右奇異矩陣vt的前f列中提取vf,其中f是所需的主成分?jǐn)?shù),降維后的數(shù)據(jù)表示為:
27、z=xcvf
28、其中,vf是右奇異值矩陣vt的前f列,z是降維后的數(shù)據(jù)矩陣。
29、對(duì)齊長(zhǎng)度l的最優(yōu)取值為使得填充比特?cái)?shù)與損失比特?cái)?shù)之和最小的長(zhǎng)度值。
30、所述基于最近集群的半監(jiān)督分類器具體為:
31、步驟2.1、基于k-means的聚類算法將姜降維后的數(shù)據(jù)矩陣劃分為s個(gè)聚類:隨機(jī)選擇數(shù)據(jù)集中的s個(gè)點(diǎn)作為初始中心,對(duì)于每個(gè)數(shù)據(jù)點(diǎn)xi,計(jì)算它與所有簇中心μj的距離,找到一個(gè)使距離最小的簇中心,并將數(shù)據(jù)點(diǎn)xi分配到這個(gè)簇對(duì)應(yīng)的集合ci中;對(duì)于每個(gè)簇sj計(jì)算屬于該簇的所有點(diǎn)的坐標(biāo)均值,并將均值作為新的簇中心μj;最小化所有點(diǎn)到各自簇中心的距離平方和,使得同一簇內(nèi)的數(shù)據(jù)點(diǎn)盡可能接近,從而提高聚類效果;
32、
33、
34、其中,xi表示數(shù)據(jù)集中的一個(gè)數(shù)據(jù)點(diǎn),μj∈{μ1,μ2,…μs}表示當(dāng)前所有的簇中心,d(xi,μj)表示xi到質(zhì)心μj的距離;μj表示簇sj的新質(zhì)心;mi表示簇ci的質(zhì)心,||xj-mi||表示點(diǎn)xj到質(zhì)心mi的距離;
35、步驟2.2、根據(jù)聚類結(jié)果,應(yīng)用概率分配機(jī)制將k-means創(chuàng)建的集群映射到基于不同工控協(xié)議的類別,同時(shí)識(shí)別出未知工控協(xié)議;
36、p(y=y(tǒng)j|ci)=nij/ni
37、其中,p(y=y(tǒng)j|ci)表示集群ci正確映射到第j個(gè)類別的概率,yj表示流量類別,nij是分配到集群ci中且其類別為j的數(shù)據(jù)點(diǎn)的數(shù)量,n是被分配給集群ci的有標(biāo)簽數(shù)據(jù)點(diǎn)的總數(shù);集群ci中被標(biāo)記為類別j的數(shù)據(jù)點(diǎn)nij數(shù)量越多,那么該集群中所有數(shù)據(jù)點(diǎn)屬于類別j的概率就越大;
38、步驟2.3、基于后驗(yàn)函數(shù),預(yù)處理后的數(shù)據(jù)被劃分為三個(gè)主要類別,分別為未知類、已知類和模糊類;對(duì)于不含任何有標(biāo)簽數(shù)據(jù)的集群ci,將其定義為未知類;含有有標(biāo)簽數(shù)據(jù)的集群,根據(jù)后驗(yàn)概率判斷其屬于已知類或模糊類;
39、步驟2.4、設(shè)定閾值thre,并計(jì)算每個(gè)集群的后驗(yàn)函數(shù)最大值;當(dāng)某個(gè)集群ci的后驗(yàn)函數(shù)最大值超過(guò)該閾值thre,則將集群ci中的所有數(shù)據(jù)點(diǎn)都?xì)w為同一類別,將集群中所有數(shù)據(jù)點(diǎn)的類別標(biāo)記為后驗(yàn)函數(shù)最大值所對(duì)應(yīng)的流量類別y;
40、
41、步驟2.5、對(duì)于后驗(yàn)函數(shù)最大值未超過(guò)閾值thre的數(shù)據(jù),采用模糊聚類概念對(duì)其進(jìn)行處理;通過(guò)重復(fù)執(zhí)行k-means聚類步驟,進(jìn)行集群內(nèi)部的再聚類;完成二次聚類后,根據(jù)新的聚類結(jié)果直接進(jìn)行類別劃分,直接根據(jù)相應(yīng)的準(zhǔn)則進(jìn)行類別分配;
42、步驟2.6、完成二次聚類后,對(duì)所有生成的集群重新計(jì)算其聚類中心點(diǎn);聚類中心的集合表示為m={m1,m2,m3,…,mk′},k′表示二次聚類后的集群的數(shù)量;同一個(gè)工控協(xié)議會(huì)對(duì)應(yīng)一個(gè)或多個(gè)聚類集群;工控協(xié)議類別用y={y1,y2,y3,…,yq}來(lái)表示,對(duì)于任意一個(gè)類別yi,通過(guò)屬于該類別的樣本點(diǎn)的質(zhì)心集合mi來(lái)表示;
43、mi={mj:cj∈yi}
44、步驟2.7、所述基于最近集群的半監(jiān)督分類器分類規(guī)則定義為,對(duì)于給定的數(shù)據(jù)點(diǎn)x,計(jì)算與其距離最小的質(zhì)心m,找到m所歸屬的質(zhì)心集合mi,將數(shù)據(jù)點(diǎn)x的標(biāo)簽定為質(zhì)心集合mi所代表的類別j;
45、
46、所述基于k近鄰改進(jìn)的密度峰值聚類方法具體為:
47、步驟3.1、采用歐式距離計(jì)算數(shù)據(jù)集x的距離矩陣dij;
48、
49、其中,d(xi,xk)表示xi和xk之間的距離,xij和xkj分別表示數(shù)據(jù)點(diǎn)xi和xk在第j個(gè)特征上的取值;
50、步驟3.2、對(duì)于每個(gè)點(diǎn)xi,在集合{x1,x2,…,xn}中計(jì)算其k個(gè)最鄰近;
51、將距離矩陣dij中與xi相關(guān)的歐氏距離進(jìn)行升序排列,排在第k位的距離作為xi的第k個(gè)最鄰近,用knn(xi)表示xi的k個(gè)最鄰近;
52、sort({di1,di2,…,din})
53、knn(xi)={j∈x|d(xi,xk)≤d(xi,nnk(xi))}
54、其中,d(xi,xj)表示xi和xj之間的距離,nn(xi)表示xi的第k個(gè)最近鄰,而knn(xi)是一個(gè)集合,包含數(shù)據(jù)集中所有在xi的第k個(gè)最近鄰范圍內(nèi)的點(diǎn);
55、步驟3.3、計(jì)算密度峰值聚類算法中的局部密度ρi,所述局部密度ρi的計(jì)算方式如下:
56、
57、其中,k的設(shè)定基于數(shù)據(jù)點(diǎn)總數(shù)n的一個(gè)特定百分比,其計(jì)算公式表示為:
58、k=p×n
59、其中,n表示數(shù)據(jù)集中數(shù)據(jù)點(diǎn)的總數(shù),p表示一個(gè)百分比值,在0-1之間;
60、步驟3.4、點(diǎn)xi的最小距離δi計(jì)算方法根據(jù)以下兩種情況定義;當(dāng)存在至少一個(gè)點(diǎn)xj,它的密度ρj大于點(diǎn)xi的密度ρi,則δi被定義為點(diǎn)xi與所有點(diǎn)xj之間的最小距離;當(dāng)沒(méi)有任何點(diǎn)的密度大于點(diǎn)xi,則點(diǎn)xi為密度最高點(diǎn),δi被定義為點(diǎn)xi與數(shù)據(jù)集中任何其他點(diǎn)之間距離的最大值;
61、
62、步驟3.5、同時(shí)考慮局部密度ρi和最小距離值δi的策略,選取既有高局部密度值ρi,又與其他高密度點(diǎn)距離遠(yuǎn)的點(diǎn)作為聚類中心;對(duì)于那些未被選定為聚類中心的點(diǎn),將它們分配到其最近的具有更高密度的點(diǎn)所屬的集群中,確保每個(gè)點(diǎn)都?xì)w屬于一個(gè)明確的聚類。
63、所述步驟四具體為:
64、步驟4.2、通過(guò)步驟二以對(duì)每一條工控流量數(shù)據(jù)輸入基于最近集群的半監(jiān)督分類器中進(jìn)行分類,將每一條流量數(shù)據(jù)劃分到更精細(xì)的類別中;
65、步驟4.1、通過(guò)步驟三對(duì)降維后的工控流量數(shù)據(jù),利用基于k近鄰改進(jìn)的密度峰值聚類算法knn-dpc)對(duì)工控流量數(shù)據(jù)集進(jìn)行初步聚類;
66、步驟4.3、通過(guò)組合函數(shù)θ對(duì)每個(gè)單個(gè)分類器的輸出結(jié)果進(jìn)行整合,形成組合分類器的最終輸出結(jié)果f(x);
67、f(x)=θx∈x(f(x))
68、其中,f(x)表示組合分類器的輸出結(jié)果代表對(duì)樣本x的最終分類決策,f(x)表示單個(gè)分類器的輸出結(jié)果,即每個(gè)單獨(dú)的分類器對(duì)樣本x的預(yù)測(cè)結(jié)果;
69、步驟4.4、采用多數(shù)投票規(guī)則,對(duì)單個(gè)分類器的預(yù)測(cè)結(jié)果進(jìn)行匯總,以確定最終的分類決策;
70、
71、其中,vij用于記錄第i個(gè)單個(gè)分類器對(duì)類別ωj的投票情況,yxi表示第i個(gè)分類器對(duì)樣本x的預(yù)測(cè)類別;
72、步驟4.5、通過(guò)多數(shù)表決規(guī)則,選出所有分類器投票數(shù)最多的類別,作為樣本的最終分類結(jié)果;
73、
74、其中,表示類別ωj的總得票數(shù),累加了所有單個(gè)分類器的投票;
75、步驟4.5將前面步驟4.4中各個(gè)分類器的投票結(jié)果綜合起來(lái),選擇得票數(shù)最多的類別ωj作為集群x中所有數(shù)據(jù)的最終分類結(jié)果。
76、本發(fā)明的有益效果:
77、(1)本發(fā)明提出了一種基于最近集群的半監(jiān)督分類器,為了確保分類的準(zhǔn)確性,分類器的構(gòu)建依托于基于k-means的二次聚類方法。該分類器能夠同時(shí)處理有標(biāo)簽數(shù)據(jù)和無(wú)標(biāo)簽數(shù)據(jù),它不僅能夠利用有限的有標(biāo)簽數(shù)據(jù)將聚類結(jié)果有效映射到具體的工控協(xié)議,還能在識(shí)別已知的工控協(xié)議類別的同時(shí)區(qū)分未知的工控協(xié)議類別,從而提升了其在實(shí)際應(yīng)用中的靈活性和適用性。
78、(2)本發(fā)明在所提出的分類器的基礎(chǔ)上進(jìn)一步完善,提出了基于半監(jiān)督框架的組合分類方法。該方法主要通過(guò)兩個(gè)步驟實(shí)施:首先,利用改進(jìn)的k近鄰密度峰值聚類算法對(duì)工控流量數(shù)據(jù)執(zhí)行聚類;接著,結(jié)合所得的聚類結(jié)果與分類器的預(yù)測(cè)結(jié)果,采用一種組合策略來(lái)提升分類的準(zhǔn)確性并確保結(jié)果的可靠性。這種方法通過(guò)有效融合聚類與分類技術(shù),在降低了分類器對(duì)數(shù)據(jù)中的誤差和噪聲的敏感度的同時(shí),提高了工控流量的識(shí)別精度。
79、(3)考慮到工控流量數(shù)據(jù)的稀缺性,本發(fā)明旨在實(shí)時(shí)采集大量基于流量會(huì)話的數(shù)據(jù)鏈路層工控流量數(shù)據(jù)。通過(guò)以流量會(huì)話為基本單位進(jìn)行聚類和分類,該方法不僅能夠詳細(xì)捕捉工控網(wǎng)絡(luò)流量的細(xì)微差異,還能有效提高算法的準(zhǔn)確度。