陳浩,韓萌萌
(武漢船用電力推進裝置研究所,武漢430000)
在傳統(tǒng)的應用中,通常是由專家基于流程執(zhí)行過程中的日志信息來識別系統(tǒng)漏洞[1]。事實證明,收集流程執(zhí)行過程中的日志數(shù)據(jù)并加以分析對于系統(tǒng)問題的診斷和異常檢測非常有效。在這種情況下,我們關(guān)注由業(yè)務流程執(zhí)行產(chǎn)生的日志數(shù)據(jù)[2],通過分析這些日志數(shù)據(jù)來檢測“不安全”流程實例導致的安全漏洞(例如攻擊、欺詐等)。我們提出使用關(guān)聯(lián)規(guī)則和樸素貝葉斯方法進行流程日志分析的框架,利用“低級”事件而不是“高級”事件完成和流程活動完全無關(guān)的面向安全的分類[3-4]。這種混合框架可用作決定過程跟蹤的“安全性”的替代方法,可以充當一種“超級專家”的分類工具,其準確性和效率使其稱為實施面向安全性流程分析的有效工具。
根據(jù)系統(tǒng)的行為日志解釋、預測、修復和監(jiān)控系統(tǒng)的運行是當前大多數(shù)系統(tǒng)的重要舉措之一[5]。在這一方面對于流程引擎(BPM)的業(yè)務日志分析研究是業(yè)界非常關(guān)注的解決方案,這些解決方案可以幫助或者代替人類專家對業(yè)務流程日志進行安全性分析。通過監(jiān)控業(yè)務流程實例的日志,分析不同類型的安全漏洞,例如欺詐、攻擊、濫用等問題。事實上,不安全的流程實例可能會對組織或者企業(yè)造成嚴重損害,從而可能導致企業(yè)的形象和聲譽受到嚴重損失。這是最近采用數(shù)據(jù)挖掘技術(shù)對業(yè)務過程日志進行安全性分析的主要原因(Accorsi&Stocker,2012;Accorsi,Stocker,&Muller,2013),尤其是作為審核應用程序是否存在風險的核心。
文獻中關(guān)于分類的方法,根據(jù)相應日志跟蹤中的內(nèi)容,將流程實例識別為“安全”或“不安全”的問題,可以分為以下兩種模型類別:第一種為示例驅(qū)動方法(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,注解說明了是否發(fā)生已知的某些安全漏洞,然后利用帶注釋的流程示例構(gòu)建分類模型用于新的流程蹤跡日志分析,可以確定相應的流程示例是否存在安全漏洞風險。第二種為模型驅(qū)動的方法(Fazzinga,Flesca,Furfaro,&Pontieri,2018a):這些方法模型是基于安全漏洞模型,即對已知的行為描述信息進行分析判斷安全風險(或者根據(jù)由Accorsi&Stocker,2012;中提出的模型),將流程實例分類為“安全”或“不安全”。
與以上介紹的方法不同,我們的方法首先是對流程日志數(shù)據(jù)進行關(guān)聯(lián)規(guī)則分析過濾,將處理之后的數(shù)據(jù)作為樸素貝葉斯模型[6-7]的輸入,計算該流程執(zhí)行過程中存在的安全風險的概率。
在系統(tǒng)使用過程中,流程的執(zhí)行可以獲得基礎的流程日志數(shù)據(jù)、軌跡、流程信息、活動以及事件信息等內(nèi)容,會產(chǎn)生大量的日志數(shù)據(jù),其中有很多與安全配置無關(guān)的噪音數(shù)據(jù)產(chǎn)生,這些數(shù)據(jù)不包含任何信息。噪音的存在會極大程度降低模型分析的準確率。由于日志數(shù)據(jù)量巨大,我們通過滑動時間窗口的方式獲取部分日志數(shù)據(jù)用于模型實驗。這里我們假設流程實例w由一系列高級事件組成a11…an。相應的每個活動實例ai生成一個低級事件ei。我們假設存在一個跟蹤系統(tǒng)記錄每個事件的執(zhí)行情況,將按照順序記錄實例w的執(zhí)行情況,記為φ=e1…en,φ為軌跡信息,流程軌跡追蹤系統(tǒng)中所有的軌跡集合L稱之為日志。
第一步我們在給定的數(shù)據(jù)集中創(chuàng)建事件類型的概率分布(FD)[8]。FD的大小等于唯一事件類型的大小,其中每個元素對應于特定事件類型的總條目數(shù)。下面顯示實時系統(tǒng)中的FD示例:
在此我們作出一個假設:比其他事件發(fā)生更多次數(shù)的事件是例行事件。該假設是基于常用幾個事件日志數(shù)據(jù)集的經(jīng)驗觀察得到的。因此,通過此假設可以輕松得到事件類型,例如FD的第三(345)和第五(323)是常規(guī)事件。它們發(fā)生的概率比其他事件更高。我們使用一個標準偏差用于確定一組元素與平均值的偏差[9-10]。低s表示元素更接近均值(μ),而較高的s值表明元素分散,更具有價值。計算公式如下:
其中N表示元素的個數(shù),xi表示第i個元素,xˉ是FD的平均值。由于處理之后的數(shù)據(jù)集是連續(xù)事件流的一部分,因此建議的解決方案是使用樣本標準差來形成較大的總體估計并輸出廣義的結(jié)果。
樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設的分類方法[11]。設輸入空間X?Rn為n維向量的集合,輸出空間為類標記集合y={c1,c2,…,ck},輸入為特征向量x∈X,輸出為類標記y∈Y。X是定義在輸入空間X上的隨機向量。數(shù)據(jù)集為:
由于現(xiàn)有的日志類型眾多,本文主要以某生產(chǎn)企業(yè)的辦公流程日志數(shù)據(jù)進行仿真實驗,仿真環(huán)境為:編輯器PyCharm,Python版本為Python 2.7,計算機配置為64位Windows 10系統(tǒng),四核2.67GHz、運行內(nèi)存16G。我們選擇4種不同業(yè)務流程的日志數(shù)據(jù),包括:財務報銷業(yè)務流程、公文審批業(yè)務流程、人員信息變更業(yè)務流程,每組使用40個流程日志數(shù)據(jù)作為實驗的基礎數(shù)據(jù)。我們首先使用規(guī)則過濾的方法處理日志數(shù)據(jù),過濾噪音。數(shù)據(jù)處理的流程為:日志數(shù)據(jù)收集[14]、數(shù)據(jù)特征提取、規(guī)則過濾、模型預測分析[15]。數(shù)據(jù)維度對數(shù)據(jù)預測的準確度的影響對例如圖1。
圖1
從實驗圖表中可以看出,隨著樣本維度的增加,模型的分辨率隨之提高,通過數(shù)據(jù)預處理過濾部分噪音數(shù)據(jù)模型的正確率得到明顯提升,充分說明了樸素貝葉斯算法在流程日志分析方面有良好的效果。
本文提出使用樸素貝葉斯算法模型在無需任何人工干預的情況下對流程日志數(shù)據(jù)進行分析。該解決方案的主要目的是使用非專家的方式對可能的風險進行專家分析,而無需花費大量的時間和經(jīng)歷來獲取安全知識。這種方式完全采取自動化的方式識別,可有效提高風險分析的效率,保證系統(tǒng)運行的安全性。