唱甡嘉
(大連民族大學 計算機科學與工程學院, 遼寧 大連 116650)
隨著人類社會的進步,互聯網技術的發展也給人們帶來了各種生機與活力[1]。然而任何事物在其發展的過程中都會存在雙面性。互聯網技術的迅猛發展,其最初所具備的開放性、共享性以及開放性協議等思想,尤其在當今大數據時代的背景下,互聯網的特點連同眾多種類的網絡病毒對個人信息安全、甚至人身財產安全構成了嚴重的威脅。研究可知,人工智能(Artificial Intelligence,AI)日漸成為互聯網技術的主流,將人工智能與網絡信息安全防御技術相結合,是網絡安全系統發展的重要方向。基于此,本文則旨在研究如何將傳統的網絡安全防護模式轉變為網絡安全智能化防護模式。因此著重使用了深度學習方法中的長短期記憶人工神經網絡( Long Short-Term Memory,LSTM),通過應用循環神經網絡LSTM模型,構建網絡用戶入侵行為檢測模型,實現對含有潛在入侵行為信息的網絡連接檢測的功能;通過應用華為訪問控制列表(ACL)技術,將檢測結果與網絡設備管理結合使用,實現針對入侵行為的智能化管控功能。這樣的模式可以確保網絡用戶在正常用網的前提下,能夠對互聯網中存在的異常行為進行實時的監管和控制,解放了大量人力的同時,也提高了網絡安全防護的效率。
近些年來深度學習中的卷積神經網絡(CNN)技術迅猛發展,不僅在計算機視覺、語言識別等傳統計算機領域有重大突破,還在醫學研究領域[2]和自然氣候研究領域[3]中也有著良好的表現。不同于一般的深度學習模型,CNN模型的結構除了輸入層和全連接層兩個基本部分之外,還特別提出了卷積層與池化層兩個新的概念,用于提取特征時對其進行卷積操作。值得一提的是,這2個新的結構層之間的節點并不需要全部連接,只需選取其中一部分的節點相連通即可。這樣的結構可以使模型的多個節點共享權重值,進而將模型內部無用的參數清理干凈。
CNN模型的訓練方式有2種,即:前向傳播和方向傳播。憑借其優異的內部結構,既可以提出數據中的多個局部特征,也能夠挖掘數據深層次的隱含特征,現在CNN模型已經成為了深度學習方法中備注學界關注的算法模型。
循環神經網絡(RNN)[4]將時間的概念引入到了傳統神經網絡結構之中,在一個長度相同的時間段之中不斷進行循環和遞歸操作,每一個當前時刻隱藏層的狀態都由上一時刻隱藏層輸出的狀態和當前時刻輸入的狀態共同決定。這種獨特的結構使RNN模型可以獲取數據中的隱含特征,還能夠對互相關聯的特征進行挖掘。
長短期記憶人工神經網絡模型( Long Short-Term Memory,LSTM)[5]是RNN的一種變體模型。最初提出是為了解決RNN模型無法處理長序列以及梯度爆炸的問題。LSTM模型提出了神經元(cell)結構,在RNN模型的基礎上設置了遺忘門、輸入門以及輸出門三個結構。通過設置門結構,有選擇地保留或刪除信息,在保留了對上下數據信息的記憶功能的基礎上,增加了剔除無用數據信息的能力,LSTM模型具體的內部結構如圖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個不同權重值;σ和tanh表示門結構中2種激活函數;在某一時刻t,xt表示當前的輸入信息;ht-1表示上一時刻保留下的隱藏層的狀態信息;?表示元素點乘計算;遺忘門ft用來控制剔除當前狀態下的無用信息;輸入門it用于引入需要處理的信息;輸出信息則由輸出門ot負責控制;ut表示的是需要保留到下一時刻的狀態信息;ht則是經過處理后最終輸入到下一時刻的狀態信息。

圖1 LSTM模型的內部結構
訪問控制列表(ACL)技術[6]目前在控制網絡資源的訪問能力方面得到了廣泛的應用,這是一種針對路由器設備基于包過濾的流量控制技術。通過輸入一定的配置命令生成控制列表,把源地址、目的地址以及端口號作為數據包檢查的基本元素,并可以設置一定規定,是否讓符合條件的數據包通過路由器,進入到下一階段網絡,ACL技術實例如圖2所示。

圖2 ACL技術實例
配置華為標準的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的接口調用acl2000,配置命令如下:
[R1]interface g0/0/1
[R1- GigabitEthernet0/0/1]traffic-filter inbound acl 2000
調用acl2000之后,再進行測試,發現PC1與服務器已經不通了,如圖3所示。

圖3 主機PC1的Ping IP界面
本文主要目標是針對網絡用戶入侵行為檢測的研究,基于深度學習理論訓練入侵行為檢測模型,這就需要大量有效的實驗數據,所以實驗環節中,使用的數據集是KDD-CUP99的網絡入侵檢測數據集。KDD-CUP99數據集是開源的,總共有500萬條記錄。此外,還分別提供了一個容量為10%的訓練子集和測試子集,在網絡上可以下載到全套的KDD-CUP99數據集。
在KDD-CUP99數據集中,有8個特征數據會受到時間因素的影響,分別是:'service'、'src_bytes'、'dst_host_diff_srv_rate'、'dst_host_rerror_rate'、'dst_bytes'、'hot'、'num_failed_logins'、'dst_host_srv_count',可以用于構造符合時間序列的數據。由于LSTM模型在處理時間序列數據,并在預測結果方面表現得越來越好,所以本實驗會基于LSTM模型對用戶的入侵行為進行檢測,詳細的模型構造如圖4所示。

圖4 基于LSTM的用戶的入侵行為進行檢測模型
本實驗中,LSTM模型的輸入數據是KDD-CUP99原始數據集自帶的容量為10%的訓練子集。LSTM模型每次輸入的數據長度為T,輸入樣本選擇的是某條網絡連接的前Ts的連接數據信息,標簽也就是預測的行為標識,是第T+1 s的行為類別,這樣就可以通過前Ts的網絡連接數據來預測第T+1 s的行為是正常行為、還是攻擊行為。將該訓練子集的數據信息輸入到LSTM模型里面時,還需要滿足輸入層要求的維度,因此輸入的shape是一個形如(samples,timesteps,input_dim)的3D張量。
LSTM模型接收網絡連接的數據,經歷15個隱藏層的計算之后把數據輸入到全連接層,最后得到網絡連接數據的特征向量;將得到的特征向量輸入到新的全連接網絡模型中,并使用Dropout方法來防止模型出現過擬合問題。
本實驗中的LSTM模型輸入層具有8個特征,共78個維度,輸出層具有1個標簽,共40個維度,使用的激活函數為Sigmoid函數,在模型的最后加入一個用100個神經元構成的全連接層深度網絡,以此作為模型最后預測結果的輸出。
神經網絡模型的搭建對于實驗設備的硬件要求較高,具體的實驗環境配置見表1。

表1 硬件環境配置
對于用戶入侵行為檢測實驗,典型評價指標主要有:準確率ACC、漏報率FNR、誤報率FPR[7]和精確率及召回率的調和均值F1-score,若要計算F1-score(F1值),還需要引入2個中間值即精確率PRE和召回率REC。準確率、漏報率、誤報率、精確率、召回率和精確率及召回率的調和均值的定義可由下面的公式來表示,即:
(7)
(8)
(9)
(10)
(11)
(12)
使用卷積和循環神經網絡模型進行網絡用戶入侵行為檢測的實驗流程如下:
(1)對KDD-CUP99數據集提供的訓練子集進行預處理操作,共分為6步,分別是添加列標簽、對數據集進行統計、數據標準化、行為標識分類、符號特征數值化和數據歸一化。
(2)將預處理完成的訓練子集輸入到LSTM模型中,設置初始參數見表2,開始訓練網絡用戶入侵行為檢測模型。

表2 實驗詳細參數
(3)設置2類對照實驗,分別為:基于LSTM模型的不同網絡層數對用戶入侵行為檢測的影響和基于不同深度學習模型對用戶入侵行為檢測的影響。
按照上述實驗流程進行實驗和對照實驗后,生成的實驗結果見表3、表4。

表3 不同網絡層數實驗結果

表4 不同網絡模型實驗結果
由表3和表4分析發現,基于LSTM模型并且將網絡層數設置為15層的時候,實驗的效果是最好的,即入侵行為檢測的準確度是最高的。
設計出一個網絡拓撲圖,用于網絡用戶入侵行為檢測模型與華為設備結合應用的實驗,網絡拓撲如圖5所示。

圖5 設備應用實驗網絡拓撲
通過已經訓練好的模型對網絡連接進行檢測,根據檢測的結果來對華為設備進行管控,使模型具有實用價值。華為eNSP模擬器負責模擬真實的實驗設備環境,網絡用戶入侵行為檢測與華為設備相結合的應用具體實現步驟如下:
(1)配置Telnet服務。Telnet協議[8]是TCP/IP協議族中的一部分,也是遠程登錄服務的標準協議和主要手段,為用戶提供了在本地計算機上完成遠程主機工作的能力。
(2)設備云與本機網卡實現對連。華為云設備(Cloud)可以與本機的網卡對連,實現使用本機就可以控制虛擬設備的功能。華為eNSP模擬器是一個模擬虛擬化設備的軟件,并不像真實的設備一樣。為了能夠使得操作設備更加簡便,eNSP模擬器提供了一種云設備,可以使本地計算機輕松地訪問這些虛擬設備,方便對其進行配置。
(3)通過Python腳本程序對設備進行配置。對華為設備的具體配置操作,可以通過預置一個Python腳本程序來實現。通過使用Python語言第三方程序庫中的Paramiko模塊,來實現遠程登錄華為設備并處理簡單的配置命令。Paramiko模塊是對SSHv2協議的Python實現,提供了客戶端與服務器功能,而其本身是一個圍繞SSH網絡概念的Python接口,有了該接口以后,就可以在Python代碼中直接用SSH協議對遠程服務器執行操作。
實現用戶入侵行為分析結果管理功能主要是為了展示檢測實驗的效果,用于顯示被攔截網絡連接的基本信息,包括設別名稱、設備端口、源IP地址和目的IP地址,同時還顯示網絡連接被攔截的時間、處理狀態、處理人和處理時間。設備管理員可以通過刪除操作,來刪除已經被誤攔截的網絡連接,保證正常的網絡連接準確地到達用戶主機。
導入Python第三方程序庫中的socket模塊、flask. request模塊。在用戶入侵行為分析結果管理功能中的“analysis.py”文件中編寫get_request_ip()函數和get_my_ip()函數,分別用來獲取源主機的IP地址和目標主機的IP地址;編寫net_del()函數實現刪除網絡連接的操作,入侵行為分析結果管理頁面如圖6所示。

圖6 分析結果管理頁面
雖然本文提出的網絡用戶入侵行為智能化檢測模塊在檢測入侵行為時取得了一定的效果,但是還是存在一些亟待解決的問題,詳述如下。
(1)訓練模型時沒有與機器學習的算法作對照實驗,同時也沒有與混合模型作對照試驗,只是與卷積神經網絡(CNN)的實驗結果進行了對比。僅僅使用LSTM模型,檢測的準確率為98.3%,在理論上依舊存在誤檢測的問題。下一步則要和其他算法、模型進行對比,確定使用一個檢測準確率最高的方法。
(2)檢測只有正常行為和攻擊行為這兩種結果,并沒有將攻擊行為中的4種攻擊方式細分開來,所以無法提煉出詳細的預防和檢測入侵行為的策略。下一步則要按照不同的攻擊方式,總結出不同的預防和防范策略。
總結來說,本文提出的網絡用戶入侵行為智能化檢測模塊有一定的實用價值,能夠解放大量的人力,通過“人機合作”的模式,保障用戶上網安全。在網絡安全形勢日益嚴峻的背景下,本課題的深入探討研究則有著重要的現實意義。