本發(fā)明涉及一種基于惡意網(wǎng)絡(luò)流量詞庫的惡意軟件檢測(cè)方法及系統(tǒng)。
背景技術(shù):
隨著移動(dòng)終端的廣泛使用,尤其是智能手機(jī)的迅速普及,移動(dòng)智能終端帶給現(xiàn)代社會(huì)巨大的變革,進(jìn)入21世紀(jì)以來,我們已經(jīng)迅速步入了移動(dòng)時(shí)代。而手機(jī)已不再局限于傳統(tǒng)意義上的通信業(yè)務(wù),已經(jīng)成為集電子商務(wù)、個(gè)人支付、社交娛樂等功能于一體的強(qiáng)大終端。
通過網(wǎng)絡(luò)流量來發(fā)現(xiàn)移動(dòng)終端的惡意軟件網(wǎng)絡(luò)行為是近年新興的一種惡意軟件檢測(cè)技術(shù),并取得了一些初步的研究成果。通過網(wǎng)絡(luò)流量來檢測(cè)惡意軟件不需要用戶在終端設(shè)備上安裝檢測(cè)程序,極大地降低了用戶終端設(shè)備的計(jì)算資源,但是,現(xiàn)有的基于移動(dòng)終端網(wǎng)絡(luò)流量的檢測(cè)技術(shù)存在以下幾個(gè)缺點(diǎn):
(1)現(xiàn)有的基于移動(dòng)終端的網(wǎng)絡(luò)流量檢測(cè)惡意軟件的方法也僅僅局限于某一類統(tǒng)計(jì)特征,如包長(zhǎng),包大小分布等等,或者是局限于某些特殊字段,如HTTP的host字段,request-uri字段等。這些方法都缺乏對(duì)移動(dòng)終端網(wǎng)絡(luò)流量特征進(jìn)行系統(tǒng)性的總結(jié)和針對(duì)不同類型的網(wǎng)絡(luò)流量特征的檢測(cè)方法。
(2)現(xiàn)在的網(wǎng)絡(luò)流量特征的選擇十分困難,它需要專家對(duì)移動(dòng)應(yīng)用的運(yùn)行機(jī)制十分了解,還要清楚正常應(yīng)用和惡意應(yīng)用的網(wǎng)絡(luò)流量的差別才能選擇出有識(shí)別惡意流量?jī)r(jià)值的特征。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了解決上述問題,提供一種基于惡意網(wǎng)絡(luò)流量詞庫的惡意軟件檢測(cè)方法及系統(tǒng),使用這個(gè)惡意網(wǎng)絡(luò)流量詞庫,我們不需要手動(dòng)選擇特征,只需要獲取與詞庫中的單詞的對(duì)比結(jié)果,然后建立出一個(gè)檢測(cè)模型,就可以用于對(duì)惡意流量的檢測(cè),從而能夠判別產(chǎn)生該惡意流量的app是惡意軟件。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于惡意網(wǎng)絡(luò)流量詞庫的惡意軟件檢測(cè)方法,包括如下步驟:
步驟(1):建立惡意網(wǎng)絡(luò)流量詞庫;
步驟(2):訓(xùn)練惡意軟件檢測(cè)模型;
步驟(3):對(duì)待檢測(cè)HTTP網(wǎng)絡(luò)流量的流內(nèi)容進(jìn)行分割,分割成單詞集合;
步驟(4):對(duì)單詞集合進(jìn)行向量化:將步驟(3)得到的單詞集合利用步驟(1)得到的詞庫轉(zhuǎn)變成詞向量;
步驟(5):將步驟(4)的詞向量輸入到步驟(2)訓(xùn)練出的惡意軟件檢測(cè)模型中,若模型對(duì)詞向量的檢測(cè)結(jié)果為惡意,則找到詞向量對(duì)應(yīng)的網(wǎng)絡(luò)流的源頭app,并標(biāo)記為惡意app。
所述步驟(1)的步驟為:
步驟(1-1):獲取正常的HTTP網(wǎng)絡(luò)流量的內(nèi)容,對(duì)獲取到的正常的HTTP網(wǎng)絡(luò)流量的內(nèi)容進(jìn)行分詞,得到正常的HTTP網(wǎng)絡(luò)流量的正常詞集;進(jìn)入步驟(1-3);
步驟(1-2):獲取惡意的HTTP網(wǎng)絡(luò)流量的內(nèi)容,對(duì)獲取到的惡意的HTTP網(wǎng)絡(luò)流量的內(nèi)容進(jìn)行分詞,得到惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集;進(jìn)入步驟(1-4);
步驟(1-3):對(duì)正常的HTTP網(wǎng)絡(luò)流量的正常詞集進(jìn)行單詞過濾,按照自定義的過濾規(guī)則粗粒度地過濾掉與惡意軟件的檢測(cè)無關(guān)的單詞;進(jìn)入步驟(1-5);
步驟(1-4):對(duì)惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集進(jìn)行單詞過濾,按照自定義的過濾規(guī)則粗粒度地過濾掉與惡意軟件的檢測(cè)無關(guān)的單詞;進(jìn)入步驟(1-5);
步驟(1-5):將步驟(1-3)過濾后得到的正常詞集和步驟(1-4)過濾后得到的惡意詞集進(jìn)行匯總得到第一匯總詞集,利用每個(gè)單詞在步驟(1-3)過濾后得到的正常詞集和步驟(1-4)過濾后得到的惡意詞集中出現(xiàn)頻率,計(jì)算卡方值;
步驟(1-6):利用卡方檢驗(yàn)對(duì)第一匯總詞集進(jìn)行細(xì)粒度地單詞過濾,利用卡方值從第一匯總詞集中挑選出惡意單詞,組成惡意網(wǎng)絡(luò)流量詞庫。
所述步驟(1-1)的步驟為:
步驟(1-1-1):正常流內(nèi)容獲取,使用T-shark命令將正常網(wǎng)絡(luò)流量文件中的每一條HTTP網(wǎng)絡(luò)流的流內(nèi)容寫入到對(duì)應(yīng)的文本文檔中;
步驟(1-1-2):利用特殊符號(hào)對(duì)文本文檔中的內(nèi)容進(jìn)行分詞處理,得到HTTP網(wǎng)絡(luò)流量的正常詞集。
所述特殊符號(hào),包括:逗號(hào)、冒號(hào)、分號(hào)、&、百分號(hào)、等號(hào)和空格。
所述T-shark命令是:“tshark–r網(wǎng)絡(luò)流量文件名–q–z\”follow,tcp,ascii,o\”>文本文檔名”。
所述正常網(wǎng)絡(luò)流量文件是:正常app因?yàn)檫B接網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)流量文件。
所述步驟(1-2)的步驟為:
步驟(1-2-1):惡意流內(nèi)容獲取,使用T-shark命令將惡意網(wǎng)絡(luò)流量文件中的每一條HTTP網(wǎng)絡(luò)流的流內(nèi)容寫入到對(duì)應(yīng)的文本文檔中;
步驟(1-2-2):利用特殊符號(hào)將每個(gè)保存惡意流內(nèi)容的文本文件進(jìn)行分詞處理,得到惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集。
所述特殊符號(hào),包括:逗號(hào)、冒號(hào)、分號(hào)、&、百分號(hào)、等號(hào)和空格。
所述T-shark命令是:tshark–r網(wǎng)絡(luò)流量文件名–q–z\”follow,tcp,ascii,o\”>文本文檔名。
所述惡意網(wǎng)絡(luò)流量文件是:一個(gè)惡意app因?yàn)檫B接網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)流量文件。
所述步驟(1-3)的步驟為:
步驟(1-3-1):遍歷正常的HTTP網(wǎng)絡(luò)流量的正常詞集中的每個(gè)單詞,過濾掉全部是數(shù)字的單詞;
步驟(1-3-2):遍歷正常的HTTP網(wǎng)絡(luò)流量的正常詞集中的每個(gè)單詞,過濾掉在每條流中出現(xiàn)頻率超過設(shè)定閾值的單詞;
步驟(1-3-3):遍歷正常的HTTP網(wǎng)絡(luò)流量的正常詞集中的每個(gè)單詞,過濾掉停用詞。
所述步驟(1-3-2)中出現(xiàn)頻率超過設(shè)定閾值的單詞包括:host、request-method和request-encoding;
所述步驟(1-3-3)中停用詞包括:the,a,is和this。
所述步驟(1-4)的步驟為:
步驟(1-4-1):遍歷惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集中的每個(gè)單詞,過濾掉全部是數(shù)字的單詞;
步驟(1-4-2):遍歷惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集中的每個(gè)單詞,過濾掉在每條流中出現(xiàn)頻率超過設(shè)定閾值的單詞;
步驟(1-4-3):遍歷惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集中的每個(gè)單詞,過濾掉停用詞。
所述步驟(1-4-2)中出現(xiàn)頻率超過設(shè)定閾值的單詞包括:host、request-method和request-encoding;
所述步驟(1-4-3)中停用詞包括:the、a、is和this。
所述步驟(1-5)的步驟為:
步驟(1-5-1):將正常的HTTP網(wǎng)絡(luò)流量的正常詞集和惡意的HTTP網(wǎng)絡(luò)流量的惡意詞集進(jìn)行整合,組合成第一匯總詞集;
步驟(1-5-2):計(jì)算第一匯總詞集中每個(gè)單詞的詞頻:統(tǒng)計(jì)第一匯總詞集中每個(gè)單詞分別在惡意詞集中出現(xiàn)的次數(shù)和在正常詞集中出現(xiàn)的次數(shù);
步驟(1-5-3):歸一化:對(duì)步驟(1-5-2)得到的統(tǒng)計(jì)次數(shù)進(jìn)行歸一化處理;
步驟(1-5-4):卡方檢驗(yàn):利用每個(gè)單詞在不同類別的單詞集中出現(xiàn)的歸一化之后的數(shù)值,根據(jù)卡方檢驗(yàn)公式計(jì)算每個(gè)單詞的得分,卡方檢驗(yàn)公式如下:
其中,χ2(t,c)指的是特征t(一個(gè)單詞)和類別c(惡意)之間的卡方值,χ2(t,c)值越大,說明特征t對(duì)類別c的表征程度就越大,特征t在類別c中就越有意義。是指特征t和類別c共同出現(xiàn)的次數(shù),是指假設(shè)特征t和類別c相互獨(dú)立時(shí),兩者共同出現(xiàn)的期望次數(shù),et和ec的值都屬于(0,1)的集合中,即如果類別c或者特征t出現(xiàn)記作1,如果類別c或特征t沒有出現(xiàn)記作0。
所述步驟(1-6)的步驟為:
步驟(1-6-1):設(shè)定分?jǐn)?shù)的閾值或者是設(shè)定得分排序排在前K位的K值;
步驟(1-6-2):遍歷總單詞集合中的每個(gè)單詞,判斷單詞遍歷是否結(jié)束;若是,就結(jié)束;若否,就進(jìn)入步驟(1-6-3);
步驟(1-6-3):判斷當(dāng)前單詞的得分是否大于閾值或者排在前K位;如果當(dāng)前單詞的得分小于閾值或者沒有排在前K位,則忽略這個(gè)單詞;如果當(dāng)前單詞的得分大于閾值或者排在前K位,進(jìn)入步驟(1-6-4);
步驟(1-6-4):判斷當(dāng)前單詞是否存在于惡意詞集中;如果當(dāng)前單詞不存在于惡意詞集中,則忽略這個(gè)單詞;如果當(dāng)前單詞存在于惡意詞集中,則將當(dāng)前單詞加入到惡意流量詞庫中;當(dāng)遍歷完所有的單詞之后,惡意網(wǎng)絡(luò)流量詞庫建立完成。
所述步驟(2)的步驟為:
步驟(2-1):對(duì)步驟(1-1)和步驟(1-2)得到的每條網(wǎng)絡(luò)流的單詞集合進(jìn)行向量化;
步驟(2-2):設(shè)置訓(xùn)練終止條件,所述終止條件包括:訓(xùn)練次數(shù)的閾值或訓(xùn)練結(jié)果準(zhǔn)確率變化閾值;
步驟(2-3):將所有向量輸入到機(jī)器學(xué)習(xí)分類算法中進(jìn)行訓(xùn)練;
步驟(2-4):訓(xùn)練過程達(dá)到終止條件后訓(xùn)練結(jié)束,得到訓(xùn)練好的惡意軟件檢測(cè)模型。
所述步驟(3)的步驟為:
步驟(3-1):待檢測(cè)流內(nèi)容獲取,使用T-shark命令將待檢測(cè)網(wǎng)絡(luò)流量文件中的每一條HTTP網(wǎng)絡(luò)流的流內(nèi)容寫入到對(duì)應(yīng)的txt文件中;
步驟(3-2):利用特殊符號(hào)將每個(gè)保存待檢測(cè)流內(nèi)容的txt文件進(jìn)行分詞處理,得到待檢測(cè)的網(wǎng)絡(luò)流量的詞集。
T-shark命令是:tshark–r網(wǎng)絡(luò)流量文件名–q–z\”follow,tcp,ascii,o\”>文本文檔名。
所述待檢測(cè)網(wǎng)絡(luò)流量文件是待檢測(cè)的app因?yàn)檫B接網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)流量文件。
所述步驟(4)的步驟為:
步驟(4-1):詞向量初始化:初始化與惡意網(wǎng)絡(luò)流量詞庫具有相同維度的行向量,每個(gè)元素都初始化為0;
步驟(4-2):遍歷惡意網(wǎng)絡(luò)流量詞庫中的每個(gè)單詞,判斷遍歷是否結(jié)束,如果未結(jié)束,則繼續(xù)判斷當(dāng)前遍歷的單詞是否存在于待向量化的網(wǎng)絡(luò)流量的詞集中;
步驟(4-3):如果當(dāng)前遍歷的單詞不存在于待向量化的網(wǎng)絡(luò)流量的詞集中,則將當(dāng)前遍歷的單詞的索引位置處的值置為0;如果當(dāng)前遍歷的單詞存在于待向量化的HTTP網(wǎng)絡(luò)流量的詞集中,則將當(dāng)前遍歷的單詞的索引位置處的值置為1;返回步驟(4-2)繼續(xù)遍歷;直至惡意網(wǎng)絡(luò)流量詞庫中的單詞遍歷結(jié)束,完成待向量化的HTTP網(wǎng)絡(luò)流的向量化,得到HTTP網(wǎng)絡(luò)流的詞向量。
所述步驟(5)的判斷待檢測(cè)的詞向量是否落入惡意軟件檢測(cè)模型中步驟為:
步驟(5-1):將步驟(4)的詞向量輸入到步驟(2)訓(xùn)練好的惡意軟件檢測(cè)模型中;
步驟(5-2):根據(jù)檢測(cè)模型的輸出結(jié)果,判斷這條待向量化的HTTP網(wǎng)絡(luò)流是正常的還是惡意的;
步驟(5-3):找出被判別為惡意的HTTP網(wǎng)絡(luò)流的源頭app,將找出的app標(biāo)記為惡意app,從而實(shí)現(xiàn)了惡意軟件的檢測(cè)。
一種基于惡意網(wǎng)絡(luò)流量詞庫的惡意軟件檢測(cè)系統(tǒng),包括:
詞庫建立單元:建立惡意網(wǎng)絡(luò)流量詞庫;
檢測(cè)模型訓(xùn)練單元:訓(xùn)練惡意軟件檢測(cè)模型;
單詞集合分割單元:對(duì)待檢測(cè)HTTP網(wǎng)絡(luò)流量的流內(nèi)容進(jìn)行分割,分割成單詞集合;
單詞集合向量化單元:對(duì)單詞集合進(jìn)行向量化:將單詞集合分割單元得到的單詞集合利用詞庫建立單元得到的詞庫轉(zhuǎn)變成詞向量;
判斷單元:將單詞集合向量化單元的詞向量輸入到檢測(cè)模型訓(xùn)練單元訓(xùn)練出的惡意軟件檢測(cè)模型中,若模型對(duì)詞向量的檢測(cè)結(jié)果為惡意,則找到詞向量對(duì)應(yīng)的網(wǎng)絡(luò)流的源頭app,并標(biāo)記為惡意app。
本發(fā)明的有益效果:
(1)本發(fā)明提出了一種惡意網(wǎng)絡(luò)流量詞庫的建立方法。這種詞庫的建立是將自然語言處理的分詞方法應(yīng)用到網(wǎng)絡(luò)流量層面。利用這個(gè)詞庫可以有效地進(jìn)行惡意軟件的檢測(cè)。
(2)本發(fā)明使用了從網(wǎng)絡(luò)流內(nèi)容中提取特征,設(shè)定了幾種規(guī)則過濾器,并使用卡方檢驗(yàn)的方法進(jìn)行特征的選擇,避免了人工選擇特征的難度。
(3)本發(fā)明設(shè)計(jì)了一種利用惡意網(wǎng)絡(luò)流量詞庫結(jié)合機(jī)器學(xué)習(xí)分類算法進(jìn)行惡意軟件檢測(cè)的方法。
附圖說明
圖1為本發(fā)明的整體流程圖;
圖2為惡意網(wǎng)絡(luò)流量詞庫建立模塊的流程圖;
圖3為訓(xùn)練惡意流量檢測(cè)模型的流程圖;
圖4為流內(nèi)容進(jìn)行向量化的模塊流程圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
如圖1所示,一種基于惡意網(wǎng)絡(luò)流量詞庫的惡意軟件檢測(cè)方法的具體工作過程為:
步驟100,惡意網(wǎng)絡(luò)流量詞庫建立模型,通過該模塊,我們可以獲得一個(gè)惡意網(wǎng)絡(luò)流量詞庫。詞庫的具體建立過程圖2給出了詳細(xì)的流程。
步驟101,模型訓(xùn)練模塊,通過該模塊,可以獲得一個(gè)用于惡意軟件檢測(cè)的模型。模型獲得的具體過程圖3給出了詳細(xì)的流程。
步驟102,流分詞模塊,使用特殊的符號(hào)作為分隔符將一條待檢測(cè)流的流內(nèi)容分割成一個(gè)單詞的集合。
步驟103,詞向量化,將步驟102得到的單詞集合轉(zhuǎn)變成一個(gè)詞向量。具體的向量化過程如圖4所示。
步驟104,檢測(cè)模塊的輸入,將步驟103得到的詞向量化輸入到檢測(cè)模型中。
步驟105,檢測(cè)模型通過計(jì)算得出檢測(cè)結(jié)果(正常還是惡意)。
步驟106,如果待檢測(cè)HTTP網(wǎng)絡(luò)流被預(yù)測(cè)為惡意流量,找到此HTTP網(wǎng)絡(luò)流的源頭app,將此app標(biāo)記為惡意app。
步驟107,如果待檢測(cè)HTTP網(wǎng)絡(luò)流被預(yù)測(cè)為正常流量,則結(jié)束。
圖2為惡意網(wǎng)絡(luò)流量詞庫建立模塊的流程圖,它的具體工作過程為:
步驟200,正常流內(nèi)容獲取,使用T-shark命令“tshark–r網(wǎng)絡(luò)流量文件名–q–z\”follow,tcp,ascii,o\”>文本文檔名”將一個(gè)網(wǎng)絡(luò)流量文件(一個(gè)正常app因?yàn)檫B接網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)流量文件)中的每一條HTTP網(wǎng)絡(luò)流的流內(nèi)容寫入到對(duì)應(yīng)的文本文檔中;。
步驟201,惡意流內(nèi)容獲取,使用T-shark命令“tshark–r網(wǎng)絡(luò)流量文件名–q–z\”follow,tcp,ascii,o\”>文本文檔名”將一個(gè)網(wǎng)絡(luò)流量文件(一個(gè)惡意app因?yàn)檫B接網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)流量文件)中的每一條HTTP網(wǎng)絡(luò)流的流內(nèi)容寫入到對(duì)應(yīng)的文本文檔中;
步驟202,利用特殊符號(hào)(,:;&%=空格)將每個(gè)保存正常流內(nèi)容的txt文件進(jìn)行分詞處理,處理之后的txt文件將變成一個(gè)單詞集合。
步驟203,利用特殊符號(hào)(,:;&%=空格)將每個(gè)保存惡意流內(nèi)容的txt文件進(jìn)行分詞處理,處理之后的txt文件將變成一個(gè)單詞集合。
步驟204,全數(shù)字過濾器,遍歷正常app單詞集合中的每個(gè)單詞,過濾掉全數(shù)字的單詞。
步驟205,高頻常見詞過濾器,遍歷正常app單詞集合中的每個(gè)單詞,過濾掉那些高頻的但是幾乎出現(xiàn)在每條流中的單詞,如host,request-method,request-encoding等等。
步驟206,停用詞過濾器,遍歷正常app單詞集合中的每個(gè)單詞,過濾掉停用詞,即常見的無意義的詞匯,如:the,a,is,this等。
步驟207,全數(shù)字過濾器,與步驟115類似,不過處理的是惡意流量產(chǎn)生的單詞集合。
步驟208,高頻常見詞過濾器,與步驟116類似,不過處理的是惡意流量產(chǎn)生的單詞集合。
步驟209,停用詞過濾器,與步驟117類似,不過處理的是惡意流量產(chǎn)生的單詞集合。
步驟210,整合所有正常流量的單詞集合和惡意流量的單詞集合,組合成一個(gè)大的單詞集合。
步驟211,統(tǒng)計(jì)這個(gè)總的單詞集合中每個(gè)單詞分別在惡意單詞集中出現(xiàn)的次數(shù)和正常單詞集中出現(xiàn)的次數(shù)。
步驟212,歸一化,對(duì)步驟212得到的統(tǒng)計(jì)次數(shù)進(jìn)行歸一化處理。防止因?yàn)檎A髟~集和惡意流詞集的規(guī)模不一致造成的偏差。
步驟213,卡方檢驗(yàn),利用每個(gè)單詞在不同類別的單詞集中出現(xiàn)的歸一化之后的數(shù)值,根據(jù)卡方公式計(jì)算每個(gè)單詞的得分。
步驟214,設(shè)定分?jǐn)?shù)的閾值或者是設(shè)定得分排序排在前K位的K值(此設(shè)置二選一,不可全設(shè)置)。
步驟215,遍歷總單詞集合中的每個(gè)單詞,判斷單詞遍歷條件是否結(jié)束,即是否完成了對(duì)所有單詞的遍歷。
步驟216,判斷當(dāng)前單詞的得分是否大于閾值或者排在前K位。
步驟217,如果當(dāng)前單詞的得分小于閾值或者沒有排在前K位,則忽略這個(gè)單詞。
步驟218,如果當(dāng)前單詞的得分大于閾值或者排在了前K位,接著判斷該單詞是否存在于惡意的單詞集合中。
步驟219,如果當(dāng)前單詞不存在惡意的單詞集合中,即此單詞來自正常流單詞集合,則忽略這個(gè)單詞。
步驟220,如果當(dāng)前單詞存在惡意的單詞集合中,則將該單詞加入到惡意網(wǎng)絡(luò)流量的單詞庫中。
當(dāng)遍歷完了所有的單詞之后,惡意網(wǎng)絡(luò)流量詞庫也建立完成了。
圖3為訓(xùn)練檢測(cè)模型的流程圖,每一步的具體操作為:
步驟300,同步驟200-201,獲取大量的正常網(wǎng)絡(luò)流的流內(nèi)容和大量惡意的網(wǎng)絡(luò)流的流內(nèi)容。
步驟301,同步驟202-203,對(duì)正常網(wǎng)絡(luò)流的流內(nèi)容和惡意網(wǎng)絡(luò)流的流內(nèi)容使用特殊符號(hào)作為分隔符進(jìn)行分詞處理。每條流組成一個(gè)單詞集合,所以此步驟會(huì)得到大量的正常詞集合惡意詞集。
步驟302,對(duì)步驟301得到的每個(gè)單詞詞集利用步驟4描述的方法進(jìn)行向量化,得到大量的帶有標(biāo)簽的向量(正常詞集經(jīng)向量化之后被標(biāo)記為正常,惡意詞集經(jīng)向量化之后被標(biāo)記為惡意)。
步驟303,對(duì)分類算法進(jìn)行參數(shù)化設(shè)置,如設(shè)置訓(xùn)練的次數(shù)或者其他算法結(jié)束條件。
步驟304,將所有向量輸入到機(jī)器學(xué)習(xí)分類算法中進(jìn)行訓(xùn)練。此處的機(jī)器學(xué)習(xí)算法可以為決策樹、支持向量機(jī)、K-近鄰等分類算法。
步驟305,將訓(xùn)練好的檢測(cè)模型保存下來。目的是當(dāng)未知的樣本到來時(shí)不必重新訓(xùn)練檢測(cè)模型。
圖4為流內(nèi)容進(jìn)行向量化的模塊流程圖,它的具體工作流程為:
步驟400,詞向量初始化,即初始化一個(gè)維度與惡意網(wǎng)絡(luò)流量詞庫大小相同的行向量,每個(gè)元素都初始化為0。
步驟401,開始遍歷詞庫中的每個(gè)單詞,如果當(dāng)前遍歷條件不符合,則結(jié)束。
步驟402,如果當(dāng)前的遍歷還未結(jié)束,判斷當(dāng)前遍歷的單詞是否存在于待向量化的HTTP網(wǎng)絡(luò)流量詞集中。
步驟403,如果當(dāng)前遍歷的單詞不存在待向量化的HTTP網(wǎng)絡(luò)流量詞集,則將此單詞的索引位置處的值值為0。
步驟404,如果當(dāng)前遍歷的單詞存在待向量化的HTTP流產(chǎn)生的單詞集中,則將此單詞的索引位置處的值值為1。
等到詞庫中的單詞都遍歷結(jié)束,也完成了一個(gè)條HTTP網(wǎng)絡(luò)流的向量化。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。