摘要:該文介紹了數據庫異常檢測的重要性。重點分析了Fp-growth關聯規則算法的實現過程,提出了一個基于Fp-growth算法的數據庫異常檢測系統,并給出了系統試驗數據結果。
關鍵詞:數據庫;Fp-growth關聯規則算法;數據庫異常檢測系統
中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2009)14-3607-02
Anomaly Detection to Achieve the Database Related Technology Research
WANG Qi
(Xingzhi Academy, Nanjing Xiaozhuang College, Nanjing 210012, China)
Abstract: This thesis introduced the importance of anomaly detection database. The thesis strongle analysed the Fp-growth algorithm of Apriori process, then it provided a database anomaly detection system based on Fp-growth algorithm and at last, the thesis given the results of system test data.
Key words: database; Fp-growth algorithm of Apriori; database anomaly detection system
1 數據庫異常檢測的重要性
隨著信息技術和數據庫應用的不斷增加,數據庫異常檢測得到越來越廣泛的重視和迫切需要。異常檢測技術是計算機安全技術中的重要部分,它從計算機系統中的若干關鍵點收集信息,并分析這些信息,檢測計算機系統中是否有違反安全策略的行為和遭到襲擊的跡象。異常檢測系統在幾乎不影響計算機系統性能的情況下能對計算機系統進行實時監測,并對系統提供針對內部攻擊、外部攻擊和誤操作的實時保護。異常檢測技術通過對異常行為的過程與特征的研究,使安全系統對異常事件和異常過程能做出實時響應。異常檢測技術擴展了系統管理員的安全管理能力(包括安全審計、監視、進攻識別和響應),提高了信息安全基礎結構的完整性。
2 FP-growth算法
在數據庫異常檢測技術中融入數據挖掘算法可以有效的從各種數據中提取出有用的信息,數據挖掘算法非常適用于從歷史行為的大量數據中進行特征提取,進而能有效的挖掘出非法攻擊的事件。本文所討論的數據挖掘算法是改進的關聯算法的FP-growth算法,并將其運用到數據庫異常檢測中。
Fp-growth算法采用頻繁模式增長,將提供頻繁集的數據庫壓縮到一個頻繁模式樹,但仍保留項集關聯信息;然后,將這種壓縮后的數據庫分成一組條件數據庫(一種特殊類型的投影數據庫),每個關聯一個頻繁數據項,并分別挖掘每個數據庫。Fp-growth樹具有自身一種特殊的結構:①由三個部分組成,這三部分分別為:標記為空結點(NULL)的根、作為根的兒子的項目前綴子樹集合和頻繁項頭表;②項目前綴子樹中的每一個節點由三個域組成:項目名、支持計數和節點鏈;③頻繁項頭表的每個條目包含三個域:項目名、支持度計數和節點鏈的頭指針,指向該項目在模式樹中的第一次出現位置。Fp-growth算法的具體描述如下:
算法:構造FP-Tree。
輸入:事務數據庫D,最小支持數ξ。
輸出:FP-Tree。
過程:
(1) for each transaction t in D
(2) {
(3) for each item x in t
(4) 從C1中找到與x同名的候選項c,使c的支持度計數加1;//說明:C1為候選1-頻繁項集的集合。
(5) }
(6) 選取C1中支持度計數大于ξ的項,得到1-頻繁項目集F,按支持度計數降序排列F得到L;
(7) 創建樹根root,標記為NULL;//開始建樹
(8) for each transaction t in D
(9) {
(10) 選取t中頻繁項目,并按L的順序排列,記為[p|P],其中p為第一個元素,P為余下元素的列表;
(11) InsertTree([p|P],root);
(12) } 說明:過程的(1)-(6)句通過掃描一次事務數據庫得到1-頻繁項集L;從(7)開始創建FP-Tree,(8)-(12)通過再次掃描事務數據庫來構建FP-Tree。
procedure InsertTree([p|P],root)
(1) {
(2) 如果root有兒子N,使得N.item-name=p.item-name,那么N.count++;
(3) 否則
(4) {創建新節點N;
(5) N.count=1;
(6) p.parent=root;
(7) 將N.node-link鏈到頭表中與它同名的項或樹中與它同名的項;}
(8) 如果P非空,那么
(9) {
(10) 把P的第一個元素賦值給p,并把它從P中刪除;
(11) InsertTree([p|P],N);
(12) }
(13) }//過程結束
從上面的算法描述可以看出Fp-Tree構造算法剛好掃描兩次事務數據庫:第一次掃描生成頻繁1-項目集;第二次掃描實現構造Fp-Tree。
3 數據異常檢測技術的實現
結合以上數據庫和數據挖掘算法的研究,本文設計實現的數據庫異常檢測系統結構如圖1。其結構主要分為:數據預處理、數據挖掘和異常檢測三個部分,系統采用的是SQL-Sever數據庫。
3.1 數據預處理
本文的異常檢測系統首先將進行數據采集工作,采集的方法是利用SQL-Server自帶工具事件探測器對數據庫的事務日志數據記錄跟蹤,采集得到的數據最終保存在數據表中。在數據采集完之后,需對數據進行預處理,將數據從多值型轉化為布爾型。首先,把多個屬于同一會話的審計記錄歸并到同一個會話連接中去。我們定義一個連接包含的屬性為:(ID,用戶,表,客戶端,操作)。其中,ID為記錄本次連接的ID;用戶為操作表的數據庫用戶名稱;表為正在運行中的表名;客戶端為提交SQL語句的客戶機名;操作為用戶對表的select,delete,update,insert操作。然后,將每一個屬性值由多值型轉化為布爾型,在本系統中采用類別屬性值,即將客戶端分為c1,c21等幾個布爾類型,將操作分為select,update,delete,insert幾個布爾類型,得到相應的的例表。最后,將預處理后的表里的數據內容寫入到文件中,以便于關聯算法的挖掘。該文件的格式為:1表示客戶端1;2表示客戶端2;3表示用戶1;4表示用戶2;5表示用戶3;6表示select;7表示update;8表示delete;9表示insert。該文件每一行輸出的格式為:1 4 6 或 2 5 8,即該文件每一行的輸出可作為一個事物,整個文件輸出可作為為一個事物集D運用到關聯算法中進行數據挖掘。
3.2 數據挖掘
將預處理后文件輸出的事物集D運用Fp-growth算法進行關聯挖掘,設最小支持度為10%,和最小置信度為70%,從而產生事物集D的關聯規則集合,并對此規則集合進行歸并更新。具體過程為:采集一定的新審計數據后,對這些數據進行審計挖掘,得到一些規則對新產生的規則集中每條規則,在聚簇規則中尋找相匹配的規則。規則匹配的含義為,兩條規則的左右兩邊完全相同。如果在聚簇規則集中找到一條匹配的規則,那么將聚簇規則集中該規則的記數加1,并且使用加權平均的方法更新聚簇規則集中這條規則的支持度和可信度。否則,如果沒有找到一條匹配規則,就將這條規則加入到聚簇規則集中,并將這條規則的計數器加1。這樣訓練聚簇規則集若干次,直到聚簇規則集穩定為止。規則最后保存到數據庫或文件中。
3.3 異常檢測
異常檢測的步驟為:將采集的待檢測審計數據進行預處理,轉化成我們前面定義的會話記錄格式。對待檢測的會話連接記錄進行關聯規則挖掘,產生關聯規則集(與前面訓練異常模型的方法相同)。將產生的關聯規則集與我們建立異常檢測模型進行分析比較,比較出異常的記錄。如果是異常,則顯示出該記錄的詳細信息。 響應單元是對事件分析器做出反映的單元。對檢測來說,如果發現異常,則把異常信息記錄到異常表中,提供給系統管理員使用。對于異常檢測,分析結果的處理包括對判斷結果異常時候做處理,記錄入侵檢測信息并報告給系統管理員。
3.4 試驗數據結果
本試驗系統選取SQL-Server事件日志文件中300個事件作為歷史日志行為數據集,另外選取150個事件集合作為當前審計行為數據集,按照上述系統設計進行Fp-growth關聯挖掘,數據結果如下:
1)歷史日志行為數據規則集:設最小支持度為10%,和最小置信度為70%,對選取出的300個歷史事件數據挖掘結果如表1。
2)當前審計行為數據規則集:這里取最小支持度為10%,最小置信度為70%,利用Fp-growth算法對150個當前審計事件數據挖掘出相應的結果,并采用上面類似的方法最后只取有實際意義的規則,挖掘出的規則集如表2。
3)異常結果:檢測的異常結果如表3。
正常事件為:delete∧用戶2→客戶端1。
4 結束語
隨著計算機數據庫技術的迅速發展和應用的同時,數據庫安全性威脅也日益嚴重,數據庫的異常檢測技術正成為研究的熱點。本文對數據挖掘中的Fp-growth算法詳細分析后,運用到數據庫的異常檢測技術中去,并通過搭建數據庫異常檢測系統得到了相應的試驗數據。
參考文獻:
[1] 用IDS入侵檢測系統保衛數據庫安全[J].電腦報,2005.
[2] 唐正軍.黑客入侵防護系統源代碼分析[M].機械工業出版社,2002.
[3] 彭木根.數據倉庫技術與實現[M].北京:電子工業出版社,2002.
[4] 陳文偉,黃金才.數據倉庫與數據挖掘[M].北京:人民郵電出版社,2004.