李 志,宋禮鵬
(中北大學(xué) 大數(shù)據(jù)學(xué)院 大數(shù)據(jù)與網(wǎng)絡(luò)安全研究所,太原 030051)
隨著科學(xué)技術(shù)的發(fā)展,企業(yè)信息化水平不斷提高,對(duì)企業(yè)和組織的信息安全管理和分析提出了新的挑戰(zhàn),其中來(lái)自?xún)?nèi)部的威脅不斷增加,并給企業(yè)和組織造成巨大損失。對(duì)于內(nèi)部威脅而言,內(nèi)部惡意用戶(hù)具有合法的資源訪問(wèn)權(quán)限,因此可通過(guò)合法的操作發(fā)起攻擊并且很難被現(xiàn)有的訪問(wèn)控制或身份認(rèn)證機(jī)制進(jìn)行檢測(cè)。一旦內(nèi)部攻擊發(fā)生,就會(huì)對(duì)內(nèi)部資產(chǎn)造成巨大損失[1-3]。因此,如何有效防御內(nèi)部威脅一直是研究的熱點(diǎn)[4-5]。
文獻(xiàn)[6]根據(jù)Unix系統(tǒng)環(huán)境中的Unix Shell命令段序列的使用特征來(lái)描述用戶(hù)行為,如命令的名稱(chēng)、單條命令的執(zhí)行時(shí)長(zhǎng)、CPU運(yùn)行時(shí)長(zhǎng)和內(nèi)存占用。該研究主要是針對(duì)Unix系統(tǒng)的用戶(hù)行為,而相比Unix系統(tǒng),Windows操作系統(tǒng)的使用更加廣泛,并且在Windows環(huán)境下用戶(hù)主要是基于窗口界面與計(jì)算機(jī)進(jìn)行交互,很少使用命令行進(jìn)行操作。因此,對(duì)Unix用戶(hù)的分析技術(shù)不能完全適用于Windows系統(tǒng)環(huán)境。文獻(xiàn)[7]分析Windows系統(tǒng)API與進(jìn)程表信息,提出監(jiān)控系統(tǒng)調(diào)用方法,通過(guò)用戶(hù)、文件與進(jìn)程的關(guān)聯(lián)關(guān)系建立文件訪問(wèn)與進(jìn)程調(diào)用的聯(lián)系,不足是僅能檢測(cè)緩沖區(qū)溢出,然而依據(jù)緩存區(qū)獨(dú)立研究其不能完全表征用戶(hù)在計(jì)算機(jī)上多樣性的操作行為。文獻(xiàn)[8]通過(guò)記錄用戶(hù)在使用某特定程序時(shí)Windows Native API的調(diào)用序列,利用隱馬爾科夫模型對(duì)正常用戶(hù)行為進(jìn)行建模,僅利用3臺(tái)主機(jī)模擬內(nèi)網(wǎng)環(huán)境,并且只將Windows系統(tǒng)中的4種進(jìn)程作為異常發(fā)生時(shí)的測(cè)試對(duì)象。另外,內(nèi)網(wǎng)中異常用戶(hù)在計(jì)算機(jī)上執(zhí)行的許多操作在技術(shù)上是合法的,并不會(huì)造成進(jìn)程異常。文獻(xiàn)[9]通過(guò)收集和分析Windows NT系統(tǒng)的審計(jì)日志,提出一種用戶(hù)行為建模方法,使用SVM分類(lèi)器識(shí)別異常行為。雖然審計(jì)日志記錄了用戶(hù)的操作數(shù)據(jù),如應(yīng)用程序窗口名、應(yīng)用程序開(kāi)始和結(jié)束時(shí)間及對(duì)應(yīng)的進(jìn)程ID等,但因有限的屬性記錄以及簡(jiǎn)單拼接不同類(lèi)型的審計(jì)數(shù)據(jù)會(huì)造成特征失效、模型訓(xùn)練復(fù)雜度過(guò)高和模型過(guò)擬合問(wèn)題,并且實(shí)驗(yàn)結(jié)果準(zhǔn)確率和誤報(bào)率不能滿(mǎn)足實(shí)際要求,當(dāng)準(zhǔn)確率為最高的66.7%時(shí),誤報(bào)率達(dá)到11%,當(dāng)誤報(bào)率為3.7%時(shí),準(zhǔn)確率為63%。文獻(xiàn)[10-11]提出基于文件使用的內(nèi)部威脅檢測(cè)系統(tǒng),該系統(tǒng)用于偽裝者攻擊,從用戶(hù)遍歷文件系統(tǒng)以及訪問(wèn)文件目錄的角度建立行為模型,其局限是僅針對(duì)文件系統(tǒng)單一域訪問(wèn)的異常情況進(jìn)行研究。文獻(xiàn)[12]收集了不同用戶(hù)調(diào)用窗口的標(biāo)題和進(jìn)程等信息,但由于數(shù)據(jù)獲取難度大,因此在此方面很難取得重大進(jìn)展。
內(nèi)部威脅的產(chǎn)生原因主要包括計(jì)算機(jī)在無(wú)人看管時(shí),他人進(jìn)行一些不合法的操作,以及計(jì)算機(jī)真實(shí)用戶(hù)的行為發(fā)生惡意變化后的操作。無(wú)論在何種情形下,用戶(hù)在計(jì)算機(jī)上的行為直接體現(xiàn)在與應(yīng)用窗口的交互過(guò)程中。針對(duì)內(nèi)部威脅的產(chǎn)生原因,本文從應(yīng)用窗口的使用角度分別研究異常用戶(hù)檢測(cè)和用戶(hù)自身變化行為的識(shí)別,提出可表征用戶(hù)窗口行為的特征。借助樣本均值分布特性和K-S檢驗(yàn),結(jié)合采集的用戶(hù)行為數(shù)據(jù)以驗(yàn)證用戶(hù)窗口行為的差異性,并利用歐氏距離和置信區(qū)間構(gòu)建異常檢測(cè)算法。
針對(duì)異常用戶(hù)檢測(cè)和用戶(hù)自身變化行為識(shí)別問(wèn)題,通過(guò)分析用戶(hù)窗口的行為習(xí)慣分別提出兩類(lèi)窗口行為特征和兩種行為模式建立方法。對(duì)于每類(lèi)行為特征,根據(jù)用戶(hù)行為數(shù)據(jù)分析特征值范圍的統(tǒng)計(jì)分布來(lái)進(jìn)行行為度量,可以有效地量化用戶(hù)窗口使用行為的差異。
用戶(hù)在一個(gè)應(yīng)用窗口內(nèi)的活動(dòng)有兩種模式:第一種是用戶(hù)在窗口內(nèi)間斷的活動(dòng),即用戶(hù)的動(dòng)作之間存在間隔,這些間隔由用戶(hù)脫機(jī)行為造成,一個(gè)窗口置頂?shù)臅r(shí)間越長(zhǎng)越能體現(xiàn)出這種行為模式,將連續(xù)動(dòng)作的時(shí)間長(zhǎng)度稱(chēng)為窗口內(nèi)動(dòng)作的有效時(shí)長(zhǎng),用戶(hù)的脫機(jī)時(shí)間長(zhǎng)度稱(chēng)為動(dòng)作間隔時(shí)長(zhǎng),窗口內(nèi)的有效動(dòng)作指的是鼠標(biāo)和鍵盤(pán)動(dòng)作;第二種是用戶(hù)在一個(gè)窗口內(nèi)的動(dòng)作結(jié)束后隨即離開(kāi)當(dāng)前窗口。
實(shí)驗(yàn)主要提取了置頂時(shí)長(zhǎng)、單個(gè)活動(dòng)時(shí)長(zhǎng)均值和方差、有效總時(shí)長(zhǎng)、動(dòng)作間隔時(shí)長(zhǎng)均值和方差、間隔總時(shí)長(zhǎng)、間隔次數(shù)、鼠標(biāo)和鍵盤(pán)動(dòng)作時(shí)長(zhǎng)、單個(gè)有效活動(dòng)時(shí)長(zhǎng)和間隔時(shí)長(zhǎng)的均值與方差這些窗口內(nèi)的行為特征。
圖1(a)和圖1(b)分別顯示了用戶(hù)在窗口內(nèi)單次活動(dòng)持續(xù)平均時(shí)長(zhǎng)分布和活動(dòng)總持續(xù)平均時(shí)長(zhǎng)分布,均是重尾分布。其中單次活動(dòng)的平均時(shí)長(zhǎng)分布主要集中在5 min內(nèi)。在0~3 min內(nèi),用戶(hù)單次活動(dòng)平均時(shí)長(zhǎng)有明顯的波動(dòng);活動(dòng)總持續(xù)平均時(shí)長(zhǎng)超過(guò)90%的時(shí)長(zhǎng)小于10 min,在0~5 min內(nèi),較高的誤差線表明不同用戶(hù)通常具有不同的有效活動(dòng)時(shí)長(zhǎng)。
圖1(c)顯示了用戶(hù)活動(dòng)間隔時(shí)長(zhǎng)的差異。為清晰地呈現(xiàn)用戶(hù)行為之間的差異,本文對(duì)5個(gè)用戶(hù)進(jìn)行刻畫(huà)。從窗口內(nèi)活動(dòng)間隔數(shù)據(jù)經(jīng)過(guò)Box-Cox變換[13]處理后得到的概率密度圖可以直觀看出,用戶(hù)在窗口內(nèi)的活動(dòng)間隔時(shí)長(zhǎng)分布存在顯著差異。
圖1 窗口內(nèi)部行為特征分布
窗口大小、切換順序等行為也是表征用戶(hù)使用應(yīng)用窗口的一類(lèi)關(guān)鍵特征。下文詳細(xì)描述這些特征:
1)窗口名:用戶(hù)在一段時(shí)間內(nèi)對(duì)不同功能軟件的需求是穩(wěn)定的,此特征可體現(xiàn)用戶(hù)對(duì)軟件的使用偏好。圖2顯示了所有用戶(hù)各類(lèi)窗口平均時(shí)長(zhǎng)占比的分布情況??梢钥闯?用戶(hù)在外部瀏覽器、Office、論文閱讀軟件、桌面、編程軟件和即時(shí)通訊的平均耗時(shí)占所有窗口時(shí)長(zhǎng)的90%左右。其中外部瀏覽器、Office和論文閱讀軟件占相當(dāng)高的比例。非常高的誤差線表明用戶(hù)對(duì)各類(lèi)型的窗口活動(dòng)呈現(xiàn)出多樣性和差異性。
圖2 各類(lèi)用戶(hù)窗口總持續(xù)平均時(shí)長(zhǎng)分布
2)活躍狀態(tài)的窗口數(shù):活躍狀態(tài)指的是所有打開(kāi)的窗口,包含最大化、最小化和特定大小的窗口。用戶(hù)在窗口內(nèi)的動(dòng)作結(jié)束后對(duì)當(dāng)前窗口有3種處理方式,即關(guān)閉、最小化和覆蓋當(dāng)前窗口。此特征能夠直接反映用戶(hù)對(duì)窗口狀態(tài)控制的習(xí)慣。
3)最小化、最大化窗口數(shù):結(jié)合活躍狀態(tài)窗口數(shù),此特征能夠更加細(xì)致地描繪用戶(hù)對(duì)窗口的控制習(xí)慣。
4)當(dāng)前工作窗口狀態(tài):在用戶(hù)操作過(guò)程中,窗口有兩種狀態(tài),即最大化和自定義大小。當(dāng)窗口為自定義大小時(shí),可體現(xiàn)用戶(hù)多窗口協(xié)同工作的模式。
5)窗口切換順序:文獻(xiàn)[14]觀察過(guò)計(jì)算機(jī)工作者經(jīng)常在并發(fā)任務(wù)或活動(dòng)之間切換,并且這種切換行為在工作過(guò)程中不斷增加。在長(zhǎng)期過(guò)程中,用戶(hù)執(zhí)行活動(dòng)的順序具有習(xí)慣的模式:一是用戶(hù)結(jié)合不同功能軟件完成一個(gè)任務(wù);二是用戶(hù)完成多個(gè)任務(wù)的不同順序。
6)窗口切換耗時(shí):根據(jù)文獻(xiàn)[15]的研究,用戶(hù)在不同方向上移動(dòng)鼠標(biāo)行為存在顯著差異。因此,鼠標(biāo)不同的移動(dòng)距離和方向?qū)е曼c(diǎn)擊位置的不同,進(jìn)而有不同的切換耗時(shí)。
7)窗口打開(kāi)的星期和時(shí)間:此特征記錄用戶(hù)使用各類(lèi)型軟件在時(shí)間上呈現(xiàn)出的周期性。
綜上,基于對(duì)內(nèi)網(wǎng)用戶(hù)的分析研究,結(jié)合用戶(hù)各自的行為度量數(shù)據(jù)來(lái)構(gòu)建用戶(hù)的窗口使用行為模式。具體地,每個(gè)特征對(duì)應(yīng)的特征值以向量的形式存放,向量?jī)?nèi)元素的個(gè)數(shù)對(duì)應(yīng)樣本數(shù)據(jù)的數(shù)量,這些特征向量構(gòu)建成一個(gè)特征矩陣空間。將收集到的用戶(hù)行為數(shù)據(jù)映射到特征矩陣空間中,對(duì)連續(xù)特征進(jìn)行歸一化且離散特征進(jìn)行One-Hot編碼[16]處理后共得到130個(gè)連續(xù)的特征,最終得到的特征矩陣代表用戶(hù)的窗口使用行為模式。
如果將變化行為視為異常,變化后的行為中可能仍含有正常的行為模式,例如窗口大小、切換方式和活躍窗口數(shù)等。為能夠有效識(shí)別變化的行為,舍去一些在用戶(hù)自身行為上差異性小的特征,并將窗口限定為最常用窗口瀏覽器、Office、論文閱讀軟件,其余都定義為“其他”,最終特征如下:
1)窗口偏好:定義為含有31個(gè)元素的向量,每個(gè)元素對(duì)應(yīng)一個(gè)窗口,元素值是使用窗口的經(jīng)驗(yàn)概率。
2)單活動(dòng)持續(xù)時(shí)長(zhǎng):定義為含有4×13個(gè)元素的向量,每個(gè)向量記錄窗口內(nèi)單個(gè)活動(dòng)持續(xù)時(shí)長(zhǎng)的經(jīng)驗(yàn)概率。每13個(gè)元素的向量初始時(shí)長(zhǎng)為0,前6個(gè)元素寬度設(shè)為20 s,隨后6個(gè)設(shè)為40 s,最后設(shè)為無(wú)窮大。
3)活動(dòng)間隔時(shí)長(zhǎng):定義為含有4×16個(gè)元素的向量,每個(gè)向量記錄窗口內(nèi)活動(dòng)間隔時(shí)長(zhǎng)的經(jīng)驗(yàn)概率。每16個(gè)元素的向量初始時(shí)長(zhǎng)為20,前11個(gè)元素寬度設(shè)為50 s,隨后4個(gè)設(shè)為100 s,最后設(shè)為無(wú)窮大。
4)窗口置頂時(shí)長(zhǎng):定義為含有4×15個(gè)元素的向量,每個(gè)向量記錄窗口置頂時(shí)長(zhǎng)的經(jīng)驗(yàn)概率。每15個(gè)元素的向量初始時(shí)長(zhǎng)為0,前10個(gè)元素寬度設(shè)為30 s,隨后4個(gè)設(shè)為60 s,最后設(shè)為無(wú)窮大。
5)窗口切換順序:定義為含有31×31個(gè)元素的矩陣。矩陣的每個(gè)單元表示窗口之間的切換,其索引由行或列反映。每個(gè)單元格的值是窗口切換的概率。
結(jié)合用戶(hù)具體的正常行為數(shù)據(jù),給用戶(hù)建立一個(gè)正常的行為模式。首先將終端行為度量值組成5個(gè)向量元組,并對(duì)每個(gè)向量進(jìn)行歸一化使向量中所有元素的總和為1。特別地,活動(dòng)間隔、持續(xù)時(shí)長(zhǎng)、窗口置頂時(shí)長(zhǎng)向量乘以1/4,窗口切換順序向量乘以1/31。使用歸一化后的元組表示用戶(hù)正常的行為模式。
不同用戶(hù)代表不同的總體,若要準(zhǔn)確定義用戶(hù)使用應(yīng)用窗口的行為在每個(gè)特征向量的分布情況是很困難的,因此借助統(tǒng)計(jì)學(xué)方法進(jìn)行差異分析。具體為:對(duì)于特征空間中的每個(gè)特征向量借助樣本均值的分布來(lái)分析用戶(hù)行為的差異性。
1.3.1 樣本均值分布和K-S檢驗(yàn)
鑒于上述理論,對(duì)每個(gè)特征向量構(gòu)建樣本均值分布。采用K-S檢驗(yàn)[18]對(duì)不同用戶(hù)對(duì)應(yīng)特征的樣本均值分布進(jìn)行差異性檢驗(yàn)。K-S檢驗(yàn)方法如下:
設(shè)兩個(gè)用戶(hù)對(duì)應(yīng)特征的樣本均值的累積分布函數(shù)為F1(x)和F2(x),建立其假設(shè)檢驗(yàn),表示為式(1),即兩個(gè)樣本均值的分布情況相同。
H0:F1(x)=F2(x)
(1)
定義檢驗(yàn)量為D,表示為式(2),即兩個(gè)樣本均值的分布情況不同。
H1:F1(x)≠F2(x)
(2)
D=max{F1(x)-F2(x)}
(3)
根據(jù)選定的顯著性水平α值,當(dāng)D>Dm,n,α?xí)r(m、n為樣本容量,α為顯著性水平),則拒絕假設(shè)H0,接受H1假設(shè)[19]。
實(shí)驗(yàn)中從總體中抽樣的樣本容量為n=3 000>30。因此,兩個(gè)特征對(duì)應(yīng)的樣本均值的概率密度函數(shù)為:
(4)
(5)
其中,μ1、μ2和σ1、σ2分別為兩個(gè)樣本總體的均值和方差。由式(3)可知,統(tǒng)計(jì)量D為兩個(gè)累積分布函數(shù)之差的最大值,即:
(6)
統(tǒng)計(jì)量D對(duì)應(yīng)的顯著性水平p由可靠性分布函數(shù)QK-S表示:
(7)
1.3.2 差異性檢驗(yàn)算法
設(shè)置拒絕域?yàn)?.05,若顯著性水平p<0.05,則認(rèn)為特征向量的分布來(lái)自不同總體,進(jìn)而說(shuō)明不同用戶(hù)的應(yīng)用窗口使用行為存在顯著差異。
算法1Difference Verification算法
輸入待檢驗(yàn)的兩個(gè)用戶(hù)窗口使用行為數(shù)據(jù)集Data1、Data2,顯著性水平,樣本容量n,抽樣次數(shù)nnum,特征向量維數(shù)c
輸出1,表示兩個(gè)樣本總體存在顯著性差異
1.[f1,f2,…,fc]=FeatureM(Data1)
2.[g1,g2,…,gc]=FeatureM(Data2)
//將用戶(hù)數(shù)據(jù)集進(jìn)行特征工程得到特征矩陣
3.FOR j=1 to c do
4.μfj=Mean(fj),σfj=Var(fj)
5.μgj=Mean(fj),σgj=Var(fj)
//計(jì)算特征矩陣中各特征向量的均值和方差
6.(X1,X2,…,Xnum)←randomSample(Data1,n,nnum)
(Y1,Y2,…,Ynum)←randomSample(Data2,n,nnum)
//抽樣nnum次,生成樣本容量為n的nnum個(gè)樣本空間
7.FOR i=1 to nnumdo
8.[f1,f2,…,fc]i←FeatureM(Xi)
9.[g1,g2,…,gc]i←FeatureM(Yi)
//將每個(gè)樣本空間進(jìn)行特征工程生成對(duì)應(yīng)的特征矩陣
10.FOR j=1 to c do
11.FOR i=1 to nnumdo
//計(jì)算每個(gè)特征空間中各個(gè)特征向量的均值
//構(gòu)建兩個(gè)用戶(hù)對(duì)應(yīng)各特征的樣本均值分布
15.IF p(D)≤α Then
16.Return True
17.Return 1//K-S檢驗(yàn)兩個(gè)用戶(hù)在各個(gè)特征上的差異性
在算法1中,首先將用戶(hù)數(shù)據(jù)集進(jìn)行特征工程得到特征矩陣,并計(jì)算特征矩陣中各特征向量的均值和方差;然后從用戶(hù)數(shù)據(jù)集中隨機(jī)抽樣構(gòu)成nnum個(gè)樣本空間并分別進(jìn)行特征工程,構(gòu)成nnum個(gè)特征矩陣,計(jì)算每個(gè)特征矩陣中特征向量的均值,nnum個(gè)特征矩陣中對(duì)應(yīng)特征向量的均值共同構(gòu)成該特征對(duì)應(yīng)的正態(tài)分布,且正態(tài)分布的均值和方差分別等于該特征向量總體的均值和總體方差的1/n,其中構(gòu)建各特征的樣本均值分布是算法的關(guān)鍵步驟;最后利用K-S假設(shè)檢驗(yàn)驗(yàn)證兩個(gè)用戶(hù)對(duì)應(yīng)特征下的樣本均值正態(tài)分布間的差異,不同用戶(hù)在相同特征下均表現(xiàn)出差異性便可以說(shuō)明不同用戶(hù)行為模式間的差異。
用戶(hù)在計(jì)算機(jī)上的窗口使用行為符合一定的行為模式,依據(jù)用戶(hù)的歷史行為數(shù)據(jù)建立正常的行為模式。根據(jù)用戶(hù)行為模式差異性進(jìn)行異常檢測(cè)。具體地,首先將用戶(hù)的窗口行為數(shù)據(jù)分成幾份,對(duì)每一份分塊數(shù)據(jù)進(jìn)行特征工程,建立用戶(hù)的子行為模式;然后計(jì)算用戶(hù)子行為模式之間的距離,依據(jù)距離的均值和方差確定用戶(hù)自身行為波動(dòng)的置信區(qū)間。因?yàn)橛脩?hù)的行為模式難以模仿,當(dāng)一個(gè)未知的行為模式與已知用戶(hù)行為模式之間的距離超出區(qū)間的上限時(shí),則判定該未知模式屬于異常行為。
在介紹算法之前,需要先描述量化用戶(hù)自身行為偏差以及與其他用戶(hù)的行為差異的公式。
2.2.1 行為偏差量化方法
給定兩個(gè)表征用戶(hù)行為的特征矩陣P和Q,每個(gè)特征矩陣含有n個(gè)特征向量。量化行為差異如下:
將P中n個(gè)特征向量與Q中對(duì)應(yīng)的向量進(jìn)行比較。通過(guò)計(jì)算歐氏距離以量化兩個(gè)向量之間的差異。給定兩個(gè)向量A=(a1,a2,…,an)和B=(b1,b2,…,bn),它們之間的歐氏距離通過(guò)式(8)求得。
(8)
因?yàn)橄嗤卣鲗?duì)不同用戶(hù)的效應(yīng)不同,利用交叉驗(yàn)證[20]的方法計(jì)算特征矩陣中每個(gè)特征向量的平均歐氏距離。根據(jù)距離均值采用高斯加權(quán)法給每個(gè)特征賦予權(quán)重,特征權(quán)重表示為(w1,w2,…,wn)。最終利用式(9)計(jì)算行為P和Q的差異為WD(P,Q)。此值越大,差異越大。
(9)
給定用戶(hù)self的行為集合{P1,P2,…,Pn},將self自身差異定義為每個(gè)子集之間的平均差異,具體如下:
(10)
利用式(11)計(jì)算這些差異的標(biāo)準(zhǔn)偏差:
(11)
因此,用戶(hù)U的可接受行為偏差以概率p落入[0,VU+u×StdDevU](假設(shè)用戶(hù)行為符合正態(tài)分布)。
2.2.2 異常行為檢測(cè)算法
異常行為檢測(cè)算法以行為模式為目標(biāo),認(rèn)為用戶(hù)自身的行為傾向于遵循其與應(yīng)用窗口交互的歷史行為模式。因?yàn)槿祟?lèi)行為存在波動(dòng)性[21],使得一段時(shí)間內(nèi)的行為模式可能會(huì)偏移歷史行為模式,但是只要發(fā)生的偏移在可容忍的波動(dòng)范圍內(nèi),則認(rèn)為當(dāng)前行為遵循歷史行為模式。
對(duì)惡意用戶(hù)而言,其對(duì)目標(biāo)用戶(hù)的行為習(xí)慣知之甚少,因此無(wú)法輕易模仿目標(biāo)用戶(hù)的行為模式,因此與目標(biāo)用戶(hù)自身的波動(dòng)相比,惡意用戶(hù)的行為會(huì)更加明顯地遠(yuǎn)離目標(biāo)用戶(hù)的歷史行為模式。將用戶(hù)自身行為的波動(dòng)和惡意用戶(hù)的波動(dòng)分別稱(chēng)為行為偏差和行為差異。同時(shí),模式間的偏差和差異計(jì)算也是異常行為檢測(cè)算法的關(guān)鍵。
綜上,異常行為檢測(cè)算法由兩部分組成:一是構(gòu)建用戶(hù)的子行為模式,計(jì)算每個(gè)用戶(hù)自身行為模式偏差的均值、標(biāo)準(zhǔn)差;二是計(jì)算用戶(hù)自身行為的偏差和與其他用戶(hù)的行為差異,在保證低假陽(yáng)性率時(shí)確定用戶(hù)自身行為偏差的置信區(qū)間上限,即可容忍的波動(dòng)范圍。
算法2SelfDeviation算法
輸入m個(gè)用戶(hù)的行為數(shù)據(jù)(Data1,Data2,…,Datam),每個(gè)用戶(hù)的行為數(shù)據(jù)含有N條窗口活動(dòng)流,用戶(hù)數(shù)據(jù)的分割份數(shù)n,特征向量維數(shù)c
輸出子行為模式、自身行為偏差均值和方差以及權(quán)重
1.FOR i=1 to m do
2.(Dt1,Dt2,…,Dtn)←noReplaceSample(Datai)
//不放回抽樣n次構(gòu)成n個(gè)樣本空間
3.FOR j=1 to n do
4.pj=[f1,f2,…,fc]←FeatureM(Dtj)
5.Pi=(p1,p2,…,pn)
//n個(gè)樣本空間進(jìn)行特征工程形成n個(gè)特征矩陣
6.FOR j=1 to n do
7.FOR k=1,k>j to n do
8.FOR t=1 to c do
9.et=euclideanDist(Pi[j][t],Pi[k][t])
10.E=((e11,e12,…,e1n(n-1)/2),(e21,e22,…,e2n(n-1)/2),…,(ec1,ec2,…,ecn(n-1)/2))
//計(jì)算n個(gè)特征矩陣中對(duì)應(yīng)特征向量間的歐氏距離
//計(jì)算各個(gè)特征的平均歐式距離
//依據(jù)平均歐氏距離求特征對(duì)應(yīng)的權(quán)重
13.FOR j=1 to n do
14.FOR k=1,k>j to n do
15.wejk←euclideanDist(Wi,Pi[j],Pi[k])
16.WEi=(we11,we12,…,we(n-1)n)
//計(jì)算各個(gè)子模式之間的加權(quán)歐氏距離
17.vi=averageDiffence(WEi),sdi=StdDev(WEi)
//計(jì)算各子模式間距離的平均值和標(biāo)準(zhǔn)偏差
18.U=((p11,p12,…,p1n),(p21,p22,…,p2n),…,(pm1,pm2,…,pmn)),W=(W1,W2,…,Wm),V=(v1,v2,…,vm),StdDev=(sd1,sd2,…,sdm)
19.Return U,W,V,StdDev
//返回所有用戶(hù)的子行為模式、特征權(quán)重、用戶(hù)自身行為
//偏差的均值和方差
在算法2中,首先對(duì)用戶(hù)的歷史行為數(shù)據(jù)進(jìn)行不放回抽樣構(gòu)成樣本空間,將樣本空間分別進(jìn)行特征工程得到用戶(hù)子特征矩陣代表的子行為模式,利用交叉驗(yàn)證方法計(jì)算子行為特征矩陣內(nèi)對(duì)應(yīng)特征向量之間的平均歐式距離,依據(jù)平均歐式距離計(jì)算每個(gè)特征向量的權(quán)重;然后計(jì)算每個(gè)子模式之間的加權(quán)歐氏距離,并計(jì)算距離的均值和標(biāo)準(zhǔn)偏差,最終得到用戶(hù)U的可接受行為偏差以概率p落入?yún)^(qū)間[0,VU+u×StdDevU]的參數(shù)VU和StdDevU。
算法3DetermineConfidenceInterval算法
輸入m個(gè)用戶(hù)的行為模式BP,每個(gè)用戶(hù)的對(duì)應(yīng)的特征權(quán)重W,用戶(hù)行為偏差的均值V和標(biāo)準(zhǔn)差SD,標(biāo)準(zhǔn)差的倍數(shù)u=(1.31,1.32,…,2.35)
輸出用戶(hù)自身行為偏差的置信區(qū)間上限
1.FOR i=1 to m do
2.FOR j=1,j≠i to m do
3.FOR k=1 to n do
4.weij←euclideanDist(Wi,BP[i][k],BP[j][k])
5.WEi=(we1,we2,…,we(m-1)n2)
//計(jì)算用戶(hù)自身與其他用戶(hù)的加權(quán)歐式距離
//用戶(hù)自身子模式數(shù),其他用戶(hù)子行為模式總數(shù)
7.FOR v in u do
8.threshold=V[i]+v×SD[i]
9.FOR we in WEido
10.num=count(we>threshold)
12.IF FP<4%Then
13.best=v
14.bestThreshold=V[i]+best×SD[i]
//在低假陽(yáng)性率下確定用戶(hù)自身行為波動(dòng)閾值
15.Return m_bestThreshold
在算法3中,首先計(jì)算不同用戶(hù)行為模式之間的差異,并和用戶(hù)自身行為偏差進(jìn)行對(duì)比,在保證低假陽(yáng)性率的條件下求得自身行為波動(dòng)的置信區(qū)間,即確定區(qū)間[0,VU+u×StdDevU]中的參數(shù)u。
綜上,當(dāng)輸入新的未知行為數(shù)據(jù)后,計(jì)算與已知用戶(hù)的正常的行為模式之間的差異距離WE,如果WE>VU+u×StdDevU,則說(shuō)明當(dāng)前輸入的未知行為數(shù)據(jù)為非法數(shù)據(jù),否則為合法數(shù)據(jù)。
為更加全面地描述用戶(hù)使用窗口的行為模式,通過(guò)詳細(xì)分析用戶(hù)與計(jì)算機(jī)窗口交互時(shí)最直接的操作特性,依據(jù)交互特性提出行為特征,并以特征為目標(biāo)開(kāi)發(fā)數(shù)據(jù)采集器。其優(yōu)勢(shì)是分析用戶(hù)行為時(shí)不會(huì)因受制于系統(tǒng)數(shù)據(jù)的單一性,而不能全面地建立用戶(hù)的行為模式,且避免了從復(fù)雜系統(tǒng)數(shù)據(jù)中挖掘用戶(hù)數(shù)據(jù)時(shí)帶來(lái)的巨大工作量。
為獲取真實(shí)內(nèi)網(wǎng)用戶(hù)數(shù)據(jù),本文搭建了完全自由的內(nèi)網(wǎng)環(huán)境,采集器使用鍵盤(pán)鼠標(biāo)觸發(fā)模式,在數(shù)據(jù)錄入過(guò)程中不做處理,避免了數(shù)據(jù)采集延遲。對(duì)20位用戶(hù)收集兩個(gè)月的窗口活動(dòng)數(shù)據(jù)。手動(dòng)檢查第一周數(shù)據(jù)后,最終篩選出15位用戶(hù)的數(shù)據(jù)。數(shù)據(jù)以“窗口名”為單位進(jìn)行組織,當(dāng)用戶(hù)在一個(gè)窗口中使用鼠標(biāo)或鍵盤(pán)時(shí)就表示用戶(hù)與窗口開(kāi)始交互。當(dāng)鼠標(biāo)鍵盤(pán)動(dòng)作切換到另一窗口時(shí),就表明與前一個(gè)窗口結(jié)束交互且與下一個(gè)窗口交互開(kāi)始。采集階段共收集了30多萬(wàn)條交互數(shù)據(jù)。
3.2.1 用戶(hù)間行為差異和自身行為偏差
將15位用戶(hù)的窗口行為數(shù)據(jù)集依據(jù)不放回抽樣分為5個(gè)樣本容量為3 000的樣本空間,經(jīng)特征工程后構(gòu)成子行為模式。利用算法2分別計(jì)算用戶(hù)自身子行為模式間和用戶(hù)與其他用戶(hù)子行為模式間距離的平均值與標(biāo)準(zhǔn)偏差,用以表示行為偏差和行為差異。實(shí)驗(yàn)結(jié)果證明,相比用戶(hù)自身行為偏差,用戶(hù)間的行為差異更為明顯。
圖3顯示了每個(gè)用戶(hù)自身的行為偏差和與其他用戶(hù)的平均行為差異。由圖3可知,每個(gè)用戶(hù)自身偏差明顯低于與其他用戶(hù)的平均行為差異,相比用戶(hù)間的行為差異,用戶(hù)自身的行為偏差通常在一個(gè)小范圍內(nèi)波動(dòng)。此結(jié)果也表明利用用戶(hù)行為模式間的差異性進(jìn)行異常檢測(cè)是可行的。
圖3 自身行為偏差和用戶(hù)間行為差異
任選兩個(gè)用戶(hù)的窗口行為數(shù)據(jù)集,設(shè)定檢驗(yàn)的顯著性水平α=0.05,樣本容量n=3 000,有放回抽樣次數(shù)nnum=30。利用差異性檢驗(yàn)算法(算法1)檢驗(yàn)用戶(hù)窗口行為在各個(gè)特征上呈現(xiàn)的差異性。檢驗(yàn)結(jié)果如表1所示。
表1 用戶(hù)行為在特征向量上的差異性檢驗(yàn)結(jié)果
在表1中,第4列中的結(jié)果值為“1”表明用戶(hù)的行為數(shù)據(jù)在各個(gè)特征上表現(xiàn)出顯著的差異性,說(shuō)明不同用戶(hù)同一特征對(duì)應(yīng)的樣本均值分布的差異顯著,依據(jù)樣本均值定理該結(jié)果也表明不同用戶(hù)的行為模式之間存在顯著的差異性。
3.2.2 用戶(hù)行為變化前后的差異
依據(jù)無(wú)放回抽樣分別從用戶(hù)1萬(wàn)條變化后的數(shù)據(jù)中進(jìn)行6次抽樣和正常數(shù)據(jù)中進(jìn)行10次抽樣構(gòu)成樣本容量為1 500的6個(gè)負(fù)樣本空間和10個(gè)正樣本空間,利用算法2計(jì)算正樣本各子模式之間距離的平均值與標(biāo)準(zhǔn)偏差和負(fù)樣本子模式與正樣本子模式之間距離的平均值與標(biāo)準(zhǔn)偏差。
圖4顯示了用戶(hù)行為變化前后的行為差異。由此可知,當(dāng)用戶(hù)行為發(fā)生變化后,變化的行為模式明顯遠(yuǎn)離正常行為的波動(dòng)閾值。不同變化程度的行為模式與波動(dòng)閾值的距離不同。當(dāng)用戶(hù)行為波動(dòng)范圍超過(guò)閾值后將其判為變化的行為,由此對(duì)用戶(hù)變化的行為進(jìn)行監(jiān)控。
圖4 用戶(hù)行為變化前后的行為差異
由異常行為檢測(cè)算法可知,區(qū)間上限VU+u×StdDevU中的u取值越大對(duì)應(yīng)用戶(hù)行為波動(dòng)偏差的區(qū)間上限越大,待檢測(cè)樣本落入正常波動(dòng)區(qū)間的概率也增大,即判定待檢測(cè)的用戶(hù)行為不屬于異常行為的概率更大。因此,異常檢測(cè)準(zhǔn)確率和u是線性關(guān)系。但當(dāng)波動(dòng)偏差的區(qū)間上限過(guò)度增大時(shí),容易將異常行為判定為正常,導(dǎo)致很高的假陽(yáng)性率。因此,將準(zhǔn)確率和假陽(yáng)性率作為評(píng)價(jià)指標(biāo)進(jìn)行評(píng)估。
3.3.1 異常用戶(hù)檢測(cè)
圖5顯示了當(dāng)u的取值在2.0附近時(shí),假陽(yáng)性率增加,但準(zhǔn)確率不會(huì)明顯提高。因此,在保證低假陽(yáng)性率(4%)時(shí)u的取值為1.95,對(duì)應(yīng)的準(zhǔn)確率為97.4%,即當(dāng)前檢測(cè)的行為模式為異常模式的概率為97.4%。
圖5 u值與準(zhǔn)確率和假陽(yáng)性率的關(guān)系
構(gòu)建行為模式的樣本數(shù)據(jù)越多可以更好地反映用戶(hù)行為。在u取值為1.95時(shí),分別使用500,750,…,3 000條活動(dòng)流構(gòu)建用戶(hù)的子行為模式。計(jì)算不同數(shù)量的活動(dòng)流構(gòu)建的行為模式對(duì)應(yīng)的假陽(yáng)性率。
圖6顯示了隨著訓(xùn)練集大小的變化,假陽(yáng)性率的動(dòng)態(tài)變化??偟膩?lái)看,訓(xùn)練集越大,檢測(cè)的假陽(yáng)性率越低,從而反映活動(dòng)流越長(zhǎng),提供的用戶(hù)習(xí)慣行為數(shù)據(jù)越多,使得能夠建立更完整的行為模式,因此,可以更準(zhǔn)確地測(cè)量用戶(hù)在每個(gè)行為特征上的距離,進(jìn)而使得檢測(cè)結(jié)果更準(zhǔn)確。
圖6 訓(xùn)練集大小與假陽(yáng)性率的關(guān)系
3.3.2 用戶(hù)變化行為識(shí)別
在數(shù)據(jù)采集周期內(nèi),有8個(gè)用戶(hù)因工作進(jìn)展其階段性任務(wù)發(fā)生了變化,階段任務(wù)變化的事件如表2所示。
表2 影響用戶(hù)行為的事件
對(duì)于用戶(hù)變化行為的識(shí)別而言,用戶(hù)的行為模式存在波動(dòng)是正常的,但當(dāng)波動(dòng)超過(guò)可容忍的范圍后就認(rèn)為當(dāng)前的行為發(fā)生了變化。此時(shí)可對(duì)用戶(hù)發(fā)生變化的行為提出預(yù)警,然后結(jié)合用戶(hù)背景詳細(xì)分析用戶(hù)的操作,確定用戶(hù)變化的行為是否為惡意操作,若是則可及時(shí)止損。
本文從計(jì)算機(jī)應(yīng)用窗口的角度出發(fā)對(duì)用戶(hù)行為進(jìn)行研究。針對(duì)用戶(hù)分類(lèi)和用戶(hù)變化行為的識(shí)別分別提出一系列可以表征用戶(hù)行為的特征。在完全自由的內(nèi)網(wǎng)環(huán)境中,采集用戶(hù)使用應(yīng)用窗口的行為數(shù)據(jù)。通過(guò)樣本均值特性和K-S檢驗(yàn),驗(yàn)證了用戶(hù)使用應(yīng)用窗口行為存在顯著的差異性,并表明本文構(gòu)建的用戶(hù)行為檢測(cè)算法能夠有效檢測(cè)異常用戶(hù)和識(shí)別用戶(hù)變化的行為。后續(xù)將嘗試在更大的內(nèi)網(wǎng)環(huán)境中,以角色為團(tuán)體進(jìn)行窗口行為的異常檢測(cè)研究。