葉松
摘要:在高速網(wǎng)絡(luò)環(huán)境下,隨著用戶對(duì)端口的自由使用,點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)及加密協(xié)議開(kāi)始得到廣泛應(yīng)用。通過(guò)創(chuàng)建一個(gè)網(wǎng)絡(luò)協(xié)議分析庫(kù),深入網(wǎng)絡(luò)數(shù)據(jù)包,進(jìn)行深度學(xué)習(xí)的應(yīng)用層協(xié)議分類與分析識(shí)別,以提高協(xié)議檢測(cè)的準(zhǔn)確性。根據(jù)大量主流應(yīng)用程序的流特征進(jìn)行深度學(xué)習(xí),建立應(yīng)用協(xié)議特征庫(kù),通過(guò)算法實(shí)現(xiàn)應(yīng)用層協(xié)議的識(shí)別。研究一種應(yīng)用于APT攻擊防御系統(tǒng)、網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)與Web審計(jì)系統(tǒng)的應(yīng)用層協(xié)議識(shí)別技術(shù),可提高對(duì)APT攻擊防御判斷的準(zhǔn)確性。
關(guān)鍵詞:深度學(xué)習(xí);應(yīng)用協(xié)議識(shí)別;APT攻擊防御;入侵檢測(cè)
DOIDOI:10.11907/rjdk.181170
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)010-0194-06
英文摘要Abstract:In the high-speed network environment, with the free use of the port, the application of the point to point network and encryption protocol is also coming. By creating a network protocol analysis library, deep network data packets, and the application layer protocol classification and recognition of the depth learning, in order to improve the accuracy and universality of the protocol detection. According to the flow characteristics of a large number of mainstream applications for in-depth learning, the establishment of application protocol feature library, through the algorithm to achieve application protocol recognition technology. The application layer protocol high efficiency recognition technology used in the APT attack defense system, the network intrusion detection system and the Web audit system can improve the accuracy of the defense judgment of the APT attack.
英文關(guān)鍵詞Key Words:deep learning;application level protocol identification;advanced persistent threat;intrusion detection
0 引言
傳統(tǒng)網(wǎng)絡(luò)協(xié)議分析僅限于利用數(shù)據(jù)包包頭與端口進(jìn)行協(xié)議識(shí)別,但在高速網(wǎng)絡(luò)環(huán)境下,隨著用戶對(duì)端口的自由使用,P2P(點(diǎn)對(duì)點(diǎn))網(wǎng)絡(luò)以及基于HTTP封裝的加密協(xié)議開(kāi)始得到廣泛應(yīng)用,識(shí)別應(yīng)用層協(xié)議變得非常困難[1-2]。傳統(tǒng)網(wǎng)絡(luò)協(xié)議分析系統(tǒng)大多只能根據(jù)端口簡(jiǎn)單區(qū)分應(yīng)用層協(xié)議,即使有些分析工具能對(duì)部分應(yīng)用層協(xié)議內(nèi)容進(jìn)行分析,也只能分析HTTP或簡(jiǎn)單的應(yīng)用層協(xié)議。本文通過(guò)深度解析UDP、TCP負(fù)載內(nèi)容,深度學(xué)習(xí)并分析HTTP頭部指紋信息以及負(fù)載內(nèi)容,通過(guò)一套高速算法實(shí)現(xiàn)對(duì)現(xiàn)代網(wǎng)絡(luò)應(yīng)用協(xié)議的識(shí)別[3]。
傳統(tǒng)網(wǎng)絡(luò)安全設(shè)備,如防火墻、入侵檢測(cè)系統(tǒng),甚至是近期出現(xiàn)的APT攻擊防御系統(tǒng)等,如果應(yīng)用協(xié)議識(shí)別缺乏深度學(xué)習(xí)過(guò)程,則無(wú)法針對(duì)目前層出不窮的網(wǎng)絡(luò)安全問(wèn)題進(jìn)行高效、可靠的防御。具體表現(xiàn)如下:
(1)誤報(bào)率高。隨著應(yīng)用層協(xié)議越來(lái)越豐富,同一端口上可能運(yùn)行著多種協(xié)議,即使是同一種HTTP協(xié)議,也有著豐富的、更加具體的應(yīng)用層協(xié)議內(nèi)容。另外,原有的入侵檢測(cè)規(guī)則在某種特殊的應(yīng)用層協(xié)議(如SINA、360后臺(tái))下可能是正常數(shù)據(jù),并非攻擊事件,該情況出現(xiàn)得越來(lái)越多。因此,需要進(jìn)一步分析更深度的協(xié)議信息,以排除誤報(bào)。
(2)信息不全,無(wú)法分析。傳統(tǒng)的APT攻擊防御無(wú)法體現(xiàn)具體關(guān)聯(lián)信息,只能簡(jiǎn)單顯示FTP、HTTP等協(xié)議信息,而無(wú)法分析具體的攻擊手段與應(yīng)用工具,如變種木馬等。使用細(xì)粒度的應(yīng)用層協(xié)議分析,可以對(duì)各種攻擊手段與變種工具進(jìn)行細(xì)化分析。
(3)效率偏低。傳統(tǒng)的入侵檢測(cè)系統(tǒng)或APT攻擊防御系統(tǒng),在未知細(xì)粒度應(yīng)用層協(xié)議情況下都需要進(jìn)行檢測(cè),而大量網(wǎng)絡(luò)應(yīng)用、視頻等應(yīng)用層協(xié)議不需要進(jìn)行內(nèi)容檢測(cè),將其加入白名單協(xié)議表,可以提高檢測(cè)性能。
深度學(xué)習(xí)具體方式如下:①深度學(xué)習(xí)TCP Payload(負(fù)載)數(shù)據(jù)結(jié)構(gòu);②深度學(xué)習(xí)UDP Payload(負(fù)載)數(shù)據(jù)結(jié)構(gòu);③針對(duì)HTTP頭部數(shù)據(jù)結(jié)構(gòu)建立指紋庫(kù);④深度學(xué)習(xí)HTTP Payload(負(fù)載)數(shù)據(jù)結(jié)構(gòu)[4-6]。
1 分析檢測(cè)分類
傳統(tǒng)應(yīng)用協(xié)議分析基本上只是根據(jù)端口對(duì)協(xié)議進(jìn)行簡(jiǎn)單分析,一方面對(duì)于常見(jiàn)應(yīng)用協(xié)議(如SSH、FTP、SMTP、Telnet、HTTP等)而言,大多數(shù)分析都是簡(jiǎn)單有效的,但如果換了端口,這些應(yīng)用協(xié)議則無(wú)法被檢測(cè)出來(lái);另一方面隨著具體應(yīng)用協(xié)議(如微信、阿里旺旺、支付寶、百度插件、360安全、迅雷看看等互聯(lián)網(wǎng)實(shí)時(shí)流媒體傳輸協(xié)議)[7]越來(lái)越多,用戶也越來(lái)越多,需要對(duì)各個(gè)Payload的負(fù)載內(nèi)容進(jìn)行詳細(xì)分析。本文重點(diǎn)在于對(duì)不同Payload數(shù)據(jù)分支進(jìn)行分析,利用哈希算法[8]與模式匹配算法[9]快速實(shí)現(xiàn)協(xié)議解析,具體分為以下幾類:
(1)TCP協(xié)議帶Payload檢測(cè)函數(shù)。包括:①基于HTTP基礎(chǔ)的協(xié)議,例如微信、阿里旺旺等;②網(wǎng)站協(xié)議。包括購(gòu)物、行業(yè)企業(yè)、交通旅游、教育文化、生活服務(wù)、視頻與直播、體育健身、網(wǎng)絡(luò)科技、新聞媒體、休閑娛樂(lè)、醫(yī)療健康、政府組織等網(wǎng)站協(xié)議;③即時(shí)通訊、網(wǎng)絡(luò)視頻、網(wǎng)絡(luò)音樂(lè)、網(wǎng)絡(luò)游戲、P2P下載等點(diǎn)對(duì)點(diǎn)協(xié)議;④Oracle、Mssql、Mysql、PostgreSQL等常見(jiàn)數(shù)據(jù)庫(kù)協(xié)議;⑤其它協(xié)議。
(2)TCP協(xié)議不帶Payload檢測(cè)函數(shù)。優(yōu)先進(jìn)行端口分類識(shí)別,然后進(jìn)入深度內(nèi)容學(xué)習(xí),利用AC-BM模式匹配算法。
(3)UDP協(xié)議帶Payload檢測(cè)函數(shù)。包括部分即時(shí)通訊協(xié)議與其它應(yīng)用層協(xié)議,然后進(jìn)入深度內(nèi)容學(xué)習(xí),利用AC-BM模式匹配算法。
(4)UPD協(xié)議不帶Payload檢測(cè)函數(shù)。優(yōu)先進(jìn)行端口分類識(shí)別。
(5)其它協(xié)議檢測(cè)函數(shù)。
2 規(guī)則研究庫(kù)建設(shè)
規(guī)則研究庫(kù)建設(shè)步驟如下:
(1)對(duì)研究庫(kù)進(jìn)行主動(dòng)深度分析,建立干凈無(wú)網(wǎng)絡(luò)訪問(wèn)的系統(tǒng),以避免其它網(wǎng)絡(luò)應(yīng)用的干擾。通過(guò)Wireshark與IPMonitor工具對(duì)多種類型的網(wǎng)絡(luò)應(yīng)用行為進(jìn)行抓包分析,然后將不同場(chǎng)景下抓取的數(shù)據(jù)包進(jìn)行對(duì)比,得出正則表達(dá)式形式的應(yīng)用層協(xié)議特征,對(duì)協(xié)議特征進(jìn)行歸納總結(jié)、分類建模,并導(dǎo)入規(guī)則庫(kù)。詳細(xì)過(guò)程如下:①將交換機(jī)設(shè)置為鏡像監(jiān)聽(tīng)口,監(jiān)聽(tīng)系統(tǒng)打開(kāi)Wireshark,運(yùn)行捕包;②以微信為例,試驗(yàn)設(shè)備登錄微信,發(fā)送一條簡(jiǎn)單消息;③Wireshark停止捕包,開(kāi)始分析數(shù)據(jù),根據(jù)端口、TCP/IP協(xié)議類型判斷是否為HTTP協(xié)議,獲取所有頭部信息,建立深度學(xué)習(xí)指紋庫(kù),驗(yàn)證HTTP負(fù)載內(nèi)容有無(wú)特征碼,將分析結(jié)果導(dǎo)入規(guī)則庫(kù)。
(2)對(duì)研究庫(kù)進(jìn)行被動(dòng)深度分析,實(shí)驗(yàn)期間將出口數(shù)據(jù)接入識(shí)別引擎,將未知協(xié)議保存為原始會(huì)話PCAP包,作為后續(xù)篩選分析依據(jù)。按以下層次保存為樹(shù)文件模式:網(wǎng)絡(luò)協(xié)議→端口→關(guān)鍵選項(xiàng)內(nèi)容正則表達(dá)式[9]。根據(jù)大流量?jī)?yōu)先分析原則,被動(dòng)選擇分析協(xié)議,同時(shí)查看是否為應(yīng)用層協(xié)議,如果是,則對(duì)研究庫(kù)進(jìn)行主動(dòng)深度分析。
(3)收集信息,建立研究庫(kù)。收集國(guó)內(nèi)外各大網(wǎng)站信息,其中以國(guó)內(nèi)網(wǎng)站信息為主,并進(jìn)行排名統(tǒng)計(jì),同時(shí)收集各種主流應(yīng)用協(xié)議。
規(guī)則內(nèi)容部分有:①端口;②網(wǎng)絡(luò)協(xié)議;③TCP Paylaod指紋內(nèi)容(包含內(nèi)容起點(diǎn)、終點(diǎn)字節(jié)或PCRE正則表達(dá)式);④HTTP頭部?jī)?nèi)容(包含HTTP URL關(guān)鍵字、域名關(guān)鍵字、請(qǐng)求報(bào)文、Cookie關(guān)鍵字、User_agent、HTTP請(qǐng)求方法、返回報(bào)文、內(nèi)容關(guān)鍵字與HTTP狀態(tài)碼);⑤HTTP指紋內(nèi)容(包含內(nèi)容起點(diǎn)、終點(diǎn)字節(jié)或PCRE正則表達(dá)式)。其中PCRE正則表達(dá)式不推薦使用,但對(duì)于非常復(fù)雜的語(yǔ)法規(guī)則,其有利于規(guī)則編寫的簡(jiǎn)單化。
部分應(yīng)用層協(xié)議列表如表1所示。
3 算法處理
本文研究目標(biāo)是在龐大的現(xiàn)代網(wǎng)絡(luò)流量中,實(shí)現(xiàn)對(duì)近千種應(yīng)用層協(xié)議的分析。因此,需要一套高速算法實(shí)現(xiàn)對(duì)應(yīng)用層協(xié)議的精確識(shí)別,主要包括以下兩種算法:
(1) 哈希表快速查找算法[8]。它通過(guò)將關(guān)鍵碼映射到表中某個(gè)位置進(jìn)行記錄訪問(wèn),以加快查找速度。若關(guān)鍵字為k,則其值存放在f(k)(哈希算法值)的存儲(chǔ)位置上。給定表M,存在函數(shù)f(key),對(duì)任意給定的關(guān)鍵字值key,將其代入函數(shù)后,若能得到該關(guān)鍵字記錄在表中的內(nèi)存地址,則稱表M為哈希(Hash)表,函數(shù)f(key)為哈希(Hash)函數(shù)。若關(guān)鍵字為k,則其值存放在f(k)的存儲(chǔ)位置上。因此,不需要進(jìn)行比較,便可直接獲取所查記錄,稱該對(duì)應(yīng)關(guān)系f(k)為散列函數(shù),按該方法建立的表為散列表。對(duì)于不同關(guān)鍵字,可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),該現(xiàn)象稱為碰撞。因此,需要制定合理的哈希算法以減少碰撞。本文哈希值算法是采用SHA1算法實(shí)現(xiàn)的。SHA1算法采用NIST NSA進(jìn)行設(shè)計(jì),其對(duì)長(zhǎng)度小于264位的輸入,產(chǎn)生長(zhǎng)度為160bit的散列值,因而其抗窮舉性能更好。哈希表包括:①會(huì)話哈希表。其能夠快速得知會(huì)話歷史狀態(tài),是實(shí)現(xiàn)下步分析跳轉(zhuǎn)的關(guān)鍵,如果是已完成分析的會(huì)話,后續(xù)將不再進(jìn)行檢查分析。對(duì)不同狀態(tài)的會(huì)話,可快速定位其下步流程函數(shù)。本文以源IP端口加目標(biāo)IP端口的數(shù)據(jù)結(jié)構(gòu)作為關(guān)鍵字,通過(guò)32位哈希算法值建立哈希表;②HTTP協(xié)議庫(kù)哈希表。將HTTP的頭部選項(xiàng)作為哈希關(guān)鍵字,通過(guò)32位哈希算法值建立哈希表。其缺點(diǎn)是需要大內(nèi)存的硬件設(shè)備支持,內(nèi)存要求至少為4G以上,建議使用8G內(nèi)存硬件。
(2)AC-BM模式匹配算法。它將待匹配的字符串集合轉(zhuǎn)換為一個(gè)類似于Aho-Corasick算法的樹(shù)狀有限狀態(tài)自動(dòng)機(jī),但其構(gòu)建時(shí)不是基于字符串的后綴而是前綴。匹配時(shí),采取自后向前的方法,并借用BM算法的壞字符跳轉(zhuǎn)(Bad Character Shift)與好前綴跳轉(zhuǎn)(Good Prefix Shift)技術(shù)。壞字符跳轉(zhuǎn)即當(dāng)字符串樹(shù)中的字符與被匹配內(nèi)容x失配時(shí),將字符串樹(shù)跳轉(zhuǎn)到下一個(gè)x出現(xiàn)的位置,如果x的字符串樹(shù)不存在,則將字符串樹(shù)向左移動(dòng)最小字符串長(zhǎng)度;好前綴跳轉(zhuǎn)即當(dāng)字符串樹(shù)中的字符與被匹配內(nèi)容x失配時(shí),將字符串樹(shù)跳轉(zhuǎn)到字符串樹(shù)中一個(gè)與被測(cè)正文部分等同的位置。該等同部分可以是字符串樹(shù)中某字符串的子串(子串跳轉(zhuǎn)),也可以是一個(gè)字符串后綴(后綴跳轉(zhuǎn))。當(dāng)既有好后綴跳轉(zhuǎn)又有壞字符跳轉(zhuǎn)時(shí),則判斷如果有后綴跳轉(zhuǎn),即使用好前綴跳轉(zhuǎn)(子串跳轉(zhuǎn)與后綴跳轉(zhuǎn)的最小值),否則使用好前綴跳轉(zhuǎn)與壞字符跳轉(zhuǎn)的最大值。該算法主要用于TCP與UDP的Payload負(fù)載內(nèi)容,以及HTTP無(wú)關(guān)頭部信息的Paylaod負(fù)載內(nèi)容匹配。
4 實(shí)現(xiàn)過(guò)程
本文技術(shù)實(shí)現(xiàn)是在Linux Centos6.4系統(tǒng)上進(jìn)行的[10],開(kāi)發(fā)語(yǔ)言為C語(yǔ)言,開(kāi)發(fā)調(diào)試工具為Eclipse,以計(jì)算機(jī)網(wǎng)絡(luò)高級(jí)教程作為開(kāi)發(fā)指導(dǎo)[11]。實(shí)現(xiàn)具體步驟如下:
步驟1:初始化識(shí)別引擎,讀取配置文件,再初始化內(nèi)存分配與數(shù)據(jù)結(jié)構(gòu)。
步驟2:讀取前期建立的規(guī)則研究庫(kù),初始化鏈表,注冊(cè)對(duì)應(yīng)每個(gè)規(guī)則識(shí)別函數(shù),讀取每個(gè)規(guī)則庫(kù)關(guān)鍵信息。TCP/IP應(yīng)用層協(xié)議分析包括對(duì)網(wǎng)絡(luò)層協(xié)議信息、端口信息、可選部分服務(wù)器信息、可選部分Paylaod負(fù)載信息,以及對(duì)應(yīng)內(nèi)容模式指紋、可選部分HTTP頭部信息指紋、可選部分Http Paylaod負(fù)載信息指紋等的分析。規(guī)則庫(kù)注冊(cè)內(nèi)存按樹(shù)結(jié)構(gòu)進(jìn)行分類,先按端口進(jìn)行分類,建立65 535個(gè)數(shù)組的快速分揀結(jié)構(gòu)表,再根據(jù)網(wǎng)絡(luò)層協(xié)議進(jìn)行分類,下層樹(shù)是HTTP頭部指紋哈希表,最后末樹(shù)節(jié)點(diǎn)為Paylaod負(fù)載指紋信息[12]。
步驟3:完成Libpcap初始化工作,打開(kāi)網(wǎng)絡(luò)設(shè)備,設(shè)置過(guò)濾規(guī)則,捕獲數(shù)據(jù)并進(jìn)入監(jiān)聽(tīng)模式。Libpcap讀取網(wǎng)卡PC AP數(shù)據(jù),根據(jù)端口進(jìn)行分組分揀;然后根據(jù)會(huì)話的四元組(源IP、源端口、目標(biāo)IP、目標(biāo)端口)建立會(huì)話哈希表,查找會(huì)話哈希表是否已存在,如果不存在,則建立新會(huì)話節(jié)點(diǎn),并得到該會(huì)話信息的哈希節(jié)點(diǎn)狀態(tài),具體分為:①初始化建立狀態(tài);②完成協(xié)議識(shí)別狀態(tài);③TCP內(nèi)容模式匹配狀態(tài);④UDP內(nèi)容模式匹配狀態(tài);⑤HTTP頭部指紋學(xué)習(xí)狀態(tài);⑥HTTP內(nèi)容學(xué)習(xí)狀態(tài)。
步驟4:對(duì)于新建立的會(huì)話哈希節(jié)點(diǎn),先根據(jù)默認(rèn)端口對(duì)應(yīng)的識(shí)別流程進(jìn)行快速識(shí)別。若識(shí)別失敗,則進(jìn)行非默認(rèn)端口的TCP或UDP、Payload識(shí)別。對(duì)于Payload內(nèi)容,優(yōu)先考慮使用模式匹配算法,以快速實(shí)現(xiàn)對(duì)Payload內(nèi)容的識(shí)別。對(duì)于無(wú)可用模式匹配的規(guī)則內(nèi)容,則采用應(yīng)用層異常檢測(cè)方法[13]。根據(jù)應(yīng)用層協(xié)議關(guān)鍵詞以及對(duì)動(dòng)態(tài)應(yīng)用層協(xié)議[14]、正則表達(dá)式應(yīng)用層協(xié)議的識(shí)別,建立檢測(cè)內(nèi)容。以下是Payload識(shí)別初始化函數(shù):
void Payload MatchInit(char *data, contNode * con, int protocol)
{ PatternContData *pcd;
char *data_end;
char *data_dup;
char *opt_data;
int opt_len = 0;
char *next_opt;
pcd = NewNode(con, PATTERN_MATCH);
lastType = PATTERN_MATCH;
data_dup = myMalloc(data);
data_end = data_dup + strlen(data_dup);
opt_data = PayloadExtParameter(data_dup, &opt;_len);
ParsePattern(opt_data, con, PATTERN_MATCH);
next_opt = opt_data + opt_len;
fpl = AddOptFuncToList(CheckANDPatternMatch, con);
fpl->type = RULE_OPTION_TYPE_CONTENT;
pcd->buffer_func = CHECK_AND_PATTERN_MATCH;
fpl->context = pcd;
// 循環(huán)讀取每個(gè)Payload規(guī)則節(jié)點(diǎn)
while (next_opt < data_end)
......
}
步驟5:TCP Payload在進(jìn)行識(shí)別時(shí),如果是非HTTP協(xié)議,且識(shí)別成功后,會(huì)修改會(huì)話哈希表結(jié)點(diǎn)狀態(tài),完成協(xié)議識(shí)別;如果是HTTP協(xié)議,則繼續(xù)下一步,進(jìn)入HTTP頭部與內(nèi)容識(shí)別。
步驟6:在HTTP協(xié)議基礎(chǔ)上進(jìn)行識(shí)別,對(duì)包含關(guān)鍵字、域名關(guān)鍵字、請(qǐng)求報(bào)文、Cookie關(guān)鍵字、User_agent的HTTP URL結(jié)構(gòu),建立HTTP關(guān)鍵字哈希表。規(guī)則中如無(wú)HTTP內(nèi)容,則利用關(guān)鍵字的哈希表進(jìn)行快速匹配,直接完成應(yīng)用層協(xié)議識(shí)別。對(duì)于無(wú)法識(shí)別的協(xié)議,將應(yīng)用層協(xié)議標(biāo)識(shí)為HTTP協(xié)議;對(duì)于成功識(shí)別的協(xié)議,修改會(huì)話哈希結(jié)點(diǎn)狀態(tài)為成功,并對(duì)HTTP Payload部分使用模式匹配算法快速實(shí)現(xiàn)Payload內(nèi)容識(shí)別,識(shí)別成功后,再修改會(huì)話哈希結(jié)點(diǎn)狀態(tài)。
步驟7:對(duì)于協(xié)議解析失敗的會(huì)話,按IP端口樹(shù)結(jié)構(gòu)保存會(huì)話PCAP,作為后續(xù)入庫(kù)分析樣本。
分析流程如圖1所示。
以微信數(shù)據(jù)包識(shí)別為例,實(shí)現(xiàn)步驟如下:
(1)建立規(guī)則庫(kù)。具體過(guò)程為:①建立純凈的網(wǎng)絡(luò)環(huán)境,在此基礎(chǔ)上先打開(kāi)Wireshark進(jìn)入捕包狀態(tài),然后多次登錄微信,發(fā)送微信信息,建立微信PCAP包目錄文檔,并保存對(duì)應(yīng)的PCAP包信息;②用Wireshark打開(kāi) PCAP包[15](對(duì)于微軟公司的應(yīng)用,使用IPMonitor工具打開(kāi)),利用追蹤流功能查看該會(huì)話內(nèi)容;③查看會(huì)話端口與TCP層結(jié)構(gòu),得到幾個(gè)會(huì)話端口都為80端口,然后查看網(wǎng)絡(luò)協(xié)議,得到TCP協(xié)議,最后查看上一層協(xié)議,得到HTTP協(xié)議;④HTTP頭部信息分析,GET:/mmsns/。。。;HTTP/1.1;Host: shmmsns.qpic.cn;X-Online-Host: shmmsns.qpic.cn;referer: http://weixin.qq.com/?。。。User-Agent: Dalvik/2.1.0(安卓系統(tǒng))Accept-Encoding: gzip。根據(jù)相關(guān)內(nèi)容建立指紋信息,保存到規(guī)則庫(kù);⑤經(jīng)分析發(fā)現(xiàn),微信是建立在HTTP協(xié)議基礎(chǔ)上的,由HTTP頭部信息已足以辨別出該協(xié)議;⑥Payload內(nèi)容分析,獲取Get操作內(nèi)容的關(guān)鍵指紋(非必選),服務(wù)器回應(yīng)Paylaod信息(非必選)。
(2)引擎檢測(cè)。具體過(guò)程為:①對(duì)于網(wǎng)卡捕獲的每條PCAP包,先查找會(huì)話哈希結(jié)點(diǎn)。如果是首次出現(xiàn)的會(huì)話,插入會(huì)話4元組的哈希表節(jié)點(diǎn):10.4.6.198:56614 --120.120.0.150:80,同時(shí)初始化哈希信息狀態(tài)為建立狀態(tài);②更改結(jié)點(diǎn)狀態(tài)信息,根據(jù)80端口優(yōu)先的檢測(cè)原則,進(jìn)入TCP Payload負(fù)載狀態(tài);③得到HTTP協(xié)議,進(jìn)入HTTP選項(xiàng)哈希表,得到哈希表結(jié)構(gòu)信息如下:Host: short.weixin.qq.com;User-Agent: MicroMessenger Client;User-Agent: Dalvik,其它為可選信息;④匹配到微信協(xié)議,則無(wú)需再進(jìn)行HTTP Payload檢測(cè),更新會(huì)話哈希表結(jié)點(diǎn)狀態(tài)為完成,將該會(huì)話信息結(jié)構(gòu)保存到數(shù)據(jù)庫(kù);⑤會(huì)話結(jié)束,刪除哈希表結(jié)點(diǎn)。
微信數(shù)據(jù)包識(shí)別結(jié)果如圖3所示。
5 結(jié)語(yǔ)
基于現(xiàn)代網(wǎng)絡(luò)的深度學(xué)習(xí)應(yīng)用協(xié)議識(shí)別需要花費(fèi)大量時(shí)間,且后期需要不斷更新完善,但其具有重要意義與廣闊的應(yīng)用前景,具體如下:
(1)可實(shí)現(xiàn)600種以上的應(yīng)用層協(xié)議解析,后續(xù)根據(jù)定義好的庫(kù)文件要求,還將不斷添加新的協(xié)議庫(kù)。
(2)將識(shí)別的應(yīng)用層協(xié)議添加到APT攻擊防御相關(guān)系統(tǒng)中,使用部分協(xié)議為白名單應(yīng)用規(guī)則,可排除大量誤報(bào)信息,同時(shí)過(guò)濾其檢測(cè),從而提高系統(tǒng)性能。
(3)應(yīng)用層協(xié)議可作為網(wǎng)絡(luò)入侵檢測(cè)與APT攻擊防御的關(guān)鍵檢測(cè)信息,并為后期的大數(shù)據(jù)分析提供攻擊熱點(diǎn)與關(guān)聯(lián)信息。對(duì)于深度學(xué)習(xí)的應(yīng)用層協(xié)議,可為網(wǎng)絡(luò)信息內(nèi)容審計(jì)[16]提供一個(gè)重要的內(nèi)容快速索引項(xiàng),也是網(wǎng)絡(luò)信息內(nèi)容審計(jì)中的一個(gè)重要參考依據(jù)。
參考文獻(xiàn):
[1] 中國(guó)網(wǎng)絡(luò)空間研究院.世界互聯(lián)網(wǎng)發(fā)展報(bào)告2017世界互聯(lián)網(wǎng)大會(huì)藍(lán)皮書(shū)[M].北京:電子工業(yè)出版社,2017.
[2] 白哲哲.基于P2P的跨平臺(tái)即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2014.
[3] DAVID GOURLEY.HTTP權(quán)威指南[M]. 陳涓,趙振平,譯.北京:人民郵電出版社,2012.
[4] 凱文 R 福爾.TCP/IP詳解(卷1:協(xié)議)[M].吳英,張玉,許昱瑋,譯.北京:機(jī)械工業(yè)出版社,2016.
[5] 賴特.TCP/IP詳解(卷2:實(shí)現(xiàn))[M].吳英,張玉,許昱瑋,譯.北京:機(jī)械工業(yè)出版社,2014.
[6] W RICHARD STEVENS. TCP/IP詳解(卷3:TCP事務(wù)協(xié)議、HTTP、NNTP和UNIX域協(xié)議)[M].胡谷雨,吳禮發(fā),譯.北京:機(jī)械工業(yè)出版社,2011.
[7] 李昕.互聯(lián)網(wǎng)實(shí)時(shí)流媒體傳輸關(guān)鍵技術(shù)的研究[D].北京:北京交通大學(xué),2010.
[8] THOMAS H CORMEN.算法導(dǎo)論[M].殷建平,徐云,王剛,譯.北京:機(jī)械工業(yè)出版社,2013.
[9] 李亮亮.AC_BM多模式匹配算法分析與改進(jìn)[D].合肥:合肥工業(yè)大學(xué), 2012.
[10] 宋敬彬.Linux網(wǎng)絡(luò)編程[M].第2版.北京:清華大學(xué)出版社,2014.
[11] 吳功宜,吳英.計(jì)算機(jī)網(wǎng)絡(luò)高級(jí)教程[M].北京:清華大學(xué)出版社,2015.
[12] 杜曉春,劉婉妮,王宏.TCP/IP應(yīng)用層協(xié)議分析與C++實(shí)現(xiàn)[J].電子測(cè)試,2013(12):86-87.
[13] 謝柏林,余順爭(zhēng).基于應(yīng)用層協(xié)議關(guān)鍵詞序列的應(yīng)用層異常檢測(cè)方法[J].計(jì)算機(jī)研究與發(fā)展,2011,48(1):159-168.
[14] 王杰,石成輝.基于正則表達(dá)式的動(dòng)態(tài)應(yīng)用層協(xié)議識(shí)別方案[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(18):103-106.
[15] 高凱,趙登攀.PCAP文件格式網(wǎng)絡(luò)數(shù)據(jù)包分析軟件設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013(12):150-151.
[16] 孫欽東,管曉宏,周亞?wèn)|.網(wǎng)絡(luò)信息內(nèi)容審計(jì)研究的現(xiàn)狀及趨勢(shì)[J].計(jì)算機(jī)研究與發(fā)展,2009,46(8):1241-1250.
(責(zé)任編輯:黃 ?。?/p>