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