System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及網(wǎng)絡(luò)通信領(lǐng)域,特別是一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng)及方法。
技術(shù)介紹
1、網(wǎng)絡(luò)流量識別方法包括:端口識別、深度包檢測(dpi)、深度流檢測(dfi)、機器學習等。目前生產(chǎn)環(huán)境中主要使用端口識別、深度包檢測(dpi)和深度流檢測(dfi)三種方法,其中深度包檢測(dpi)作為主要識別方法,端口識別和深度流檢測(dfi)由于存在識別率不高和誤識別的問題,作為輔助識別方法。深度包檢測方法通過加載應(yīng)用識別規(guī)則,使用多模式匹配對報文進行檢測,大量的規(guī)則會導致包深度檢測成本非常高(使用規(guī)則與每個包的payload進行匹配)。目前仍有部分網(wǎng)絡(luò)設(shè)備(產(chǎn)品)基于linux內(nèi)核開發(fā),如果在內(nèi)核實現(xiàn)完整的dpi引擎,引擎開發(fā)和維護成本非常高,且大量規(guī)則與每個包的payload匹配,也會增加內(nèi)核的負載,降低網(wǎng)絡(luò)設(shè)備的吞吐量。
技術(shù)實現(xiàn)思路
1、本專利技術(shù)的目的是提出了一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng)及方法。?本專利技術(shù)綜合考慮實現(xiàn)復(fù)雜度、維護成本、內(nèi)核負載、網(wǎng)絡(luò)吞吐量、識別率等后,提出的系統(tǒng)及方法適用于基于內(nèi)核開發(fā)的網(wǎng)絡(luò)設(shè)備。
2、專利技術(shù)包括的一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng)及方法系統(tǒng)及方法具體內(nèi)容如下:
3、一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng),所述系統(tǒng)包括初始化模塊、報文采集模塊以及應(yīng)用識別引擎:
4、所述初始化模塊,用于初始化完成報文應(yīng)用識別所需的資源;
5、所述報文采集模塊以內(nèi)核模塊的形式運行,通過nfqueue為應(yīng)用識別引擎提
6、所述應(yīng)用識別引擎以用戶態(tài)程序的方式運行,通過nfqueue獲取需要識別的報文內(nèi)容,對報文進行應(yīng)用識別,并將識別到的結(jié)果通過netlink更新至內(nèi)核nf_conntrack中;
7、所述報文采集模塊和應(yīng)用識別引擎相互配合完成報文應(yīng)用識別。
8、進一步地,?所述完成報文應(yīng)用識別所需的資源包括:netfilter框架的hook函數(shù)、內(nèi)核報文采集上送規(guī)則、用于內(nèi)核和用戶態(tài)之間傳輸數(shù)據(jù)的nfqueue和netlink、應(yīng)用識別引擎、應(yīng)用識別規(guī)則。
9、進一步地,?所述初始化模塊的具體處理流程如下:
10、(1)?加載內(nèi)核報文采集模塊;
11、(2)?初始化netfilter?框架的hook函數(shù)、內(nèi)核報文采集上送規(guī)則、nfqueue和netlink;
12、(3)?啟動應(yīng)用識別引擎;
13、(4)?初始化應(yīng)用識別引擎和應(yīng)用識別規(guī)則。
14、進一步地,所述報文采集模塊和應(yīng)用識別引擎相互配合完成報文應(yīng)用識別具體流程如下:
15、(1)?報文到達netfilter框架的input、output和forward?hook點;
16、(2)?報文采集模塊將報文內(nèi)容、元數(shù)據(jù)和流信息通過nfqueue送入應(yīng)用識別引擎中;
17、(3)?應(yīng)用識別引擎完成報文的應(yīng)用識別;
18、(4)?應(yīng)用識別引擎將識別的結(jié)果更新至內(nèi)核nf_conntrack中。
19、進一步地,?所述的報文應(yīng)用識別流程的詳細步驟如下:
20、步驟1、查找報文所屬流的應(yīng)用,?即nf_conntrack中的markid,若已識別則獲取nf_conntrack中的markid,并執(zhí)行步驟14,否則執(zhí)行步驟2;
21、步驟2、獲取報文所屬流的報文計數(shù),?即已被應(yīng)用識別引擎處理的報文數(shù),若報文計數(shù)大于設(shè)定閾值,則使用當前可識別到的最高協(xié)議作為報文的appid,并執(zhí)行步驟13,否則執(zhí)行步驟3;
22、步驟3、解析報文的第2或第3層協(xié)議;
23、步驟4、查找報文采集策略,若未匹配到對應(yīng)的采集策略則使用當前可識別到的最高協(xié)議作為報文的appid,并執(zhí)行步驟13,否則執(zhí)行步驟5;
24、步驟5、將報文內(nèi)容、元數(shù)據(jù)和流信息上送至nfqueue中;
25、步驟6、?判斷報文第四層協(xié)議類型,若不為tcp/udp則使用步驟3中解析到的基礎(chǔ)協(xié)議作為報文的appid,并執(zhí)行步驟12,否則執(zhí)步驟7;
26、步驟7、進行端口識別,若接收報文的端口為標準端口則直接使用該端口對應(yīng)的應(yīng)用作為報文的appid,并執(zhí)行步驟12,否則執(zhí)行步驟8;
27、步驟8、應(yīng)用層協(xié)議解析,如果解析結(jié)果為http協(xié)議則執(zhí)行步驟9,如果解析結(jié)果為https協(xié)議則執(zhí)行步驟10,如果解析結(jié)果為其他協(xié)議則執(zhí)行步驟11;
28、步驟9、?解析并提取http?request報文中host、user-agent和set-cookie字段并將其與預(yù)定的應(yīng)用識別規(guī)則進行匹配,識別報文所屬應(yīng)用,獲取報文的appid,并執(zhí)行步驟12;
29、步驟10、?解析并提取https的tls報文中server?name和relativedistinguishedname字段并將其與預(yù)定的應(yīng)用識別規(guī)則進行匹配,識別報文所屬應(yīng)用,獲取報文的appid,并執(zhí)行步驟12;
30、步驟11、?使用預(yù)定的應(yīng)用識別規(guī)則對整個報文payload進行匹配,識別報文所屬應(yīng)用,獲取報文的appid,并執(zhí)行步驟12;
31、步驟12、?通過netlink將報文的appid發(fā)送至內(nèi)核;
32、步驟13、?將報文的appid更新至nf_conntrack中的markid;
33、步驟14、?使用nf_conntrack中的markid更新skb報文中的markid。
34、進一步地,?所述的步驟9具體步驟如下:
35、步驟1、解析http?request報文中的http請求行和請求頭;
36、步驟為、從http請求行中提取method和uri并將其與預(yù)定的應(yīng)用識別規(guī)則進行匹配;
37、步驟3、判斷是否識別出報文所屬應(yīng)用,若識別出報文所屬應(yīng)用則執(zhí)行步驟6,否則執(zhí)行步驟4;
38、步驟4、從http請求頭中獲取host、user-agent和set-cookie字段并將其與預(yù)定的應(yīng)用識別規(guī)則進行匹配,識別報文所屬應(yīng)用;
39、步驟5、判斷是否識別出報文所屬應(yīng)用,若未識別出報文所屬應(yīng)用則輸出報文的appid為0;
40、步驟6、?輸出報文的appid。
41、進一步地,?所述的步驟10具體步驟如下:
42、步驟1、解析tls報文中的handshake?client?hello和handshake?certificate;
43、步驟2、?從handshake?client?hello中提取server?name字段,然后對其進行多模式匹配;
44、步驟3、?判斷是否識別出報文所屬應(yīng)用,若識別出報文所屬應(yīng)用則執(zhí)行步驟6,否則執(zhí)行步驟4;
45、步驟4、?從handshake?certificate中提取relativedisti本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng),其特征在于,所述系統(tǒng)包括初始化模塊、報文采集模塊以及應(yīng)用識別引擎:
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述完成報文應(yīng)用識別所需的資源包括:netfilter框架的HOOK函數(shù)、內(nèi)核報文采集上送規(guī)則、用于內(nèi)核和用戶態(tài)之間傳輸數(shù)據(jù)的nfqueue和netlink、應(yīng)用識別引擎、應(yīng)用識別規(guī)則。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述初始化模塊的具體處理流程如下:
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述報文采集模塊和應(yīng)用識別引擎相互配合完成報文應(yīng)用識別具體流程如下:
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,?所述的報文應(yīng)用識別流程的詳細步驟如下:
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,?所述的步驟9具體步驟如下:
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,?所述的步驟10具體步驟如下:
8.一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別方法,其特征在于,包含以下步驟:
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟(8。2)至(8。4)具體
10.一種電子設(shè)備,其特征在于,包括一個或多個處理器、一個或多個存儲器以及一個或多個程序,其中一個或多個程序存儲在所述一個或多個存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序包括用于執(zhí)行如權(quán)利要求8至9中任一所述方法的指令。
...【技術(shù)特征摘要】
1.一種基于內(nèi)核的網(wǎng)絡(luò)流量應(yīng)用識別系統(tǒng),其特征在于,所述系統(tǒng)包括初始化模塊、報文采集模塊以及應(yīng)用識別引擎:
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述完成報文應(yīng)用識別所需的資源包括:netfilter框架的hook函數(shù)、內(nèi)核報文采集上送規(guī)則、用于內(nèi)核和用戶態(tài)之間傳輸數(shù)據(jù)的nfqueue和netlink、應(yīng)用識別引擎、應(yīng)用識別規(guī)則。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述初始化模塊的具體處理流程如下:
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述報文采集模塊和應(yīng)用識別引擎相互配合完成報文應(yīng)用識別具體流程如下:
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,?所述的報...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:關(guān)洪濤,劉軍凱,王陽,胡德強,張玉軍,
申請(專利權(quán))人:江蘇省未來網(wǎng)絡(luò)創(chuàng)新研究院,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。