本發明屬于計算機技術領域,具體涉及一種基于主成分分析的用戶行為異常檢測系統及方法。
背景技術:
隨著信息化進程的推進,互聯網和網絡數據業務的飛速發展,越來越多的人開始應用互聯網獲取信息。網絡用戶可以通過網絡存儲文件、瀏覽網站、建立遠程視頻互動、訂購車票和購物等。然而,在享受網絡便利的同時,我們也正面臨著各種網絡攻擊手段所帶來的威脅。傳統的用戶身份認證機制,如訪問控制、數據加密、身份認證等,都是使用密碼進行用戶認證,而密碼容易被非法用戶破解,導致這些機制的安全性較差,不能保證用戶與服務器進行安全信息交換。審計技術是被大部分數據庫系統采用的一種入侵檢測技術,審計技術有易于監視、易于追蹤的優點,但也存在著通過人工方法很難從龐大的審計數據中找出可疑的入侵行為和無法實現實時的在線檢測入侵行為等缺點。
用戶行為分析方法是根據每一個合法用戶基本行為具有一定規則的特點提出的。現有的用戶行為異常檢測大多是基于數據挖掘方法和機器學習的方法,方法主要集中在關聯分析、聚類分析、序列模式分析上,需要進行海量的數據源審計,導致系統運行速度慢,系統的響應時間長,常出現假死現象。同時,現有的數據挖掘方法和機器學習方法過程設計較為復雜,需要很長的運行時間才能得到結果,比如,基于隱馬爾可夫模型(Hidden Markov Model,HMM)的用戶行為檢測方法,該方法利用HMM在用戶界面層建立合法用戶的正常行為輪廓,并采用Baum-Welch算法對HMM進行訓練,在檢測階段利用近似的前向后向算法和貝葉斯準則判斷用戶當前行為是否出現異常,雖然該方法可以對用戶行為進行檢測,但所需要的計算量很大,檢測效率和實時性較差;基于神經網絡的用戶行為檢測方法,檢測過程中運行效率低,而且過程需要人為的干預,實用性差。
技術實現要素:
針對上述現有技術存在的不足,本發明提供一種基于主成分分析的用戶行為異常檢測系統及方法。
本發明的技術方案:
一種基于主成分分析的用戶行為異常檢測系統,所述用戶行為包括兩種類型:用戶數據庫訪問行為和用戶Web服務器訪問行為;每種類型的用戶行為中用戶行為元素包括:當用戶行為為數據庫訪問行為時,用戶行為元素包括用戶訪問的數據表名、用戶訪問時間、用戶訪問表中的主鍵、用戶訪問的原始數據和用戶更改數據;當用戶行為為Web服務器訪問行為,用戶行為元素包括用戶向Web服務器提出的訪問請求的對象和相鄰訪問請求的時間間隔;
所述系統包括:
用戶行為預處理模塊,(1)在用戶行為訓練階段,用于從數據庫中獲取一種用戶行為類型歷史用戶行為數據;從歷史用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到歷史用戶行為向量;將歷史用戶行為向量分組構建歷史用戶行為矩陣;求解每個歷史用戶行為矩陣的最大特征值對應的特征向量;將每個特征向量中每一個元素的值減去向量所有元素的平均值,得到歷史用戶行為特征向量集合,并發送到用戶行為訓練模塊;
(2)在用戶行為檢測階段,用于實時獲取實時用戶行為數據,并判斷用戶行為類型;從每個實時用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到實時用戶行為向量;將實時用戶行為向量分組構建m個實時用戶行為矩陣;求解每個實時用戶行為矩陣的最大特征值對應的特征向量;將m個特征向量中每一個元素的值減去向量所有元素的平均值,得到實時用戶行為特征向量,并發送到用戶行為檢測模塊;
用戶行為訓練模塊,用于在用戶行為訓練階段,接收用戶行為預處理模塊發送的歷史用戶行為特征向量集合,并將集合中不可信的歷史用戶行為特征向量刪除,得到歷史用戶正常行為特征向量集合,并發送到PCA模塊;接收PCA模塊發送的歷史用戶正常行為特征向量的主方向,選取其中一個子集的主方向作為歷史用戶正常行為特征向量的主方向樣本,計算其他所有子集合中歷史用戶正常行為特征向量的主方向與主方向樣本之間的相似系數,即歷史用戶正常行為相似系數,定義異常值為1減去相似系數的絕對值,計算每個歷史用戶正常行為相似系數的異常值,并將異常值的平均值加上異常值的標準差,得到用戶行為異常閾值,并發送給用戶行為檢測模塊;將歷史用戶正常行為特征向量的主方向樣本發送給用戶行為檢測模塊;
所述將每組中不可信的歷史用戶行為特征向量刪除的具體方法為:對每組中所有歷史用戶行為特征向量中位置相同的對應元素求取平均值和標準差,將平均值與標準差的倍數分別相加、相減后得到歷史用戶行為特征向量中該位置元素可信區間,如果一個歷史用戶行為特征向量中的任何一個元素不在該元素所在位置的可信區間內,就將這一用戶行為特征向量刪除;
PCA模塊,(1)在用戶行為訓練階段,用于接收用戶行為訓練模塊發送的用戶正常行為特征向量集合,將歷史用戶正常行為特征向量集合中每m個向量構成一個歷史用戶正常行為特征向量子集合,使用PCA計算每個歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向,并發送給用戶行為訓練模塊;
(2)在用戶行為檢測階段,用于獲取用戶行為檢測模塊發送的m個實時用戶行為特征向量,并將m個實時用戶行為特征向量構成實時用戶行為特征向量集合,使用PCA計算實時用戶行為特征向量集合中實時用戶行為特征向量的主方向,并發送給用戶行為檢測模塊;
用戶行為檢測模塊,用于在用戶行為檢測階段,接收用戶行為訓練模塊發送的每種用戶行為類型的用戶行為異常閾值、歷史用戶正常行為特征向量的主方向樣本和用戶行為預處理模塊發送的m個實時用戶行為特征向量,并將m個實時用戶行為特征向量發送給PCA模塊;接收PCA模塊發送的實時用戶行為特征向量的主方向,并計算實時用戶行為特征向量的主方向與同種用戶行為類型的歷史用戶正常行為特征向量的主方向樣本之間的相似系數,即實時用戶行為相似系數;根據實時用戶行為相似系數與同種用戶行為類型用戶行為異常閾值,判斷實時用戶行為是否異常,如果實時用戶行為異常,則將該用戶實時用戶行為特征向量發送給用戶行為異常處理模塊;如果實時用戶行為正常,將該用戶實時用戶行為特征向量放入用戶行為類型對應的數據庫中;
用戶行為異常處理模塊,如果接收到用戶行為檢測模塊發送的該用戶實時用戶行為特征向量,則停止該用戶相應用戶行為類型的操作,并進行報警。
所述相似系數采用如下公式生成:
其中,qij為相似系數,xik第i個主方向Xi=(xi1,xi2,…xik,…,xim)′中的第k個元素,xjk為第j個主方向Xj=(xj1,xj2,…,xjk,…,xjm)′中的第k個元素;
一種基于主成分分析的用戶行為異常檢測方法,采用基于主成分分析的用戶行為異常檢測系統實現,所述用戶行為包括兩種類型:用戶數據庫訪問行為和用戶Web服務器訪問行為;每種類型的用戶行為中用戶行為元素包括:當用戶行為為數據庫訪問行為時,用戶行為元素包括用戶訪問的數據表名、用戶訪問時間、用戶訪問表中的主鍵、用戶訪問的原始數據和用戶更改數據;當用戶行為為Web服務器訪問行為,用戶行為元素包括用戶向Web服務器提出的訪問請求的對象和相鄰訪問請求的時間間隔;
所述方法包括:用戶行為訓練階段和用戶行為檢測階段;
用戶行為訓練階段包括如下步驟:
步驟1:從數據庫中獲取一種用戶行為類型歷史用戶行為數據;
步驟2:對歷史用戶行為數據進行預處理;
步驟2.1:從歷史用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到歷史用戶行為向量;
步驟2.2:將歷史用戶行為向量分組構建歷史用戶行為矩陣;
步驟2.3:求解每個歷史用戶行為矩陣的最大特征值對應的特征向量;
步驟2.4:將每個特征向量中每一個元素的值減去向量所有元素的平均值,得到歷史用戶行為特征向量集合;
步驟3:將歷史用戶行為特征向量集合中不可信的歷史用戶行為特征向量刪除,得到歷史用戶正常行為特征向量集合;
所述將每組中不可信的歷史用戶行為特征向量刪除的具體方法如下:
對每組中所有歷史用戶行為特征向量中位置相同的對應元素求取平均值和標準差,將平均值與標準差的倍數分別相加、相減后得到歷史用戶行為特征向量中該位置元素可信區間,如果一個歷史用戶行為特征向量中的任何一個元素不在該元素所在位置的可信區間內,就將這一用戶行為特征向量刪除。
步驟4:將歷史用戶正常行為特征向量集合中每m個向量構成一個歷史用戶正常行為特征向量子集合,使用PCA計算每個歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向;
步驟5:選取其中一個子集的主方向作為歷史用戶正常行為特征向量的主方向樣本,計算其他所有子集合中歷史用戶正常行為特征向量的主方向與主方向樣本之間的相似系數,即歷史用戶正常行為相似系數,定義異常值為1減去相似系數的絕對值,計算每個歷史用戶正常行為相似系數的異常值,并將所有異常值的平均值加上異常值的標準差,得到該種用戶行為類型的用戶行為異常閾值;
步驟6:對每個用戶行為類型執行步驟1到步驟5,得到全部用戶行為類型的用戶行為異常閾值;
用戶行為檢測階段包括如下步驟:
步驟1:實時獲取實時用戶行為數據,并判斷用戶行為類型;
步驟2:對實時用戶行為數據進行預處理;
步驟2.1:從每個實時用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到實時用戶行為向量;
步驟2.2:將實時用戶行為向量分組構建m個實時用戶行為矩陣;
步驟2.3:求解每個實時用戶行為矩陣的最大特征值對應的特征向量;
步驟2.4:將m個特征向量中每一個元素的值減去向量所有元素的平均值,得到實時用戶行為特征向量集合;
步驟3:使用PCA計算實時用戶行為特征向量集合中實時用戶行為特征向量的主方向;
步驟4:計算實時用戶行為特征向量的主方向與同種用戶行為類型的歷史用戶正常行為特征向量的主方向樣本之間的相似系數,即實時用戶行為相似系數;
步驟5:根據實時用戶行為相似系數與同種用戶行為類型的用戶行為異常閾值,判斷實時用戶行為是否異常;
步驟6:如果實時用戶行為異常,停止該用戶相應用戶行為類型的操作,并進行報警;如果實時用戶行為正常,將該用戶實時用戶行為特征向量放入同種用戶行為類型的數據庫中。
所述相似系數采用如下公式生成:
其中,qij為相似系數,xik第i個主方向Xi=(xi1,xi2,…xik,…,xim)′中的第k個元素,xjk為第j個主方向Xj=(xj1,xj2,…,xjk,…,xjm)′中的第k個元素;
有益效果:本發明一種基于主成分分析的用戶行為異常檢測系統及方法,具有一下優點:
(1)本發明使用PCA方法檢測用戶的異常行為,不考慮準則權重和評估者的主觀偏好,完全根據各項目在各準則下評估的結果進行綜合評估,且PCA方法對異常值變化非常敏感,如果用戶行為包含異常值,其主方向就會受到很大的影響,使用戶行為檢測結果更有效;
(2)檢測過程沒有重復運算,增加了檢測效率,且易于實現;
(3)使用閾值來檢測實時用戶行為是否異常,使檢測具有高效、便捷的特點。
附圖說明
圖1為本發明一種實施方式的基于主成分分析的用戶行為異常檢測系統的結構示意圖;
圖2為本發明一種實施方式的基于主成分分析的用戶行為異常檢測方法流程圖;
圖3為本發明一種實施方式的基于主成分分析的用戶行為異常檢測方法中用戶行為訓練階段流程圖;
圖4為本發明一種實施方式的基于主成分分析的用戶行為異常檢測方法中用戶行為檢測階段流程圖。
具體實施方式
下面結合附圖對本發明的一種實施方式作詳細說明。
一種基于主成分分析的用戶行為異常檢測系統:所述用戶行為包括兩種類型:用戶數據庫訪問行為和用戶Web服務器訪問行為;每種類型的用戶行為中用戶行為元素包括:當用戶行為為數據庫訪問行為時,用戶行為元素包括用戶訪問的數據表名、用戶訪問時間、用戶訪問表中的主鍵、用戶訪問的原始數據和用戶更改數據;當用戶行為為Web服務器訪問行為,用戶行為元素包括用戶向Web服務器提出的訪問請求的對象和相鄰訪問請求的時間間隔。
如圖1所示,系統包括如下模塊:
用戶行為預處理模塊,(1)在用戶行為訓練階段,用于對所有用戶行為類型依次進行如下操作:從數據庫中獲取一種用戶行為類型歷史用戶行為數據;從歷史用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到歷史用戶行為向量;將歷史用戶行為向量分組構建歷史用戶行為矩陣;求解每個歷史用戶行為矩陣的最大特征值對應的特征向量;將每個特征向量中每一個元素的值減去向量所有元素的平均值,得到歷史用戶行為特征向量集合,并發送到用戶行為訓練模塊;
(2)在用戶行為檢測階段,用于實時獲取實時用戶行為數據,并判斷用戶行為類型;從每個實時用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到實時用戶行為向量;將實時用戶行為向量分組構建m個實時用戶行為矩陣;求解每個實時用戶行為矩陣的最大特征值對應的特征向量;將m個特征向量中每一個元素的值減去向量所有元素的平均值,得到實時用戶行為特征向量,并發送到用戶行為檢測模塊;用戶行為訓練模塊,用于在用戶行為訓練階段,接收用戶行為預處理模塊發送的歷史用戶行為特征向量集合,并將集合中不可信的歷史用戶行為特征向量刪除,得到歷史用戶正常行為特征向量集合,并發送到主成分分析(Principal Component Analysis,PCA)模塊;接收PCA模塊發送的歷史用戶正常行為特征向量的主方向,選取其中一個子集的主方向作為歷史用戶正常行為特征向量的主方向樣本,計算其他所有子集合中歷史用戶正常行為特征向量的主方向與主方向樣本之間的相似系數,即歷史用戶正常行為相似系數,定義異常值為1減去相似系數的絕對值,計算每個歷史用戶正常行為相似系數的異常值,將異常值的平均值加上異常值的標準差,得到該種用戶行為類型的用戶行為異常閾值,并發送給用戶行為檢測模塊;將歷史用戶正常行為特征向量的主方向樣本發送給用戶行為檢測模塊;接收用戶行為檢測模塊發送的實時用戶行為特征向量并放入數據庫中;
所述將集合中不可信的歷史用戶行為特征向量刪除的具體方法為:對集合中所有歷史用戶行為特征向量中位置相同的對應元素求取平均值和標準差,將平均值與標準差的倍數分別相加、相減后得到歷史用戶行為特征向量中該位置元素可信區間,如果歷史用戶行為特征向量中的任何一個元素不在該元素所在位置的可信區間內,就將這一用戶行為特征向量刪除;
PCA模塊,(1)在用戶行為訓練階段,用于接收用戶行為訓練模塊發送的用戶正常行為特征向量集合,將歷史用戶正常行為特征向量集合中每m個向量構成一個歷史用戶正常行為特征向量子集合,使用PCA計算每個歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向,并發送給用戶行為訓練模塊;
(2)在用戶行為檢測階段,用于獲取用戶行為檢測模塊發送的m個實時用戶行為特征向量,并將m個實時用戶行為特征向量構成實時用戶行為特征向量集合,使用PCA計算實時用戶行為特征向量集合中實時用戶行為特征向量的主方向,并發送給用戶行為檢測模塊;
用戶行為檢測模塊,用于在用戶行為檢測階段,接收用戶行為訓練模塊發送的每種用戶行為類型的用戶行為異常閾值、每種用戶行為類型的歷史用戶正常行為特征向量的主方向樣本和用戶行為預處理模塊發送的m個實時用戶行為特征向量,并將m個實時用戶行為特征向量發送給PCA模塊;接收PCA模塊發送的實時用戶行為特征向量的主方向,并計算實時用戶行為特征向量的主方向與同種用戶行為類型的歷史用戶正常行為特征向量的主方向之間的相似系數,即實時用戶行為相似系數;根據實時用戶行為相似系數與同種用戶行為類型用戶行為異常閾值,判斷實時用戶行為是否異常,如果實時用戶行為異常,則將該用戶實時用戶行為特征向量發送給用戶行為異常處理模塊;如果實時用戶行為正常,將該用戶實時用戶行為特征向量發送給用戶行為訓練模塊;
用戶行為異常處理模塊,如果接收到用戶行為檢測模塊發送的該用戶實時用戶行為特征向量,則停止該用戶相應用戶行為類型的操作,并進行報警。
所述相似系數采用如下公式生成:
其中,qij為相似系數,xik第i個主方向Xj=(xi1,xi2,…xik,…,xim)′中的第k個元素,xjk為第j個主方向Xj=(xj1,xj2,…,xjk,…,xjm)′中的第k個元素;
如圖2所示,一種基于主成分分析的用戶行為異常檢測方法,采用基于主成分分析的用戶行為異常檢測系統來實現,包括用戶行為訓練階段和用戶行為檢測階段;
具體的,如圖3所示,用戶行為訓練階段包括如下步驟:
步驟1:從數據庫中獲取一種用戶行為類型歷史用戶行為數據;
所述用戶行為包括兩種類型:用戶數據庫訪問行為和用戶Web服務器訪問行為;對于用戶訪問數據庫的行為來說,需要為用戶的行為的數據操作語言(Data manipulation Language,DML)或數據描述語言(Data Description Language,DDL)建立觸發器。當用戶對被保護的數據進行訪問時,一旦使用了DML或DDL操作,就會觸發相應的觸發器,將用戶的訪問行為:訪問時間、用戶名、主鍵、原始數據、更改數據,記錄到特定的審計表中。獲取用戶數據時需要將這個表中記錄的用戶訪問數據讀出并統計其中每個的操作的狀況,對各個字段進行分解,得到用戶行為元素信息。
對于用戶的Web瀏覽行為來說,由于Web服務器有著相對完善的日志機制,因此可以直接從服務器日志中讀取相應的用戶行為數據。由于日志中用戶行為數據很多,并不全都具有統計特征,而且有一些訪問信息并不是用戶觸發的,如下載的圖像、動畫等文件的請求,因此,需要對用戶的信息進行篩選,從中得到具有用戶特征信息的條目并進行統計。本實施方式選取以下兩個用戶行為元素來描述用戶行為:用戶向服務器請求的對象和到達服務器的相鄰訪問請求的時間間隔。
步驟2:對歷史用戶行為數據進行預處理;
步驟2.1:從歷史用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到歷史用戶行為向量;
如數據庫訪問行為:從審計表中獲取數據,從數據中提取指定的元素,如審計日志中數據為“更改學生表studentTable中學號為101的學生信息”,提取元素:學生表、訪問時間、學號、原學生信息、新學生信息。對提取出元素,如果為數值型,則直接使用;如果不是數值型,需要指定元素對應的數值,例如學號為101可以直接使用,而對學生表studentTable指定數值為12。每一個數值作為歷史用戶行為向量的一個元素。數據庫訪問行為一個歷史用戶行為向量有5個元素;Web瀏覽行為一個歷史用戶行為向量有2個元素。
步驟2.2:將歷史用戶行為向量分組構建歷史用戶行為矩陣;
步驟2.3:求解每個歷史用戶行為矩陣的最大特征值對應的特征向量;
步驟2.4:將每個特征向量中每一個元素的值減去向量所有元素的平均值,得到歷史用戶行為特征向量集合;
步驟3:將歷史用戶行為特征向量集合中不可信的歷史用戶行為特征向量刪除,得到歷史用戶正常行為特征向量集合;
所述將每組中不可信的歷史用戶行為特征向量刪除的具體方法為:
對每組中所有歷史用戶行為特征向量中位置相同的對應元素求取平均值和標準差,將平均值與標準差的倍數分別相加、相減后得到歷史用戶行為特征向量中該位置元素可信區間,如果一個歷史用戶行為特征向量中的任何一個元素不在該元素所在位置的可信區間內,就將這一用戶行為特征向量刪除。
步驟4:將歷史用戶正常行為特征向量集合中每m個向量構成一個歷史用戶正常行為特征向量子集合,使用PCA計算每個歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向;
對于PCA來說,會有很多特征向量,但是在實際應用中,一些特征向量對于變化幾乎沒有貢獻,因此可以被剔除。本實施方式中使用第一主方向,即最大特征值的對應的特征向量來代表用戶行為。由于本實施方式中只涉及第一主方向,因此,本實施方式中將第一主方向簡稱為主方向。
本實施方式中,以歷史用戶正常行為特征向量:
Z=(2.5 0.5 2.2 1.9 3.1 2.3 2 1 1.5 1.1)′Y=(2.4 0.7 2.9 2.2 3.0 2.7 1.6 1.1 1.6 0.9)′為例,說明PCA構建主方向的具體步驟。
(1)均值處理:所有的z減去,y減去,得到處理后的歷史用戶行為特征向量:
Z′=(0.69 -1.31 0.39 0.09 1.29 0.49 0.19 -0.81 -0.31 -0.71)′
Y′=(0.49 -1.21 0.99 0.29 1.09 0.79 -0.31 -0.81 -0.31 -1.01)′
(2)計算協方差矩陣
如果n維隨機變量(X1,X2,…,Xn)的二階混合中心矩陣ci,j=Cov(Xi,Xj)=E{[Xi-E(Xi)][Xj-E(Xj)]},i,j=1,2,…,n都存在,則稱為n維隨機變量(X1,X2,…,Xn)的協方差矩陣。
計算(Z′,Y′)的協方差矩陣,結果為由于n等于2,所以協方差矩陣為2×2維。
(3)計算協方差矩陣的特征向量和特征值
因為協方差矩陣為方陣,可以計算它的特征向量和特征值,用來代表數據信息。鑒于協方差矩陣為對稱陣,本實施方式中使用Jacobi過關法求的特征值和特征向量,得到數據的特征值為λ1=0.049、λ2=1.284,對應的特征向量為和
這些向量都是單位向量,也就是它們的長度為1,這對于PCA是非常重要的。
(4)生成主方向
選擇兩個特征向量中對應特征值較大的特征向量,即特征向量作為歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向。
步驟5:選取其中一個子集的主方向作為歷史用戶正常行為特征向量的主方向樣本,本實施例中選擇特征向量(0.68,0.74)′為歷史用戶正常行為特征向量的主方向樣本,計算其他所有子集合中歷史用戶正常行為特征向量的主方向與主方向樣本之間的相似系數,即歷史用戶正常行為相似系數,定義異常值為1減去相似系數的絕對值,計算每個歷史用戶正常行為相似系數的異常值,將異常值的平均值加上標準差得到的值作為用戶行為異常閾值;
所述相似系數采用如下公式生成:
其中,qij為相似系數,xik第i個主方向Xi=(xi1,xi2,…xik,…,xim)′中的第k個元素,xjk為第j個主方向Xj=(xj1,xj2,…,xjk,…,xjm)′中的第k個元素:
本實施方式以歷史用戶正常行為特征向量子集合中歷史用戶正常行為特征向量的主方向分別為:X1=(0.39,0.41)′,X2=(1.01,1.29)′,X3=(-0.81,-0.71)′,X4=(-0.26,-0.94)′,X5=(0.09,0.29)′為例,說明用戶行為異常閾值產生過程:
(1)利用主方向Xa=(0.68,0.74)′,根據式(2)求得相似系數分別為q1a=0.9999,q2a=0.9869,q1a=0.7287,q1a=0.8893,q1a=0.9031;
(2)異常值p=|1-qij|,歷史用戶正常行為特征向量子集的異常值分p1=0.0001,p2=0.0131,p3=0.2713,p4=0.1107,p5=0.0969;
(3)求異常值的平均值和標準差:
平均值
標準差
得到計算出均值為μ=0.09842,標準差為σ=0.09696
(4)閥值為均值加上標準差,即μ+σ=0.19538。
步驟6:對每個用戶行為類型執行步驟1到步驟5,得到全部用戶行為類型的用戶行為異常閾值;
如圖4所示,用戶行為檢測階段包括如下步驟:
步驟1:實時獲取實時用戶行為數據,并判斷用戶行為類型;
步驟2:對實時用戶行為數據進行預處理;
步驟2.1:從每個實時用戶行為數據中提取用戶行為類型對應的用戶行為元素,并將用戶行為元素轉換為向量元素,得到實時用戶行為向量;
步驟2.2:將實時用戶行為向量分組構建m個實時用戶行為矩陣;
步驟2.3:求解每個實時用戶行為矩陣的最大特征值對應的特征向量;
步驟2.4:將m個特征向量中每一個元素的值減去向量所有元素的平均值,得到實時用戶行為特征向量集合;
步驟3:使用PCA計算實時用戶行為特征向量集合中實時用戶行為特征向量的主方向;
步驟4:計算實時用戶行為特征向量的主方向與歷史用戶正常行為特征向量主方向樣本之間的相似系數,即實時用戶行為相似系數;
步驟5:根據實時用戶行為相似系數求實時用戶行為異常值,并與同種用戶行為類型的用戶行為異常閾值比較,判斷實時用戶行為是否異常;
本實施方式中,以實時用戶行為特征向量的主方向為X=(0.98,0.03)′為例,歷史用戶正常行為特征向量的主方向樣本為Xa=(0.6779,0.7352)′,根據公式(2)計算相似系數q=0.7,異常值為p=1-q=1-0.7=0.3。由于異常值p=0.3大于用戶行為異常閾值0.19538,所以認為此實時用戶行為異常。
步驟6:如果實時用戶行為異常,停止該用戶相應用戶行為類型的操作,并報警;如果實時用戶行為正常,將該用戶實時用戶行為特征向量放入同種用戶行為類型的數據庫中,并重復執行用戶行為檢測階段,生成新的全部用戶行為類型的用戶行為異常閾值。