王存睿,王元?jiǎng)?,陳婧,楊?/p>
(大連民族學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,遼寧大連 116605)
基于行為采集系統(tǒng)的用戶特征挖掘及分析
王存睿,王元?jiǎng)?,陳婧,楊?/p>
(大連民族學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,遼寧大連 116605)
結(jié)合用戶行為時(shí)間序列和操作頻次,融合FP-GROWTH算法設(shè)計(jì)了用戶特征挖掘算法,建立網(wǎng)絡(luò)形式的用戶行為特征表達(dá)方法,設(shè)計(jì)了相應(yīng)的用戶行為采集系統(tǒng),給出了相應(yīng)的設(shè)計(jì)框架和存儲(chǔ)結(jié)構(gòu)。并以高校學(xué)生為研究對(duì)象采集了相應(yīng)的數(shù)據(jù)對(duì)系統(tǒng)進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明該系統(tǒng)可以捕捉和分析用戶行為,并對(duì)用戶的習(xí)慣行為進(jìn)行表達(dá),進(jìn)而揭示用戶的行為習(xí)慣。
數(shù)據(jù)挖掘;行為特征;用戶行為網(wǎng)絡(luò)
行為習(xí)慣特征是指不同用戶在操作計(jì)算機(jī)過(guò)程中自身具有的獨(dú)特習(xí)慣性和規(guī)律性。計(jì)算機(jī)用戶行為的特征分析在很多應(yīng)用領(lǐng)域具有重要的價(jià)值。在信息安全領(lǐng)域,傳統(tǒng)的安全軟件僅限于木馬和病毒的檢測(cè)與查殺,對(duì)于其它形式的“合法”的入侵行為缺乏有效的保護(hù)。如已知密碼登陸計(jì)算機(jī)。此外,對(duì)不同群體的計(jì)算機(jī)用戶的特征行為分析和理解可以幫助軟件廠家改進(jìn)設(shè)計(jì),還可以利用這些特征作為身份識(shí)別依據(jù)。因此,設(shè)計(jì)相應(yīng)的行為表達(dá)方法和采集系統(tǒng)能夠較全面的捕捉用戶的行為規(guī)律是進(jìn)一步分析的前提條件。
個(gè)人計(jì)算機(jī)的行為(Personal Computer Behavioral Characteristic)研究相比于網(wǎng)絡(luò)行為特征研究開(kāi)展相對(duì)較晚[1]。傳統(tǒng)研究集中于用戶在某個(gè)網(wǎng)站進(jìn)行跳轉(zhuǎn)形成的操作習(xí)慣,進(jìn)而對(duì)網(wǎng)站進(jìn)行優(yōu)化設(shè)計(jì)。James P.Anderson在對(duì)用戶行為研究的基礎(chǔ)上,首次提出了個(gè)人計(jì)算機(jī)IDS(Intrusion Detection System)的概念,此后Dorothy Denning和SRI/CSL的Peter Neumann提出了入侵檢測(cè)專(zhuān)家系統(tǒng)IDES(Intrusion Detection Expert System)[2]。個(gè)人計(jì)算機(jī)用戶行為不同于傳統(tǒng)的行為采集,需要通過(guò)操作系統(tǒng)捕捉用戶的行為習(xí)慣。個(gè)人計(jì)算機(jī)用戶行為主要分為硬件行為和軟件行為兩個(gè)方面。硬件方面主要指鍵盤(pán)和鼠標(biāo)的操作,包括鼠標(biāo)的單、雙擊頻率、拖拽次數(shù)和鍵盤(pán)的按鍵頻率和敲擊頻率等等。軟件的行為特征主要研究用戶操作各種軟件及其在其中相應(yīng)操作的行為特征,通過(guò)對(duì)其時(shí)序和頻率來(lái)分析和挖掘用戶特征行為。本文主要針對(duì)用戶軟件操作行為進(jìn)行捕捉和采集,并對(duì)其進(jìn)行相應(yīng)的挖掘和分析。
要分析用戶的行為特征需要采集相應(yīng)的用戶數(shù)據(jù),采集數(shù)據(jù)需要構(gòu)建相應(yīng)采集用戶特征采集系統(tǒng)。本文基于Windows系統(tǒng)設(shè)計(jì)了用戶行為采集系統(tǒng)。主要是基于Windows Hook函數(shù)類(lèi)庫(kù)進(jìn)行構(gòu)建,本文對(duì)該類(lèi)庫(kù)的機(jī)理進(jìn)行了解釋?zhuān)o出了基于Hook函數(shù)類(lèi)庫(kù)的采集系統(tǒng)設(shè)計(jì)框圖,以及采集的用戶行為存儲(chǔ)的數(shù)據(jù)內(nèi)容和存儲(chǔ)形式。
Windows系統(tǒng)上的程序運(yùn)行模式是基于消息驅(qū)動(dòng)機(jī)制的。當(dāng)某一線程注冊(cè)窗口類(lèi)時(shí),操作系統(tǒng)會(huì)建立相應(yīng)的消息隊(duì)列來(lái)接受該線程的輸入消息和系統(tǒng)消息[3]。要取得特定線程的消息接收或發(fā)送,可以采用微軟公司提供的操作系統(tǒng)庫(kù)函數(shù)。Hook函數(shù)庫(kù)可以為正在運(yùn)行的程序創(chuàng)建監(jiān)視點(diǎn),利用Hook函數(shù)對(duì)指定窗口各種類(lèi)型的消息進(jìn)行監(jiān)視。消息到達(dá)后,在目標(biāo)窗口處理函數(shù)之前,鉤子可以對(duì)該應(yīng)用程序的消息進(jìn)行截獲并進(jìn)行處理[4]。
Hook函數(shù)包含12種類(lèi)型,可以攔截消息隊(duì)列中的各種消息,見(jiàn)表1。其中的WH_CBT鉤子可以對(duì)以下的事件進(jìn)行攔截:①窗體激活、創(chuàng)建、銷(xiāo)毀、最小化、最大化、移動(dòng)和大小改變;②完成系統(tǒng)命令;③從系統(tǒng)消息隊(duì)列中移除鼠標(biāo)或鍵盤(pán)事件;④設(shè)置鍵盤(pán)焦點(diǎn);⑤同步系統(tǒng)消息隊(duì)列。WH_CBTHOOK函數(shù)集可以更加全面地捕捉用戶應(yīng)用程序使用行為,對(duì)操作系統(tǒng)的運(yùn)行影響相對(duì)較?。?]。
表1 Windows鉤子類(lèi)型表
消息被攔截后,Hook函數(shù)捕捉用戶行為的特征。前提是該系統(tǒng)在操作系統(tǒng)開(kāi)啟時(shí)自動(dòng)后臺(tái)運(yùn)行。該系統(tǒng)的開(kāi)啟時(shí)間和關(guān)閉時(shí)間同步于操作系統(tǒng)的開(kāi)機(jī)和關(guān)機(jī)時(shí)間。首先建立對(duì)應(yīng)關(guān)系,將每個(gè)進(jìn)程對(duì)應(yīng)唯一的應(yīng)用程序。因?yàn)槊總€(gè)應(yīng)用程序都具有唯一的進(jìn)程名,在研究過(guò)程中可以用進(jìn)程名代替應(yīng)用程序名稱。窗口標(biāo)題是描述窗口的重要信息,從中可以了解應(yīng)用程序的使用細(xì)節(jié)。本系統(tǒng)使用Windows API函數(shù)通過(guò)程序句柄和窗口句柄獲得進(jìn)程名和窗口標(biāo)題以及其它相關(guān)特征。
圖1 利用Windows API函數(shù)提取用戶行為特征值
本系統(tǒng)數(shù)據(jù)庫(kù)包含4個(gè)表,分別是存儲(chǔ)系統(tǒng)登錄信息、應(yīng)用程序進(jìn)程名、窗口操作信息和行為特征分析結(jié)果表。
如圖2,為該數(shù)據(jù)庫(kù)的實(shí)體-聯(lián)系圖(Entity-Relation Diagram)。
圖2 信息采集系統(tǒng)的數(shù)據(jù)庫(kù)ER圖
本系統(tǒng)采用頻繁模式挖掘算法中FP-growth算法處理數(shù)據(jù)庫(kù)中各個(gè)樣本數(shù)據(jù)[5]。FP-growth算法一種高效的頻繁項(xiàng)集挖掘算法,它采用分治策略將頻繁項(xiàng)的數(shù)據(jù)庫(kù)壓縮到頻繁模式樹(shù),并保留項(xiàng)集的關(guān)聯(lián)信息。然后,以不同用戶的數(shù)據(jù)作為篩選條件生成各個(gè)子集,利用FP-growth算法挖掘其中的頻繁模式,得到模式樹(shù)。為了能夠更加直觀對(duì)用戶行為進(jìn)行分析,進(jìn)而將模式樹(shù)轉(zhuǎn)換為網(wǎng)絡(luò)關(guān)聯(lián)圖。
首先,數(shù)據(jù)庫(kù)中的用戶行為數(shù)據(jù)被處理成事務(wù)數(shù)據(jù)庫(kù)。采集過(guò)程從用戶行為采集系統(tǒng)開(kāi)啟到關(guān)閉,程序ID表示程序名,則這一期間內(nèi)使用的應(yīng)用程序組成的項(xiàng)集即為一次事務(wù),并用事務(wù)ID標(biāo)識(shí)。然后利用FP-growth算法挖掘數(shù)據(jù)集頻繁項(xiàng)集,過(guò)程如圖3。
本文以事務(wù)數(shù)據(jù)庫(kù)為數(shù)據(jù)基礎(chǔ)創(chuàng)建FPTree。掃描事務(wù)數(shù)據(jù)庫(kù)D一次。收集頻繁項(xiàng)的集合F和它們的支持度計(jì)數(shù)降序排序,結(jié)果為頻繁項(xiàng)列表L。創(chuàng)建FP樹(shù)的根節(jié)點(diǎn),以“null”標(biāo)識(shí)。對(duì)于數(shù)據(jù)集D中每個(gè)事務(wù)Trans執(zhí)行以下操作:選擇Trans中的頻繁項(xiàng),并按L中的次序排序。設(shè)排序后的Trans中頻繁項(xiàng)列表為[p|P],其中p是第一個(gè)元素,而P是剩余元素的列表。調(diào)用insert_tree([p|P],T)。該過(guò)程執(zhí)行情況如下:如果T有一個(gè)子節(jié)點(diǎn)N使得N的項(xiàng)名與p的項(xiàng)名相同,則N的計(jì)數(shù)增加1;否則創(chuàng)建一個(gè)新節(jié)點(diǎn)N,將其計(jì)數(shù)設(shè)置為1,鏈接到它的父節(jié)點(diǎn)T,并且通過(guò)節(jié)點(diǎn)鏈結(jié)構(gòu)將其鏈接到具有相同項(xiàng)名的節(jié)點(diǎn)。如果P非空,遞歸調(diào)用insert_tree(P,N)。
圖3 FP-growth算法挖掘頻繁項(xiàng)集過(guò)程示意圖
設(shè)置最小支持度計(jì)數(shù),對(duì)FP-tree進(jìn)行挖掘。建立以{項(xiàng)ID,支持度計(jì)數(shù),節(jié)點(diǎn)鏈}為節(jié)點(diǎn)格式的FP-tree頭表α。FP-tree的挖掘過(guò)程通過(guò)調(diào)用FP_growth(Tree,α)實(shí)現(xiàn)。該過(guò)程實(shí)現(xiàn)如下:如果Tree含有單個(gè)路徑P,那么遍歷路徑P中節(jié)點(diǎn)的每個(gè)組合β產(chǎn)生模式β∪α,其支持度計(jì)數(shù)等于P中節(jié)點(diǎn)的最小支持度計(jì)數(shù)。如果Tree不含有單個(gè)路徑,那么遍歷Tree的頭表中的每個(gè)αi產(chǎn)生模式β∈ α∪αi,其支持度計(jì)數(shù)等于αi的支持度計(jì)數(shù);構(gòu)造β的條件模式基,然后構(gòu)造β的條件FP樹(shù)Treeβ;如果Treeβ不為空集,則調(diào)用FP_growth(Treeβ,β)。最后,為了可視化研究各用戶行為的特征,需要將其轉(zhuǎn)化為關(guān)系網(wǎng)絡(luò)表示。設(shè)應(yīng)用程序集合為A= {a1,a2,a3,…,an},F(xiàn)P-Tree算法得到的頻繁項(xiàng)集為B={b1,b2,b3,…,bm},m<n。b1為一個(gè)三元組{ai,aj,ω},其中ai,aj∈A,ω為該組合的頻繁次數(shù),該三元組可以表達(dá)頻繁項(xiàng)集的完整信息。
為驗(yàn)證系統(tǒng)的有效性,本文以高校的學(xué)生為對(duì)象采集了相應(yīng)的用戶數(shù)據(jù)。Y用戶和W用戶經(jīng)過(guò)系統(tǒng)采集,算法分析出的關(guān)系網(wǎng)絡(luò)如圖5,其中列出了Y和W在網(wǎng)格邊權(quán)重大于等于3、5、7的用戶行為關(guān)系網(wǎng)絡(luò)。
圖4 兩個(gè)不用學(xué)生用戶行為關(guān)系網(wǎng)絡(luò)
通過(guò)對(duì)圖5的行為關(guān)系網(wǎng)絡(luò),可以看出Y用戶和W用戶的行為特征存在顯著差別。Y用戶習(xí)慣于使用Google瀏覽器,然后跳轉(zhuǎn)切換于各種即時(shí)通訊軟件,A用戶網(wǎng)絡(luò)也顯示出迅雷軟件和Chrome瀏覽器不兼容,使用迅雷下載需要開(kāi)啟IE瀏覽器,因?yàn)榫W(wǎng)絡(luò)中這兩個(gè)節(jié)點(diǎn)關(guān)聯(lián)強(qiáng)度較高。W用戶程序切換于騰訊QQ及其音樂(lè)軟件,同時(shí)進(jìn)行文檔查看和程序開(kāi)發(fā)。不僅可以通過(guò)不同用戶的特征行為區(qū)分用戶的合法身份,還可以研究一些用戶的共同行為特征,對(duì)多個(gè)用戶的不同權(quán)重的行為關(guān)系網(wǎng)進(jìn)行圖結(jié)構(gòu)模式挖掘,挖掘出該類(lèi)用戶共同的行為特征[6]。
本文為研究用戶行為特征,通過(guò)Windows API構(gòu)建了用戶行為捕捉系統(tǒng),捕捉用戶在操作計(jì)算機(jī)過(guò)程中的各種軟件切換操作,并將其記錄于數(shù)據(jù)庫(kù)中,通過(guò)FP-Tree算法從數(shù)據(jù)集中提取頻繁模式樹(shù),為便于可視化分析,將該樹(shù)轉(zhuǎn)化為關(guān)系網(wǎng)絡(luò)。該系統(tǒng)可以用于安全和行為模式研究,具有較好的應(yīng)用價(jià)值和實(shí)際意義。實(shí)驗(yàn)結(jié)果也證明該系統(tǒng)可以分析出不用用戶的不同行為特征。
此外,該系統(tǒng)通過(guò)進(jìn)一步開(kāi)發(fā)用戶的其他硬件行為特征,在軟件使用時(shí)的行為特征,結(jié)合時(shí)序進(jìn)行進(jìn)一步的深入研究,為行為特征研究提供較好的支撐平臺(tái)。
[1]袁霖,王懷民,尹剛,等.開(kāi)源環(huán)境下開(kāi)發(fā)人員行為特征挖掘與分析[J].計(jì)算機(jī)學(xué)報(bào),2010,33(10):1910-1918.
[2]鄭紅艷,吳照林.用戶行為異常檢測(cè)模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(8):190-192.
[3]杰瑞夫,克里斯托夫.Windows核心編程[M].北京:清華大學(xué)出版社,2008.
[4]王艷平,張錚.Windows程序設(shè)計(jì)[M].2版.北京:人民郵電出版社,2008.
[5]韓家煒,堪博.數(shù)據(jù)挖掘概念與技術(shù)[M].北京:機(jī)械工業(yè)出版社,2007.
[6]連一峰,戴英俠,王航.基于模式挖掘的用戶行為異常檢測(cè)[J].計(jì)算機(jī)學(xué)報(bào),2002,25(3):326-330.
Mining and Analysis on User’s Features Based on Behavior Acquisition System
WANG Cun-rui,WANG Yuan-gang,CHEN Jing,YANG Yu
(College of Computer Science&Engineering,Dalian Nationalities University,Dalian Liaoning 116605,China)
A software system of user’s behavior acquisition that gives the corresponding design frame and storage structures has developed.A mining algorithm of user features has also designed.An expression method of user’s behavior features in the form of network has established,which is with the combination of user’s behavior in time series and operating frequency,and with the fusion of FP-GROWTH algorithm.University students had been chosen as the study objects and had offered the corresponding data for the system test.The results indicate that the system can capture and analyze user’s behavior,and then to express the user’s habitual behavior,which can be revealed thus.
data mining;behavior feature;network of user’s behavior relationship
TU317
A
1009-315X(2011)03-0296-04
2011-01-17;最后
2011-04-26
王存睿(1980-),男,吉林遼源人,講師,主要從事數(shù)據(jù)挖掘和智能計(jì)算研究。
(責(zé)任編輯 劉敏)
大連民族大學(xué)學(xué)報(bào)2011年3期