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