羅斌
(中國人民銀行南京分行營業(yè)管理部,南京 210002)
自1987年Denning[1]首次提出異常檢測的概念之后,異常檢測很快成為入侵檢測領(lǐng)域研究的熱點(diǎn)。已經(jīng)有很多學(xué)者使用不同方法(如數(shù)據(jù)挖掘,人工智能等)從不同方面(如系統(tǒng)日志,進(jìn)程調(diào)度順序,網(wǎng)絡(luò)流量等)對異常檢測進(jìn)行了研究,但是將貝葉斯網(wǎng)應(yīng)用到網(wǎng)絡(luò)異常檢測的卻很少。Sebyala等人[2]將貝葉斯網(wǎng)應(yīng)用到proxylet的異常檢測中,根據(jù)CPU和內(nèi)存利用率構(gòu)建了一個(gè)僅有3個(gè)變量的貝葉斯網(wǎng)作為proxylet分類模型,他們的貝葉斯網(wǎng)過于簡單,而且沒有給出具體的檢測方法和檢測結(jié)果。張琨等人[3]用貝葉斯網(wǎng)作為分類器,并用這些分類器作為入侵檢測的分布式代理來構(gòu)造大型網(wǎng)絡(luò)的入侵檢測系統(tǒng),但測試結(jié)果表明他們的方法并不理想。由于現(xiàn)有的貝葉斯網(wǎng)異常檢測模型和方法不理想,所以本文提出一種新的基于貝葉斯網(wǎng)的網(wǎng)絡(luò)異常檢測方法。
定義1,隨機(jī)變量簡稱變量,是定義在樣本空間上的函數(shù),通常用大寫字母表示,如X,Y,Z。隨機(jī)變量的取值通常用小寫字母表示,如x,y,z。隨機(jī)變量X的所有可能取值的集合稱為它的值域,也稱狀態(tài)空間,記為ΩX。狀態(tài)空間是離散的隨機(jī)變量稱為離散隨機(jī)變量,狀態(tài)空間是連續(xù)的隨機(jī)變量稱為連續(xù)隨機(jī)變量。如未特別說明,本文中所說的變量均指離散隨機(jī)變量。離散隨機(jī)變量的狀態(tài)空間ΩX的大小即其包含的可能值的個(gè)數(shù),記為|ΩX|。若 Θ={X1,…,Xn}為一組離散隨機(jī)變量,變量Xi的第 i個(gè)取值為 xij,變量 Xi的狀態(tài)空間為 ΩXi,簡記為 Ωi,則Ωi={xi1,…,xim}。Ωi的大小為|Ωi|,且|Ωi|=m。對于任意兩個(gè)變量Xi和 Xj,i≠j,|Ωi|不一定等于|Ωj|。
定義2,設(shè) Θ={X1,…,Xn}為一組離散隨機(jī)變量。由 Θ 中所有或部分變量的狀態(tài)所構(gòu)成的向量稱為數(shù)據(jù)樣本(data sample)或數(shù)據(jù)向量(data vector),簡稱樣本(或向量),記為 d。數(shù)據(jù)樣本d的大小即其包含的變量的個(gè)數(shù),記為|d|。一些數(shù)據(jù)樣本放在一起組成數(shù)據(jù)集(data collection),簡稱數(shù)據(jù),記為D。數(shù)據(jù)集包含的數(shù)據(jù)樣本個(gè)數(shù)稱為數(shù)據(jù)集的數(shù)據(jù)量,記為ΦD。數(shù)據(jù)一般以二維表的形式給出,每一列對應(yīng)一個(gè)變量Xi,每一行代表一個(gè)數(shù)據(jù)樣本。例如:一個(gè)含有N個(gè)樣本的數(shù)據(jù)D={d1,…,dN},其中 dj=(dj1,…,djn),|dj|=n,dji為變量 Xi的某一可能取值 xik,1≤i≤n,1≤j≤N,1≤k≤|Ωi|,i,j,k∈Z。
定義3[4],所有變量的狀態(tài)都是已知的樣本稱為完整樣本(complete sample),有些變量的狀態(tài)未知的樣本稱為缺值樣本(incomplete sample)。只包含完整樣本的數(shù)據(jù)集稱為完整數(shù)據(jù)集(complete data),含有缺值樣本的數(shù)據(jù)集稱為缺值數(shù)據(jù)集(incomplete data)。
定義4,設(shè)兩個(gè)非空變量集X和W,W?X。D為定義在X上的數(shù)據(jù)集,從數(shù)據(jù)集D中挑出W中的所有變量對應(yīng)的所有列組成一個(gè)新的數(shù)據(jù)集稱作數(shù)據(jù)集D在變量集W上的投影,簡稱投影,記為DW。
定義5,貝葉斯網(wǎng)(Bayesian network)也被稱作信度網(wǎng)(Belief network),是一個(gè)有向無環(huán)圖(directed acyclic graph,DAG)合上各節(jié)點(diǎn)的概率分布。它可以表示為一個(gè)二元組<DAG,P>,其中 DAP 又可定義成二元組<V,E>。V 是一組節(jié)點(diǎn)的集合,V={X1,…,Xn},每一個(gè)節(jié)點(diǎn)代表一個(gè)隨機(jī)變量。E 是一組有向邊的集合,E={<Xi,Xj>|Xi≠Xj并且 Xi,Xj∈N},代表變量之間的直接依賴關(guān)系。P是一組條件概率的集合,P={p(Xi|π(Xi))|p(Xi|π(Xi))是Xi的父親們π(Xi)對Xi的影響,每個(gè)節(jié)點(diǎn)都依附有一個(gè)p(Xi|π(Xi))。其中,π(Xi)是Xi的父節(jié)點(diǎn)的集合。當(dāng)π(Xi)=時(shí),p(Xi|π(Xi))即是邊緣分布p(Xi)。
引理1[5],一個(gè)貝葉斯網(wǎng)可以定義一個(gè)聯(lián)合概率分布。假設(shè)網(wǎng)絡(luò)中的變量為 X1,…,Xn,那么聯(lián)合概率函數(shù) p(X1,…,Xn)為
定義6[4],后驗(yàn)概率問題指的是已知貝葉斯網(wǎng)中某些變量的取值,計(jì)算另一些變量的后驗(yàn)概率分布的問題。在此類問題中,已知變量稱為證據(jù)變量(evidence variables),記為E,它們的取值記為e;需要計(jì)算其后驗(yàn)概率分布的變量稱為查詢變量(query variables),記為 Q;需要計(jì)算的后驗(yàn)概率分布為 p(Q|E=e)。
第1步,變量選擇。選定一組刻畫網(wǎng)絡(luò)連接的變量Θ={X1,…,Xn},并獲得用于刻畫的網(wǎng)絡(luò)輪廓的數(shù)據(jù)D在Θ上的投影DΘ??坍嬀W(wǎng)絡(luò)連接的特征有很多,然而在構(gòu)建IDS的時(shí)候并非選擇的特征越多越好,因?yàn)樵趯?shí)際中,有些特征沒有包含或者包含極少的網(wǎng)絡(luò)狀態(tài)信息,它們對檢測的結(jié)果幾乎沒有影響,而且額外的特征將增加計(jì)算時(shí)間,降低IDS的檢測效率。因此,特征變量的選擇對檢測模型能否最大程度地表征網(wǎng)絡(luò)連接的特性至關(guān)重要。
第2步,貝葉斯網(wǎng)的結(jié)構(gòu)學(xué)習(xí)。用貝葉斯網(wǎng)結(jié)構(gòu)學(xué)習(xí)算法對數(shù)據(jù)DΘ進(jìn)行學(xué)習(xí),以得到表征網(wǎng)絡(luò)輪廓的貝葉斯網(wǎng)結(jié)構(gòu)N。在確定了變量集和訓(xùn)練數(shù)據(jù)集后就可以確定貝葉斯網(wǎng)的結(jié)構(gòu)。貝葉斯網(wǎng)結(jié)構(gòu)學(xué)習(xí)的算法已經(jīng)很成熟,文獻(xiàn)[6]提出了一種針對完整數(shù)據(jù)集的結(jié)構(gòu)學(xué)習(xí)方法,該方法簡潔高效,沒有對最大父節(jié)點(diǎn)數(shù)進(jìn)行限制就能找到全局最優(yōu)的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)。
第3步,貝葉斯網(wǎng)的參數(shù)學(xué)習(xí)。用參數(shù)學(xué)習(xí)算法對數(shù)據(jù)DΘ進(jìn)行學(xué)習(xí),得到Θ中各變量的概率分布P。貝葉斯網(wǎng)的參數(shù)學(xué)習(xí)包括以下兩個(gè)步驟:一是對于變量Xi,先根據(jù)貝葉斯網(wǎng)的結(jié)構(gòu)求出π(Xi),再求1≤j≤|π(Xi)|,j∈Z;二是在數(shù)據(jù)集D中,先統(tǒng)計(jì)出滿足Xi=k且π(Xi)=j的樣本的數(shù)目c1,再統(tǒng)計(jì)π(Xi)=j滿足的樣本的數(shù)目c2,若為所求;否則Xi=k統(tǒng)計(jì)的樣本數(shù)目c,則即為所求。
第4步,監(jiān)測模型訓(xùn)練。測試數(shù)據(jù)Dtest是定義在Θ{Xn}上的數(shù)據(jù)集。對于?dj∈Dtest,證據(jù)變量E={X1=dj1,…,Xn-1=dj(n-1)},查詢變量Q={Xn=0},根據(jù)N和P計(jì)算樣本dj的后驗(yàn)概率分布p(Q|E=e)。選定閾值 ε,如果 p(Q|E=e)≥ε,則判定 dj正常樣本;否則為異常樣本。
前3個(gè)步驟是對網(wǎng)絡(luò)連接的正常數(shù)據(jù)進(jìn)行分析,并獲得正常數(shù)據(jù)的貝葉斯網(wǎng)模型;步驟4是以后驗(yàn)概率作為衡量標(biāo)準(zhǔn)來判斷待測數(shù)據(jù)是否正常。
對于步驟1中的變量集Θ,其中的變量X1,…,Xn-1為實(shí)際的網(wǎng)絡(luò)連接參數(shù);而Xn則是一個(gè)添加的變量,表示“網(wǎng)絡(luò)連接是否異常”,Ωn={0,1},0 表示“正?!?,1 表示“異常”。
步驟4中計(jì)算的后驗(yàn)概率分布p(Q|E=e)其實(shí)就是回答這樣一個(gè)問題:對于樣本d,在已知X1=d1,…,Xn-1=dn-1的情況下,Xn為“正常”的概率是多少。用條件概率表示為
利用式1將式2展開得
本文提出了一種基于貝葉斯網(wǎng)的網(wǎng)絡(luò)異常檢測方法,能快速、有效的訓(xùn)練出網(wǎng)絡(luò)異常檢測的貝葉斯網(wǎng)絡(luò),下一步將對該方法進(jìn)行實(shí)證研究
【注釋】
①?表示笛卡爾積。