本發(fā)明涉及私有協(xié)議解析領(lǐng)域,更具體地說,本發(fā)明涉及基于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析方法及系統(tǒng)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)與工業(yè)控制網(wǎng)絡(luò)的融合,工業(yè)控制系統(tǒng)原本相對(duì)封閉的環(huán)境面臨新的安全挑戰(zhàn)。由于工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)設(shè)計(jì)基于物理隔離的前提,未充分考慮網(wǎng)絡(luò)安全防護(hù),這為潛在的攻擊者提供了機(jī)會(huì)。工業(yè)網(wǎng)絡(luò)在通信過程中通常采用特定的私有通信協(xié)議,了解這些私有協(xié)議的設(shè)計(jì)細(xì)節(jié)對(duì)于提升工業(yè)控制系統(tǒng)的安全性至關(guān)重要,能夠幫助用戶采取有效的防護(hù)措施。由于私有協(xié)議的規(guī)范未公開,協(xié)議逆向成為了解其設(shè)計(jì)細(xì)節(jié)的必要手段。協(xié)議逆向工程通過監(jiān)控和分析協(xié)議實(shí)體的網(wǎng)絡(luò)報(bào)文,提取通信過程中使用的協(xié)議格式,不依賴協(xié)議描述。這一過程不僅能夠幫助研究人員和工業(yè)企業(yè)了解協(xié)議細(xì)節(jié),還能夠發(fā)現(xiàn)協(xié)議設(shè)計(jì)中的潛在漏洞,并制定針對(duì)性預(yù)防措施,以提高工業(yè)系統(tǒng)的安全性。
2、近年來,電力領(lǐng)域的網(wǎng)絡(luò)攻擊事件持續(xù)增加,電力工控網(wǎng)絡(luò)的安全形勢(shì)依舊嚴(yán)峻。隨著新型電力系統(tǒng)的逐步建設(shè),電網(wǎng)設(shè)備規(guī)模不斷擴(kuò)大,大量智能終端設(shè)備,如配電dtu、ftu等,接入配電網(wǎng)。這些設(shè)備技術(shù)較新,規(guī)?;瘧?yīng)用時(shí)間較短,通信協(xié)議的防護(hù)機(jī)制相對(duì)薄弱,亟需對(duì)新型電力系統(tǒng)中的私有通信協(xié)議進(jìn)行有效識(shí)別和分析,以提升自動(dòng)化分析私有協(xié)議的效率?;陔娏ο到y(tǒng)中常用的modbus協(xié)議進(jìn)行參考測(cè)試,提出了一種高效的方法,驗(yàn)證了該方法的準(zhǔn)確性和性能。
3、現(xiàn)有技術(shù)在協(xié)議特征識(shí)別中存在不足。現(xiàn)有的協(xié)議特征提取主要依賴經(jīng)典的apriori算法,該算法需要頻繁掃描原始數(shù)據(jù)集,效率較低。此外,提取出的協(xié)議特征未經(jīng)過進(jìn)一步分析,影響了協(xié)議逆向的準(zhǔn)確性。在協(xié)議格式提取中,多序列比對(duì)算法可以有效推斷協(xié)議格式,但其在比對(duì)過程中會(huì)插入空白字符,降低協(xié)議格式推斷的準(zhǔn)確性。為提高協(xié)議格式推斷的準(zhǔn)確率,亟需引入新的處理流程進(jìn)行優(yōu)化。
4、為了解決上述問題,現(xiàn)提供一種技術(shù)方案。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)的上述缺陷,本發(fā)明一方面提供一種基于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析方法,通過靜態(tài)字段與動(dòng)態(tài)字段的精確分離,動(dòng)態(tài)字段的特征提取得到了優(yōu)化,關(guān)聯(lián)規(guī)則算法深入挖掘了隱藏的頻繁項(xiàng)和關(guān)聯(lián)特征,使動(dòng)態(tài)字段的特征能夠在特征矩陣中以結(jié)構(gòu)化的方式展現(xiàn),成為后續(xù)聚類與推斷的基礎(chǔ)。在此基礎(chǔ)上,特征矩陣的聚類操作通過dbscan算法將協(xié)議格式進(jìn)行分類和整合,處理了協(xié)議中的噪聲和異常數(shù)據(jù),為接下來的字段邊界識(shí)別提供了更加準(zhǔn)確的初步格式。再結(jié)合needleman-wunsch序列比對(duì)和信息熵校驗(yàn)技術(shù),對(duì)邊界位置進(jìn)行精確識(shí)別,并通過字段邊界模糊度指數(shù)與序列對(duì)齊誤差修正指數(shù)對(duì)模糊字段進(jìn)行動(dòng)態(tài)調(diào)整,互信息量校正機(jī)制進(jìn)一步增強(qiáng)了字段劃分的精度,確保了整個(gè)協(xié)議格式推斷的準(zhǔn)確性和處理的高效性,從而提升了復(fù)雜協(xié)議的解析能力,實(shí)現(xiàn)了自動(dòng)化的精準(zhǔn)處理流程,以解決上述背景技術(shù)中提出的問題。
2、本發(fā)明另一方面還提供一種基于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析系統(tǒng)。
3、為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
4、一種于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析方法,包括:
5、從工業(yè)網(wǎng)絡(luò)數(shù)據(jù)包中的實(shí)時(shí)數(shù)據(jù)包和離線數(shù)據(jù)包中獲取私有協(xié)議數(shù)據(jù)包。
6、基于簡(jiǎn)單序列比對(duì)的流量劃分,將獲取的私有協(xié)議數(shù)據(jù)包內(nèi)的數(shù)據(jù)按字段分離為靜態(tài)字段和動(dòng)態(tài)字段,提取動(dòng)態(tài)字段中的特征信息,將其封裝為特征數(shù)據(jù),生成特征矩陣。
7、對(duì)特征矩陣進(jìn)行聚類處理,形成協(xié)議格式的聚類集合。
8、對(duì)聚類后的協(xié)議格式集合進(jìn)行全局序列比對(duì)生成字段邊界初步集合,基于信息熵校驗(yàn)邊界位置,通過計(jì)算相鄰字段的熵差,結(jié)合字段邊界的模糊性與序列對(duì)齊誤差的綜合分析,動(dòng)態(tài)調(diào)整識(shí)別為高模糊性的字段邊界位置,直到熵差和熵值變化率滿足優(yōu)化標(biāo)準(zhǔn)。
9、在一個(gè)優(yōu)選的實(shí)施方式中,所述基于簡(jiǎn)單序列比對(duì)的流量劃分,將獲取的私有協(xié)議數(shù)據(jù)包內(nèi)的數(shù)據(jù)按字段分離為靜態(tài)字段和動(dòng)態(tài)字段,提取動(dòng)態(tài)字段中的特征信息,將特征信息封裝為特征數(shù)據(jù),生成特征矩陣具體包括以下內(nèi)容:
10、將獲取到的私有協(xié)議數(shù)據(jù)包內(nèi)的數(shù)據(jù)按字節(jié)順序序列化處理:將每個(gè)數(shù)據(jù)包內(nèi)數(shù)據(jù)的各個(gè)字段內(nèi)容轉(zhuǎn)化為連續(xù)的字節(jié)流表示。
11、利用簡(jiǎn)單序列比對(duì)算法對(duì)多個(gè)私有協(xié)議數(shù)據(jù)包進(jìn)行逐字節(jié)位置的對(duì)比,判斷同一字節(jié)位置上所有數(shù)據(jù)包中的值是否完全相同;對(duì)于在所有數(shù)據(jù)包中一致的字節(jié)位置,將其標(biāo)記為靜態(tài)字段;對(duì)于在不同數(shù)據(jù)包中存在變化的字節(jié)位置,將其標(biāo)記為動(dòng)態(tài)字段,是通過構(gòu)建一個(gè)字符集集合,每個(gè)集合包含相同字節(jié)位置上的值,若集合大小為1,則對(duì)應(yīng)字節(jié)位置為靜態(tài)字段,若集合大小大于1,則為動(dòng)態(tài)字段;最終輸出一個(gè)字段分類矩陣,矩陣中的每個(gè)位置標(biāo)記為靜態(tài)字段或動(dòng)態(tài)字段。
12、在分離出動(dòng)態(tài)字段后,應(yīng)用關(guān)聯(lián)規(guī)則算法對(duì)動(dòng)態(tài)字段進(jìn)行頻繁項(xiàng)集的挖掘;首先,對(duì)所有動(dòng)態(tài)字段的位置進(jìn)行編號(hào),并將每個(gè)動(dòng)態(tài)字段的內(nèi)容視為一個(gè)項(xiàng),使用apriori算法在動(dòng)態(tài)字段中識(shí)別頻繁出現(xiàn)的項(xiàng)集;具體步驟包括:對(duì)動(dòng)態(tài)字段的數(shù)據(jù)進(jìn)行掃描,統(tǒng)計(jì)每個(gè)字段出現(xiàn)的頻率,篩選出滿足最小支持度的頻繁項(xiàng)集;然后,基于已識(shí)別的頻繁項(xiàng)集生成強(qiáng)關(guān)聯(lián)規(guī)則,記錄每個(gè)動(dòng)態(tài)字段與對(duì)應(yīng)的關(guān)聯(lián)特征之間的關(guān)系。
13、基于頻繁項(xiàng)集挖掘的結(jié)果,確定每個(gè)動(dòng)態(tài)字段的關(guān)聯(lián)特征;將每個(gè)頻繁項(xiàng)集對(duì)應(yīng)的字段位置與其特征信息進(jìn)行關(guān)聯(lián),將其封裝為特征數(shù)據(jù);
14、將提取出的特征信息封裝成二維矩陣,生成特征矩陣。
15、在一個(gè)優(yōu)選的實(shí)施方式中,所述對(duì)特征矩陣進(jìn)行聚類處理,形成協(xié)議格式的聚類集合具體包括以下內(nèi)容:
16、從生成的特征矩陣中提取所有行作為數(shù)據(jù)點(diǎn),每一行對(duì)應(yīng)一個(gè)私有協(xié)議數(shù)據(jù)包的特征。
17、聚類處理采用dbscan算法,設(shè)定核心參數(shù)鄰域半徑和minpts;鄰域半徑表示以數(shù)據(jù)點(diǎn)為中心的鄰域范圍,即計(jì)算一個(gè)數(shù)據(jù)點(diǎn)影響到的其他數(shù)據(jù)點(diǎn)的最大距離;minpts表示對(duì)應(yīng)鄰域內(nèi)需要包含的最少數(shù)據(jù)點(diǎn)數(shù),以計(jì)算核心點(diǎn)。
18、通過設(shè)定好的dbscan參數(shù),進(jìn)行特征矩陣的聚類操作;對(duì)于每個(gè)數(shù)據(jù)點(diǎn),即每個(gè)私有協(xié)議數(shù)據(jù)包的特征,計(jì)算其與周圍其他數(shù)據(jù)點(diǎn)的距離,判斷是否落在鄰域半徑范圍內(nèi),并根據(jù)minpts參數(shù)判斷是否滿足核心點(diǎn)條件;如果一個(gè)數(shù)據(jù)點(diǎn)滿足核心點(diǎn)條件,則將對(duì)應(yīng)數(shù)據(jù)點(diǎn)及其鄰域范圍內(nèi)的所有數(shù)據(jù)點(diǎn)歸為一個(gè)聚類,繼續(xù)對(duì)這個(gè)聚類中的數(shù)據(jù)點(diǎn)進(jìn)行遞歸處理,直到所有數(shù)據(jù)點(diǎn)都被標(biāo)記為核心點(diǎn)或噪聲點(diǎn);聚類結(jié)果輸出多個(gè)聚類,每個(gè)聚類代表具有相似動(dòng)態(tài)字段特征的協(xié)議格式。
19、聚類結(jié)束后,將每個(gè)聚類的結(jié)果按順序編號(hào),每個(gè)編號(hào)對(duì)應(yīng)一組相似的私有協(xié)議數(shù)據(jù)包;對(duì)于每個(gè)聚類中的數(shù)據(jù)點(diǎn),僅記錄其在特征矩陣中的位置和特征信息,聚類結(jié)果存儲(chǔ)為一組特征矩陣的編號(hào)集合,每個(gè)集合代表一個(gè)協(xié)議格式類別;對(duì)每個(gè)聚類結(jié)果進(jìn)行編號(hào),并將其輸出為協(xié)議格式的聚類集合。
20、在一個(gè)優(yōu)選的實(shí)施方式中,所述對(duì)聚類后的協(xié)議格式集合進(jìn)行全局序列比對(duì)生成字段邊界初步集合,基于信息熵校驗(yàn)邊界位置,通過計(jì)算相鄰字段的熵差,結(jié)合字段邊界的模糊性與序列對(duì)齊誤差的綜合分析,動(dòng)態(tài)調(diào)整識(shí)別為高模糊性的字段邊界位置,直到熵差和熵值變化率滿足優(yōu)化標(biāo)準(zhǔn),具體包括以下內(nèi)容:
21、從生成的協(xié)議格式聚類集合中,提取具有相似動(dòng)態(tài)字段特征的協(xié)議數(shù)據(jù)包集合,將其作為輸入,使用needleman-wunsch算法對(duì)其進(jìn)行序列比對(duì);通過全局比對(duì)的方式,將協(xié)議報(bào)文中的各字段對(duì)齊,生成一個(gè)對(duì)齊的序列比對(duì)結(jié)果;序列比對(duì)的輸出為協(xié)議數(shù)據(jù)包中的字段邊界集合。
22、序列比對(duì)結(jié)果產(chǎn)生后,根據(jù)比對(duì)的字段位置,初步判斷協(xié)議報(bào)文中各個(gè)字段的邊界位置;通過needleman-wunsch算法的比對(duì)結(jié)果,將字段按照比對(duì)后的序列進(jìn)行初步劃分,并生成字段邊界位置的初步集合。
23、使用信息熵技術(shù)對(duì)序列比對(duì)獲得的字段邊界位置進(jìn)行校驗(yàn);輸出為經(jīng)過信息熵校驗(yàn)后的字段邊界集合。
24、對(duì)經(jīng)過信息熵校驗(yàn)的字段邊界進(jìn)行分析,評(píng)估邊界模糊性和序列對(duì)齊誤差;利用字段邊界模糊度指數(shù)量化字段邊界的模糊程度;同時(shí),結(jié)合序列對(duì)齊誤差修正指數(shù),分析協(xié)議字段在比對(duì)過程中出現(xiàn)的對(duì)齊誤差。
25、在一個(gè)優(yōu)選的實(shí)施方式中,其中,字段邊界模糊度指數(shù)的獲取邏輯如下:
26、對(duì)于協(xié)議報(bào)文中的每個(gè)字段邊界,首先計(jì)算其信息熵;設(shè)協(xié)議報(bào)文序列為,其中每個(gè)代表報(bào)文的某個(gè)字段或字段的一部分;字段的信息熵定義為:;其中,表示字段中的取值集合,為字段內(nèi)符號(hào)出現(xiàn)的概率。
27、捕捉字段邊界處的模糊性,計(jì)算每個(gè)字段邊界兩側(cè)相鄰字段的熵值差異;設(shè)字段與的邊界為,則計(jì)算相鄰字段的熵差為:。
28、捕捉邊界模糊性,計(jì)算字段熵值在邊界處的梯度變化率,計(jì)算字段兩側(cè)邊界的梯度為:。
29、根據(jù)熵差與熵梯度的綜合分析,計(jì)算字段邊界模糊度指數(shù)作為對(duì)邊界模糊性的量化指標(biāo);模糊度指數(shù)的公式如下:;其中,為防止分母為零的小值常數(shù)。
30、在一個(gè)優(yōu)選的實(shí)施方式中,其中,序列對(duì)齊誤差修正指數(shù)的獲取邏輯如下:
31、對(duì)于每個(gè)字段,計(jì)算其在比對(duì)過程中引入的偏移量,即比對(duì)前后字段起始位置的差異:;其中,和分別表示字段在比對(duì)前后的起始位置。
32、對(duì)于每個(gè)相鄰字段和,計(jì)算兩者在比對(duì)后的錯(cuò)位距離,表示兩個(gè)字段在比對(duì)結(jié)果中的相對(duì)位置差異:
33、。
34、為了捕捉字段間錯(cuò)位的變化趨勢(shì),計(jì)算錯(cuò)位距離的梯度變化率;設(shè)字段和其前后相鄰字段的錯(cuò)位距離為和,則梯度變化率為:;梯度變化率表示錯(cuò)位距離的波動(dòng)情況。
35、結(jié)合字段的偏移量、錯(cuò)位距離以及梯度變化率,計(jì)算序列對(duì)齊誤差修正指數(shù)用于量化對(duì)齊誤差,公式如下:;其中,是防止分母為零的常數(shù)。
36、在一個(gè)優(yōu)選的實(shí)施方式中,所述對(duì)聚類后的協(xié)議格式集合進(jìn)行全局序列比對(duì)生成字段邊界初步集合,基于信息熵校驗(yàn)邊界位置,通過計(jì)算相鄰字段的熵差,結(jié)合字段邊界的模糊性與序列對(duì)齊誤差的綜合分析,動(dòng)態(tài)調(diào)整識(shí)別為高模糊性的字段邊界位置,直到熵差和熵值變化率滿足優(yōu)化標(biāo)準(zhǔn),還包括以下內(nèi)容:
37、對(duì)字段邊界模糊度指數(shù)和序列對(duì)齊誤差修正指數(shù)進(jìn)行標(biāo)準(zhǔn)化處理,并經(jīng)過加權(quán)求和計(jì)算得到協(xié)議復(fù)雜度調(diào)控系數(shù)。
38、根據(jù)協(xié)議復(fù)雜度調(diào)控系數(shù)的大小進(jìn)行模式選擇:當(dāng)協(xié)議復(fù)雜度調(diào)控系數(shù)超過預(yù)設(shè)的臨界值時(shí),需要啟用增強(qiáng)校正模式,生成高模糊性信號(hào)。
39、在一個(gè)優(yōu)選的實(shí)施方式中,所述對(duì)聚類后的協(xié)議格式集合進(jìn)行全局序列比對(duì)生成字段邊界初步集合,基于信息熵校驗(yàn)邊界位置,通過計(jì)算相鄰字段的熵差,結(jié)合字段邊界的模糊性與序列對(duì)齊誤差的綜合分析,動(dòng)態(tài)調(diào)整識(shí)別為高模糊性的字段邊界位置,直到熵差和熵值變化率滿足優(yōu)化標(biāo)準(zhǔn),還包括以下內(nèi)容:
40、在得到邊界模糊性與對(duì)齊誤差的分析結(jié)果后,針對(duì)獲得高模糊性信號(hào)的字段邊界,重新計(jì)算其信息熵值,設(shè)每個(gè)字段的信息熵值為,相鄰字段的熵差;當(dāng)小于,即,表示對(duì)應(yīng)邊界存在模糊性;對(duì)于變化趨勢(shì)的判斷,計(jì)算相鄰字段的熵值變化率;當(dāng)與1的絕對(duì)差小于或等于預(yù)設(shè)閾值,表明熵值變化趨勢(shì)平穩(wěn),即字段邊界變化不明顯,動(dòng)態(tài)調(diào)整的具體方式是通過額定單位幅度平移字段邊界位置,逐步調(diào)整字段的邊界位置的位置,直到超過,且與1的絕對(duì)差大于預(yù)設(shè)閾值,表明字段邊界位置已調(diào)整到要求目的。
41、針對(duì)通過信息熵優(yōu)化后仍存在偏差的字段邊界,使用互信息量進(jìn)行校正。
42、本發(fā)明另一方面還提供一種基于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析系統(tǒng),包括:
43、數(shù)據(jù)獲取模塊,用于從工業(yè)網(wǎng)絡(luò)數(shù)據(jù)包中的實(shí)時(shí)數(shù)據(jù)包和離線數(shù)據(jù)包中獲取私有協(xié)議數(shù)據(jù)包;
44、特征矩陣生成模塊,用于基于簡(jiǎn)單序列比對(duì)的流量劃分,將獲取的私有協(xié)議數(shù)據(jù)包內(nèi)的數(shù)據(jù)按字段分離為靜態(tài)字段和動(dòng)態(tài)字段,提取動(dòng)態(tài)字段中的特征信息,將特征信息封裝為特征數(shù)據(jù),生成特征矩陣;
45、聚類模塊,用于對(duì)特征矩陣進(jìn)行聚類處理,形成協(xié)議格式的聚類集合;
46、字段邊界位置調(diào)整模塊,用于對(duì)聚類后的協(xié)議格式集合進(jìn)行全局序列比對(duì)生成字段邊界初步集合,基于信息熵校驗(yàn)邊界位置,通過計(jì)算相鄰字段的熵差,結(jié)合字段邊界的模糊性與序列對(duì)齊誤差的綜合分析,動(dòng)態(tài)調(diào)整識(shí)別為高模糊性的字段邊界位置,直到熵差和熵值變化率滿足優(yōu)化標(biāo)準(zhǔn)。
47、本發(fā)明基于關(guān)聯(lián)規(guī)則分析和序列比對(duì)的電力系統(tǒng)協(xié)議分析方法的技術(shù)效果和優(yōu)點(diǎn):
48、1.通過靜態(tài)字段與動(dòng)態(tài)字段的精確分離,提高了動(dòng)態(tài)字段特征提取的效率,同時(shí)通過關(guān)聯(lián)規(guī)則算法的應(yīng)用,捕捉到了動(dòng)態(tài)字段中隱藏的頻繁項(xiàng)和關(guān)聯(lián)特征,確保了數(shù)據(jù)的完整性與特征的全面性。利用特征矩陣的形式,使得私有協(xié)議的動(dòng)態(tài)字段信息能夠以結(jié)構(gòu)化、可分析的方式表達(dá),為私有協(xié)議的逆向解析提供了更高效的處理路徑,有效提升了協(xié)議格式推斷的準(zhǔn)確性和處理效率。
49、2.通過特征矩陣的聚類操作,實(shí)現(xiàn)了對(duì)私有協(xié)議數(shù)據(jù)包中動(dòng)態(tài)字段特征的分類與整合。利用dbscan算法的密度聚類特性,可以有效處理協(xié)議數(shù)據(jù)包中的噪聲點(diǎn)和異常數(shù)據(jù),確保協(xié)議格式分類的準(zhǔn)確性和魯棒性。聚類處理簡(jiǎn)化了協(xié)議格式推斷的復(fù)雜度,提高了對(duì)私有協(xié)議格式的解析效率,并為后續(xù)的字段邊界識(shí)別和協(xié)議格式推斷提供了堅(jiān)實(shí)的基礎(chǔ)。
50、3.通過結(jié)合needleman-wunsch序列比對(duì)算法與信息熵校驗(yàn)技術(shù),確保協(xié)議報(bào)文的字段邊界能夠被準(zhǔn)確識(shí)別,同時(shí)借助字段邊界模糊度指數(shù)和序列對(duì)齊誤差修正指數(shù)對(duì)邊界模糊性和序列對(duì)齊誤差的定量分析,實(shí)現(xiàn)了對(duì)模糊字段的動(dòng)態(tài)調(diào)整。最終,通過互信息量校正機(jī)制進(jìn)一步優(yōu)化邊界劃分的精度,確保字段的正確劃分和協(xié)議格式的準(zhǔn)確推斷,顯著提升了協(xié)議報(bào)文處理的效率和解析的準(zhǔn)確性,為復(fù)雜協(xié)議的自動(dòng)化解析提供了有力支撐。