本發(fā)明屬于網(wǎng)絡(luò)空間安全,尤其涉及一種未知協(xié)議逆向分析與特征提取方法。
背景技術(shù):
1、網(wǎng)絡(luò)協(xié)議是為網(wǎng)絡(luò)數(shù)據(jù)交換而建立的一系列規(guī)則、標(biāo)準(zhǔn)和約定,在網(wǎng)絡(luò)通信中扮演著重要的角色。協(xié)議規(guī)范是對網(wǎng)絡(luò)協(xié)議語法、語義以及同步等信息的具體描述,是網(wǎng)絡(luò)安全相關(guān)研究工作的重要基礎(chǔ)。如模糊測試?yán)脜f(xié)議規(guī)范指導(dǎo)測試用例的生成以提高有效性,入侵檢測系統(tǒng)利用協(xié)議規(guī)范進(jìn)行深度數(shù)據(jù)包檢測以發(fā)現(xiàn)惡意流量等等。對于標(biāo)準(zhǔn)協(xié)議而言,可以通過公開文檔獲取其協(xié)議描述。然而在實際網(wǎng)絡(luò)環(huán)境中,大部分軟件廠商和個人都不愿意公開協(xié)議細(xì)節(jié)。如微軟使用的網(wǎng)絡(luò)文件共享smb(server?message?block)協(xié)議,oracle數(shù)據(jù)庫訪問的tns(transparence?network?substrate)協(xié)議以及微信、qq等即時通信軟件所使用的協(xié)議都沒有公開協(xié)議細(xì)節(jié),并且大量惡意軟件都采用自定義的私有協(xié)議實現(xiàn)網(wǎng)絡(luò)通信。技術(shù)人員將各類協(xié)議規(guī)范沒有公開的網(wǎng)絡(luò)協(xié)議稱為未知協(xié)議。各類未知協(xié)議在網(wǎng)絡(luò)中的廣泛使用,給網(wǎng)絡(luò)安全防護帶來了極大的阻礙。于是以未知協(xié)議為主要分析對象的協(xié)議逆向分析技術(shù)便應(yīng)運而生。
2、協(xié)議逆向分析技術(shù)是指在不依賴協(xié)議規(guī)范的情況下,通過對協(xié)議實體的網(wǎng)絡(luò)輸入輸出、系統(tǒng)行為和指令執(zhí)行流程進(jìn)行監(jiān)控和分析,提取協(xié)議格式以及狀態(tài)機的過程。早期的協(xié)議逆向工作主要依賴人工分析,其效率和準(zhǔn)確性取決于操作人員的專業(yè)知識水平,且周期較長,如wine項目花費了15年之久才發(fā)布了第一個穩(wěn)定版的適用于linux系統(tǒng)的windows應(yīng)用編程接口規(guī)范。隨著網(wǎng)絡(luò)規(guī)模不斷擴大,網(wǎng)絡(luò)環(huán)境日益復(fù)雜,手工分析已不能滿足實際需求,兼具效率與準(zhǔn)確性的自動化協(xié)議逆向分析技術(shù)逐漸進(jìn)入視線,并得到較廣泛的應(yīng)用。
技術(shù)實現(xiàn)思路
1、為解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提出一種未知協(xié)議逆向分析與特征提取方法。
2、本發(fā)明的技術(shù)方案如下:
3、一種未知協(xié)議逆向分析與特征提取方法,包括:
4、提取混合未知協(xié)議數(shù)據(jù)包的報文,然后采用abnf語法核心規(guī)則映射表,將所提取的報文按字節(jié)劃分為具有附加屬性的令牌;
5、使用jaccard系數(shù)和相應(yīng)的jaccard距離進(jìn)行不同報文中令牌的相似性計算,得到不同報文之間令牌的令牌格式距離;
6、基于所述令牌格式距離,采用文本相似度度量算法,獲取不同報文之間的報文格式距離;
7、基于所述報文格式距離,采用基于輪廓系數(shù)和鄧恩指數(shù)的dbscan算法進(jìn)行不同報文的聚類;
8、對于聚類形成的每種報文類別,利用nw算法對報文中出現(xiàn)區(qū)域相似度值躍變的區(qū)域內(nèi)容進(jìn)行提取,并將其標(biāo)記為未知協(xié)議的特征字符。
9、進(jìn)一步地,所述abnf語法核心規(guī)則映射表中,
10、對于屬性為cr的映射關(guān)系,其值集為0x0d,其說明為回車;
11、對于屬性為lf的映射關(guān)系,其值集為0x0a,其說明為換行;
12、對于屬性為htab的映射關(guān)系,其值集為0x09,其說明為水平標(biāo)簽;
13、對于屬性為sp的映射關(guān)系,其值集為0x20,其說明為空格;
14、對于屬性為dquote的映射關(guān)系,其值集為0x22,其說明為雙引號;
15、對于屬性為alpha的映射關(guān)系,其值集為0x41-0x5a和?0x61-0x7a,其說明為a-z和a-z;
16、對于屬性為的映射關(guān)系char,其值集為0x01-0x7f,其說明為任何7位us-ascii字符;
17、對于屬性為的映射關(guān)系ctl,其值集為0x00-0x1f,其說明為控制字符;
18、對于屬性為的映射關(guān)系digit,其值集為0x30-0x39,其說明為0-9;
19、對于屬性為的映射關(guān)系hexdig,其值集為0x30-0x39和?0x41-0x46,其說明為0-9和?a-f;
20、對于屬性為的映射關(guān)系octet,其值集為0x00-0xff,其說明為8位數(shù)據(jù);
21、對于屬性為的映射關(guān)系vchar,其值集為0x21-0xff,其說明為可打印字符。
22、進(jìn)一步地,所述使用jaccard系數(shù)和jaccard距離進(jìn)行不同報文中令牌的相似性計算,得到不同報文之間令牌的令牌格式距離的具體步驟包括:對于劃分形成的任意兩個令牌 m和 n,構(gòu)建令牌的屬性集分別為和式中, a1, a 2分別為令牌的屬性集中第1個屬性和第2個屬性;
23、使用jaccard系數(shù)和相應(yīng)的jaccard距離來表示相對語法屬性的相似性和差異性,計算公式如下:
24、;
25、式中, a11、 a10、 a01和 a00均為屬性全集的子集,所述屬性全集為令牌 m和 n的屬性集的并集; j( m, n)為令牌 m和 n的jaccard距離; d j( m, n)為令牌 m和 n的令牌格式距離,即tfd( m, n)。
26、進(jìn)一步地,計算兩個報文之間的報文格式距離,計算公式如下:
27、設(shè)置兩個報文之間的初始報文格式距離為 d( i,?0)= i, d(0, j)= j;
28、利用公式 d( i, j)=min{ d( i, j-1)+1, d( i-1, j)+1, d( i-1, j-1)+tfd( t i, t j)}來計算兩個報文的格式距離矩陣;式中, t i和 t j分別是兩個報文令牌的第 i和第 j個令牌,tfd( t i, t j)為兩個令牌之間的令牌格式距離;
29、最終兩個報文的報文格式距離為 d( x, y),其中 x和 y分別為兩個報文的令牌數(shù)量。
30、進(jìn)一步地,所述基于所述報文格式距離,采用基于輪廓系數(shù)和鄧恩指數(shù)的dbscan算法進(jìn)行不同報文的聚類的具體步驟包括:
31、基于報文格式距離,采用dbscan算法進(jìn)行聚類;選用輪廓系數(shù)和鄧恩指數(shù),來對聚類結(jié)果的質(zhì)量進(jìn)行評價,其中,所述輪廓系數(shù) a i的計算公式如下:
32、;
33、式中, c i為數(shù)據(jù)集中數(shù)據(jù)樣本 i所屬報文類型的樣本集合,表示集合 c i中除了數(shù)據(jù)樣本 i以外的準(zhǔn)備計算輪廓系數(shù)的數(shù)據(jù)點; d( i, j)為兩個報文的格式距離,輪廓系數(shù) a i表示平均簇內(nèi)距離;
34、所述鄧恩指數(shù) b i的計算公式如下:
35、;
36、式中, c j為數(shù)據(jù)集中數(shù)據(jù)樣本 i不歸屬的其他報文類型的樣本集合,為 c j中準(zhǔn)備計算鄧恩指數(shù)的數(shù)據(jù)點;鄧恩指數(shù) b i表示 i與其它簇之間最近的平均距離;
37、綜合輪廓系數(shù)和鄧恩指數(shù),得到如下聚類質(zhì)量評價公式:;式中, s i為綜合輪廓系數(shù)和鄧恩指數(shù)的聚類質(zhì)量評價指標(biāo),如果 s i的計算結(jié)果大于0.5,則判定該聚類結(jié)果正確。
38、進(jìn)一步地,所述對于聚類形成的每種報文類別,利用nw算法對報文中出現(xiàn)相似度值躍變區(qū)域的區(qū)域內(nèi)容進(jìn)行提取,并將其標(biāo)記為未知協(xié)議的特征字符的具體步驟包括:
39、利用nw算法逐個對不同報文類別的報文進(jìn)行區(qū)域相似度值計算,并統(tǒng)計各個區(qū)域相似度值,假定 s( i, j)表示第一個報文的前 i個字節(jié)與第二個報文的前 j個字節(jié)的相似度值,一旦出現(xiàn)以下三種情況,則開始記錄 i和 j的初始位置,記為( x0, y0):
40、 s( i+1, j+1)> s( i, j)
41、 s( i, j+1)> s( i, j)
42、 s( i+1, j)> s( i, j);
43、然后對 i和 j逐步進(jìn)行加1操作,直至 s( i, j)的結(jié)果不出現(xiàn)變化未知,并記錄此時 i和 j的位置( x1, y1),同時將第一個報文的( x0, x1)和第二個報文的( y0, y1)記為相似度值躍變區(qū)域;
44、隨后開始查詢下一個相似度值躍變的區(qū)域,直至兩個報文的所有字節(jié)都分析完畢;
45、在完成相似度值躍變區(qū)域識別后,各個相似度值躍變區(qū)域所隔開的字段集合即為未知協(xié)議的劃分結(jié)果,而相似度值躍變區(qū)域的內(nèi)容即為未知協(xié)議的特征字符。
46、相比于現(xiàn)有技術(shù)本發(fā)明具有如下有益效果:
47、本發(fā)明提出一種未知協(xié)議逆向分析與特征提取方法,該方法可以在處理未知協(xié)議的數(shù)據(jù)包時,通過計算令牌格式距離、報文格式距離、無監(jiān)督報文聚類、協(xié)議特征提取等方法,完成對未知協(xié)議的逆向分析和特征提取,有效解決當(dāng)前的方法難以針對未知協(xié)議進(jìn)行處理的問題;本發(fā)明方法利用協(xié)議逆向技術(shù),可以有效實現(xiàn)對未知協(xié)議的逆向分析和特征提取,從而實現(xiàn)對網(wǎng)絡(luò)中未知流量的應(yīng)用分類和識別,協(xié)助完成網(wǎng)絡(luò)治理和分析。