崔景洋,陳振國,田立勤,張光華
(1.河北科技大學 信息科學與工程學院,石家莊 050018;2.北京天融信網絡安全技術有限公司,北京 100085;3.華北科技學院河北省物聯網監控工程技術研究中心,河北廊坊 065201)
隨著計算機與網絡的快速發展,機器學習技術在人們的生活與工作中起著越來越重要的作用,并在興趣推薦[1-2]、人臉識別[3]、路徑規劃[4]等領域得到廣泛應用。然而,機器學習技術在給人們生活帶來便利的同時也產生了一系列風險問題,例如,信息的過度分析使得人們的生活日益透明化,計算機視覺技術的廣泛應用使得圖片驗證碼防御作用下降等[5]。一方面,計算機性能的增強以及技術的不斷發展使得網絡攻擊者的攻擊方式更加成熟、趨于隱蔽,難以通過傳統威脅檢測系統進行檢測與防御[6]。另一方面,網絡流量數據、設備日志數據量快速增長也提高了對檢測性能的要求[7]。
為更好地檢測潛在威脅并及時準確地發現安全問題,用戶與實體行為分析(User and Entity Behavior Analytics,UEBA)技術應運而生,在用戶行為分析(User and Behavior Analytics,UBA)以及安全信息和事件管理(Security Information and Event Management,SIEM)的基礎上發展而來[8],是一種針對內外網威脅進行分析并通過多維度對系統所面臨的風險進行綜合評價的威脅檢測方法[9],其中增加的實體(Entity)概念強調了設備行為在網絡攻擊與威脅檢測中的作用。與傳統檢測方法相比,UEBA 進一步提高了威脅檢測的精度與效率,增加了風險判斷的表述功能,有利于系統發現未知風險,增強系統安全性[10]。
根據用戶和實體行為建立基線,找出用戶以及實體的異常行為,不僅可以實現企業內部行為檢測,還可以解決外部網絡安全問題[11]。因此,用戶與實體行為分析技術已被廣泛應用于企業內部行為分析[12]、主機入侵檢測[10,13]、用戶畫像研究[14-15]、復雜行為建模[16]、推薦系統[17-18]等任務。本文從統計學習、深度學習、強化學習等3 個角度出發對機器學習在用戶與實體行為分析技術中的研究與應用進行介紹,并討論相關分析方法的局限性與發展趨勢。
用戶與實體行為分析由Gartner公司[19]于2015年在《Market Guide for User and Entity Behavior Analytics》調查報告中提出,該報告詳細介紹了UEBA 的定義、使用范圍、應用意義等。UEBA 是一類用來追蹤監視用戶、IP 地址、主機等異常行為的模型,可以通過行為的上下文關聯進行潛在惡意活動分析[9]。與SIEM 和UBA 相比,UEBA 覆蓋的分析范圍更廣,利用的數據種類更多,三者在不同角度的對比情況如表1 所示。

表1 SIEM、UBA 和UEBA 的對比Table 1 Comparison of SIEM,UBA and UEBA
自20 世紀90 年代以來,學者們就開始分析用戶的網絡行為[20],由于當時攻擊手段單一、檢測能力有限,因此威脅檢測的目標多以實時防御為主[21]、手段多以專家經驗所轉換的識別邏輯檢測為主[22]、結果多以“正常”和“異?!眱煞N狀態為主。之后,新的攻擊方式不斷增加、新的威脅類型不斷出現,傳統方法在面對新威脅時的檢測效果有限,學者們開始使用進化算法識別未知威脅[23]。21 世紀初期,支持向量機(Support Vector Machine,SVM)得到了快速發展與廣泛流行,作為傳統機器學習算法的里程碑,該算法衍化出一系列變種形式[24],在威脅檢測方面也有不錯的效果。目前,行為分析與入侵檢測方法多數屬于人工智能范疇,以傳統統計學習方法為主。隨著設備算力的提高與深度學習的發展,學者們開始廣泛采用神經網絡算法進行檢測,以深度學習為主的檢測方法在未來的研究中可能會成為主流。此外,知識圖譜等復雜數據類型在攻擊路徑方面有較強的表述能力,因此也有一部分學者使用知識圖譜進行入侵檢測研究[25]。整個UEBA 技術的發展歷程呈現由簡單到復雜的趨勢,各個發展階段中具有一定代表性的研究成果如圖1 所示。

圖1 UEBA 發展趨勢圖Fig.1 Development trend chart of UEBA
UEBA 的分析對象包括用戶行為與實體行為。用戶行為指的是用戶在終端設備的操作[26],例如使用應用程序、與數據的交互、點擊行為、鼠標移動、執行命令行語句等。實體行為主要指無法與真實用戶產生直接關聯的行為[27],例如某些APP 自身的運行日志、病毒木馬的動作記錄以及一些高級持續性威脅(Advanced Persistent Threat,APT)[28]的行為軌跡等。
根據行為產生路徑與方向的不同,UEBA 的研究內容主要包含內部威脅分析及外部入侵檢測兩個方面。內部威脅分析主要解決企業內部違規操作所引起的安全問題,從內向外所延展出的異常事件復雜多變的形式是內部行為分析中的研究難點,對于員工行為進行分析、發現其中的異常點,可以降低企業風險,提高企業管理效率,避免從內部產生攻擊。外部入侵檢測同樣也是UEBA 技術中不可或缺的一環,例如防火墻(Firewall)、入侵檢測系統(Intrusion Detection System,IDS)、入侵防御系統(Intrusion Prevention System,IPS)以及Web 應用防火墻(Web Application Firewall,WAF)等[29],這幾種外部檢測方法是目前各研究領域的熱點,在實際應用中均有不錯效果。
本節將討論統計學習方法在UEBA 技術中的應用。統計學習是基于統計方法對數據規律進行總結的一種關鍵技術,根據類別標簽的使用方式不同,統計學習由監督學習、無監督學習、半監督學習等研究類別組成[30],其中:監督學習指的是使用帶有類別標簽的數據進行模型建立的過程,主要用于解決分類、回歸等問題[31];無監督學習是指有數據但沒有標簽的情況,主要應用于聚類分析、異常值檢測等任務[32];半監督學習是指訓練數據中只含有小部分標簽,根據實際情況在醫療診斷、物聯網設備分析、工業故障分析、流量異常檢測等領域中[33]有廣泛應用。
監督學習的建模過程一般是構建預測器的過程。監督學習使用帶有已知的類別標簽訓練數據進行模型訓練,模型建立完成后再對待檢測樣本進行預測,無論是對于離散變量的分類還是對于連續變量的回歸,都需要模型給出一個預測值。監督學習的代表算法有KNN、SVM、邏輯斯諦回歸、線性回歸、決策樹等[34],在UEBA 中,基于監督學習的算法可以根據先驗數據構建預測模型,并對新樣本進行預測,從而判斷新樣本的異常程度或者對新樣本按照不同的攻擊類型進行多分類和二分類。
基于規則的檢測方法在入侵檢測系統中具有廣泛應用。文獻[35]根據經驗設計檢測邏輯對SQL 注入行為進行檢測,模型利用SQL 語句規范來定義Web 應用程序生成和執行SQL 查詢時預期的語法結構,建立SQL 語句有效性檢測模塊,并使用事件監控模塊檢測違反規范的查詢行為,符合預期結構的語句才能正常在數據庫內執行,實時檢測SQL 注入攻擊。之后將檢測的結果記錄到日志中以便后續檢測過程中檢測結構的建立,其中準確率(Accuracy)和召回率(Recall)達到100%,具體的檢測過程如圖2所示。

圖2 通過人工經驗轉換的規則檢測SRL 注入語句的流程Fig.2 Procedure of detecting SRL injection sentences through the rules of human experience conversion
文獻[36]研究無人機(Unmanned Aerial Vehicles,UAV)的安全問題,根據無線數據攻擊的鏈路特征以及其他影響因素建立攻擊檢測規則,增強了無人機系統的安全性,其準確率為97.4%。文獻[37]建立基于預定義事件簽名的Web 應用入侵檢測系統,通過簽名知識庫進行行為分析與異常檢測。但上述基于規則的檢測方法難以應對未知威脅,不能夠對相應的系統進行動態防護[38]。
回歸方法在檢測過程中多應用于連續異常值的檢測,大部分帶有時序性特征。文獻[39]對用戶的登錄時間、登錄間隔、在線時長、會話時長等行為特征進行回歸分析,建立用戶習慣畫像進行異常識別并及時調整網絡負載。學者們還使用3σ 準則、自回歸(Autoregressive,AR)模 型、自回歸移動平 均(Autoregressive Moving Average,ARMA)模 型等[40]將歷史行為基線與預測值進行比較,如果預測值與行為基線相差較大,則會被標注為異常值。
針對有類別標記的行為數據,可以直接使用算法構建模型。文獻[41]使用KNN 算法對用戶行為數據進行分析,建立針對“偽裝者”數據的分類模型。監督學習算法的性能瓶頸在于訓練數據集中類別標簽的正確率,由于很多數據集樣本的標簽都已經固定,因此一些學者也采用多算法結合的方式提升異常檢測的正確率。文獻[42]基于KNN 構建一種云環境下的入侵檢測系統,該系統參考了智能體(Agent)與聚類算法的特性提高了入侵檢測的效率,系統的準確率與召回率分別為92.23%與88.07%,在實際應用中取得了不錯的效果。此外,決策樹算法的檢測方式簡單、邏輯清晰、可解釋性強,也大范圍應用于異常檢測領域[43]。為減少建模時間,提升模型檢測效 果,文 獻[44]使 用SMOTE(Synthetic Minority Oversampling Technique)采樣方法對高度不平衡的數據進行預處理,之后分別使用Hellinger距離以及K-L 散度對構造過程進行改進,建立了惰性決策樹(LazyDT)提高算法性能。
基于監督學習的行為分析與異常檢測的優勢在于可以使用先驗知識進行建模,在從一定程度上提高了檢測精度,但檢測流程過于依賴樣本標簽。在實際應用中:一方面,樣本標簽的質量會對檢測模型的構建起到非常大的影響;另一方面,對數據樣本進行標注同樣也會消耗大量人力成本與時間成本。因此,在使用監督學習算法建立異常識別模型時,還需要注意在建模過程中訓練成本與檢測效率之間的平衡問題。
在實際入侵檢測與行為分析中,數據在產生時往往并不帶有標簽,而采用一些方式對數據進行標注會耗費一定的資源。無監督學習可以從無標簽數據中學習一定的規律,并使用這些規律對新數據進行分析。無監督學習的代表算法有K 均值(K-Means)、基于密度的聚類算法(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)、主成分分 析(Principal Component Analysis,PCA)等[45]。在UEBA中使用聚類等無監督學習方法進行威脅識別時,一般會對大部分數據樣本的代表性特征進行學習,并根據數據自身的特性進行分類,最終針對偏離群體的數據樣本進行分析,判斷其是否為異常點。近年來,各種類型的網絡設備與數量均呈現增長趨勢,所產生的海量數據難以標記,因此無監督威脅檢測算法的研究是未來的重點之一。
K 均值算法的訓練速度快、可解釋性強,廣泛用于異常識別。文獻[46]基于K 均值算法構建一種多層次入侵檢測模型,通過分批進行小規模訓練的方式減少模型的迭代時間,借鑒支持向量機的思想來優化檢測流程,準確率為95.75%,FPR 為1.87%,取得了不錯的效果。文獻[47]基于K 均值算法按照特征對流量數據進行分組,在調參的同時盡可能地保留分組信息,該方法可以顯著降低訓練模型所需的特征數從而提高檢測效率,其準確率達到了99.73%。與K 均值算法相比,DBSCAN 算法不僅更適合識別不規則形狀的聚類簇,還能在一定程度上減少噪聲數據在建模過程中的干擾[48]。文獻[49]構建一種自適應DBSCAN 算法,該算法首先分析流量數據的特征值,之后對聚類簇內數據與噪聲數據分別進行處理,并建立對應的余弦相似性計算過程。該處理方式降低了噪聲數據對于模型準確度的影響,增強了模型的魯棒性。由于采取了對噪聲值單獨處理的建模思路,因此該模型可以更加細致地檢測出隱蔽的DoS 攻擊,其準確率達到了99.96%,具體建模過程如圖3 所示。

圖3 通過對簇內數據與噪聲數據分別建模檢測異常的流程Fig.3 Procedure of anomaly detection through modeling for data in cluster and noise data respectively
在實際異常檢測過程中,有時不需要獲得確定性的聚類結果。對用戶及實體行為進行模糊聚類[50],可以使得一個實體包含在若干聚類簇內,從一定程度上可以避免遺漏異常行為,降低了異常檢測算法的漏報率。主成分分析方法主要用于建模前數據的降維處理,文獻[51]使用PCA 算法處理了數據庫操作行為日志,降低了行為數據維度,提高了建模速度。同時,主成分分析也可以直接用于異常檢測,文獻[52]設計一種基于PCA 算法的無監督自動化異常檢測方法,通過計算降維后源空間與低維空間映射點的直接距離,檢測主機操作日志映射過程失衡的情況,進行異常點的判斷。
隨著設備數據產出量的不斷擴大,樣本的標記工作也變得愈發困難,基于無監督的異常檢測方法在UEBA 研究領域將成為熱點方向,無監督算法可以減少數據樣本對標簽的依賴,一方面可以降低類別標注的成本,另一方面能從未被標簽束縛的樣本中學到新規則,解決一定的未知風險識別問題。但不足之處在于無監督學習算法往往都需要大量的計算資源,如何降低計算開銷解決大規模數據處理問題,是無監督異常檢測算法一個重要的研究方向。
半監督學習因其所使用的訓練數據只含有部分標簽,所以名為半監督學習[53]。盡管對每條網絡數據進行標注需要付出一定的代價,但在各網絡設備、網絡探針或者監測系統中獲得少部分帶有標簽的數據相對比較容易。半監督學習能夠將少量帶標簽與大量無標簽數據相結合構成訓練集完成建模過程,通常半監督學習可以獲得比無監督聚類更好的檢測效果[54]。半監督學習算法包括半監督聚類、半監督分類、半監督降維、半監督集成等算法[55]。在UEBA 中半監督算法可以在一定程度上解決實際流量數據、行為數據異常樣本與正常樣本的不平衡分布問題,比較適合應用于當前形勢下的工業安全防御體系。
聚類作為異常檢測的主要手段在現階段研究中占有較大比重,半監督聚類是無監督聚類的升級版本,結合有監督與無監督學習過程的優勢,優化異常檢測與行為分析的效果。文獻[56]提出一種基于協同聚類的半監督DDoS 檢測算法,該算法中無監督的部分可以剔除與DDoS 檢測無關的流量數據,從而減少誤報率,提高準確性,最終準確率為98.23%、FPR 為0.33%。文獻[57]提出一種基于K-Means 的半監督算法,該算法能夠通過改進聚類初始中心的選擇解決孤立點和局部最優的問題,優化DDoS 檢測的結果,其準確率為99.68%,效果優于文獻[56]的檢測模型。半監督分類同樣也有不少研究成果,文獻[58]設計一種半監督支持向量機,可以充分利用未標記樣本數據的潛在信息,優化分類過程,最終構建在線分類器。在實際威脅檢測與行為分析中,由于數據樣本的維度過高,通常需要將特征降維后再進行建模,針對不平衡樣本分布情況,可以使用文獻[59]提出的降維算法,專門應對稀疏樣本問題,該算法通過保留矩陣局部投影的方式處理未標記信息,之后再對其他未標記信息進行處理,分析其K 近鄰的幾何結果,適合異常檢測問題的數據處理。除此之外,半監督集成也是當前的一個研究熱點[60],可以先將未標記的樣本通過自我訓練的方式組成若干小的分類器,之后將這些小分類器集成為一個整體進行預測,解決了標記樣本數據過少的問題。
無論是對于企業內部用戶行為分析還是外部入侵檢測,最大的問題仍然是數據樣本難以標注。與監督學習相比,半監督學習對數據標注比例沒有特定要求;與同一算法的無監督學習相比,半監督學習往往能取得更好的檢測效果。但由于樣本標簽的特殊性,半監督學習需要更復雜的處理流程與更長的訓練時間。此外,在半監督算法的設計過程中,一般都只針對一種類型的問題進行優化,同一個半監督算法難以推廣到其他應用場景。例如,文獻[56-57]均專門針對DDoS 場景進行設計,不能檢測其他類型的威脅或者異常情況。
基于統計學習方法對內部人員進行行為分析、外部網絡異常進行檢測的技術手段發展比較成熟,側重點在于根據樣本標注進行各類別數據中的規律學習,在計算效率與計算結果的可解釋性方面要優于深度學習方法。由于訓練過程較為清晰,因此異常行為鏈的全過程呈現方面與深度學習相比具有較大的優勢。表2給出了部分統計學習算法的對比情況,其中:N/A 表示原文獻未體現相關指標;性能評價數據來自原文獻,可能存在實驗環境及參數的不同?;趥鹘y機器學習的異常檢測多為二分類算法,即判斷一個樣本是否為異常樣本。相較多分類任務,二分類任務在模型訓練成本以及預測準確度評價方面具有一定優勢,因此在整體性能表現上要優于深度學習方法。

表2 部分統計學習算法的性能評價對比Table 2 Comparison of performance evaluation of some statistical learning algorithms
在實際應用中,樣本標注仍然是當前所面臨的主要問題之一。對于有監督學習而言,盡管可以通過設置合適的參數、選取恰當的模型等方法得到不錯的模型表現,甚至能夠達到100%的預測準確率,但只局限于實驗環境。在企業應用中由于樣本標注成本問題,半監督學習在未來會更具發展前景。
以往神經網絡受限于計算能力不足,應用范圍不如統計學習方法廣泛,但自從21 世紀初設備算力逐步提高,神經網絡的研究取得了革命性進展,尤其在最近10 年間,對于神經網絡的研究與使用成為當下最主流的研究方向之一。深度學習通過神經網絡從連續的神經層中學習參數,構建預測模型。深度學習與傳統統計學習方法在特征與權重的處理方式上有著明顯不同,尤其神經網絡非線性權重模型在特征選擇方面表現優異。隨著當前安全數據規模的不斷擴大,特征的種類也變得越來越多,傳統機器學習手段在進行復雜特征選擇方面的優勢不足,而深度學習方法可以進行自動特征選擇,更適合目前的情況。在實際應用中,深度學習模型主要包括自編碼器(Auto Encoder,AE)、多層感知神經網絡、循環神經網絡、卷積神經網絡、生成式對抗網絡等。
自編碼器是一種可以學到輸入數據高效表示的神經網絡,對監督信息不敏感,一般包含編碼器(Encoder)與解碼器(Decoder)兩個部分。常用的自編碼數據異常檢測模型有自編碼模型和變分自編碼(Variational Auto Encoder,VAE)模型兩種。
文獻[61]基于自編碼模型建立一種稀疏數據表示框架,針對大規模高維數據可以起到降維的作用,同時能夠提取比手動處理更高級的特征,最終F1 值(F1-Score)達到了0.812 0。有些自編碼器需要學者們提供不包含異常的干凈數據才能正常建模,而有些魯棒性較強的自編碼器[62]可以直接使用包含異常的數據,并從中識別出異常值和噪聲,但其準確率與召回率均只有65%。但在無監督特征抽取、復雜任務處理、異常實時檢測等方面,自編碼器效果有限,因此學者們也會采用與其他方法結合的形式進行異常檢測。文獻[63]在使用編碼器的過程中發現在嘗試將輸出數據盡量還原成對應輸入的過程中,隱藏層的數據流動會產生壓縮,基于此原理提出一種基于密度估計的自編碼異常檢測模型,解決了自編碼器在訓練集上重建異常數據能力差的問題。在訓練階段,自編碼器首先在一個正常的訓練集上進行訓練,得到初步訓練完成的模型,隨后使用訓練集進行訓練并將訓練數據壓縮至隱藏層,通過設置密度閾值的方式調節壓縮尺度,采用質心密度估計和核密度估計(Kernel Density Estimation,KDE)兩種方法來建立密度估計模型,從而解決異常點檢測問題,建模過程如圖4 所示。

圖4 基于密度估計的自編碼異常檢測流程Fig.4 Procedure of auto encoding anomaly detection based on density estimation
多層感知(Multi-Layer Perceptron,MLP)神經網絡是一種基礎神經網絡,由一個輸入層、一個輸出層和多個隱藏層組成。在多層感知神經網絡中,各層網絡之間通過全連接的方式構成網絡結構,在各神經元中可以設置激活函數實現非線性函數參數的學習,常用的激活函數有tanh、sigmoid、relu 等,MLP 可以構成最簡單的分類器,實現softmax邏輯回歸。文獻[64]利用MLP進行KDD CUP 99 數據的分類處理,在某些類別的攻擊上的檢測效果優于SVM 算法。但由于多層感知神經網絡的構造比較簡單,因此直接應用于數據中取得的效果往往較有限,其在UEBA 中多與其他算法進行聯合使用。文獻[65]利用Apriori算法進行樣本特征的處理,挖掘出樣本中關聯規則較強的特征后再使用多個MLP 進行分類,并使用AdaBoost算法集成得到最終結果,其準確率達到了99.55%??傮w而言,盡管多層感知神經網絡只有簡單的結構形式,但仍然可以學習出數據內的非線性信息,因此在簡單數據分類上一般要優于傳統統計學習算法。
卷積神經網絡(Convolutional Neural Network,CNN)主要基于卷積層和池化層的往復作用實現特征抽取,最終通過全連接層實現分類。在多次卷積和池化的過程中,數據的特征被很好學習。一般在處理數據的過程中,需要將樣本數據轉換為圖像的形式才能進行檢測。在流量分析中,可以使用二進制表示的流量數據,將數據串進行分割處理,按照字節進行裁剪,之后將每個字節都轉換成二進制值,再轉換成像素點。然后通過對多個像素點進行整合,可以將某一串流量數據轉換為灰度圖片。
文獻[66]整理了多個將流量數據轉換為相應圖像的方式,不需要手工抽取設計特征,減少了主觀因素在異常檢測過程中的影響,之后使用卷積神經網絡對流量數據的圖片形式進行處理,識別其中的異常軟件流量。針對基礎設施的工業控制系統(Industrial Control System,ICS)的異常檢測問題,文獻[67]結合主成分分析法與卷積神經網絡設計一種1D 卷積網絡,其準確率、召回率與F1 值分別為98.02%、98.39% 和0.980 5。文獻[68]注意到當前ICS 數據有限,只使用工業數據進行異常檢測的效果不佳,于是采用傳統IT 數據與ICS 數據相結合的形式合成一個新的訓練數據集,隨后使用CNN 進行檢測,效果要優于只使用工業數據的情況,其準確率為86.37%,召回率為67.67%。
使用卷積神經網絡處理流量進行威脅行為檢測問題的主要難點在于如何進行前期數據處理工作使其適用于CNN 的網絡結構。對于特征處理及抽取的方法將直接影響檢測效果。與常見的全連接神經網絡相比,卷積神經網絡的優勢在于可以處理更高維度的數據,而且使用者完全不用關心每一層特征的具體表現形式,其缺點是過程不透明,可解釋性較差,只給出了檢測結果,很難對檢測過程的細節進行分析。
循環神經網絡(Recurrent Neural Network,RNN)是一類用來處理序列數據的神經網絡?;A神經網絡只在層與層之間建立連接,而RNN 可以在本層處理單元內部之間進行連接。從作用上看,這是一種帶有記憶功能的反饋系統,當前神經元狀態與上一時刻的神經元狀態密切相關。因此,RNN 在具有序列屬性的數據上表現尤其優異,無論是流量分析還是用戶行為檢測,均能夠挖掘出數據中所包含的時序信息及行為意圖。
基于循環神經網絡對Linux 系統內的實體行為進行分析,利用RNN 對特征的敏感性抽取行為特征可以實現對網絡日志中的高級網絡威脅進行檢測[69-70]。文獻[71]基于CNN 與RNN 提出兩個有效的載荷分類方法,可以在無需特征工程的情況下,快速完成分類并顯著提高分類準確率,該方法在NSL-KDD 數據集上的表現尤為突出,其準確率、召回率和F1 值分別達到99.36%、99.81%和0.993 8。文獻[72]將模糊C 均值聚類與循環神經網絡相結合,采用先聚類后神經網絡分類的方式對流量數據進行處理,解決了云環境中入侵檢測系統效率低下的問題。長短期記憶(Long Short-Term Memory,LSTM)網絡是一種時間循環神經網絡,尤其解決了長序列訓練過程中的梯度爆炸或梯度消失問題。文獻[73]將三層LSTM 堆疊在一起分層抽取流量數據的不同深度特征,每通過一次LSTM 層,數據特征增加一階,最終將一階、二階、三階特征與原始數據進行合并,再基于殘差神經網絡對其中的異常數據進行識別,模型準確率、召回率與F1 值分別為90.78%、94.61%、0.925。
循環神經網絡在訓練過程中需要計算網絡梯度數值,而梯度又與神經元權重密切相關,很容易造成梯度過大過小的問題,這是RNN 模型應用中最值得注意的一點,在長序列分析時尤其明顯。因此,在使用RNN 進行用戶或實體的行為序列分析時,應盡量減少序列輸入規模或者在結構上進行改進。
生成式對抗網絡(Generative Adversarial Network,GAN)[74]自2014 提出以來受到了工業界和學術界的廣泛關注,是一種無監督方法,至少包括生成(Generative,G)模型和判別(Discriminative,D)模型兩個部分,通過兩個模型相互博弈進行模型訓練,判別模型根據生成數據判斷數據類型,生成模型根據給定數據生成新的數據。在博弈過程中,為了得到更好的結果,這兩個模型會不斷提高自己的判別效率與生成效率。在進行異常檢測時,經常存在數據分布極度不平衡的問題,正常樣本遠大于異常樣本。直接對不平衡數據建模分析容易造成模型有偏,進一步影響模型的準確率。GAN 可以生成具有真實樣本分布的數據,解決數據有偏問題,因此通常學者們更關注GAN 模型的生成部分。
文獻[75]基于TensorFlow 框架使用GAN 及高斯判別分析對異常樣本進行擴充,提高了異常檢測的準確率,另外還并行訓練模型,實現準確實時異常檢測,適用于工業界的大數據環境中的數據增強和不平衡樣本分類。還有學者在研究中發現某些異常樣本會對模型的性能產生影響,甚至能夠作為系統防御漏洞被黑客攻擊,于是開始研究使用GAN 生成的異常數據與檢測模型優化IDS 的防御效果。文獻[76]將GAN 作為IDS 的前置處理單元,使用生成模型對流量數據中的非功能特征進行處理得到生成特征,并結合流量數據中的功能特征構建新的流量數據。將這些生成的流量數據作為異常樣本輸入到判別模型中,往復進行訓練確保D 模型能夠學習到假的流量示例,將D 模型作為IDS 的前置單元一方面能夠甄別可能存在的黑客通過偽造流量而產生攻擊行為,另一方面也可能增強IDS的識別能力,增加其在流量數據處理過程中應對未知威脅的能力,具體的建模過程如圖5 所示。文獻[77]使用自編碼器將數據從原始空間映射到潛在空間,之后使用生成對抗網絡精確估計潛在分布的概率表示,利用潛在空間的概率分布作為輸入數據,建立異常檢測模型。文獻[78]先使用蒙特卡洛搜索樹算法擴充跨站腳本攻擊(Cross-Site Scripting,XSS)樣本解決數據有偏問題,之后建立基于GAN 的XSS 檢測系統,著重利用判別部分對異常流量進行檢測。文獻[79]建立基于GAN 的入侵檢測系統,結合自編碼器改善IDS 性能并提高檢測穩定性,系統在召回率上表現優異,達到了91.15%。

圖5 基于對抗樣本生成的GAN 異常檢測流程Fig.5 Procedure of GAN anomaly detection based on adversarial example generation
學者們主要使用GAN 來解決數據中的不平衡問題,在實際使用中需要結合其他算法才能完成用戶或實體的行為分析過程。相比其他生成模型或者抽樣進行樣本擴充的方法,GAN 能夠生成更真實的樣本數據,更能優化模型的檢測結果。由于GAN 能夠采用無監督的方式訓練,在當前的異常檢測與行為分析領域應用廣泛。但在實際應用過程中,GAN 也可能出現模式崩潰的問題,而且生成過程對于使用者而言不透明,因此在神經網絡參數調節時面臨一定的困難。
隨著深度學習技術的不斷發展,各種類型神經網絡的應用為UEBA 提供了新思路。神經網絡應用于多分類任務時的性能優于統計學習方法,但檢測過程的可解釋較差,難以還原攻擊行為的過程。表3給出了部分深度學習算法的性能對比情況,其中:N/A 表示原文獻未體現相關指標;性能評價數據來自原文獻,可能存在實驗環境及參數的不同。任務類別以多分類為主,整體性能表現略遜于統計學習算法。一方面,對于多分類任務而言,分類結果為某種具體的攻擊類型,比二分類任務結果更為細化,因此在算法性能評價時可能存在一定的劣勢。另一方面,多分類結果對于后續異常行為分析過程而言,可參考性更高,網絡管理者能夠從多分類結果中得到更多有用的信息。在檢測性能相差不大的情況下,多分類結果比二分類結果更有意義,例如在文獻[71]的CNN 與RNN 使用過程中,不但實現了樣本的多分類,而且具有良好的性能表現,適合實際應用。

表3 部分深度學習算法的性能評價對比Table 3 Comparison of performance evaluation of some deep learning algorithms
強化學習又被稱為增強學習,在模型訓練過程中不需要數據樣本的標簽,主要通過Agent與環境交互的方式進行模型訓練,目標是使得Agent獲取最大收益。強化學習受行為主義心理學的啟發,強調的是“再”學習的過程。與其他統計學習方法相比,強化學習可以不參考給定的類別標簽,而是通過結果給予模型的回饋來更新所需參數[80]。通常而言,強化學習有很強的時序性,每次的結果都極大依賴上一步中智能體的狀態。強化學習的代表算法包括Q-Learning、狀態-動作-獎勵-狀態-動作(State-Action-Reward-State-Action,SARSA)、深度Q 網絡(Deep Q Network,DQN)以及深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)等算法[81]。強化學習是機器學習的重要組成部分,但目前UEBA 中的強化學習技術還應用較少,未來還有很大的發展空間。
惡意實體作為高級可持續威脅攻擊的一種,常常隱匿在系統中不容易被發現,行為序列特征與運行環境的交互方式適合使用強化學習進行檢測。在文獻[82-83]研究中,強化學習用于處理惡意實體的行為序列,篩選惡意行為的特征并根據結果反饋動態調整檢測模型。XIAO 等[84]研究網絡游戲環境中的高級可持續威脅,建立一種基于策略的強化學習算法,通過策略爬坡(Policy Hill-Climbing,PHC)方式增加了策略的不確定性,動態引誘持續威脅實體暴露自身意圖。XIAO 等[85]還結合邊緣計算與強化學習設計一種區塊鏈信任機制,可以處理邊緣攻擊并識別偽造的實體記錄。在工業互聯網安全方面,文獻[86]針對電力系統的錯誤數據注入(False Data Injection,FDI)問題,設計一種帶有短期記憶功能的Q 學習算法保證自動電壓控制系統的正常運行。
強化學習與其他類型的機器學習方法不同,訓練數據主要來自與環境的各種交互。強化學習的優勢在于其獎勵與懲罰機制簡單,訓練邏輯也不復雜,可以對環境信息做出快速反應。隨著深度學習的不斷發展,深度強化學習也逐漸成為領域內的研究熱點。深度強化學習繼承了深度學習注意力機制在特征處理方面的優點,同樣適合處理時序數據,基于時序數據進行分析不僅可以更好地總結歷史行為規律,而且能夠挖掘更多異常場景,從而應對部分未知威脅。
5.1.1 KDD CUP 99 數據集
KDD CUP 99 數據集是1999 年KDD[87]競賽所使用的數據集,在異常檢測領域被廣泛使用,數據集攻擊類型主要分為4 個大類和39 個小類,訓練集包含22 種攻擊,測試集包含17種攻擊,具體類別情況如表4所示。

表4 KDD CUP 99 數據集攻擊類別Table 4 Attack categories of KDD CUP 99 dataset
KDD CUP 99 數據集中的每個連接的前41 項為屬性值,最后1 項為類別標簽,具體特征含義在數據集kddcup_names.txt 文件中進行了描述。
KDD CUP 99 數據集由美國國防部高級研究計劃局(DARPA)于1998 年在麻省理工學院林肯實驗室所進行的一個網絡安全滲透測試評估項目相關數據抽取收集而來,經哥倫比亞大學的Sal Stolfo 教授和北卡羅來納州立大學的Wenke Lee教授經過分析處理后得到。DARPA 在MIT 的項目模擬了美國空軍局域網的一個網絡環境,收集了9 周的網絡連接和系統審計數據,仿真各種用戶類型、網絡流量及攻擊手段,并在1998年[88]、1999 年[89]、2000 年[90]公開發布過3 次數據集,均廣泛用于異常檢測領域。歷次數據內容基本不變,1999 版數據集在1998 版數據集的基礎上,增加了攻擊類型和對于Windows NT 系統的操作,而2000 版本的數據集則將攻擊類型擴充至58 種。
NSL-KDD[91]是KDD CUP 99 數據集的改進 版本,解決了KDD CUP 99 數據集中數據冗余、測試數據與訓練數據重復、正負樣本比例失衡等問題,同樣廣泛作為UEBA 的benchmark 數據集。
5.1.2 UNSW-NB15 數據集
UNSW-NB15 數據集[92]由新南威爾士大學Cyber Range 實驗室在2015 年利用PerfectStorm 工具創建,整個數據集包含Fuzzers、Analysis、Backdoors、DoS、exploit、Generic、Reconnaissance、Shellcode、Worms 等9 種攻擊大類,并未進行細致劃分。每個樣本有49 個特征,在UNSW-NB15_features.csv 文件中進行了描述。
5.1.3 CIC-IDS 2017 數據集
CIC-IDS 2017 數據集[93]是加拿大網絡安全研究所公開的IDS 模擬數據集,解決了之前公共異常檢測數據集中攻擊手段陳舊、流量多樣性差、攻擊樣本數量少等問題。CIC-IDS 2017 數據集包含大量新型攻擊手段,且更接近于真實企業環境,除了流量數據之外,還包含一部分經過IDS 分析后的結果,實現了包 括暴力FTP、暴力SSH、DoS、Heartbleed、Web 攻擊、SQL 注入、僵尸網絡、DDoS 等8 種攻擊。
該數據集還有CIC-IDS 2012[94]、CIC-IDS 2018[95]等其他版本,CIC-IDS 2018 同樣是目前應用范圍較廣的網絡安全數據集。加拿大網絡安全研究所還有各類安全設備日志、主機操作記錄、軟件運行日志等其他類型的UEBA 數據集[96],能夠提供學者們進一步對各類用戶與實體的威脅行為進行識別。
5.1.4 Masquerading User Data 數據集
DUMOUCHEL 等[97]研究內部人員操作行為對整個系統安全性的影響,構建偽裝者用戶數據(Masquerading User Data,MUD),共包括50 個文件,每個文件都是一個用戶的Unix 系統的操作數據。每個文件都有15 000條數據,前5 000條為正常用戶操作數據,后10 000 條中包括隨機的異常數據。DUMOUCHEL等為用戶操作數據提供了標注,將每100 條數據看作一個序列,同時用0 和1 對序列進行標注,0 代表正常,1 代表該序列存在偽裝者行為。該數據集作為為數不多的用戶行為異常檢測公共數據集得到了廣泛應用。
特征工程是整個UEBA 過程中的關鍵一環,對整個分析模型的最終效果起著至關重要的作用。部分特征工程方法比較如表5 所示。

表5 部分特征工程方法對比Table 5 Comparison of some feature engineering methods
在進行實體行為數據分析的過程中,面臨安全設備種類多、屬性特征繁雜等問題,因此標準化、歸一化方法使用較多。由于部分數據的字符屬性沒有先后順序或者大小區別,因此使用獨熱編碼編譯字符屬性也是常用手段。同時,學者們還通過考察同一類型數據在不同數據集中的特征抽取方式來完善已有數據,例如參考各類公共數據集中對時間串的處理方法,將其進行細化分割為季度、月、周等特征。
用戶行為數據的特征相對流量數據而言更匱乏,在實際企業環境下內網主機安裝的通常都是Unix 類的系統,主機命令有限。在進行用戶行為分析時,行為種類少、數據維度低,很難對各類行為進行區別,很大程度上會影響最終的檢測結果。筆者在研究數據的過程中,發現有以下兩種方式可以增強用戶及實體行為表述準確性:
1)使用“操作行為”與“操作對象”結合的方式細化動作,例如“cd Download”動作要比“cd”的表述性強。較少的主機指令與各類文件名、對象名以及指令參數等結合后,能夠使得行為集合指數級擴充。此外,還可以引入詞頻-逆文檔頻度(Term Frequency-Inverse Document Frequency,TF-IDF)加權技術對行為頻次做進一步處理以增強不同用戶或實體行為間的差別度量。
2)參考其他數據集特征對現有數據進行改進。例如,KDD CUP 99 數據集中TCP 連接基本特征中的連接持續時間(duration)、是否連接同一主機(land)、登錄失敗次數(num_failed_logins)等參數可以作為目標特征從而對已有數據進行處理。從原始數據中挖掘信息是特征維度提升的重要手段,表6給出了特征處理的部分樣例。

表6 主機行為特征處理部分樣例Table 6 Some examples of host behavior feature processing
具體的特征構造方法要視情況而定,例如一般日志中的操作時間記錄為一個時間字符串,很難發現其中的規律。如果將該時間串轉換為年、月、日、時、分、季度、周幾、是否為下班時間、是否為工作日等特征,可以增加原始數據的維度,便于后續算法分析。對于“是否為工作日”特征,可以根據取值的不同建立“工作日行為模型”與“非工作日行為模型”,通常分別處理比混合建模效果更好。
內部威脅分析的數據源以主機操作、數據庫、堡壘機、服務器等日志文件為主。這類數據帶有一定的時序特征,通過上下文行為關聯可以還原事件的真實情況,在對于威脅的細粒度分析中具有關鍵價值。內部行為日志威脅分析的難點主要包括以下3 個方面:
1)多源異構數據融合。數據質量低的問題主要源自企業內部設備環境復雜、系統版本雜亂。在企業中,員工工作場景下所使用的設備多種多樣,連接內網服務器的方式也較為靈活,不利于記錄員工個人主機的行為數據以及內網服務器操作數據。除了員工個人設備直連服務器主機外,由于涉密或者數據保護的需要,部分企業采用審計系統實現服務器訪問認證的3A 原則[98]管控員工的資源登錄認證過程,但認證的安全性與記錄操作行為的簡便性存在一定負相關關系,越安全的系統可能越復雜,復雜系統不利于便捷記錄員工的操作行為。
2)用戶與實體行為序列的上下文關聯。用戶的某一行為不是孤立存在的,而是需要根據上下文行為確定該行為屬性。如果一次攻擊樣本呈現帶有時序性的攻擊序列狀態,那么在對用戶行為分析時也需要確定一個事件窗口。用戶行為被事件窗口切割后,會保留一條完整的證據鏈,從開始嘗試入侵到入侵結束的一系列行為都應該被包含在事件窗口中,而實際環境下很難判斷威脅行為開始的時間。
3)用戶與實體行為類別標簽。用戶在操作過程中,系統難以通過動作判斷其行為屬性,因此樣本標簽較少。無論是二分類問題還是多分類問題,樣本標簽的質量都直接影響分類結果的優劣。無監督數據意味著用于異常行為識別的可選模型較少,很難在模型端進行改進。
近幾年互聯網高速發展,網絡技術水平也不斷提高,企業的網絡安全意識不斷完善。外部威脅包括黑客攻擊、病毒入侵、安全漏洞等方面。目前,外部威脅分析的難點主要包括以下3 個方面:
1)監控手段單一、設備智能化程度不夠。IDS、IPS、WAF、網絡探針等各類網絡安全設備在實際企業的網絡安全外部威脅防御中占有重要比重,但其中的多數通過網絡安全策略對流量數據進行管控,安全策略采用規則匹配方式對流量進行處理,檢測效果有限,規則更新滯后。
2)數據量大。科技發展迅猛,網絡設備無論是數量上還是質量上都突飛猛進,單位時間內產出的各種網絡設備、流量等日志呈現指數增長趨勢。越來越多的流量數據在硬盤內大量堆積,無論是在線處理還是離線分析都會占用大量的計算資源。數據量大也會導致分析時間的增加,檢測結果更為滯后,系統暴露在風險下的時間更長。
3)樣本數據分布不平衡。在模型訓練過程中,很多算法通常有數據均勻分布這樣一個基本假設。少量攻擊流量數據摻雜在大量正常數據中,如果采取正常模型訓練模式,則可能會導致不準確的模型結果。在樣本較少的情況下,盡管也能從中學習到相應的檢測規則,但結果可能會存在一定的過擬合現象,僅針對某些場景有效果,缺少普適性,難以應對未知威脅。
UEBA 作為人工智能產業在網絡安全領域的應用之一,具有廣闊的發展前景。從發展趨勢來看,在早期研究中,以數據集擴充、實驗擴充和增加模型能夠識別的威脅行為種類為主,更加注重從數據量、威脅類型等方面對模型進行優化。在中期研究中,學者們開始考慮模型性能與系統的運行效率,積極優化模型檢測速度。在近期研究中,學者們更加注重檢測質量,準備通過特征優化、檢測過程可視化等方式對模型進行改進。總體而言,整個UEBA 研究重點具有明顯的“分析數量-分析速度-分析質量”發展趨向。
UEBA 技術與各行各業深度融合的同時,也暴露出一定的缺陷。典型異常檢測算法的對比分析如表7 所示。

表7 典型異常檢測算法對比Table 7 Comparison of typical anomaly detection algorithms
當前研究方法的缺陷主要集中在:1)易陷入局部最優;2)標簽質量對結果的影響大;3)噪聲數據對結果的影響大;4)未知行為判斷不足。缺陷1 不僅出現在UEBA 領域,在整個計算機行業內都是如此,模型陷入局部最優可能在健壯性與檢測準確度方面均表現不佳。缺陷2 和缺陷3 主要涉及數據質量問題,需要對原始數據進行處理。針對缺陷4 應增加模型泛化能力,保證其更好地學習到異常行為規律。
考慮到UEBA 的發展趨勢以及當前存在的缺陷,將針對以下問題做進一步研究:
1)未知威脅識別問題。根據先驗知識建立威脅識別模型,一般在面對未知異常行為時的表現性能不佳,而未知威脅給系統帶來的潛在風險更為突出,因此未來將建立面向未知威脅的異常檢測算法。
2)數據有偏問題。無論是內部風險還是外部威脅,往往是少量異常樣本摻雜在大量正常樣本中,很多算法極易受到有偏樣本分布的影響,因此未來將解決數據有偏分布問題,建立適應性更強的UEBA方法。
3)行為序列劃分問題。在現有行為數據的分析模型中,很多模型利用時間、會話ID 等屬性進行硬劃分。這種劃分方法在時間維度上割裂了異常事件的前后關聯,不利于威脅鏈條的完整呈現。因此,未來將解決行為序列的劃分問題,在保證其時序性完整的同時,避免多序列劃分可能帶來的算法復雜度增加問題。
4)局部最優問題。在異常檢測任務中,陷入局部最優意味著判別模型的準確率較低,對于流量數據的錯誤判斷會對正常業務產生極大影響。因此,未來將建立收斂于全局最優的異常檢測模型,以獲得更加準確的預測效果。
本文闡述基于機器學習的UEBA 技術研究進展,對統計學習、深度學習、強化學習中的典型算法進行對比分析,介紹被廣泛使用的經典數據集并討論如何通過特征工程手段生成新的可利用特征,隨后分析UEBA 技術在數據處理、行為關聯、類別確定、智能分析等方面的局限性和需要解決的問題,從使用方法、算法性能、關鍵技術等角度出發對典型異常檢測方法的優劣勢進行歸納總結。由于網絡規模的不斷擴大,設備類型多樣化、數據類型復雜化使得機器學習模型在用戶與實體行為分析領域的應用范圍越來越廣,結合的緊密程度也逐步加深。盡管現有UEBA 技術在實際異常檢測中取得了較好的效果,但在攻擊行為全過程解析方面還存在不足,多數分析方法只能找到異常點而不能找出異常序列,但有些持續性威脅并非只在某一點產生異常,必須通過完整的行為鏈條進行判斷,并且隨著網絡技術發展加快,攻擊技術在越來越趨于隱蔽的同時,也呈現出多樣化態勢。因此,在日趨復雜的安全形勢、不斷進化的攻擊手段等背景下,后續將針對未知威脅識別、入侵事件還原等問題對用戶與實體行為分析技術進行更深入的研究,進一步提高用戶與實體行為分析模型的處理效率與檢測質量。