李玉玲 ,朱詠梅 ,劉東紅 ,顧振飛
(1.上海電子信息職業(yè)技術(shù)學(xué)院電子技術(shù)與工程學(xué)院,上海 201411;2.南京信息職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)與通信學(xué)院,江蘇 南京 210023)
云數(shù)據(jù)庫[1]是一種經(jīng)過優(yōu)化被部署到云計算環(huán)境中的數(shù)據(jù)庫,可以實現(xiàn)按需付費、按需擴展、高可用性以及存儲整合等優(yōu)勢。相對于用戶自建數(shù)據(jù)庫,云數(shù)據(jù)庫具有更經(jīng)濟、更專業(yè)、更高效、更可靠的特點。隨著云計算技術(shù)的成熟,云數(shù)據(jù)庫也在各行各業(yè)中得到了廣泛的應(yīng)用并發(fā)揮著不可替代的作用。盡管如此,從傳統(tǒng)數(shù)據(jù)庫往云數(shù)據(jù)庫的轉(zhuǎn)換仍然面臨著一些挑戰(zhàn),其中最為關(guān)鍵的就是如何保證云數(shù)據(jù)庫的安全性[2,3]。目前針對云數(shù)據(jù)庫的惡意行為攻擊尤其突出,一些大型企業(yè)的云數(shù)據(jù)庫幾乎每天都會面對大量的服務(wù)器干預(yù)、網(wǎng)絡(luò)滲透以及SQL 注入等各類惡意行為攻擊。事實上,許多企業(yè)已經(jīng)將惡意行為視為他們?nèi)粘I(yè)務(wù)運營的最大威脅。在云數(shù)據(jù)庫逐漸取代傳統(tǒng)數(shù)據(jù)庫的大趨勢下,如何避免惡意行為的攻擊以及降低攻擊風(fēng)險是相關(guān)行業(yè)以及學(xué)者必須解決的當(dāng)務(wù)之急。
目前主要有兩類惡意行為檢測方案。第一種是基于特征的惡意行為檢測[4,5],這種方案維護一個已知攻擊的特征數(shù)據(jù)庫,通過特征數(shù)據(jù)庫去匹配已知的惡意行為攻擊。Lu 等人[21]提出了一種Poster架構(gòu),對網(wǎng)絡(luò)鏈接、服務(wù)延遲、吞吐量等流量特征設(shè)定惡意攻擊的判別閾值,通過比較實時監(jiān)測數(shù)據(jù)和判別閾值確定是否發(fā)生了惡意攻擊行為。何亨等人[22]將數(shù)據(jù)包IP 頭部和TCP 頭部作為特征數(shù)據(jù),根據(jù)預(yù)先設(shè)定的規(guī)則,當(dāng)其中特定額度特征數(shù)據(jù)超過閾值時就報告相應(yīng)的異常行為。文獻[25]基于貝葉斯算法自適應(yīng)地推理出僵尸網(wǎng)絡(luò)生命周期事件之間的因果關(guān)系,從而計算每個主機的感染可能性。
第二種是基于異常的入侵檢測系統(tǒng)[6,7],這種方案通過觀察正常的流量數(shù)據(jù)并學(xué)習(xí)其規(guī)律,一旦檢測到不符合正常規(guī)律的流量數(shù)據(jù)后,就認為存在惡意行為。Damian 等人[23]提出了基于人工神經(jīng)網(wǎng)絡(luò)的入侵檢測系統(tǒng),特征生成器從細粒度數(shù)據(jù)流中提取流量統(tǒng)計信息并進行處理形成流量特征,傳輸至分類器,由分類器檢測數(shù)據(jù)平面中的惡意活動,控制器監(jiān)控特征生成器和分類器的操作,并對流量分類的結(jié)果進行可視化。文獻[24]構(gòu)建了基于深度神經(jīng)網(wǎng)絡(luò)模型的入侵檢測系統(tǒng),該模型中使用NSLKDD 數(shù)據(jù)集進行訓(xùn)練,并通過在SDN 中獲得的網(wǎng)絡(luò)鏈接時間長度、網(wǎng)絡(luò)協(xié)議類型、從源地址到目的地址的數(shù)據(jù)字節(jié)數(shù)、從目的地址到源地址的數(shù)據(jù)字節(jié)數(shù)、兩秒內(nèi)同一主機的連接數(shù)、兩秒內(nèi)同一服務(wù)的連接數(shù)這6 個基本特征來進行SDN 異常流量檢測。此外他們還將門控循環(huán)單元(Gated Recurrent Unit,GRU)提升網(wǎng)絡(luò)的長短期記憶。
以上兩種方案均是基于某種既定規(guī)則去實現(xiàn)惡意行為檢測的,盡管方案具備一定的有效性[8,9],但是檢測過程的計算復(fù)雜度較高且依賴于規(guī)則的人工維護[10]。對于常見惡意行為攻擊之外的新型攻擊手段,現(xiàn)有的檢測方案缺乏較好的應(yīng)對策略。因此我們需要針對云數(shù)據(jù)庫設(shè)計一種更為泛用的惡意行為檢測模型來保障其安全性[11]。
(1)本文工作
針對以上問題,本文提出一種基于改進粒子群優(yōu)化與核極限學(xué)習(xí)機的惡意行為檢測方法(KE-VP)。該方法的核心是對粒子群優(yōu)化算法進行了改進,然后通過與核極限學(xué)習(xí)機相結(jié)合,從而實現(xiàn)一種基于機器學(xué)習(xí)的惡意行為攻擊檢測。通過實驗分析,我們發(fā)現(xiàn)KE-VP 與現(xiàn)有方案相比具備更好的檢測精度和檢測效率。
(2)相關(guān)工作
文獻[12]提出了一種基于投票極限學(xué)習(xí)機的異常行為檢測方案,試圖通過神經(jīng)網(wǎng)絡(luò)模型來執(zhí)行DDoS 攻擊的檢測。方案在NSL-KDD 數(shù)據(jù)集上達到了99.18%的檢測精度,在ISCX 數(shù)據(jù)集上達到了92.11%的檢測精度。文獻[13]將泰勒序列與象群優(yōu)化算法相結(jié)合,然后通過一個模糊分類器來實現(xiàn)規(guī)則的學(xué)習(xí)。文獻[14]提出了一種AI 驅(qū)動的多層防護策略模型,包含數(shù)據(jù)采集器、交換器、域控制器、NFV 虛擬化設(shè)施以及智能控制器共5 層架構(gòu)。通過NS3.26 模擬的IP 嗅探、主機劫持、重載流量表、DDoS、控制層飽和等攻擊的測試,該模型能夠很好地識別出大多數(shù)攻擊。文獻[15]提出了一種基于支持向量機的權(quán)限管理算法來對用戶的行為進行分類。
為了提升云數(shù)據(jù)庫的接入安全性,本文提出了一種稱為KE-VP 的異常行為檢測方案。對于用戶而言,對云數(shù)據(jù)庫的相關(guān)操作都是通過從客戶端發(fā)起的操作請求去執(zhí)行的,而操作請求中是有可能包含一些惡意行為的,這是由于:(1)操作請求是由惡意用戶發(fā)起的;(2)操作請求在傳輸過程中遭到了某種攻擊。因此當(dāng)客戶端向云數(shù)據(jù)庫發(fā)起操作請求后,云數(shù)據(jù)庫需要對收到的操作請求進行必要的檢測。
本方案首先通過數(shù)據(jù)集來訓(xùn)練KE-VP,然后利用訓(xùn)練好的模型來檢測實際操作請求是否為某種惡意行為攻擊。具體的執(zhí)行流程包括:(1)預(yù)處理;(2)特征抽??;(3)特征降維;(4)特征轉(zhuǎn)換與標(biāo)準化;(5)檢測。下面對這幾個步驟進行介紹。
為了防止測試集信息泄露,我們在預(yù)處理之前,將原始的數(shù)據(jù)集劃分為訓(xùn)練集和測試集。原始的訓(xùn)練集包含大量的重復(fù)且非必要的數(shù)據(jù),這些數(shù)據(jù)構(gòu)成了原始數(shù)據(jù)集當(dāng)中的噪聲。因此需要通過去重、填充等操作去除原始數(shù)據(jù)集當(dāng)中的噪聲,防止噪聲對異常行為檢測模型的訓(xùn)練造成影響。
在預(yù)處理工作的基礎(chǔ)上,我們從數(shù)據(jù)集當(dāng)中總共提取出47 種數(shù)據(jù)特征,主要包括:流量特征、內(nèi)容特征、基礎(chǔ)特征、生成特征以及時間特征等。以上特征最終用于對行為進行分類。在本文所闡述的工作中,我們根據(jù)公開數(shù)據(jù)集UNSW-NB15[16]對原始數(shù)據(jù)集進行了特征提取。表1 展示了UNSW-NB15 中各個特征的數(shù)據(jù)類型、特征碼號以及特征總數(shù)等。
表1 UNSW-NB15 數(shù)據(jù)特征的類型、編號及總數(shù)
特征降維是一種降低數(shù)據(jù)噪聲、消除共線性問題的重要手段。通過特征降維,模型能夠更好地識別出異常行為。在本文工作中,我們采用了線性判別分析算法(Linear Discriminant Analysis,LDA)來實現(xiàn)降維。LDA[17]原先是一種分類模型,不過該算法生成的投影向量具備良好的降維能力。
通常情況下,數(shù)據(jù)集特征包括標(biāo)識類特征和數(shù)值類特征。為便于后面的模型訓(xùn)練,我們需要將所有的標(biāo)識類數(shù)據(jù)轉(zhuǎn)換為數(shù)值類數(shù)據(jù)。UNSW-NB15數(shù)據(jù)集中包含協(xié)議類型、服務(wù)類型以及狀態(tài)數(shù)據(jù)等表示類數(shù)據(jù),我們按照圖1 所示將其逐一轉(zhuǎn)換為數(shù)值類數(shù)據(jù)。
圖1 UNSW-NB15 數(shù)據(jù)集符號特征的特征轉(zhuǎn)換
經(jīng)過特征轉(zhuǎn)換后,我們對數(shù)據(jù)進行Min-Max 標(biāo)準化處理。這一步操作的目的是為了保證所有特征在同一個尺度下,消除不同特征在統(tǒng)計意義下的偏差,進而提高模型訓(xùn)練的效率。Min-Max 標(biāo)準化的公式如下所示:
式中:X為特征,xi為特征的任意樣本,min(X)為特征X能取到的最小值,max(X)特征X能取到的最大值。在特征轉(zhuǎn)換過程中,我們保留了訓(xùn)練集所有特征的最大值和最小值。在測試階段,我們將利用訓(xùn)練集所有特征的最大值和最小值對測試集進行特征轉(zhuǎn)換。這樣的做法可以有效避免測試集信息泄露問題的發(fā)生。
在完成以上所有的數(shù)據(jù)處理工作之后,我們利用處理好的數(shù)據(jù)去訓(xùn)練K-ELM by V-PSO(KE-VP)框架,用于云數(shù)據(jù)庫上的惡意行為識別??蚣苤饕譃闄z測和分類兩個階段。在檢測階段,算法將用戶行為區(qū)分為正常行為和惡意行為;在分類階段,算法將惡意行為分類為具體的攻擊手段。
下一節(jié)將詳細說明KE-VP 模型的構(gòu)造方法。
極限學(xué)習(xí)機(Extreme Learning Machine,ELM)[18-19]是一類基于前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,F(xiàn)NN)構(gòu)建的機器學(xué)習(xí)方法。極限學(xué)習(xí)機隨機選取輸入層權(quán)重和隱藏層偏置,輸出層權(quán)重通過最小化由訓(xùn)練誤差項和輸出層權(quán)重范數(shù)的正則項構(gòu)成的損失函數(shù),依據(jù)Moore-Penrose 廣義逆矩陣理論計算解析求出。即使隨機生成隱藏層節(jié)點,ELM 仍保持FFN 的通用逼近能力。目前極限學(xué)習(xí)機的理論和應(yīng)用已被廣泛研究,從學(xué)習(xí)效率的角度來看,極限學(xué)習(xí)機具有訓(xùn)練參數(shù)少、學(xué)習(xí)速度快、泛化能力強的優(yōu)點。
為方便后續(xù)的推導(dǎo),我們首先給出單層前向傳播神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型表示:
式中:d為輸入樣本,h(d)或H為隱藏層的映射矩陣,χ為隱藏層到輸出層之間的權(quán)重。
對于ELM 而言,χ通過以下公式計算得出:
式中:Y為懲罰系數(shù)。因此ELM 的數(shù)學(xué)模型可以表示為下式:
為了實現(xiàn)更快的收斂速度,我們在ELM 基礎(chǔ)上部署了一個核函數(shù),構(gòu)成了一種核基極限學(xué)習(xí)機(Kernel-based Extreme Learning Machine,K-ELM)。原先ELM 中的特征映射矩陣h(d)被一個核函數(shù)K(p,q)替代。K-ELM 數(shù)學(xué)模型表示為下式:
式中:ΔKELM=HHT為核矩陣,K(p,q)=exp(-γp-q2)為一個高斯核函數(shù)。
在以上數(shù)學(xué)模型中,γ為核函數(shù)的帶寬參數(shù),它控制著模型輸入從低維空間到高維空間的映射。Y為懲罰系數(shù),它負責(zé)掌控模型復(fù)雜度與模型擬合誤差之間的平衡。由此可見參數(shù)(γ,Y)的優(yōu)化是模型訓(xùn)練的關(guān)鍵步驟,因此K-ELM 的性能好壞很大程度上取決于這兩個參數(shù)的選取。但是較少的參數(shù)使得K-ELM 具有更好的泛化性能以及更快的收斂速度。除此之外,K-ELM 通過非線性映射來處理低維數(shù)據(jù),從而克服了ELM 模型的線性不可分問題。
粒子群優(yōu)化(Particle Swarm Optimization,PSO)[20]是一種演化計算方法。PSO 算法最初是為了圖形化地模擬鳥群優(yōu)美而不可預(yù)測的運動,通過對群體行為的觀察來發(fā)現(xiàn)群體中信息共享的演化優(yōu)勢。相比絕大多數(shù)優(yōu)化算法,PSO 算法具有易于實現(xiàn)、參數(shù)少易調(diào)試的優(yōu)勢。然而,PSO 算法存在粒子運動更新速度慢,模擬隨機搜索效果差的問題。為此我們考慮對粒子速率進行適時的修正,保證算法能夠快速收斂到全局最優(yōu)點。
為方便算法描述,我們首先在表2 中列出相關(guān)的符號和說明:
表2 符號以及定義
基于傳統(tǒng)PSO 算法,我們提出了一種速率修正的PSO 算法(Velocity-corrected PSO,V-PSO),算法的具體步驟如下:
(1)初始化所有粒子的速度vi(t)和位置si(t);
(2)計算每個粒子i的初始適應(yīng)度f(si(t));
(3)對每個粒子i,設(shè)置其最佳位置pbest,i=si(t);
(4)設(shè)置全局最佳位置gbest=min(pbest,i);
(5)對每個粒子i,按照以下的式子更新其速度:
(6)對每個粒子i,按照以下的式子更新其位置:
(7)對每個粒子i,比較其當(dāng)前位置si(t+1)和最佳位置pbest,i的適應(yīng)度,如果當(dāng)前位置si(t+1)的適應(yīng)度較好,則將更新其最佳位置pbest,i為當(dāng)前位置si(t+1);同時比較其當(dāng)前位置si(t+1)和全局最佳位置gbest的適應(yīng)度,如果當(dāng)前位置si(t+1)的適應(yīng)度較好,則重新設(shè)置gbest的索引為當(dāng)前的粒子索引;
(8)重復(fù)步驟5-7,直至達到既定的迭代次數(shù)。
以上步驟形成的算法偽代碼如下所示:
算法 V-PSO
相比PSO 算法,步驟5 當(dāng)中的式子實現(xiàn)了一種更為細致的粒子速度更新方法。其中參數(shù)r1不足以呈現(xiàn)全局最優(yōu)解,故而利用參數(shù)r2來控制局部最優(yōu)與全局最優(yōu)的平衡,同時利用函數(shù)fn(r3)用來限制粒子的隨機運動。這種啟發(fā)式機制相比經(jīng)典的粒子群算法,在避免局部收斂方面擁有更好的性能。
通過以上的算法優(yōu)化,我們設(shè)計了K-ELM by V-PSO(KE-VP)框架,用于云數(shù)據(jù)庫上的惡意行為識別。框架主要分為檢測和分類兩個階段。在檢測階段,算法將用戶行為區(qū)分為正常行為和惡意行為;在分類階段,算法將惡意行為分類為具體的攻擊手段。
框架基于Java 實現(xiàn),在實驗階段我們將KE-VP與其他現(xiàn)有方法進行了對比,并分析了主要的性能指標(biāo)。本節(jié)首先介紹我們所使用的數(shù)據(jù)集,然后給出詳細的實驗結(jié)果分析。
本方法在實驗環(huán)節(jié)使用了UNSW-NB15 數(shù)據(jù)集,該數(shù)據(jù)集由新南威爾士大學(xué)堪培拉校區(qū)的網(wǎng)絡(luò)靶場實驗室基于IXIA 公司提供的PerfectStorm 系列工具進行收集并創(chuàng)建的,它包含了常規(guī)的網(wǎng)絡(luò)流量以及各類攻擊的異常流量。UNSW-NB15 攻擊包含了540 044條數(shù)據(jù),每條數(shù)據(jù)都包含了49 種特征,其中包括常規(guī)的網(wǎng)絡(luò)流量以及其他9 種攻擊行為(Fuzzers、Backdoors、Analysis、Dos、Generic、Shellcode、Exploits、Worm 以及Reconnaissance)。在本實驗當(dāng)中,我們使用了UNSW-NB15 提供的包含了175 341條數(shù)據(jù)的訓(xùn)練集,以及包含82 332 條數(shù)據(jù)的測試集。
我們首先在UNSW-NB15 數(shù)據(jù)集上進行檢測測試,對KE-VP、K-ELM 以及人工神經(jīng)網(wǎng)絡(luò)三種模型在區(qū)分正常網(wǎng)絡(luò)行為和異常網(wǎng)絡(luò)行為方面的性能進行了測試。如表3 所示,我們記錄了K-ELM、ANN以及KE-VP 算法在檢測任務(wù)中取得的Precision、Accuracy、Recall、False-Positive-Rate (FPR)、F1-Score、訓(xùn)練時間等性能指標(biāo)。
表3 行為檢測性能比較
從表3 當(dāng)中可以看出,相比K-ELM 以及ANN算法,本文提出的KE-VP 算法取得了最高的F1-score(0.952),同時取得了最低的FPR(0.035)。此外在模型訓(xùn)練時間上,KE-VP 相比K-ELM 縮短了近25%且遠低于ANN 所需要的訓(xùn)練時間。
在分類階段,我們剔除了正常行為的樣本數(shù)據(jù),僅保留惡意行為并對基于KE-VP 算法的分類性能進行了測試。該階段的訓(xùn)練數(shù)據(jù)集包括5 000 條惡意行為數(shù)據(jù),測試集包括1 000 條惡意行為數(shù)據(jù)。如表4 所示,我們記錄了KE-VP 在分類任務(wù)中針對不同攻擊手段(包括 Analysis、Backdoor、Dos、Exploits、Fuzzers、Generic、Reconn、Shellcode、Worms)所取得的Precision、Accuracy、Recall、FPR 以及F1-socore 等性能指標(biāo)。
從表4 可以看出在F1-score 指標(biāo)上,后門攻擊(Backdoor)的分類性能表現(xiàn)稍稍遜于對其他攻擊手段的分類性能。但是在整體上,KE-VP 面對各類攻擊的分類均表現(xiàn)出了較好的性能。
表4 KE-VP 針對不同惡意行為的分類性能
本文首先提出了一種核基極限學(xué)習(xí)機,通過一個核函數(shù)提升極限學(xué)習(xí)機的收斂速度。其次對粒子群優(yōu)化算法的粒子速率迭代方法進行修正,提出了一種速率修正的粒子群優(yōu)化算法。利用速率修正的粒子群優(yōu)化去訓(xùn)練核基極限學(xué)習(xí)機,將其應(yīng)用到云數(shù)據(jù)庫上的網(wǎng)絡(luò)流量分析,最終實現(xiàn)惡意行為的快速準確識別。經(jīng)過實驗分析,該方法與現(xiàn)有方案相比具備更好的識別精度和模型訓(xùn)練效率。未來將在模型的泛化能力上進行更多的改進。