王 禹,丁 箐,羅 弦
(中國(guó)科學(xué)技術(shù)大學(xué) 軟件學(xué)院,安徽省 合肥市 235000)
網(wǎng)絡(luò)犯罪每年給全球經(jīng)濟(jì)造成的損失高達(dá)5 750億美元,其中包括罪犯違法所得和遭受攻擊的公司防護(hù)和維修帶來(lái)的費(fèi)用,據(jù)說(shuō)截至2019年,網(wǎng)絡(luò)犯罪帶來(lái)的損失將達(dá)到2萬(wàn)億美元[1]。網(wǎng)絡(luò)入侵被定義為非法、未被授權(quán)使用和網(wǎng)絡(luò)資源被外部攻擊者利用,它是網(wǎng)絡(luò)犯罪的主要形式。為了識(shí)別和防范主機(jī)系統(tǒng)中的入侵,人們開(kāi)始使用入侵檢測(cè)系統(tǒng)(IDS)[2]。檢測(cè)入侵最常見(jiàn)的方法是識(shí)別用戶的行為模式[3-4],這種方法需要人工完成,而且用戶行為數(shù)據(jù)體量非常龐大,所以相當(dāng)耗費(fèi)時(shí)力。因此借助機(jī)器學(xué)習(xí)方法勢(shì)在必行。神經(jīng)網(wǎng)絡(luò)一類的機(jī)器學(xué)習(xí)算法對(duì)運(yùn)算能力要求較高,在確保效率的同時(shí),對(duì)節(jié)省入侵檢測(cè)任務(wù)計(jì)算資源的研究具有價(jià)值。
在機(jī)器學(xué)習(xí)方法檢測(cè)網(wǎng)絡(luò)入侵的問(wèn)題上,文獻(xiàn)[5]用一種支持向量機(jī)(Support Vector Machine,SVM)和人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)相結(jié)合的方法做入侵檢測(cè)。ANN是一種主要用于解決分類任務(wù)的機(jī)器學(xué)習(xí)算法,它能將數(shù)據(jù)分類到其所屬的類別中,圖1演示神經(jīng)網(wǎng)絡(luò)處理信息的過(guò)程,每一層的圓圈代表神經(jīng)元,從輸入層到隱層再到輸出層的有向線段表示神經(jīng)元之間傳遞信息的過(guò)程[6],輸出層輸出概率分布。SVM分類器使用合頁(yè)損失函數(shù)[7]找到分隔超平面(如圖2所示),將數(shù)據(jù)點(diǎn)分為兩類,預(yù)測(cè)網(wǎng)絡(luò)數(shù)據(jù)是否異常。
圖1 SVM算法生成分離超平面
圖2 人工神經(jīng)網(wǎng)絡(luò)
考慮到網(wǎng)絡(luò)數(shù)據(jù)流具有時(shí)序特征,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)通常被用來(lái)分析或預(yù)測(cè)序列數(shù)據(jù),文獻(xiàn)[8]提出了一種結(jié)合RNN和SVM的方法對(duì)樣本數(shù)據(jù)分類。具體地,使用回聲狀態(tài)網(wǎng)絡(luò) (Echo State Network,ESN)提取樣本數(shù)據(jù)特征并把SVM做為分類器,ESN作為RNN的變體,一個(gè)ESN單元工作需要大量神經(jīng)元,從而提高了計(jì)算資源的消耗。
可以發(fā)現(xiàn),門限循環(huán)單元(Gated Recurrent Unit,GRU)對(duì)時(shí)序數(shù)據(jù)有更好的特征提取效果,降低計(jì)算復(fù)雜度的同時(shí),克服了循環(huán)神經(jīng)網(wǎng)絡(luò)難以解決的“長(zhǎng)期依賴”問(wèn)題。綜上,本文模型使用GRU取代ESN來(lái)做入侵檢測(cè)有可靠的理論依據(jù)。
本文提出的模型使用GRU提取樣本數(shù)據(jù)特征,SVM分類器預(yù)測(cè)數(shù)據(jù)是否為惡意入侵,模型結(jié)構(gòu)如圖3所示。
X代表輸入的樣本數(shù)據(jù)的特征值,利用公式(1)~(4)計(jì)算每個(gè)單元的狀態(tài),包括更新門、重置門和輸出:
zt=σ(Wz· [ht-1,xt])
(1)
rt=σ(Wr· [ht-1,xt])
(2)
ht=tanh(W· [rt*ht-1,xt])
(3)
ht=(1-zt) *ht-1+zt*ht
(4)
圖3 GRU-SVM結(jié)構(gòu)模型,n-1個(gè)GRU輸入單元,SVM分類器
其中,Wz、Wr和W代表要學(xué)習(xí)的參數(shù)矩陣,通過(guò)GRU的門限機(jī)制學(xué)習(xí)更新[9];zt和rt分別為當(dāng)前單元的更新門和重置門,ht是當(dāng)前單元的輸出并影響下一個(gè)單元;下標(biāo)t-1代表前一個(gè)單元狀態(tài);σ()是Sigmoid激活函數(shù)。SVM作為輸出層的分類器,參數(shù)矩陣還可以通過(guò)優(yōu)化SVM的目標(biāo)函數(shù)更新,目標(biāo)函數(shù)度量神經(jīng)網(wǎng)絡(luò)的損失,決策函數(shù)f(x)=sign(wx+b)計(jì)算并預(yù)測(cè)樣本數(shù)據(jù)是否為入侵。GRU-SVM模型可以簡(jiǎn)述為以下幾個(gè)步驟:
(1)給GRU模型輸入數(shù)據(jù)集的特征{xj|xj∈Rm};
(2)輸入特征值xi,計(jì)算GRU的單元狀態(tài)并更新參數(shù)矩陣;
(3)用隨機(jī)值初始化學(xué)習(xí)參數(shù)weights和biases(通過(guò)訓(xùn)練調(diào)整);
(4)預(yù)測(cè)結(jié)果通過(guò)SVM的決策函數(shù)f(x)=sign(wx+b)計(jì)算;
(5)Adam optimizer[10]算法最小化損失函數(shù),調(diào)整weights和biases;
(6)不斷重復(fù)整個(gè)過(guò)程直到神經(jīng)網(wǎng)絡(luò)達(dá)到設(shè)定的準(zhǔn)確率。
模型的分類器使用SVM而不使用Softmax,結(jié)合σ函數(shù)圖像如圖4所示,本文研究Softmax分類器預(yù)測(cè)類別機(jī)制。
圖4 Sigmoid函數(shù)圖像[10]
函數(shù)的導(dǎo)數(shù)值在0和1之間,隨著網(wǎng)絡(luò)層數(shù)的加深,輸出層誤差的影響越來(lái)越小,即梯度變小,同時(shí)帶來(lái)“梯度消失”現(xiàn)象,這是傳統(tǒng)模型錯(cuò)誤分類的原因之一,GRU-SVM模型可以較好解決這一問(wèn)題,同時(shí)能提升運(yùn)行時(shí)間。
京都大學(xué)honeypot系統(tǒng)[11]2013年的網(wǎng)絡(luò)數(shù)據(jù)被用做實(shí)驗(yàn)數(shù)據(jù)集,它有24個(gè)可統(tǒng)計(jì)特征。其中KDD CUP 1999數(shù)據(jù)集[12]中有14個(gè)特征,另外10個(gè)特征也至關(guān)重要,本文選取其中的22個(gè)特征。
數(shù)據(jù)集包括了大約4.1 GB網(wǎng)絡(luò)數(shù)據(jù)流(從2013年1月1日到6月1日)。在使用實(shí)驗(yàn)數(shù)據(jù)集前對(duì)特征進(jìn)行正則化-標(biāo)準(zhǔn)化的處理,如公式5,對(duì)連續(xù)數(shù)據(jù)標(biāo)準(zhǔn)化。
(5)
X是需要標(biāo)準(zhǔn)化的特征,μ是對(duì)應(yīng)特征的平均值,σ是特征的標(biāo)準(zhǔn)差。為提高效率,本文實(shí)驗(yàn)使用Scikit-learn[13]中的StandardScaler().fit_transform()函數(shù)來(lái)標(biāo)準(zhǔn)化。LabelEncoder().fit_transform()函數(shù)把離散特征特征標(biāo)量化。然后用pandas[14]的qcut()函數(shù)將標(biāo)準(zhǔn)化后的值二進(jìn)制化。最后,這些特征編碼為one-hot編碼(十分位二進(jìn)制編碼),使用谷歌機(jī)器學(xué)習(xí)開(kāi)源庫(kù)TensorFlow[15]構(gòu)建神經(jīng)網(wǎng)絡(luò)模型。
第一階段,將樣本數(shù)據(jù)80%選作訓(xùn)練集,用DataFrame.drop_duplicates()函數(shù)去除重復(fù)數(shù)據(jù);第二個(gè)階段將剩余20%數(shù)據(jù)選作測(cè)試集。本文提出的GRU-SVM模型分別在上述兩個(gè)階段的數(shù)據(jù)集上運(yùn)行,用傳統(tǒng)的GRU-Softmax模型做對(duì)比。
實(shí)驗(yàn)參數(shù)基于文獻(xiàn)[5]的研究,包括準(zhǔn)確率、迭代輪數(shù)、損失、時(shí)間、數(shù)據(jù)點(diǎn)個(gè)數(shù)、誤報(bào)個(gè)數(shù)和漏報(bào)個(gè)數(shù),統(tǒng)計(jì)學(xué)方法參數(shù)也被用到(真正率、真負(fù)率、假正率、假負(fù)率)。
兩個(gè)模型的超參數(shù)都通過(guò)手工賦值見(jiàn)表1。實(shí)驗(yàn)中的兩個(gè)模型都在1 898 240行網(wǎng)絡(luò)數(shù)據(jù)流中訓(xùn)練了5輪,訓(xùn)練后的模型又運(yùn)行在420 608行的測(cè)試集上,同樣經(jīng)歷5輪迭代,訓(xùn)練集和測(cè)試集的類別分布見(jiàn)表2,實(shí)驗(yàn)結(jié)果見(jiàn)表3。
表1 兩種神經(jīng)網(wǎng)絡(luò)中的超參數(shù)
表2 訓(xùn)練集測(cè)試集的類分布
表3 兩種模型的實(shí)驗(yàn)結(jié)果總結(jié)
表4和表5分別是兩個(gè)模型在訓(xùn)練集和試集上的統(tǒng)計(jì)度量。
表4 兩種模型在訓(xùn)練集中分類性能的統(tǒng)計(jì)度量
表5 兩種模型在測(cè)試集中分類性能的統(tǒng)計(jì)度量
5輪迭代過(guò)后, GRU-SVM模型用了16分43秒完成訓(xùn)練達(dá)到了約91%的準(zhǔn)確率,GRU-Softmax模型達(dá)到約78%,用了17分11秒,如圖5所示。GRU-SVM模型在1分22秒完成了測(cè)試并達(dá)到約89%的準(zhǔn)確率,GRU-Softmax則用了1分40秒達(dá)到約85%,如圖6。
圖5 兩種模型在訓(xùn)練數(shù)據(jù)集的準(zhǔn)確率
圖6 兩種模型在測(cè)試數(shù)據(jù)集的準(zhǔn)確率
實(shí)驗(yàn)結(jié)果表明,在相同數(shù)據(jù)集條件下,本文提出的模型比傳統(tǒng)模型預(yù)測(cè)準(zhǔn)確率高,同時(shí)說(shuō)明SVM解決二分類問(wèn)題更實(shí)用,而且運(yùn)行時(shí)間更短,印證了兩種算法各自的理論時(shí)間復(fù)雜度。首先,SVM主要為解決二分類問(wèn)題,只需要O(1)的計(jì)算開(kāi)銷;而Softmax主要解決多類分類[16]問(wèn)題,時(shí)間復(fù)雜度是O(n)級(jí)別。在提高準(zhǔn)確率和優(yōu)化效率之間均衡,本文提出的GRU-SVM模型在準(zhǔn)確率和效率上更勝一籌,對(duì)于判斷網(wǎng)絡(luò)系統(tǒng)是否有入侵行為具有重要意義,同時(shí)為追蹤入侵來(lái)源爭(zhēng)取了較多時(shí)間。改進(jìn)后的模型不僅可以用在入侵檢測(cè)這一領(lǐng)域,還可以用于其他一些機(jī)器學(xué)習(xí)任務(wù)中,如視頻分類、生物疾病的診斷,在理解自然語(yǔ)言語(yǔ)義[17]的研究中也具有廣闊前景。
參考文獻(xiàn)
[1] Juniper. Cybercrime will cost businesses over MYM2 Trillion by 2019[J/OL].(2015-05-15)[2017-06-22]. https://www.juniperresearch.com/press/press-releases/ cybercrime-cost-businesses-over-2trillion.
[2] PUKETZA N J, ZHANG K, CHUNG M, et al. A methodology for testing intrusion detection systems[J]. IEEE Transactions on Software Engineering, 2001, 22(10):719-729.
[3] 左軍. 基于大數(shù)據(jù)的網(wǎng)絡(luò)用戶行為分析[J]. 軟件工程, 2014(10):5-6.
[4] 周延森,汪永好.網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)模式匹配算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì), 2008, 29(7):1652-1654.
[5] MUKKAMALA S, JANOSK G, SUNG A.Proceedings of the IEEE International Joint Conference on Neural Networks, 2002, St. Louis,2002: 1702-1707.
[6] NEGNEVITSKY M.Artificial intelligence: a guide to intelligent systems (3rd ed.)[M].Pearson Education Ltd., 2011.
[7] CORTES C, VAPNIK V. Support-vector Networks[J]. Machine Learning,1995,20(3): 273-297.
[8] ALALSHEKMUBARAK A,SMITH L S. 9th International Conference on Innovations in Information Technology (IIT),IEEE,2013,2013.
[9] BOUGARES F,SCHWENK H,BENGIO Y. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. arXiv preprint arXiv,2014:1406.1078 .
[10] KINGMA D, BA J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv,2014:1412.6980.
[11] SONG J, TAKAKURA H, OKABE Y. Description of kyoto university benchmark data [J/OL].[2017-07-17]. http://www.takakura.com/Kyoto_data/BenchmarkData-Description-v5.pdf.
[12] STOLFO S J. KDD cup 1999 dataset[Z]. 1999.
[13] PEDREGOSA F,VAROQUAUX G,GRAMFORT A,et al.Scikit-learn: machine learning in python[J]. Journal of Machine Learning Research,2011,12: 2825-2830.
[14] MCKINNEY W. Data structures for statistical computing in python[M].2010.
[15] TensorFlow:異構(gòu)系統(tǒng)上大規(guī)模機(jī)器學(xué)習(xí)庫(kù)[Z].2017.
[16] 張雨濃, 陳俊維, 劉錦榮,等.基于權(quán)值與結(jié)構(gòu)確定法的單極Sigmoid神經(jīng)網(wǎng)絡(luò)分類器[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(3):766-770.
[17] YANG Z, YANG D, DYER C, et al. Hierarchical attention networks for document classification[C]. Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, 2017:1480-1489.