唱甡嘉
(大連民族大學 計算機科學與工程學院, 遼寧 大連 116650)
隨著人類社會的進步,互聯(lián)網(wǎng)技術(shù)的發(fā)展也給人們帶來了各種生機與活力[1]。然而任何事物在其發(fā)展的過程中都會存在雙面性。互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,其最初所具備的開放性、共享性以及開放性協(xié)議等思想,尤其在當今大數(shù)據(jù)時代的背景下,互聯(lián)網(wǎng)的特點連同眾多種類的網(wǎng)絡(luò)病毒對個人信息安全、甚至人身財產(chǎn)安全構(gòu)成了嚴重的威脅。研究可知,人工智能(Artificial Intelligence,AI)日漸成為互聯(lián)網(wǎng)技術(shù)的主流,將人工智能與網(wǎng)絡(luò)信息安全防御技術(shù)相結(jié)合,是網(wǎng)絡(luò)安全系統(tǒng)發(fā)展的重要方向?;诖耍疚膭t旨在研究如何將傳統(tǒng)的網(wǎng)絡(luò)安全防護模式轉(zhuǎn)變?yōu)榫W(wǎng)絡(luò)安全智能化防護模式。因此著重使用了深度學習方法中的長短期記憶人工神經(jīng)網(wǎng)絡(luò)( Long Short-Term Memory,LSTM),通過應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)LSTM模型,構(gòu)建網(wǎng)絡(luò)用戶入侵行為檢測模型,實現(xiàn)對含有潛在入侵行為信息的網(wǎng)絡(luò)連接檢測的功能;通過應(yīng)用華為訪問控制列表(ACL)技術(shù),將檢測結(jié)果與網(wǎng)絡(luò)設(shè)備管理結(jié)合使用,實現(xiàn)針對入侵行為的智能化管控功能。這樣的模式可以確保網(wǎng)絡(luò)用戶在正常用網(wǎng)的前提下,能夠?qū)ヂ?lián)網(wǎng)中存在的異常行為進行實時的監(jiān)管和控制,解放了大量人力的同時,也提高了網(wǎng)絡(luò)安全防護的效率。
近些年來深度學習中的卷積神經(jīng)網(wǎng)絡(luò)(CNN)技術(shù)迅猛發(fā)展,不僅在計算機視覺、語言識別等傳統(tǒng)計算機領(lǐng)域有重大突破,還在醫(yī)學研究領(lǐng)域[2]和自然氣候研究領(lǐng)域[3]中也有著良好的表現(xiàn)。不同于一般的深度學習模型,CNN模型的結(jié)構(gòu)除了輸入層和全連接層兩個基本部分之外,還特別提出了卷積層與池化層兩個新的概念,用于提取特征時對其進行卷積操作。值得一提的是,這2個新的結(jié)構(gòu)層之間的節(jié)點并不需要全部連接,只需選取其中一部分的節(jié)點相連通即可。這樣的結(jié)構(gòu)可以使模型的多個節(jié)點共享權(quán)重值,進而將模型內(nèi)部無用的參數(shù)清理干凈。
CNN模型的訓練方式有2種,即:前向傳播和方向傳播。憑借其優(yōu)異的內(nèi)部結(jié)構(gòu),既可以提出數(shù)據(jù)中的多個局部特征,也能夠挖掘數(shù)據(jù)深層次的隱含特征,現(xiàn)在CNN模型已經(jīng)成為了深度學習方法中備注學界關(guān)注的算法模型。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[4]將時間的概念引入到了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)之中,在一個長度相同的時間段之中不斷進行循環(huán)和遞歸操作,每一個當前時刻隱藏層的狀態(tài)都由上一時刻隱藏層輸出的狀態(tài)和當前時刻輸入的狀態(tài)共同決定。這種獨特的結(jié)構(gòu)使RNN模型可以獲取數(shù)據(jù)中的隱含特征,還能夠?qū)ハ嚓P(guān)聯(lián)的特征進行挖掘。
長短期記憶人工神經(jīng)網(wǎng)絡(luò)模型( Long Short-Term Memory,LSTM)[5]是RNN的一種變體模型。最初提出是為了解決RNN模型無法處理長序列以及梯度爆炸的問題。LSTM模型提出了神經(jīng)元(cell)結(jié)構(gòu),在RNN模型的基礎(chǔ)上設(shè)置了遺忘門、輸入門以及輸出門三個結(jié)構(gòu)。通過設(shè)置門結(jié)構(gòu),有選擇地保留或刪除信息,在保留了對上下數(shù)據(jù)信息的記憶功能的基礎(chǔ)上,增加了剔除無用數(shù)據(jù)信息的能力,LSTM模型具體的內(nèi)部結(jié)構(gòu)如圖1所示。
LSTM模型的具體工作原理可以由以下公式來表示,即:
ft=σ(Wfxt+Ufht-1),
(1)
it=σ(Wixt+Uiht-1),
(2)
ot=σ(Woxt+Uoht-1),
(3)
ut=tanh(Wuxt+Uuht-1),
(4)
ct=ct?ut+ft?ct-1,
(5)
ht=ot?tanh(ct).
(6)
其中,Wf、Wi、Wo、Wu是4個不同權(quán)重值;σ和tanh表示門結(jié)構(gòu)中2種激活函數(shù);在某一時刻t,xt表示當前的輸入信息;ht-1表示上一時刻保留下的隱藏層的狀態(tài)信息;?表示元素點乘計算;遺忘門ft用來控制剔除當前狀態(tài)下的無用信息;輸入門it用于引入需要處理的信息;輸出信息則由輸出門ot負責控制;ut表示的是需要保留到下一時刻的狀態(tài)信息;ht則是經(jīng)過處理后最終輸入到下一時刻的狀態(tài)信息。
圖1 LSTM模型的內(nèi)部結(jié)構(gòu)
訪問控制列表(ACL)技術(shù)[6]目前在控制網(wǎng)絡(luò)資源的訪問能力方面得到了廣泛的應(yīng)用,這是一種針對路由器設(shè)備基于包過濾的流量控制技術(shù)。通過輸入一定的配置命令生成控制列表,把源地址、目的地址以及端口號作為數(shù)據(jù)包檢查的基本元素,并可以設(shè)置一定規(guī)定,是否讓符合條件的數(shù)據(jù)包通過路由器,進入到下一階段網(wǎng)絡(luò),ACL技術(shù)實例如圖2所示。
圖2 ACL技術(shù)實例
配置華為標準的acl,配置命令如下:
[R1]acl 2000
[R1-acl-basic-2000]rule 5 deny source 192.168.1.1 0
[R1-acl-basic-2000]rule 10 permit source any
此時在R1的g0/0/1的接口調(diào)用acl2000,配置命令如下:
[R1]interface g0/0/1
[R1- GigabitEthernet0/0/1]traffic-filter inbound acl 2000
調(diào)用acl2000之后,再進行測試,發(fā)現(xiàn)PC1與服務(wù)器已經(jīng)不通了,如圖3所示。
圖3 主機PC1的Ping IP界面
本文主要目標是針對網(wǎng)絡(luò)用戶入侵行為檢測的研究,基于深度學習理論訓練入侵行為檢測模型,這就需要大量有效的實驗數(shù)據(jù),所以實驗環(huán)節(jié)中,使用的數(shù)據(jù)集是KDD-CUP99的網(wǎng)絡(luò)入侵檢測數(shù)據(jù)集。KDD-CUP99數(shù)據(jù)集是開源的,總共有500萬條記錄。此外,還分別提供了一個容量為10%的訓練子集和測試子集,在網(wǎng)絡(luò)上可以下載到全套的KDD-CUP99數(shù)據(jù)集。
在KDD-CUP99數(shù)據(jù)集中,有8個特征數(shù)據(jù)會受到時間因素的影響,分別是:'service'、'src_bytes'、'dst_host_diff_srv_rate'、'dst_host_rerror_rate'、'dst_bytes'、'hot'、'num_failed_logins'、'dst_host_srv_count',可以用于構(gòu)造符合時間序列的數(shù)據(jù)。由于LSTM模型在處理時間序列數(shù)據(jù),并在預測結(jié)果方面表現(xiàn)得越來越好,所以本實驗會基于LSTM模型對用戶的入侵行為進行檢測,詳細的模型構(gòu)造如圖4所示。
圖4 基于LSTM的用戶的入侵行為進行檢測模型
本實驗中,LSTM模型的輸入數(shù)據(jù)是KDD-CUP99原始數(shù)據(jù)集自帶的容量為10%的訓練子集。LSTM模型每次輸入的數(shù)據(jù)長度為T,輸入樣本選擇的是某條網(wǎng)絡(luò)連接的前Ts的連接數(shù)據(jù)信息,標簽也就是預測的行為標識,是第T+1 s的行為類別,這樣就可以通過前Ts的網(wǎng)絡(luò)連接數(shù)據(jù)來預測第T+1 s的行為是正常行為、還是攻擊行為。將該訓練子集的數(shù)據(jù)信息輸入到LSTM模型里面時,還需要滿足輸入層要求的維度,因此輸入的shape是一個形如(samples,timesteps,input_dim)的3D張量。
LSTM模型接收網(wǎng)絡(luò)連接的數(shù)據(jù),經(jīng)歷15個隱藏層的計算之后把數(shù)據(jù)輸入到全連接層,最后得到網(wǎng)絡(luò)連接數(shù)據(jù)的特征向量;將得到的特征向量輸入到新的全連接網(wǎng)絡(luò)模型中,并使用Dropout方法來防止模型出現(xiàn)過擬合問題。
本實驗中的LSTM模型輸入層具有8個特征,共78個維度,輸出層具有1個標簽,共40個維度,使用的激活函數(shù)為Sigmoid函數(shù),在模型的最后加入一個用100個神經(jīng)元構(gòu)成的全連接層深度網(wǎng)絡(luò),以此作為模型最后預測結(jié)果的輸出。
神經(jīng)網(wǎng)絡(luò)模型的搭建對于實驗設(shè)備的硬件要求較高,具體的實驗環(huán)境配置見表1。
表1 硬件環(huán)境配置
對于用戶入侵行為檢測實驗,典型評價指標主要有:準確率ACC、漏報率FNR、誤報率FPR[7]和精確率及召回率的調(diào)和均值F1-score,若要計算F1-score(F1值),還需要引入2個中間值即精確率PRE和召回率REC。準確率、漏報率、誤報率、精確率、召回率和精確率及召回率的調(diào)和均值的定義可由下面的公式來表示,即:
(7)
(8)
(9)
(10)
(11)
(12)
使用卷積和循環(huán)神經(jīng)網(wǎng)絡(luò)模型進行網(wǎng)絡(luò)用戶入侵行為檢測的實驗流程如下:
(1)對KDD-CUP99數(shù)據(jù)集提供的訓練子集進行預處理操作,共分為6步,分別是添加列標簽、對數(shù)據(jù)集進行統(tǒng)計、數(shù)據(jù)標準化、行為標識分類、符號特征數(shù)值化和數(shù)據(jù)歸一化。
(2)將預處理完成的訓練子集輸入到LSTM模型中,設(shè)置初始參數(shù)見表2,開始訓練網(wǎng)絡(luò)用戶入侵行為檢測模型。
表2 實驗詳細參數(shù)
(3)設(shè)置2類對照實驗,分別為:基于LSTM模型的不同網(wǎng)絡(luò)層數(shù)對用戶入侵行為檢測的影響和基于不同深度學習模型對用戶入侵行為檢測的影響。
按照上述實驗流程進行實驗和對照實驗后,生成的實驗結(jié)果見表3、表4。
表3 不同網(wǎng)絡(luò)層數(shù)實驗結(jié)果
表4 不同網(wǎng)絡(luò)模型實驗結(jié)果
由表3和表4分析發(fā)現(xiàn),基于LSTM模型并且將網(wǎng)絡(luò)層數(shù)設(shè)置為15層的時候,實驗的效果是最好的,即入侵行為檢測的準確度是最高的。
設(shè)計出一個網(wǎng)絡(luò)拓撲圖,用于網(wǎng)絡(luò)用戶入侵行為檢測模型與華為設(shè)備結(jié)合應(yīng)用的實驗,網(wǎng)絡(luò)拓撲如圖5所示。
圖5 設(shè)備應(yīng)用實驗網(wǎng)絡(luò)拓撲
通過已經(jīng)訓練好的模型對網(wǎng)絡(luò)連接進行檢測,根據(jù)檢測的結(jié)果來對華為設(shè)備進行管控,使模型具有實用價值。華為eNSP模擬器負責模擬真實的實驗設(shè)備環(huán)境,網(wǎng)絡(luò)用戶入侵行為檢測與華為設(shè)備相結(jié)合的應(yīng)用具體實現(xiàn)步驟如下:
(1)配置Telnet服務(wù)。Telnet協(xié)議[8]是TCP/IP協(xié)議族中的一部分,也是遠程登錄服務(wù)的標準協(xié)議和主要手段,為用戶提供了在本地計算機上完成遠程主機工作的能力。
(2)設(shè)備云與本機網(wǎng)卡實現(xiàn)對連。華為云設(shè)備(Cloud)可以與本機的網(wǎng)卡對連,實現(xiàn)使用本機就可以控制虛擬設(shè)備的功能。華為eNSP模擬器是一個模擬虛擬化設(shè)備的軟件,并不像真實的設(shè)備一樣。為了能夠使得操作設(shè)備更加簡便,eNSP模擬器提供了一種云設(shè)備,可以使本地計算機輕松地訪問這些虛擬設(shè)備,方便對其進行配置。
(3)通過Python腳本程序?qū)υO(shè)備進行配置。對華為設(shè)備的具體配置操作,可以通過預置一個Python腳本程序來實現(xiàn)。通過使用Python語言第三方程序庫中的Paramiko模塊,來實現(xiàn)遠程登錄華為設(shè)備并處理簡單的配置命令。Paramiko模塊是對SSHv2協(xié)議的Python實現(xiàn),提供了客戶端與服務(wù)器功能,而其本身是一個圍繞SSH網(wǎng)絡(luò)概念的Python接口,有了該接口以后,就可以在Python代碼中直接用SSH協(xié)議對遠程服務(wù)器執(zhí)行操作。
實現(xiàn)用戶入侵行為分析結(jié)果管理功能主要是為了展示檢測實驗的效果,用于顯示被攔截網(wǎng)絡(luò)連接的基本信息,包括設(shè)別名稱、設(shè)備端口、源IP地址和目的IP地址,同時還顯示網(wǎng)絡(luò)連接被攔截的時間、處理狀態(tài)、處理人和處理時間。設(shè)備管理員可以通過刪除操作,來刪除已經(jīng)被誤攔截的網(wǎng)絡(luò)連接,保證正常的網(wǎng)絡(luò)連接準確地到達用戶主機。
導入Python第三方程序庫中的socket模塊、flask. request模塊。在用戶入侵行為分析結(jié)果管理功能中的“analysis.py”文件中編寫get_request_ip()函數(shù)和get_my_ip()函數(shù),分別用來獲取源主機的IP地址和目標主機的IP地址;編寫net_del()函數(shù)實現(xiàn)刪除網(wǎng)絡(luò)連接的操作,入侵行為分析結(jié)果管理頁面如圖6所示。
圖6 分析結(jié)果管理頁面
雖然本文提出的網(wǎng)絡(luò)用戶入侵行為智能化檢測模塊在檢測入侵行為時取得了一定的效果,但是還是存在一些亟待解決的問題,詳述如下。
(1)訓練模型時沒有與機器學習的算法作對照實驗,同時也沒有與混合模型作對照試驗,只是與卷積神經(jīng)網(wǎng)絡(luò)(CNN)的實驗結(jié)果進行了對比。僅僅使用LSTM模型,檢測的準確率為98.3%,在理論上依舊存在誤檢測的問題。下一步則要和其他算法、模型進行對比,確定使用一個檢測準確率最高的方法。
(2)檢測只有正常行為和攻擊行為這兩種結(jié)果,并沒有將攻擊行為中的4種攻擊方式細分開來,所以無法提煉出詳細的預防和檢測入侵行為的策略。下一步則要按照不同的攻擊方式,總結(jié)出不同的預防和防范策略。
總結(jié)來說,本文提出的網(wǎng)絡(luò)用戶入侵行為智能化檢測模塊有一定的實用價值,能夠解放大量的人力,通過“人機合作”的模式,保障用戶上網(wǎng)安全。在網(wǎng)絡(luò)安全形勢日益嚴峻的背景下,本課題的深入探討研究則有著重要的現(xiàn)實意義。