任新東 胡廣朋
(江蘇科技大學計算機學院 鎮江 212003)
高速發展的網絡環境提供更自由、開放的環境的同時也帶來了更大的安全威脅。當前環境下,數據泄露是導致國民財產安全遭受重大威脅的主要原因之一[1],數據信息的大規模泄露時會影響社會的正常運作。據2019 年IBM 新發的《數據年度數據泄露成本報告》[2]分析可得,近幾年數據泄露成本逐年增加即導致的經濟損失慢慢加大。因此,針對數據信息泄露展開安全防護工作、將安全威脅扼殺在前期是降低經濟損失、維護信息安全的重要手段。在造成數據信息泄露的眾多原因中需要特別關注的是,系統內部人員的異常操作和純惡意的員工行為導致的內部問題。近年來對網絡安全的智能防護不斷發展,結合機器學習、深度學習的各種防護方法層出不窮,但想要檢測來自系統內部的惡意操作則需要更新興的檢測技術,如用戶行為分析(User Behavior Analysis,UBA),借此填補數據保護與內部欺詐防護的空白。
國內外對于用戶行為分析的研究主要分為靜態檢測與動態檢測兩類。在動態檢測領域主要在目標有行為動作時提取動態行為特征[3~6],而后與惡意樣本一同進行分析對比。用戶行為具有復雜性和誤導性,即用戶行為過程中的某單個行為不一定具有異常特征,需要對行為進行關聯性分析得到最后的目的結果。基于用戶行為的特點,本文假設用戶在進行操作時的一些行為是可以被觀察的,提出一種可應用于用戶惡意行為檢測的規劃識別方法。規劃識別是人工智能領域的重要組成部分,是通過對智能體的系列行為(動作、狀態等)觀察,推導分析智能體的目標或行為動作的過程[7]。規劃識別的基本概念由Schmidt 等[8]首先提出,并由Goldman 等[9]構建了相關的概率模型。發展至今,規劃識別在危機管理[10]、入侵檢測[11~12]、輔助教學[13~14]等領域均有廣泛的應用。與在其他領域應用規劃識別不同,在入侵檢測這種具有對抗性的領域中智能體之間的行為一般是離散、無序、模糊的。應對這種問題時,應該首先識別出智能體現行的規劃和目標,然后對潛在的未來規劃與目標進行預測[15~16],最后實施有效的應對方法。
本文針對用戶行為分析構建網絡模型,進而采用基于隱馬爾可夫的規劃識別方法,利用可觀察節點與隱藏節點之間的關聯關系,識別分析用戶操作是否存在惡意行為,并以UNIX 系統用戶日志的數據集SEA為例設計實驗,驗證方法的有效性。
實現用戶行為分析的網絡模型如圖1 所示。首先將系統使用日志當作觀察對象,檢測用戶的操作行為,將檢測到的行為操作經過特征抽象后構成數據集輸入給規劃識別方法,然后分析識別出行為是否異常,最后反饋給系統管理員,對存在異常操作的用戶進行處理規避,調整系統的安全策略,獲取新的系統日志,更新可觀察的數據集,獲取新的分析結果,達到維護系統安全的目的。

圖1 用戶行為分析框架
規劃識別方法是整個行為分析網絡的核心,整個分析過程以特征抽象處理后的數據特征作為輸入,通過識別算法分析尋找異常的操作行為,分析各行為之間相互轉換的概率。在對數據集的分析時間,不斷使用網絡分析狀態轉換,達到對安全態勢的預測識別。
對原始數據進行語言處理,即特征抽象是進行識別分析的一個關鍵步驟。經常使用的特征提取方法有;詞袋模型(Bag-of-words)以及詞頻與逆向文件概率模型(TF-IDF)。
詞袋是文本的表示方式,因其僅關注被提取文檔中是否出現已知單詞,對于文本的結構順序不進行考慮,故詞袋模型的復雜程度主要在于決定如何設計已知單詞的詞匯和如何對已知單詞評分。詞袋模型主要有三個步驟:分詞、統計修訂詞特征值和標準化。在使用詞袋模型時,一般可以使用CountVectorizer 方法來完成,該方法會將文本中的詞語轉換為詞頻矩陣。
此外在一些語料庫中,有一些經常出現但沒有實際語意的詞出現,如果使用詞袋模型處理完后直接輸入會掩蓋有意義詞得效果。TF-IDF 是一種加權技術,即可以評估某一詞對文本或語料庫得重要性。單詞的重要程度與其在文件中出現的次數成正比,與其在語料庫中的頻率成反比。其主要根據某單詞或短語的詞頻(TF)即在文章中出現的頻率。在處理得到TF后還需考慮逆向文件概率IDF,單詞的IDF 可以由總文件數除以包含該單詞的文件的數量,然后再將結果取對數,若假設總的文檔數目為n,包含單詞w的文件的數目為m則有:

當包含單詞w的文檔數目越小,IDF就越大,就說明單詞w 的類別區分能力越好。假如某一類文檔集C 中包含單詞w 的文件數為n,其他類別文檔集中包含該單詞的文件數目為m,實際運用中若只因n 較大導致IDF 較小,則在C 中該給予該單詞較高的權重,并作為文檔集的特征以與其他文檔區分。
針對于復雜的網絡環境與入侵手段,本文提出的基于隱馬爾可夫的規劃識別方法(PRHM)同時描述了目的與行為、目的與目的之間的關聯關系,其中將目的節點之間的相互轉換的概率分布記作Aij=p(sj|si),1 ≤i≤N,1 ≤j≤N,即從目的si轉到的sj的概率;目的與行為節點的關聯關系描繪了目的si和相對應的行為序列V之間的概率分布,記作Bj(k)=p(vk|si),1 ≤j≤N,1 ≤k≤M;與其他的規劃識別方法不同,PRHM 方法會對預設初始的目的節點概率,記作π=p(si),1 ≤i≤N,即目的行為Si初始情況下的概率分布。
PRHM 方法在入侵檢測領域的應用主要由數據預處理過程、網絡模型建立并調整模型參數、識別判斷當前的安全態勢和對安全態勢的預測四個部分組成。在本文提出的方法中,首先對選用的數據集進行數據預處理,包括對冗余信息的刪減和不規范數據的規范化;然后將數據集作為智能體的行為進行觀察并對網絡模型進行優化;接著輸入一組信息序列,對輸入的數據使用優化的Forwardbackward算法進行計算,以確定輸入序列的發生概率;最后預測層對概率值最大的數據序列做狀態信息的預測,獲取對行為的預測值。假設現有一數據集,其可觀察狀態類型有三種,目的狀態有四種。使用本文的算法模擬預算后,有如圖2 預測狀態的指數曲線以及圖3的狀態轉換路徑密度。

圖2 預測狀態指數曲線

圖3 狀態轉換路徑
在規劃識別模型建立后,在已知參數變量λ和被觀察得動作序列O的條件下,若針對序列進行觀察,求解出的是一段時間內的安全態勢,實現的識別效果不夠精準。因此,本文在其他規劃識別方法的基礎上,針對具體時刻進行安全態勢的識別,以提高規劃識別方法的應用效果。
假設現有的規劃識別模型參數為λ,且序列記作O=(O1,O2,…,OT),則在t 時刻且狀態為Si時,在t時刻之前有:

本次實驗主要針對使用UNIX系統的用戶行為日志進行分析。主要的樣本數據來自由Schonlau等人構造的經典數據集SEA 數據集。該數據集涵蓋了70 多個UNIX 系統用戶的行為日志,主要是系統記錄的用戶使用的命令。其針對每個用戶采集了15000條命令,并在用戶中隨機選取了50名定義為正常用戶,將其他用戶的命令隨即插入,以此模擬內部人員實施攻擊的行為。并且該數據集的數據被按塊分割,每100個命令分為1塊,在進行驗證實驗時將數據塊中的三分之一作為訓練集,剩余的數據塊作為測試集,最后分析本文算法在以實際使用為基礎的數據集中識別的效果。
本次對方法的驗證中,是完全基于SEA數據集的白樣本即正常數據的。本文使用了數據集中前50 個沒有異常的操作序列進行基準訓練。然后對數據集中的異常數據進行識別檢測,對于方法中判斷異常的閾值確認,采用了設置初始閾值而后逐漸變大的方法,由此獲取閾值和方法準確率、召回率的關系如圖4 所示,并驗證該方法在惡意檢測領域有較好的應用前景。

圖4 閾值與準確率、召回率之間的關系
為了提高對智能體行為的預測效果,并使用不同的節點以更清晰地區分規劃識別模型中智能體的狀態和行為之間的層次結構。本文以隱馬爾可夫模型為基礎,提出一種實現規劃識別的具體方法。基于隱馬爾可夫的規劃識別方法,可以在僅以可觀察序列為已知的條件下,實現對未來目標的概率預測。該方法對于可觀察行為和隱藏行為之間轉化關系的探究,在簡化一般規劃識別方法復雜結構的同時也較為精確地實現識別效果。本文的實驗結果表明,該規劃識別方法在惡意行為檢測領域的實用效果,在合理提取攻擊特征的情況下,對于惡意行為操作有較好的學習與檢測性能。
本文提出的方法主要考慮系統的使用日志,需對原始的數據信息進行處理。雖然抽象后的數據特征可使網絡的識別精度更高,但有些原始信息的處理較為復雜,使得網絡對數據信息處理工作量增大。如何更簡單高效的處理原始報文信息將是接下來的研究重點之一。并且雖然本文提出的算法一定程度上提高了識別的精度,但在實際應用場景中還需要更準確的識別,接下來的研究學習將盡可能地提高算法的精度,以期實際環境下的應用。