本申請(qǐng)涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)入侵檢測(cè)方法和裝置。
背景技術(shù):
入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)是一種網(wǎng)絡(luò)安全設(shè)備或應(yīng)用軟件,可以對(duì)網(wǎng)絡(luò)傳輸進(jìn)行即時(shí)監(jiān)視,在發(fā)現(xiàn)可疑傳輸時(shí)發(fā)出警報(bào)或者采取主動(dòng)反應(yīng)措施。
IDS的核心功能是入侵檢測(cè)技術(shù),入侵檢測(cè)技術(shù)是發(fā)現(xiàn)違反安全策略的網(wǎng)絡(luò)傳輸。同時(shí)入侵檢測(cè)技術(shù)也廣泛應(yīng)用于入侵防御系統(tǒng)(Intrusion Prevention System,IPS)和下一代防火墻(Next generation firewall,NGFW)等網(wǎng)絡(luò)安全產(chǎn)品之中。
現(xiàn)有入侵檢測(cè)技術(shù)主要分為幾類(lèi):簡(jiǎn)單模式匹配、狀態(tài)模式匹配、基于協(xié)議解碼的簽名、啟發(fā)式簽名等。這些技術(shù)的共同特點(diǎn)是要事先了解攻擊,針對(duì)每種攻擊開(kāi)發(fā)出特定的簽名,入侵檢測(cè)技術(shù)主要是高效的在數(shù)據(jù)流上做簽名匹配。因此,現(xiàn)有技術(shù)存在兩個(gè)比較明顯的缺陷:一、對(duì)未知的攻擊缺乏防御能力;二、對(duì)已知攻擊識(shí)別的范化能力不足,黑客通過(guò)已知攻擊變換一些攻擊上的細(xì)節(jié)和流程很容易繞過(guò)檢測(cè)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
為此,本申請(qǐng)的一個(gè)目的在于提出一種網(wǎng)絡(luò)入侵檢測(cè)方法,該方法可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。
本申請(qǐng)的另一個(gè)目的在于提出一種網(wǎng)絡(luò)入侵檢測(cè)裝置。
為達(dá)到上述目的,本申請(qǐng)第一方面實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法,包括:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本申請(qǐng)第一方面實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法,通過(guò)采用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)網(wǎng)絡(luò)入侵類(lèi)別,可以利用深度神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜模式的表述能力強(qiáng)的優(yōu)點(diǎn),從而可以識(shí)別出復(fù)雜攻擊,另外,深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用的訓(xùn)練數(shù)據(jù)包括增加噪聲后的攻擊樣本的特征向量,因此可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。
為達(dá)到上述目的,本申請(qǐng)第二方面實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)裝置,包括:獲取模塊,用于獲取待檢測(cè)流量的特征向量;檢測(cè)模塊,用于采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本申請(qǐng)第二方面實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)裝置,通過(guò)采用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)網(wǎng)絡(luò)入侵類(lèi)別,可以利用深度神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜模式的表述能力強(qiáng)的優(yōu)點(diǎn),從而可以識(shí)別出復(fù)雜攻擊,另外,深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用的訓(xùn)練數(shù)據(jù)包括增加噪聲后的攻擊樣本的特征向量,因此可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。
本發(fā)明實(shí)施例還提出了一種網(wǎng)絡(luò)設(shè)備,包括:一個(gè)或者多個(gè)處理器;存儲(chǔ)器;一個(gè)或者多個(gè)程序,所述一個(gè)或者多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中,當(dāng)被所述一個(gè)或者多個(gè)處理器執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本發(fā)明實(shí)施例還提出了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)模塊,當(dāng)所述一個(gè)或者多個(gè)模塊被執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本發(fā)明實(shí)施例還提出了一種計(jì)算機(jī)程序,所述程序被執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本申請(qǐng)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本申請(qǐng)的實(shí)踐了解到。
附圖說(shuō)明
本申請(qǐng)上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本申請(qǐng)一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法的流程示意圖;
圖2是本申請(qǐng)另一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法的流程示意圖;
圖3是本申請(qǐng)一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)裝置的結(jié)構(gòu)示意圖;
圖4是本申請(qǐng)另一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本申請(qǐng)的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類(lèi)似的標(biāo)號(hào)表示相同或類(lèi)似的模塊或具有相同或類(lèi)似功能的模塊。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本申請(qǐng),而不能理解為對(duì)本申請(qǐng)的限制。相反,本申請(qǐng)的實(shí)施例包括落入所附加權(quán)利要求書(shū)的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本申請(qǐng)一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法的流程示意圖。
如圖1所示,本實(shí)施例的方法包括:
S11:獲取待檢測(cè)流量的特征向量。
待檢測(cè)流量是指網(wǎng)絡(luò)傳輸中的數(shù)據(jù)。
待檢測(cè)流量的特征向量是指由待檢測(cè)流量的特征信息組成的向量,特征信息可以根據(jù)需要設(shè)定。由于待檢測(cè)流量在網(wǎng)絡(luò)傳輸時(shí)是連續(xù)的,因此,可以對(duì)待檢測(cè)流量以預(yù)設(shè)單位進(jìn)行切分,將每個(gè)單位的流量轉(zhuǎn)換為一個(gè)預(yù)設(shè)維度的特征向量,上述的單位是可設(shè)置的,例如以會(huì)話(session)為單位。
每個(gè)特征向量包括多個(gè)特征信息,特征信息有多種可選方式,在本實(shí)施例中,以特征信息包括流特征信息和內(nèi)容特征信息為例。
因此,對(duì)應(yīng)每個(gè)單位(如session)的流量,可以提起該單位流量的流特征信息f1和內(nèi)容特征信息f2,再組合f1和f2得到相應(yīng)的特征向量f,即f={f1,f2},例如,f1=[0,1],f2=[1,0],則f=[0,1,1,0]。
可以理解的是,上述對(duì)f1和f2的描述只是示例,具體的流特征信息和內(nèi)容特征信息可以根據(jù)需要或經(jīng)驗(yàn)等選取,可以為一個(gè)或多個(gè),流特征信息例如包括:平均報(bào)文長(zhǎng)度、重傳率、延時(shí)均方差等。內(nèi)容特征信息例如包括:通過(guò)對(duì)應(yīng)用的識(shí)別,內(nèi)容信息的解碼(如果需要),對(duì)解碼后與靜態(tài)特征庫(kù)(庫(kù)中含有多個(gè)字符串或正則表達(dá)式)做多模匹配,將每個(gè)靜態(tài)特征的命中次數(shù),計(jì)入內(nèi)容特征向量f2中。由于靜態(tài)特庫(kù)中的特征條目很多,所以f2是一個(gè)很高維的稀疏的特征向量。
S12:采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
深度學(xué)習(xí)(deep learning)是機(jī)器學(xué)習(xí)的一個(gè)分支,其使用包含復(fù)雜結(jié)構(gòu)或由多重非線性變換構(gòu)成的多個(gè)處理層對(duì)數(shù)據(jù)進(jìn)行高層抽象,能夠表達(dá)足夠復(fù)雜的模式。
深度神經(jīng)網(wǎng)絡(luò)是基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),例如包括:無(wú)監(jiān)督學(xué)習(xí)的深度置信網(wǎng)(Deep Belief Net,DBN)和包含多層自動(dòng)編碼器(auto-encoder)層的網(wǎng)絡(luò)、有監(jiān)督學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)等。具體的,在本申請(qǐng)中,以深度神經(jīng)網(wǎng)絡(luò)是包含多層自動(dòng)編碼器(auto-encoder)層的網(wǎng)絡(luò)為例。
當(dāng)深度神經(jīng)網(wǎng)絡(luò)是包含多層自動(dòng)編碼器層的網(wǎng)絡(luò)時(shí),該網(wǎng)絡(luò)包括輸入層、中間層和輸出層,其中,輸入層用于輸入流量的特征向量,中間層由多層的自動(dòng)編碼層和多個(gè)全連接層組成,輸出層用于輸出檢測(cè)結(jié)果。其中,輸出層包括的節(jié)點(diǎn)個(gè)數(shù)與網(wǎng)絡(luò)入侵類(lèi)別的個(gè)數(shù)相同,假設(shè)網(wǎng)絡(luò)入侵類(lèi)別為n種,則輸出層的節(jié)點(diǎn)個(gè)數(shù)為n個(gè),輸出值分別是相應(yīng)類(lèi)別的概率值。進(jìn)一步的,網(wǎng)絡(luò)入侵類(lèi)別可以分為非攻擊或攻擊兩類(lèi),從而通過(guò)深度神經(jīng)網(wǎng)絡(luò)可以識(shí)別出待檢測(cè)流量是否為攻擊。或者,網(wǎng)絡(luò)入侵類(lèi)別不僅包括非攻擊和攻擊,還可以進(jìn)一步劃分攻擊的類(lèi)別,即網(wǎng)絡(luò)入侵類(lèi)別包括一種非攻擊,及n-1種攻擊。此時(shí),不僅可以識(shí)別出待檢測(cè)流量是否是攻擊,還可以在是攻擊時(shí)識(shí)別出具體的攻擊類(lèi)別。攻擊類(lèi)別是可設(shè)置的,例如包括分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊,結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,sql)注入攻擊等。
在通過(guò)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè)之前,需要先訓(xùn)練生成深度神經(jīng)網(wǎng)絡(luò)。在訓(xùn)練生成深度神經(jīng)網(wǎng)絡(luò)時(shí),需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,以生成深度神經(jīng)網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)包括正常樣本的特征向量和攻擊樣本的特征向量,其中,正常樣本是指非攻擊樣本??梢愿鶕?jù)已有網(wǎng)絡(luò)傳輸情況,收集到正常樣本和攻擊樣本。
特別的,在本申請(qǐng)中,攻擊樣本不僅包括原始攻擊樣本,還包括對(duì)原始攻擊樣本添加噪聲后的樣本,其中,原始攻擊樣本是指收集到的攻擊樣本的原始數(shù)據(jù),添加噪聲后的樣本是指對(duì)原始數(shù)據(jù)加噪聲后的數(shù)據(jù)。
由于在實(shí)際的網(wǎng)絡(luò)傳輸中,大量存在的是正常報(bào)文,攻擊報(bào)文的數(shù)量較少,因此,能夠收集到大量的正常樣本,但僅能收集到較少的攻擊樣本。而本申請(qǐng)中,通過(guò)對(duì)原始攻擊樣本進(jìn)行增加噪聲操作,可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊識(shí)別的范化能力。
本實(shí)施例中,通過(guò)采用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)網(wǎng)絡(luò)入侵類(lèi)別,可以利用深度神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜模式的表述能力強(qiáng)的優(yōu)點(diǎn),從而可以識(shí)別出復(fù)雜攻擊,另外,深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用的訓(xùn)練數(shù)據(jù)包括增加噪聲后的攻擊樣本的特征向量,因此可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。
圖2是本申請(qǐng)另一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)方法的流程示意圖。
上一實(shí)施例主要給出了檢測(cè)階段的流程,而在本實(shí)施例中將增加訓(xùn)練階段的流程,其中,在訓(xùn)練階段生成深度神經(jīng)網(wǎng)絡(luò),以在檢測(cè)階段對(duì)待檢測(cè)流量進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)。
另外,上一實(shí)施例中主要體現(xiàn)了采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè)的內(nèi)容,但是,全流量檢測(cè)會(huì)造成非常大的開(kāi)銷(xiāo),因此,可以在深度神經(jīng)網(wǎng)絡(luò)檢測(cè)之前先進(jìn)行過(guò)濾,過(guò)濾掉部分不需要經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)檢測(cè)的流量,以降低開(kāi)銷(xiāo)。因此,在本實(shí)施例中在檢測(cè)階段還包括了過(guò)濾流程。
參見(jiàn)圖2,本實(shí)施例的方法包括:
S21:收集原始樣本,所述原始樣本包括:正常樣本和原始攻擊樣本。
其中,可以對(duì)已有的網(wǎng)絡(luò)傳輸報(bào)文進(jìn)行收集,得到大量的樣本,并且根據(jù)已有信息可以區(qū)分出正常樣本和攻擊樣本。另外,為了與后續(xù)添加噪聲后的樣本進(jìn)行區(qū)分,此時(shí)收集到的攻擊樣本可以稱(chēng)為原始攻擊樣本。
S22:對(duì)所述原始攻擊樣本添加噪聲,得到添加噪聲后的攻擊樣本。
考慮到能夠收集到的正常樣本的數(shù)量較多,因此可以不對(duì)正常樣本添加噪聲,而僅對(duì)攻擊樣本添加噪聲。當(dāng)然,可以理解的是,本申請(qǐng)也不排除對(duì)正常樣本添加噪聲的可能性。本實(shí)施例以對(duì)攻擊樣本添加噪聲為例。
假設(shè)原始攻擊樣本用d表示,添加噪聲后的攻擊樣本用N(d)表示。
一方面,在添加方式上,可以根據(jù)樣本庫(kù)和規(guī)則庫(kù)進(jìn)行噪聲添加。樣本庫(kù)中包含大量的有標(biāo)簽的數(shù)據(jù)樣本(即包含正常樣本和攻擊樣本),作為添加噪聲的素材,規(guī)則庫(kù)可以根據(jù)安全專(zhuān)家對(duì)攻擊變種和逃逸的理解,人為編寫(xiě)的噪聲添加的規(guī)則,以根據(jù)這些規(guī)則從樣本庫(kù)中選擇樣本得到添加噪聲后的攻擊樣本。這些規(guī)則例如包括:“在攻擊樣本d1中隨機(jī)的插入正常樣本d2的數(shù)據(jù)的片段,攻擊的性質(zhì)不變”,這些規(guī)則并不保證絕對(duì)的正確,僅需要在較大概率上正確即可。因?yàn)槟切┥傻纳倭康腻e(cuò)誤樣本,神經(jīng)網(wǎng)絡(luò)本身的抗噪聲能力自然可以處理。
另一方面,在數(shù)量上,對(duì)應(yīng)每個(gè)d,相應(yīng)的N(d)的數(shù)量可以為多個(gè)。進(jìn)一步的,不同原始攻擊樣本對(duì)應(yīng)的添加噪聲后的樣本的數(shù)量可以不同,例如,用公式表示為:
其中,li是某個(gè)原始攻擊樣本d對(duì)應(yīng)的添加噪聲后的樣本N(d)的數(shù)量,γ是已知的一個(gè)較大的值,n是網(wǎng)絡(luò)入侵類(lèi)別的總數(shù),ci是d所屬分類(lèi)的已有攻擊樣本數(shù)量。
通過(guò)上述公知可知,li與ci成反比,因此,在給網(wǎng)絡(luò)增加范化能力的同時(shí),可以使得網(wǎng)絡(luò)的訓(xùn)練樣本在各個(gè)類(lèi)別上保持均衡,均衡的訓(xùn)練集有助于控制網(wǎng)絡(luò)最終訓(xùn)練結(jié)果的誤差。
S23:對(duì)所述正常樣本、原始攻擊樣本和添加噪聲后的攻擊樣本分別進(jìn)行特征提取,得到正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括原始攻擊樣本和添加噪聲后的攻擊樣本。
例如對(duì)應(yīng)一個(gè)樣本,可以提取流特征信息f1和內(nèi)容特征信息f2,再對(duì)f1和f2組合后得到該樣本的特征向量。具體的特征提取的流程可以如上一實(shí)施例所示。
S24:將所述正常樣本的特征向量和攻擊樣本的特征向量作為訓(xùn)練數(shù)據(jù),對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,生成深度神經(jīng)網(wǎng)絡(luò)。
深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程分為兩個(gè)階段,分別為per-training階段和fine-tuning階段。在per-training階段,是無(wú)監(jiān)督學(xué)習(xí)到每一層網(wǎng)絡(luò)的參數(shù),以完成網(wǎng)絡(luò)的初始化。其中,在無(wú)監(jiān)督學(xué)習(xí)時(shí),是從底層開(kāi)始,每次只訓(xùn)練一層,將其結(jié)果作為高一層的輸入。在fine-tuning階段,是采用從頂層到底層的監(jiān)督算法(如BP算法)對(duì)每一層的初始化參數(shù)進(jìn)行調(diào)整。
以深度神經(jīng)網(wǎng)絡(luò)是包含多層自動(dòng)編碼器層的網(wǎng)絡(luò)為例,在訓(xùn)練階段的目標(biāo)是使得不帶噪聲的輸入向量,與帶噪聲的輸入向量經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)后的輸出盡量接近。即,假設(shè)不帶噪聲的輸入向量用x表示,帶噪聲的輸入向量用x’表示,x’經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)后的輸出用z(x’)表示,則訓(xùn)練階段的目標(biāo)是使得x與z(x’)盡量接近。
上述的不帶噪聲的輸入向量是指對(duì)原始樣本進(jìn)行特征提取后得到的特征向量,帶噪聲的輸入向量是指對(duì)添加噪聲后的樣本進(jìn)行特征提取后得到的特征向量。
因此,在收集到原始樣本后,可以對(duì)原始樣本添加噪聲得到添加噪聲后的樣本,如上所示,以對(duì)攻擊樣本進(jìn)行噪聲添加為例,可以得到d和N(d),再根據(jù)上一實(shí)施例所示的特征提取方式,可以分別提取到d對(duì)應(yīng)的特征向量x,以及N(d)對(duì)應(yīng)的特征向量x’,之后以每對(duì){x,x’}作為一組獨(dú)立的向量,以上述目標(biāo)對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到每一層網(wǎng)絡(luò)的參數(shù)。
比如,每一層網(wǎng)絡(luò)的參數(shù)包括W、b、b’,設(shè)H為以W、b、b’構(gòu)成的向量,則采用梯度下降法更新H可以得到每一層網(wǎng)絡(luò)的參數(shù),用公式表示為:H=H-α×ΔHL,通過(guò)一定數(shù)量的迭代,可以得到每一層網(wǎng)絡(luò)的參數(shù)。其中,α是已知參數(shù),ΔHL表示對(duì)L求導(dǎo),L=||x-z(x')||2,z(x’)=s(WTy(x’)+b’),y(x’)=s(Wx’+b),s是一個(gè)非線性的映射函數(shù),如sigmoid函數(shù)。
可以理解的是,與通常的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程不同的是,本實(shí)施例的訓(xùn)練數(shù)據(jù)還包括添加噪聲后的樣本的特征向量,訓(xùn)練階段的目標(biāo)是使得x與z(x’)盡量接近,而其余未說(shuō)明步驟可以參照通常流程進(jìn)行,在此不再詳細(xì)說(shuō)明。
上述的S21-S24可以在訓(xùn)練階段完成,以用于下面的檢測(cè)階段。
S25:獲取待檢測(cè)流量的特征向量。
具體內(nèi)容可以如上一實(shí)施例所示,在此不再詳細(xì)說(shuō)明。
S26:根據(jù)線性分類(lèi)器對(duì)所述特征向量進(jìn)行識(shí)別,確定所述待檢測(cè)流量是否需要采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè),若是,執(zhí)行S27,否則執(zhí)行S28。
其中,線性分類(lèi)器也可以是在訓(xùn)練階段,通過(guò)對(duì)訓(xùn)練數(shù)據(jù)的訓(xùn)練生成的。
線性分類(lèi)器的目標(biāo)是對(duì)流量進(jìn)行快速分類(lèi),以區(qū)分流量是否為可疑流量,對(duì)可疑流量再送給深度神經(jīng)網(wǎng)絡(luò)中去處理。由于線性分類(lèi)器確定出的可疑流量還會(huì)送給深度神經(jīng)網(wǎng)絡(luò),所以線性分類(lèi)器的設(shè)計(jì)側(cè)重降低對(duì)攻擊識(shí)別的漏報(bào)率而非誤報(bào)率。
線性分類(lèi)器在實(shí)現(xiàn)上具體可以采用邏輯回歸算法,在訓(xùn)練時(shí)可以通過(guò)收集的一定數(shù)量的攻擊樣本和正常流量樣本進(jìn)行訓(xùn)練,訓(xùn)練的過(guò)程就是對(duì)其內(nèi)部權(quán)重的調(diào)整過(guò)程,以使得輸出值表明其是攻擊的概率。在其運(yùn)行階段,輸入一個(gè)流量的特征向量,算法輸出其可能是攻擊的概率p(0≤p≤1)。當(dāng)p大于某個(gè)臨界常數(shù)k時(shí),確定相應(yīng)流量是需要采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè),否則不需要深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè)。
S27:采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別。
其中,深度神經(jīng)網(wǎng)絡(luò)的輸入是待檢測(cè)流量的特征向量f,輸出是各網(wǎng)絡(luò)入侵類(lèi)別的概率值,如用向量o∈[0,1]n表示,即輸出是n維向量,該向量每個(gè)維度的值介于0和1之間,每個(gè)維度的值對(duì)應(yīng)一種網(wǎng)絡(luò)入侵類(lèi)別,網(wǎng)絡(luò)入侵類(lèi)別具體可以包括一種非攻擊以及n-1種攻擊類(lèi)別,根據(jù)具體的值可以確定待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,例如,輸出向量對(duì)應(yīng)非攻擊的值為1(或近似為1),其余值為0(或近似為0),則確定待檢測(cè)流量為非攻擊,或者,輸出向量對(duì)應(yīng)DDoS攻擊的值為1(或近似為1),其余值為0(或近似為0),則確定待檢測(cè)流量為DDoS攻擊。
S28:確定待檢測(cè)流量為非攻擊。
本實(shí)施例中,通過(guò)采用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)網(wǎng)絡(luò)入侵類(lèi)別,可以利用深度神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜模式的表述能力強(qiáng)的優(yōu)點(diǎn),從而可以識(shí)別出復(fù)雜攻擊,另外,深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用的訓(xùn)練樣本包括增加噪聲后的攻擊樣本,因此可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。進(jìn)一步的,通過(guò)在深度神經(jīng)網(wǎng)絡(luò)處理之前采用線性分類(lèi)器對(duì)待檢測(cè)流量進(jìn)行分類(lèi),可以降低需要深度神經(jīng)網(wǎng)絡(luò)處理的流量,降低系統(tǒng)開(kāi)銷(xiāo),提升在實(shí)際網(wǎng)絡(luò)環(huán)境中的攻擊識(shí)別的性能。
圖3是本申請(qǐng)一個(gè)實(shí)施例提出的網(wǎng)絡(luò)入侵檢測(cè)裝置的結(jié)構(gòu)示意圖。如圖3所示,本實(shí)施例的裝置30包括:獲取模塊31和檢測(cè)模塊32。
獲取模塊31,用于獲取待檢測(cè)流量的特征向量;
檢測(cè)模塊32,用于采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
一些實(shí)施例中,參見(jiàn)圖4,該裝置30還包括:
分類(lèi)模塊33,用于根據(jù)線性分類(lèi)器對(duì)所述特征向量進(jìn)行識(shí)別,確定所述待檢測(cè)流量是否需要采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè),以便在需要采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè)時(shí),觸發(fā)所述檢測(cè)模塊執(zhí)行。
一些實(shí)施例中,參見(jiàn)圖4,該裝置30還包括:
訓(xùn)練模塊34,用于收集原始樣本,所述原始樣本包括:正常樣本和原始攻擊樣本;對(duì)所述原始攻擊樣本添加噪聲,得到添加噪聲后的攻擊樣本;對(duì)所述正常樣本、原始攻擊樣本和添加噪聲后的攻擊樣本分別進(jìn)行特征提取,得到正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括原始攻擊樣本和添加噪聲后的攻擊樣本;將所述正常樣本的特征向量和攻擊樣本的特征向量作為訓(xùn)練數(shù)據(jù),對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,生成所述深度神經(jīng)網(wǎng)絡(luò)。
一些實(shí)施例中,所述訓(xùn)練模塊34用于根據(jù)預(yù)先確定的樣本庫(kù)和規(guī)則庫(kù),對(duì)所述原始攻擊樣本添加噪聲,得到添加噪聲后的攻擊樣本。
一些實(shí)施例中,對(duì)應(yīng)每個(gè)原始攻擊樣本,相應(yīng)的添加噪聲后的攻擊樣本的個(gè)數(shù)為多個(gè)。
一些實(shí)施例中,所述添加噪聲后的攻擊樣本的個(gè)數(shù)與對(duì)應(yīng)的原始攻擊樣本所屬類(lèi)別的已有攻擊樣本數(shù)量成反比。
一些實(shí)施例中,深度神經(jīng)網(wǎng)絡(luò)包括多層自編碼網(wǎng)絡(luò)。
可以理解的是,本實(shí)施例的裝置與上述方法實(shí)施例對(duì)應(yīng),具體內(nèi)容可以參見(jiàn)方法實(shí)施例的相關(guān)描述,在此不再詳細(xì)說(shuō)明。
本實(shí)施例中,通過(guò)采用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)網(wǎng)絡(luò)入侵類(lèi)別,可以利用深度神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜模式的表述能力強(qiáng)的優(yōu)點(diǎn),從而可以識(shí)別出復(fù)雜攻擊,另外,深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用的訓(xùn)練數(shù)據(jù)包括增加噪聲后的攻擊樣本的特征向量,因此可以增加對(duì)未知攻擊的識(shí)別能力,以及增加對(duì)已知攻擊的范化能力。
本發(fā)明實(shí)施例還提出了一種網(wǎng)絡(luò)設(shè)備,包括:一個(gè)或者多個(gè)處理器;存儲(chǔ)器;一個(gè)或者多個(gè)程序,所述一個(gè)或者多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中,當(dāng)被所述一個(gè)或者多個(gè)處理器執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本發(fā)明實(shí)施例還提出了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)模塊,當(dāng)所述一個(gè)或者多個(gè)模塊被執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
本發(fā)明實(shí)施例還提出了一種計(jì)算機(jī)程序,所述程序被執(zhí)行時(shí),執(zhí)行如下方法:獲取待檢測(cè)流量的特征向量;采用深度神經(jīng)網(wǎng)絡(luò)對(duì)所述特征向量進(jìn)行檢測(cè),確定所述待檢測(cè)流量屬于的網(wǎng)絡(luò)入侵類(lèi)別,其中,所述深度神經(jīng)網(wǎng)絡(luò)是對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練后生成的,所述訓(xùn)練數(shù)據(jù)包括:正常樣本的特征向量和攻擊樣本的特征向量,所述攻擊樣本包括:原始攻擊樣本,以及,對(duì)所述原始攻擊樣本添加噪聲后的樣本。
可以理解的是,上述各實(shí)施例中相同或相似部分可以相互參考,在一些實(shí)施例中未詳細(xì)說(shuō)明的內(nèi)容可以參見(jiàn)其他實(shí)施例中相同或相似的內(nèi)容。
需要說(shuō)明的是,在本申請(qǐng)的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本申請(qǐng)的描述中,除非另有說(shuō)明,“多個(gè)”的含義是指至少兩個(gè)。
流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請(qǐng)的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本申請(qǐng)的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本申請(qǐng)的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門(mén)電路的離散邏輯電路,具有合適的組合邏輯門(mén)電路的專(zhuān)用集成電路,可編程門(mén)陣列(PGA),現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
此外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請(qǐng)的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本申請(qǐng)的限制,本領(lǐng)域的普通技術(shù)人員在本申請(qǐng)的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。