鄭明輝,呂經(jīng)華
(湖北民族學(xué)院 信息工程學(xué)院,恩施 445000)
基于機(jī)器學(xué)習(xí)的企業(yè)私有云用戶(hù)行為分析模型
鄭明輝,呂經(jīng)華
(湖北民族學(xué)院 信息工程學(xué)院,恩施 445000)
鑒于傳統(tǒng)的訪(fǎng)問(wèn)控制機(jī)制為用戶(hù)提供靜態(tài)的授權(quán),極少監(jiān)管用戶(hù)行為,導(dǎo)致企業(yè)很難發(fā)現(xiàn)來(lái)自惡意的內(nèi)部用戶(hù)或賬號(hào)失竊帶來(lái)的數(shù)據(jù)安全威脅,定義和形式化描述了私有云下的用戶(hù)行為,基于Hadoop架構(gòu)提出了一個(gè)基于TensorFlow機(jī)器學(xué)習(xí)的用戶(hù)行為分析的框架,通過(guò)用戶(hù)行為數(shù)據(jù)采集、存儲(chǔ)、特征選擇、預(yù)處理,給出了建立并訓(xùn)練用于用戶(hù)行為分析的機(jī)器學(xué)習(xí)模型的方法和過(guò)程,實(shí)現(xiàn)了企業(yè)私有云用戶(hù)行為的自動(dòng)分析,用于數(shù)據(jù)安全威脅的發(fā)現(xiàn)和響應(yīng).
私有云;數(shù)據(jù)安全;用戶(hù)行為;機(jī)器學(xué)習(xí)
AbstractSince traditional access control mechanisms provide static authorization for users, but with little supervision over their behaviors, it is difficult for enterprises to locate threats of data security posed by malicious insiders or compromised user accounts with high privilege. This article defines and formalizes user behaviors under Private Cloud,Through user behavior data acquisition, storage, feature selection and preprocessing, A Neural Network model for User Behavior Analysis is proposed with its training and optimization procedure. Thus a User Behavior Analysis model based on TensorFlow Machine Learning platform over Hadoop framework is given, which can analysis user behaviors automatically,and can help enterprises to locate and respond to threats of data security efficiently in private cloud.
KeywordsPrivate Cloud; Data Security; User Behavior; Machine Learning
近年來(lái),從大量報(bào)道的信息安全事件中得知,很多造成重大影響的數(shù)據(jù)安全事件,都是由于企業(yè)內(nèi)部賬號(hào),尤其是高權(quán)限賬號(hào)的泄漏所導(dǎo)致的[1].可見(jiàn),企業(yè)把信息系統(tǒng)集成整合到私有云后,多樣化的攻擊方式使企業(yè)數(shù)據(jù)資源面臨著更加復(fù)雜的威脅.
云計(jì)算廣泛應(yīng)用后,信息安全進(jìn)入了立體和深度防御的時(shí)代,形成了以預(yù)警、攻擊防護(hù)、響應(yīng)恢復(fù)為主的全生命周期安全管理[2].基于屬性的訪(fǎng)問(wèn)控制模型(ABAC)較為適用于云環(huán)境下細(xì)粒度、多層次的訪(fǎng)問(wèn)控制需求[3,4],但基于角色的訪(fǎng)問(wèn)控制模型也會(huì)在企業(yè)私有云中繼續(xù)存在一段時(shí)間.傳統(tǒng)的訪(fǎng)問(wèn)控制機(jī)制通常不會(huì)對(duì)已獲授權(quán)的合法用戶(hù)行為進(jìn)行動(dòng)態(tài)監(jiān)管,因此企業(yè)對(duì)數(shù)據(jù)泄漏和攻擊行為的發(fā)現(xiàn)普遍滯后[5].考慮到任何一種攻擊都是由一系列的信息系統(tǒng)用戶(hù)行為實(shí)現(xiàn)的[6],人們引入用戶(hù)行為分析(UBA)從大量用戶(hù)行為中,找出潛在的攻擊行為,及時(shí)預(yù)警,指導(dǎo)企業(yè)的安全團(tuán)隊(duì)及時(shí)響應(yīng)潛在威脅[7].把用戶(hù)行為分析與訪(fǎng)問(wèn)控制模型結(jié)合起來(lái),可以實(shí)現(xiàn)基于信任的動(dòng)態(tài)授權(quán)和訪(fǎng)問(wèn)控制,有助于保障數(shù)據(jù)安全和隱私[8-10],而機(jī)器學(xué)習(xí)的方法近年來(lái)被廣泛應(yīng)用于用戶(hù)行為分析,可以推動(dòng)云計(jì)算環(huán)境下的數(shù)據(jù)安全保障[11,12].但很多宣稱(chēng)基于機(jī)器學(xué)習(xí)的安全產(chǎn)品仍然是基于靜態(tài)規(guī)則進(jìn)行判斷的,同樣無(wú)法有效識(shí)別新的惡意行為,以此為基礎(chǔ)的入侵檢測(cè)、入侵防御、防火墻和信息安全軟件,每天都會(huì)產(chǎn)生數(shù)以萬(wàn)計(jì)的信息安全事件信息,混雜著大量誤報(bào)和漏報(bào),已經(jīng)超越了人工分析的極限,使安全從業(yè)者無(wú)所適從.傳統(tǒng)的機(jī)器學(xué)習(xí)算法通?;谟邢薜挠?xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),不適合在云環(huán)境下分析持續(xù)產(chǎn)生的、具有大數(shù)據(jù)特征的用戶(hù)行為.
隨著近年來(lái)機(jī)器學(xué)習(xí)技術(shù)的快速發(fā)展,國(guó)際上使用機(jī)器學(xué)習(xí)進(jìn)行用戶(hù)行為分析的技術(shù)在數(shù)據(jù)安全領(lǐng)域的迅速推廣[13-16],催生了一些基于機(jī)器學(xué)習(xí)的用戶(hù)行為分析安全產(chǎn)品,包括Exabeam、Fortscale、Niara、Secronix、Splunk等.這些產(chǎn)品使用機(jī)器學(xué)習(xí)算法動(dòng)態(tài)分析用戶(hù)行為,偵測(cè)用戶(hù)行為變化,發(fā)現(xiàn)潛在的威脅,可以定位惡意的內(nèi)部員工和外部攻擊者,能實(shí)現(xiàn)大量安全事件的自動(dòng)分析,為企業(yè)的信息安全團(tuán)隊(duì)提供有用的建議.但這些產(chǎn)品大多用于單機(jī)或單獨(dú)的信息系統(tǒng),不能直接應(yīng)用于企業(yè)私有云下多個(gè)信息系統(tǒng)集成整合環(huán)境下的用戶(hù)行為分析.
本文在企業(yè)私有云環(huán)境下,首先對(duì)用戶(hù)行為進(jìn)行定義和形式化,設(shè)計(jì)了一個(gè)基于機(jī)器學(xué)習(xí)的用戶(hù)行為分析模型,隨后基于Hadoop架構(gòu),提出了使用TensorFlow機(jī)器學(xué)習(xí)開(kāi)源平臺(tái)進(jìn)行用戶(hù)行為分析的方法和實(shí)現(xiàn)過(guò)程,自動(dòng)分析企業(yè)私有云環(huán)境下大量信息系統(tǒng)用戶(hù)行為數(shù)據(jù),找出異常的用戶(hù)行為,保障企業(yè)的數(shù)據(jù)安全.
首先給出企業(yè)私有云環(huán)境下的用戶(hù)行為定義,并進(jìn)行形式化描述.
⑴ 企業(yè)私有云下的用戶(hù)行為環(huán)境.假設(shè)企業(yè)私有云的基礎(chǔ)設(shè)施資源池中有l(wèi)臺(tái)物理服務(wù)器,記為PS[ps,ps1,ps2,…,pss,…,psl],按需建立了m個(gè)虛擬機(jī),記為VM[vm1,vm2,…,vmi,…,vmm],每個(gè)虛擬機(jī)安裝了相應(yīng)的操作系統(tǒng),記為OS[os1,os2,…,osi,…,OSm],運(yùn)行著企業(yè)的i個(gè)數(shù)據(jù)庫(kù),記為DB[db1,db2,…,dbi],j個(gè)中間件,記為MW[mw1,mw2,…,mwj] ,以及k個(gè)信息系統(tǒng),記為S[s1,s2,…,sk] 形成企業(yè)信息系統(tǒng)集成整合平臺(tái).在企業(yè)的員工集合的某個(gè)子集中,每個(gè)員工擁有唯一的賬號(hào),通過(guò)單點(diǎn)登錄后,可以訪(fǎng)問(wèn)獲得授權(quán)的多個(gè)信息系統(tǒng),用戶(hù)賬號(hào)的集合記為U[u1,u2,…,un].
⑵ 用戶(hù)行為的定義和形式化描述.用戶(hù)行為(User Behavior,UB):是指某個(gè)用戶(hù)訪(fǎng)問(wèn)企業(yè)數(shù)據(jù)資源的全過(guò)程.一個(gè)完整的用戶(hù)行為可由行為時(shí)態(tài)(Behavior Environment,BE)、(Behavior Subject,BS)、行為客體(Behavior Object,BO)、行為操作(Behavior Operation,BP)等屬性集來(lái)描述,用戶(hù)行為的集合可以記為:UB[BE,BS,BO,BP].
當(dāng)某個(gè)員工使用某個(gè)賬號(hào)ui登錄某個(gè)信息系統(tǒng)si后,根據(jù)崗位、職責(zé)、信任等級(jí)、時(shí)間、地點(diǎn)、終端類(lèi)型等屬性子集,訪(fǎng)問(wèn)控制模塊為其在角色集合R[r1,r2,…,ri,…,rn]中選擇適合的角色,從一組操作權(quán)限集合P[P1,P2,…,pi,…,pn]中獲得一個(gè)權(quán)限子集P′,獲準(zhǔn)訪(fǎng)問(wèn)信息系統(tǒng)模塊M[m1,m2,…,mi,…,mn]和功能集合F[f1,f2,…,fi,…,fn] 的某個(gè)子集,從而訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)表TB[tb1,tb2,…,tbi,…tbn]的某些子集,或者按某些屬性Att[a1,a2,…,ai,…,an]訪(fǎng)問(wèn)數(shù)據(jù)記錄,這個(gè)過(guò)程被稱(chēng)為一次用戶(hù)行為.記為ubi[bei,bsi,boi,bpi].
下面分別定義用戶(hù)行為的時(shí)態(tài)、主體、客體和操作,從而形式化描述每一次用戶(hù)行為的詳細(xì)特征.
行為時(shí)態(tài):是指用戶(hù)行為發(fā)生的時(shí)態(tài)信息,包括行為的時(shí)間、地點(diǎn)、終端類(lèi)型等信息.一次用戶(hù)行為的時(shí)態(tài)記為bei[Tsi,Tei,Loci,Terminali],其中Tsi,Tei代表行為開(kāi)始和結(jié)束的時(shí)間,取自日志中記錄的時(shí)間. 代表用戶(hù)發(fā)起行為的地點(diǎn),以IP地址或終端所在的地址描述, 表示用戶(hù)發(fā)起行為的終端類(lèi)型,取自日志記錄.
行為主體:是指任何發(fā)起訪(fǎng)問(wèn)數(shù)據(jù)的實(shí)體.一個(gè)員工賬號(hào)作為行為主體時(shí),可以表示為:
bsi[UserName,AccountID,UserCreatedTime,System,UserClassfication,UserRisk,UserTrustLevel,UserRole,BehaviorCount]這些屬性描述了用戶(hù)的姓名、賬號(hào)、創(chuàng)建時(shí)間、所屬系統(tǒng)、分類(lèi)、風(fēng)險(xiǎn)分?jǐn)?shù)、信任等級(jí)、角色、行為次數(shù)等Terminali,用來(lái)刻畫(huà)一個(gè)行為主體的特征.
行為客體:是指行為主體可以訪(fǎng)問(wèn)的數(shù)據(jù)對(duì)象.把一次用戶(hù)行為訪(fǎng)問(wèn)到的企業(yè)數(shù)據(jù)集及其屬性表示為一個(gè)九元組,記為boi[psi,vmi,osi,si,mi,fi,dbi,tbi,ai],表示每一次訪(fǎng)問(wèn)的行為客體集.統(tǒng)計(jì)每個(gè)實(shí)體ei被訪(fǎng)問(wèn)的次數(shù)xei,可計(jì)算每個(gè)實(shí)體被用戶(hù)訪(fǎng)問(wèn)到的概率pei,記為[ppsi,pvmi,posi,psi,pmi,pfi,pdbi,pai] 結(jié)合信息系統(tǒng)等級(jí)保護(hù)的定級(jí)bi,可計(jì)算每個(gè)實(shí)體的重要性(ImportanceI),記為:Iei=wpei+bi,其中w為權(quán)重.
行為操作:是指用戶(hù)對(duì)數(shù)據(jù)所進(jìn)行的操作,記為bpi[OpName,OpType] ,其中,OpName代表操作的名稱(chēng),包括查詢(xún)、刪除、修改和新增等,OpType代表操作類(lèi)型,對(duì)應(yīng)服務(wù)器、系統(tǒng)、數(shù)據(jù)庫(kù)層面的操作,還包括調(diào)整配置,備份等.
機(jī)器學(xué)習(xí)是指使用計(jì)算機(jī)從大量數(shù)據(jù)中找出潛在的規(guī)律,來(lái)提取數(shù)據(jù)中的知識(shí).適合從大量用戶(hù)行為數(shù)據(jù)中,找出正常的用戶(hù)行為具有的特征,用來(lái)判斷其他的用戶(hù)行為是否正常.
典型的機(jī)器學(xué)習(xí)任務(wù)包括回歸、分類(lèi)和結(jié)構(gòu)化學(xué)習(xí).按照是否有經(jīng)過(guò)標(biāo)記的訓(xùn)練數(shù)據(jù),可以把機(jī)器學(xué)習(xí)分為監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí).在完全沒(méi)有訓(xùn)練數(shù)據(jù)時(shí),根據(jù)外界環(huán)境對(duì)機(jī)器學(xué)習(xí)算法的輸出結(jié)果提供“好”或者“不好”的反饋信息,讓學(xué)習(xí)算法自動(dòng)調(diào)整參數(shù),輸出更好的行動(dòng)決策時(shí),稱(chēng)為增強(qiáng)學(xué)習(xí).
Google Brain推出了機(jī)器學(xué)習(xí)開(kāi)源環(huán)境Tensorflow,可以使用CPU和GPU等計(jì)算資源,基于Python環(huán)境實(shí)現(xiàn)跨平臺(tái)分布式計(jì)算,是當(dāng)前機(jī)器學(xué)習(xí)開(kāi)發(fā)環(huán)境中最好選擇之一.Karas是一個(gè)高級(jí)軟件包,可以更加方便的調(diào)用Tensorflow內(nèi)置的各種機(jī)器學(xué)習(xí)算法,極大的簡(jiǎn)化了機(jī)器學(xué)習(xí)的應(yīng)用.
2.1環(huán)境搭建
在企業(yè)私有云上,搭建Hadoop的分布式平臺(tái),使用Flume和Kafka采集并匯總所有信息系統(tǒng)、中間件、數(shù)據(jù)庫(kù)和安全軟件的日志,匯總并分類(lèi),統(tǒng)一存儲(chǔ)到HDFS,建立Hive數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)用戶(hù)行為相關(guān)的數(shù)據(jù),使用Google公司的TensorFlow機(jī)器學(xué)習(xí)開(kāi)源軟件平臺(tái)和Karas整合工具,搭建基于機(jī)器學(xué)習(xí)的企業(yè)私有云用戶(hù)行為分析框架,如圖1所示.
圖1 私有云環(huán)境下基于機(jī)器學(xué)習(xí)的用戶(hù)行為分析框架Fig.1 User behavior analysis framework based on machine learning in Private Cloud
2.2用戶(hù)行為特征選擇
根據(jù)以上定義,可見(jiàn)一次用戶(hù)行為涉及的實(shí)體有很多種,用以描述每個(gè)實(shí)體的屬性有多個(gè),稱(chēng)之為特征(Features).為了使用機(jī)器學(xué)習(xí)對(duì)用戶(hù)行為進(jìn)行分析,首先需要對(duì)用戶(hù)行為的多個(gè)特征進(jìn)行分類(lèi)和選擇,去處冗余、無(wú)意義和復(fù)雜的屬性.結(jié)合企業(yè)私有云信息系統(tǒng)集成整合的實(shí)際應(yīng)用環(huán)境,選擇有代表性的用戶(hù)行為特征,分為行為時(shí)態(tài)、行為主體、行為客體、行為操作四類(lèi),如表1所示.
2.3用戶(hù)行為數(shù)據(jù)預(yù)處理
在使用機(jī)器學(xué)習(xí)分析用戶(hù)行為之前,需要對(duì)選取的行為特征進(jìn)行預(yù)處理,以便用數(shù)字的形式表示,作為機(jī)器學(xué)習(xí)的輸入,進(jìn)行計(jì)算和判定.
1) 統(tǒng)計(jì)數(shù)據(jù)預(yù)處理.采集企業(yè)私有云環(huán)境下的物理服務(wù)器、虛擬機(jī)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、信息系統(tǒng)等環(huán)境實(shí)體的詳細(xì)信息,存放到用戶(hù)行為數(shù)據(jù)庫(kù)中,形成用戶(hù)行為環(huán)境實(shí)體表.
統(tǒng)計(jì)所有用戶(hù)行為涉及到的實(shí)體ei被訪(fǎng)問(wèn)的頻度,計(jì)算其被訪(fǎng)問(wèn)的概率pei.一個(gè)實(shí)體被訪(fǎng)問(wèn)的概率越大,它的重要性越高,記為Iei=f(pei),表示重要性是pei的函數(shù).根據(jù)企業(yè)私有云下各個(gè)實(shí)體之間的內(nèi)在聯(lián)系,用戶(hù)對(duì)某個(gè)信息系統(tǒng)模塊的訪(fǎng)問(wèn)行為將使行為客體對(duì)應(yīng)的實(shí)體集內(nèi)所有實(shí)體被訪(fǎng)問(wèn)的概率增加.對(duì)大量行為記錄的統(tǒng)計(jì)分析可以獲得一個(gè)接近真實(shí)的相關(guān)實(shí)體被用戶(hù)訪(fǎng)問(wèn)的概率分布.
2) 行為主體數(shù)據(jù)預(yù)處理.一個(gè)用戶(hù)有UserName, AccountID,UserCreatedTime, System,UserClassification, UserRisk,UserTrustLevel, UserRole,BehaviorCount等屬性,描述用戶(hù)行為的主體.去除不相關(guān)和冗余的屬性,找到最能夠描述用戶(hù)主體特征的特征子集進(jìn)行分析.
對(duì)行為主體特征進(jìn)行預(yù)處理的神經(jīng)網(wǎng)絡(luò),輸入層為UserName,AccountID,CreatedTime,System隱含層判斷是否為正確的用戶(hù)名,是否為合法賬號(hào),是否在正確的時(shí)間創(chuàng)建,是否屬于合法的信息系統(tǒng),分別記為RightName,LeagleID,LeagleTime和LeagleSystem,均為Bool型變量.經(jīng)過(guò)輸出層的處理后,得到行為主體的合法性特征Lbsi,也為布爾類(lèi)型,取值為0為非法用戶(hù),取值為1為合法用戶(hù).
表1 用戶(hù)行為的特征子集Tab.1 Feature subsets of user behaviors
行為客體預(yù)處理的神經(jīng)網(wǎng)絡(luò)輸入層為用戶(hù)行為涉及的實(shí)體集,以xi表示該實(shí)體ei被訪(fǎng)問(wèn)的概率,結(jié)合信息系統(tǒng)等級(jí)保護(hù)定級(jí)的等級(jí)結(jié)果,計(jì)算每個(gè)實(shí)體的重要性Iei,經(jīng)過(guò)輸出層處理后,輸出實(shí)體集的重要性,為布爾類(lèi)型數(shù)值,記為Iboi.
4) 行為操作數(shù)據(jù)預(yù)處理.根據(jù)用戶(hù)行為記錄中的操作序列O[o1,o2,…,oi,…,on],可以評(píng)估每種操作的風(fēng)險(xiǎn)等級(jí),記為Roi,一個(gè)操作序列的風(fēng)險(xiǎn)值取序列中的最高風(fēng)險(xiǎn)值Rbpi=f[Ro1,Ro2,…,Roi,…,Ron]=Max[Ro1,Ro2,…,Roi,…,Ron],類(lèi)似的,可使用Sigmoid激活函數(shù)規(guī)范化到[0,1],根據(jù)閾值θ2判定用戶(hù)操作序列是高風(fēng)險(xiǎn)還是低風(fēng)險(xiǎn).
行為操作數(shù)據(jù)預(yù)處理的神經(jīng)網(wǎng)絡(luò)輸入層是操作序列的操作名OpName,根據(jù)操作的屬性和作用,判斷該操作序列是否對(duì)企業(yè)數(shù)據(jù)帶來(lái)高風(fēng)險(xiǎn),輸出布爾型數(shù)值Rbpi.
5) 行為時(shí)態(tài)數(shù)據(jù)預(yù)處理.用戶(hù)行為的時(shí)態(tài)記為bei[Tsi,Tei,Loci,Terminal],根據(jù)企業(yè)的信息安全管理規(guī)則f計(jì)算分析行為的時(shí)態(tài)特征Nbei=f[Tsi,Tei,Loci,Terminali] ;代表用戶(hù)操作時(shí)態(tài)是否正常,取值為0表示非正常時(shí)態(tài),為1時(shí),表示正常的時(shí)態(tài).
行為時(shí)態(tài)預(yù)處理的神經(jīng)網(wǎng)絡(luò),輸入為用戶(hù)行為發(fā)生的起止時(shí)間的差Tei-Tsi,用戶(hù)使用的網(wǎng)絡(luò)地址IP,物理位置Location,終端類(lèi)型Terminal,隱含層分別判斷時(shí)間是否正常(RightTime),是否合法IP地址(LeagleIP),是否合法的物理位置(LeagleLoc)和是否為信任的終端(TrustTerminal),輸出為用戶(hù)行為時(shí)態(tài)是否正常(Nbei).
至此完成了對(duì)用戶(hù)行為的時(shí)態(tài),主體、客體和操作進(jìn)行預(yù)處理的過(guò)程,通過(guò)神經(jīng)網(wǎng)絡(luò),輸出了四個(gè)布爾類(lèi)型的特征值,實(shí)現(xiàn)了用戶(hù)行為特征的提取.
2.4建立用戶(hù)行為分析的神經(jīng)元
完成以上的用戶(hù)行為特征分類(lèi)和預(yù)處理,可以把用戶(hù)行為UB[BE,BS,BO,BP]的特征可以表示為:bi[Nbei,Nbsi,Nboi,Nbpi],建立一個(gè)用來(lái)處理用戶(hù)行為的神經(jīng)元,以Iboi,Nbei,Iboi,Rbpi作為神經(jīng)元的輸入,表示為輸入向量為xi=[x1,x2,x3,x4],記為X.設(shè)權(quán)值矩陣為wi=[w1,w2,w3,w4],記為W,偏置矩陣為bi=[b1,b2,b3,b4],記為B′ ,代表其他不可預(yù)知的參數(shù)影響,輸出值為Nbi,代表一個(gè)行為bi是否正常,記為Y,則函數(shù)集合Y=Nbi=H(X)=WX+B′ 表示了輸入和輸出之間對(duì)應(yīng)關(guān)系的所有可能函數(shù)的集合.用戶(hù)行為分析的神經(jīng)元模型如圖2所示.
圖2 用戶(hù)行為分析的神經(jīng)元模型Fig.2 A neuron model for user behavior analysis
使用大量已標(biāo)記的用戶(hù)行為數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,找到一個(gè)參數(shù)組wi,bi,使得神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集上的誤差達(dá)到最小.對(duì)應(yīng)的函數(shù)即為目標(biāo)函數(shù),將用來(lái)判定后續(xù)的用戶(hù)行為是否正常.
3.1基于TensorFlow的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn).
在圖1所示的用戶(hù)行為機(jī)器學(xué)習(xí)框架中,在Ubuntu, Mac OS,Win10等操作系統(tǒng)上,運(yùn)行Python開(kāi)發(fā)環(huán)境,加載TensorFlow環(huán)境,并加載Karas工具,調(diào)用Numpy等數(shù)值計(jì)算開(kāi)發(fā)包,使用內(nèi)置的機(jī)器學(xué)習(xí)算法對(duì)用戶(hù)行為分析機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練、誤差評(píng)估和參數(shù)優(yōu)化,最終輸出誤差最小的機(jī)器學(xué)習(xí)模型進(jìn)行用戶(hù)行為自動(dòng)分析.
建立神經(jīng)網(wǎng)絡(luò)、運(yùn)行和訓(xùn)練的實(shí)現(xiàn)過(guò)程描述如下.
Step⒈ 載入TensorFlow和Numpy環(huán)境;
Step⒉ 從TensorFlow項(xiàng)目文件夾中載入用戶(hù)行為數(shù)據(jù)文件;
Step⒊ 定義神經(jīng)網(wǎng)絡(luò)圖,建立數(shù)據(jù)預(yù)處理和行為分析的神經(jīng)網(wǎng)絡(luò)模型,并定義誤差函數(shù);
Step⒋ 運(yùn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程;
Step⒌ 測(cè)試并調(diào)整參數(shù),使得誤差函數(shù)取值最小,輸出最終模型用于判斷后續(xù)用戶(hù)行為.
3.2用戶(hù)行為分析神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)效果
經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和優(yōu)化,找到對(duì)訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)誤差都能接近最小的神經(jīng)網(wǎng)絡(luò)參數(shù),作為最終的神經(jīng)網(wǎng)絡(luò)輸出.能對(duì)后續(xù)產(chǎn)生的用戶(hù)行為數(shù)據(jù)進(jìn)行預(yù)測(cè).預(yù)測(cè)的過(guò)程同樣經(jīng)過(guò)數(shù)據(jù)采集、存儲(chǔ)、初始化和神經(jīng)網(wǎng)絡(luò)判斷,輸出用戶(hù)行為的結(jié)果.在測(cè)試環(huán)境下,從信息系統(tǒng)日志中提取12000條用戶(hù)行為數(shù)據(jù),并把其中10000條滿(mǎn)足信息新系統(tǒng)使用規(guī)范的數(shù)據(jù)標(biāo)記為正常行為,其余標(biāo)記為不正常行為,作為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),用來(lái)訓(xùn)練用戶(hù)行為分析的神經(jīng)網(wǎng)絡(luò).根據(jù)不同的學(xué)習(xí)率(Learning Rate),采用基于梯度下降(Gradient Descent)優(yōu)化器來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)的參數(shù),經(jīng)過(guò)多次更新后,訓(xùn)練誤差逐步下降.圖3顯示了不同學(xué)習(xí)率時(shí),經(jīng)過(guò)一段時(shí)間的訓(xùn)練和參數(shù)更新,訓(xùn)練誤差的變化曲線(xiàn).
圖3 不同學(xué)習(xí)率時(shí)的誤差曲線(xiàn) Fig.3 Loss curve for different learning rate
從圖3中可見(jiàn)當(dāng)學(xué)習(xí)率太大(Very Large)時(shí),模型不能找到合適的參數(shù),導(dǎo)致訓(xùn)練誤差迅速超出預(yù)期.當(dāng)學(xué)習(xí)率太小(Small)時(shí),誤差下降得太慢,導(dǎo)致訓(xùn)練需要太長(zhǎng)的時(shí)間.學(xué)習(xí)率稍大(Large)時(shí),誤差初期下降很快,而后期基本不會(huì)下降,導(dǎo)致訓(xùn)練遲遲不能完成.當(dāng)選擇到剛好合適(Just Make)的學(xué)習(xí)率時(shí),機(jī)器學(xué)習(xí)算法可以在適當(dāng)?shù)挠?xùn)練時(shí)間內(nèi)達(dá)到滿(mǎn)足需要的誤差.
預(yù)測(cè)不準(zhǔn)確的原因常常是因?yàn)檩斎氲淖兞康倪x擇過(guò)多,導(dǎo)致模型出現(xiàn)對(duì)訓(xùn)練數(shù)據(jù)的過(guò)擬合(Over Fitting).要減少過(guò)擬合,需要從幾個(gè)方面入手,一是選擇最有代表性的特征子集.二是修改特征提取和行為分析的函數(shù)集,使之更契合目標(biāo)函數(shù)的變換關(guān)系.三是增加標(biāo)記準(zhǔn)確的訓(xùn)練數(shù)據(jù),使模型調(diào)整參數(shù)后,能更加貼近真實(shí)的目標(biāo)函數(shù).
隨著訓(xùn)練數(shù)據(jù)(Testing Data)的增加,機(jī)器學(xué)習(xí)算法能夠逐步達(dá)到較低的訓(xùn)練誤差和測(cè)試誤差.誤差變化隨著訓(xùn)練數(shù)據(jù)增加的曲線(xiàn)如圖4所示.
圖4 不同數(shù)量的訓(xùn)練數(shù)據(jù)時(shí)的誤差情況Fig.4 Loss curve of different training data growth
考慮到機(jī)器學(xué)習(xí)過(guò)程中需要找到一個(gè)最合適的函數(shù),使之無(wú)限逼近目標(biāo)函數(shù),而機(jī)器學(xué)習(xí)方法本身存在誤差,給定的神經(jīng)網(wǎng)絡(luò)模型在不同的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集上有不同的準(zhǔn)確率,以少量預(yù)測(cè)案例的不準(zhǔn)確,換取相同類(lèi)型的用戶(hù)行為的自動(dòng)分析.在實(shí)際的應(yīng)用中,用于判斷用戶(hù)行為的有監(jiān)督神經(jīng)網(wǎng)絡(luò)模型在測(cè)試數(shù)據(jù)集上,預(yù)測(cè)準(zhǔn)確率能達(dá)到90%,通過(guò)模型優(yōu)化、參數(shù)調(diào)優(yōu)和增加訓(xùn)練數(shù)據(jù)等技術(shù)手段,可以進(jìn)一步提高,從而具有實(shí)際應(yīng)用的可行性.
企業(yè)的信息系統(tǒng)在云環(huán)境下面臨日益多元化的安全威脅,分析用戶(hù)訪(fǎng)問(wèn)企業(yè)數(shù)據(jù)的行為可以幫助企業(yè)找到潛在的數(shù)據(jù)安全風(fēng)險(xiǎn).本文在私有云環(huán)境下,提出了一個(gè)基于機(jī)器學(xué)習(xí)的用戶(hù)行為分析模型,通過(guò)采集、匯總、存儲(chǔ)大量信息系統(tǒng)日志數(shù)據(jù),使用機(jī)器學(xué)習(xí)的方法自動(dòng)分析海量用戶(hù)行為,找出其中的異常行為,從而及時(shí)響應(yīng).考慮到長(zhǎng)期性和持續(xù)性,數(shù)據(jù)安全的設(shè)計(jì)應(yīng)該和信息系統(tǒng)設(shè)計(jì)同步進(jìn)行,采集標(biāo)準(zhǔn)化的用戶(hù)行為數(shù)據(jù),予以準(zhǔn)確標(biāo)記,從而方便機(jī)器學(xué)習(xí)模型實(shí)現(xiàn)更高的預(yù)測(cè)精度,是未來(lái)的研究方向.
[1] Innovation Research Team.SIEM-Centric User Behavior Analytics (SCUBA) [EB/OL].New Hotness in Security.Track3. http://trace3.com/wp-content/uploads /2016/09. 2016.
[2] 馮登國(guó),張 敏,張 妍等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71-83.
[3] 房 梁,殷麗華,郭云川,等.基于屬性的訪(fǎng)問(wèn)控制關(guān)鍵技術(shù)研究綜述[J].計(jì)算機(jī)學(xué)報(bào), 2016, 39(79): 1-20.
[4] Younis A, Kifayat K, Merabti M. An access control model for cloud computing[J]. Journal of Information Security and Applications,2014.19(1): 45-60.
[5] 王于丁,楊家海,徐 聰,等.云計(jì)算訪(fǎng)問(wèn)控制技術(shù)研究綜述[J].軟件學(xué)報(bào),2015,26(5): 1129-1150.
[6] 陳亞睿.云計(jì)算環(huán)境下用戶(hù)行為認(rèn)證與安全控制研究[D]. 北京:北京科技大學(xué),2011.
[7] 劉正南.云環(huán)境下基于用戶(hù)行為評(píng)估的訪(fǎng)問(wèn)控制模型研究[D].西安:西北農(nóng)林科技大學(xué),2016.
[8] 馮登國(guó),張 敏,李 昊.大數(shù)據(jù)安全與隱私保護(hù)[J]. 計(jì)算機(jī)學(xué)報(bào), 2014, 37(1): 246-258.
[9] Lin G, Wang D, Bie Y,et al. MTBAC:A Mutual Trust Based Access Control Model in Cloud Computing[J].China Communication, 2014. 11(4): 154-162.
[10] 劉 莎.Hadoop云平臺(tái)的用戶(hù)可信訪(fǎng)問(wèn)控制模型研究與實(shí)現(xiàn)[D]. 成都:四川師范大學(xué), 2014.
[11] 王電輕.基于hadoop的網(wǎng)站用戶(hù)行為分析系統(tǒng)架構(gòu)和實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院大學(xué),2016.
[12] 何 苗.基于機(jī)器學(xué)習(xí)的移動(dòng)數(shù)據(jù)安全檢測(cè)技術(shù)研究[D]. 北京:北京郵電大學(xué),2015.
[13] Chen S, Ghorbani M, Wang Y, et al. Trace-Based Analysis and Prediction of Cloud Computing User Behavior Using the Fractal Modeling Technique[C]//IEEE.Big Data (Big Data Congress) IEEE International Congress.Alaska: IEEE,2014: 733-739.
[14] Ghazinour K, Ghayoumi M. An autonomous model to enforce security policies based on user's behavior[C]// IEEE/ACIS. 14th International Conference on Computer and Information Science (ICIS). Las Vegas: IEEE Computer Society,2015: 95-99 .
[15] Jaiganesh M, Aarthi M, Kumar A.A Fuzzy ART-based user behavior trust in cloud computing[J]. Advances in Intelligent Systems & Computing, 2015,(324): 341-348.
[16] Ladekar A, Pawar P, Raikar D,et al. Web Log based Analysis of User′s Browsing Behavior[J]. International Journal of Computer Applications, 2015.115(11): 5-8.
AUserBehaviorAnalysisModelBasedonMachineLearningforEnterprisePrivateCloud
ZhengMinghui,LüJinghua
(College of Information Engineering, Hubei University for Nationalities, Enshi 445000, China)
TP393.2
A
1672-4321(2017)03-0095-06
2017-05-17
鄭明輝(1972-),男,教授,博士,主要研究方向?yàn)樾畔踩?,E-mail:mhzheng3@163.com
國(guó)家自然科學(xué)基金資助項(xiàng)目(61472121)、湖北省創(chuàng)新群體項(xiàng)目(2016CFA021)