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