陳浩,韓萌萌
(武漢船用電力推進裝置研究所,武漢430000)
在傳統的應用中,通常是由專家基于流程執行過程中的日志信息來識別系統漏洞[1]。事實證明,收集流程執行過程中的日志數據并加以分析對于系統問題的診斷和異常檢測非常有效。在這種情況下,我們關注由業務流程執行產生的日志數據[2],通過分析這些日志數據來檢測“不安全”流程實例導致的安全漏洞(例如攻擊、欺詐等)。我們提出使用關聯規則和樸素貝葉斯方法進行流程日志分析的框架,利用“低級”事件而不是“高級”事件完成和流程活動完全無關的面向安全的分類[3-4]。這種混合框架可用作決定過程跟蹤的“安全性”的替代方法,可以充當一種“超級專家”的分類工具,其準確性和效率使其稱為實施面向安全性流程分析的有效工具。
根據系統的行為日志解釋、預測、修復和監控系統的運行是當前大多數系統的重要舉措之一[5]。在這一方面對于流程引擎(BPM)的業務日志分析研究是業界非常關注的解決方案,這些解決方案可以幫助或者代替人類專家對業務流程日志進行安全性分析。通過監控業務流程實例的日志,分析不同類型的安全漏洞,例如欺詐、攻擊、濫用等問題。事實上,不安全的流程實例可能會對組織或者企業造成嚴重損害,從而可能導致企業的形象和聲譽受到嚴重損失。這是最近采用數據挖掘技術對業務過程日志進行安全性分析的主要原因(Accorsi&Stocker,2012;Accorsi,Stocker,&Muller,2013),尤其是作為審核應用程序是否存在風險的核心。
文獻中關于分類的方法,根據相應日志跟蹤中的內容,將流程實例識別為“安全”或“不安全”的問題,可以分為以下兩種模型類別:第一種為示例驅動方法(Bose&van der Aalst,2013;Cuzzocrea,Folino,Guaras?cio,&Pontieri,2016b;Leontjeva,Conforti,Di Francesco?marino,Dumas,&Maggi,2015;Nguyen,Dumas,Rosa,Maggi,&Suriadi,2014):這些方法模型需要一組帶注釋的流程蹤跡樣例ΔAET,注解說明了是否發生已知的某些安全漏洞,然后利用帶注釋的流程示例構建分類模型用于新的流程蹤跡日志分析,可以確定相應的流程示例是否存在安全漏洞風險。第二種為模型驅動的方法(Fazzinga,Flesca,Furfaro,&Pontieri,2018a):這些方法模型是基于安全漏洞模型,即對已知的行為描述信息進行分析判斷安全風險(或者根據由Accorsi&Stocker,2012;中提出的模型),將流程實例分類為“安全”或“不安全”。
與以上介紹的方法不同,我們的方法首先是對流程日志數據進行關聯規則分析過濾,將處理之后的數據作為樸素貝葉斯模型[6-7]的輸入,計算該流程執行過程中存在的安全風險的概率。
在系統使用過程中,流程的執行可以獲得基礎的流程日志數據、軌跡、流程信息、活動以及事件信息等內容,會產生大量的日志數據,其中有很多與安全配置無關的噪音數據產生,這些數據不包含任何信息。噪音的存在會極大程度降低模型分析的準確率。由于日志數據量巨大,我們通過滑動時間窗口的方式獲取部分日志數據用于模型實驗。這里我們假設流程實例w由一系列高級事件組成a11…an。相應的每個活動實例ai生成一個低級事件ei。我們假設存在一個跟蹤系統記錄每個事件的執行情況,將按照順序記錄實例w的執行情況,記為φ=e1…en,φ為軌跡信息,流程軌跡追蹤系統中所有的軌跡集合L稱之為日志。
第一步我們在給定的數據集中創建事件類型的概率分布(FD)[8]。FD的大小等于唯一事件類型的大小,其中每個元素對應于特定事件類型的總條目數。下面顯示實時系統中的FD示例:

在此我們作出一個假設:比其他事件發生更多次數的事件是例行事件。該假設是基于常用幾個事件日志數據集的經驗觀察得到的。因此,通過此假設可以輕松得到事件類型,例如FD的第三(345)和第五(323)是常規事件。它們發生的概率比其他事件更高。我們使用一個標準偏差用于確定一組元素與平均值的偏差[9-10]。低s表示元素更接近均值(μ),而較高的s值表明元素分散,更具有價值。計算公式如下:

其中N表示元素的個數,xi表示第i個元素,xˉ是FD的平均值。由于處理之后的數據集是連續事件流的一部分,因此建議的解決方案是使用樣本標準差來形成較大的總體估計并輸出廣義的結果。
樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設的分類方法[11]。設輸入空間X?Rn為n維向量的集合,輸出空間為類標記集合y={c1,c2,…,ck},輸入為特征向量x∈X,輸出為類標記y∈Y。X是定義在輸入空間X上的隨機向量。數據集為:

由于現有的日志類型眾多,本文主要以某生產企業的辦公流程日志數據進行仿真實驗,仿真環境為:編輯器PyCharm,Python版本為Python 2.7,計算機配置為64位Windows 10系統,四核2.67GHz、運行內存16G。我們選擇4種不同業務流程的日志數據,包括:財務報銷業務流程、公文審批業務流程、人員信息變更業務流程,每組使用40個流程日志數據作為實驗的基礎數據。我們首先使用規則過濾的方法處理日志數據,過濾噪音。數據處理的流程為:日志數據收集[14]、數據特征提取、規則過濾、模型預測分析[15]。數據維度對數據預測的準確度的影響對例如圖1。

圖1
從實驗圖表中可以看出,隨著樣本維度的增加,模型的分辨率隨之提高,通過數據預處理過濾部分噪音數據模型的正確率得到明顯提升,充分說明了樸素貝葉斯算法在流程日志分析方面有良好的效果。
本文提出使用樸素貝葉斯算法模型在無需任何人工干預的情況下對流程日志數據進行分析。該解決方案的主要目的是使用非專家的方式對可能的風險進行專家分析,而無需花費大量的時間和經歷來獲取安全知識。這種方式完全采取自動化的方式識別,可有效提高風險分析的效率,保證系統運行的安全性。