《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 借助Petri網(wǎng)進(jìn)行流程審計(jì)
借助Petri網(wǎng)進(jìn)行流程審計(jì)
來源:微型機(jī)與應(yīng)用2012年第16期
胡記兵,黃作明,柳巧玲
(南京審計(jì)學(xué)院 信息科學(xué)學(xué)院 信息系統(tǒng)審計(jì)實(shí)驗(yàn)中心,,江蘇 南京210029)
摘要: 信息的使用者往往關(guān)注保存在介質(zhì)上的信息而忽視處理信息的程序,。由于保存在介質(zhì)上的信息有多個(gè)操作入口,,即使處理信息的程序真實(shí)地反映了組織的業(yè)務(wù)流程,也難保證信息使用者所獲得的信息是正確的,也就是說對于訪問數(shù)據(jù)的程序,存在外部干擾,。引入數(shù)據(jù)庫中的審計(jì)表功能,協(xié)助信息系統(tǒng)審計(jì)人員識別信息系統(tǒng)中數(shù)據(jù)的形成是否遵循了既定的業(yè)務(wù)流程,。由于Petri網(wǎng)是描述流程的有力工具,,對于復(fù)雜的業(yè)務(wù)流程,引入Petri網(wǎng)對流程進(jìn)行審計(jì)是必要的,。
Abstract:
Key words :

摘  要: 信息的使用者往往關(guān)注保存在介質(zhì)上的信息而忽視處理信息的程序,。由于保存在介質(zhì)上的信息有多個(gè)操作入口,即使處理信息的程序真實(shí)地反映了組織的業(yè)務(wù)流程,,也難保證信息使用者所獲得的信息是正確的,也就是說對于訪問數(shù)據(jù)的程序,,存在外部干擾,。引入數(shù)據(jù)庫中的審計(jì)表功能,,協(xié)助信息系統(tǒng)審計(jì)人員識別信息系統(tǒng)中數(shù)據(jù)的形成是否遵循了既定的業(yè)務(wù)流程。由于Petri網(wǎng)是描述流程的有力工具,,對于復(fù)雜的業(yè)務(wù)流程,,引入Petri網(wǎng)對流程進(jìn)行審計(jì)是必要的。
關(guān)鍵詞: 業(yè)務(wù)流程,;審計(jì),;Petri網(wǎng)

    工作流是業(yè)務(wù)流程的抽象,可以將孤立的信息串起來,,并賦予信息特定的含義,。不同的使用者對信息的理解可能是不同的,信息使用者的角色決定了該信息的主觀涵義,。為了保證信息系統(tǒng)的正確性,,必須使得信息的客觀涵義與信息的主觀涵義一致,這是在信息系統(tǒng)不能高度自動化時(shí)必須達(dá)到的要求,。如稅務(wù)人員必須保證正確地獲得信息系統(tǒng)中的表,。信息系統(tǒng)中的表決定了信息的主觀涵義,表中數(shù)據(jù)的形成過程決定了表中信息的客觀涵義,,只要二者一致,,信息系統(tǒng)出錯(cuò)的可能性就被降低。
    本文只關(guān)注信息被賦予的客觀涵義,,信息的主觀涵義與客觀涵義的一致性可以采用以下方法來保證:將信息系統(tǒng)中的特定數(shù)據(jù)遠(yuǎn)程連接到信息使用者并實(shí)時(shí)傳送,,這個(gè)實(shí)時(shí)信息定義主觀涵義,在實(shí)時(shí)接收端嚴(yán)格防止增刪改等寫操作,,只能讀取,。
1 相關(guān)研究
    目前,關(guān)于流程審計(jì)的研究受到了理論界與實(shí)務(wù)界的廣泛關(guān)注,。其中具有代表性的研究成果有:Huang Shiming等人針對利用計(jì)算機(jī)輔助審計(jì)技術(shù)和工具所進(jìn)行的審計(jì)的缺陷,,建立了一種業(yè)務(wù)流程差距檢測機(jī)制,該機(jī)制能夠自動檢測信息系統(tǒng)流程與企業(yè)內(nèi)部控制流程之間的差距,,幫助解決數(shù)據(jù)質(zhì)量問題,,提高系統(tǒng)的安全性[1]。李國棟等人采用組件化的方法,,通過Petri網(wǎng)對工作流過程模型進(jìn)行了組件形式的建模,,并以建立網(wǎng)絡(luò)科技信息資源加工審核系統(tǒng)模型為例,闡述了組件化建立工作流網(wǎng)的過程,,并通過基于不變量的方法對工作流網(wǎng)的活性和有界性進(jìn)行了分析,,驗(yàn)證了模型的可行性[2]。丁志軍等人利用時(shí)序Petri網(wǎng)對審計(jì)緩沖區(qū)管理的實(shí)現(xiàn)方案進(jìn)行建模,,進(jìn)而對系統(tǒng)的安全性和活性進(jìn)行了分析和驗(yàn)證[3],。王保云等人根據(jù)有色Petri網(wǎng)原理提出了安全審計(jì)事件可視化模型,,并基于該模型,以文件類操作的安全審計(jì)事件為主線,,給出了一種安全審計(jì)事件時(shí)空邏輯關(guān)系可視化實(shí)現(xiàn)框架[4],。李博文等人針對計(jì)算機(jī)審計(jì)工作,結(jié)合工作流和Petri網(wǎng)方法,,建立了一套審計(jì)工作流模型,,并通過化簡,對模型進(jìn)行了正確性驗(yàn)證[5],。劉志磊在研究Petri net工作流的基礎(chǔ)上,,將其應(yīng)用于審計(jì)管理系統(tǒng)中,并且所設(shè)計(jì)的管理系統(tǒng)已經(jīng)在某商業(yè)銀行審計(jì)管理項(xiàng)目中得到應(yīng)用,,取得較好效果[6],。楊雯等人給出了面向?qū)ο蠊ぷ髁骶W(wǎng)的定義,分析了它的特點(diǎn),,并以其為工具建立了審計(jì)業(yè)務(wù)流程模型[7],。張衛(wèi)祥在Petri網(wǎng)和工作流網(wǎng)定義的基礎(chǔ)上,把流程挖掘技術(shù)引入到安全審計(jì)中,,并借鑒現(xiàn)有安全審計(jì)常用分析方法,,提出了對流程挖掘和針對工作流領(lǐng)域異常的分析手段和方法[8]。
2 流程的Petri網(wǎng)表示法
2.1 Petri網(wǎng)

    Petri網(wǎng)是一種圖形化描述過程的強(qiáng)有力工具,,可以非常直觀地描述一個(gè)工作流過程,,由庫所和變遷組成,用圓圈表示庫所,,矩形表示變遷,,庫所和變遷由有向弧相連接[9]。變遷是Petri網(wǎng)中的主動元素,,通常表示事件,、操作、轉(zhuǎn)換或傳輸,。通過實(shí)施變遷,,過程從一個(gè)狀態(tài)轉(zhuǎn)變到另一個(gè)狀態(tài)。庫所是Petri網(wǎng)中的被動元素,,它們不能改變網(wǎng)的狀態(tài),,通常表示媒介、地理位置,、階段,、狀態(tài)、條件等。變遷的實(shí)施就是從每個(gè)輸入庫所中獲得標(biāo)記(每個(gè)輸入庫所中都要有標(biāo)記,,這也是條件),,然后放到每個(gè)輸出庫所中。如圖1所示,,從輸入庫所Claim中獲取標(biāo)記,然后放到輸出庫所Under Consideration中,。實(shí)施時(shí),,變遷消耗掉來自輸入庫所的標(biāo)記,并為每個(gè)輸出庫所產(chǎn)生標(biāo)記,。

2.2 路由
    擴(kuò)展的Petri網(wǎng)主要由4種路由結(jié)構(gòu)組成:順序路由,、并行路由、選擇路由,、循環(huán)路由,。如圖2~圖5所示。

2.3 審計(jì)需要在Petri網(wǎng)中的反映
    一個(gè)流程可以用Petri網(wǎng)來表示,,這樣可以用Petri網(wǎng)的理論對流程進(jìn)行分析,。本文引入Petri網(wǎng)以便對流程的執(zhí)行情況進(jìn)行審計(jì)。為了便于審計(jì),,要求循環(huán)路由只發(fā)生一次,,這種情況下需要對流程的Petri網(wǎng)稍作更改。
3 流程審計(jì)
    本文采用收款流程來描述對流程的審計(jì)[10],。為不失一般性,,此處考慮任意的收款流程,即本例只反映收款流程的主要元素,,這樣做的目的是使對流程審計(jì)的方法適用于任意流程的審計(jì)工作,。如果收款流程是通過計(jì)算機(jī)實(shí)現(xiàn)的,則需要系統(tǒng)分析員和軟件工程師介入,,系統(tǒng)分析員對收款流程系統(tǒng)的分析結(jié)果如圖6所示,。

    軟件工程師在系統(tǒng)分析員的指導(dǎo)下工作。軟件工程師為開發(fā)出可用的收款流程系統(tǒng),,根據(jù)需要在數(shù)據(jù)庫中設(shè)計(jì)表格,,如表1~表4所示。

 

 

    為了完成審計(jì)工作,,必須對數(shù)據(jù)庫系統(tǒng)中的所有表格進(jìn)行審計(jì),,即驗(yàn)證在每個(gè)表格上的操作是否違反了流程。如果操作違反了流程,,需要將違反流程的操作找出來,,合規(guī)的流程由系統(tǒng)分析員在軟件需求方的指導(dǎo)下定義。存在流程被違反的可能性是因?yàn)閿?shù)據(jù)庫操作入口不是唯一的,操作可以通過對軟件的操作來進(jìn)行,,也可以進(jìn)入數(shù)據(jù)庫進(jìn)行更改,。
    先來看對SKDWJB的審計(jì)。審計(jì)人員要了解在SKDWJB上有哪些操作,,可以看出,,如果忽略SKDWJB與ZZB和YSKB的聯(lián)系,在SKDWJB上的操作有insert和update兩種,。
    對于SKDWJB上的insert操作O1,,如果O1沒有違反規(guī)則,則要求在SKDJB上有與該操作對應(yīng)的insert操作O2和delete操作O3,。例如,,O1是insert into dbo.SKDWJB(ContractID,RecordPerson,,TotalAmount,,AmountOnContract,Amount) values(1,,'zhang san',,1 000,5 000,,1 000),。
    在SQL Server 2008中為每張表格建立審計(jì)表,以反映表格內(nèi)容的變更[11],。O1操作將在審計(jì)表dbo.Audit中產(chǎn)生一條記錄,,通過該記錄的PrimaryKey字段找到O1操作涉及的主鍵,這里是1,,通過SQLStatement字段找到O1涉及的金額,,這里是1 000,用sql語句Select * from dbo.Audit where TableName=′dbo.SKDJB′ and Operation=′i′ and SQLStatement like ′%(1,1000%′在dbo.Audit表中查找在SKDJB上與O1對應(yīng)的insert操作O2,,用sql語句Select * from dbo.Audit where TableName=′dbo.SKDJB′ and Operation=′d′ and SQLStatement like ′% ID=1%′在dbo.Audit表中查找在SKDJB上與O1對應(yīng)的delete操作O3,。O2可能是insert into dbo.SKDJB(ContractID,Amount,AmountOnContract,ID) values(1,1 000,5 000,1),O3可能是delete from dbo.SKDJB where ID=1,。
    對于SKDWJB上的update操作O4,,如果O4沒有違反流程,則要求在SKDJB上有與該操作對應(yīng)的insert操作O5和delete操作O6,。例如,,O4是update dbo.SKDWJB set RecordPerson=′li si′,TotalAmount=3 500,Amount=2 500 where ContractID=1,O4操作將在審計(jì)表dbo.Audit中產(chǎn)生一條記錄,,通過該記錄的PrimaryKey字段找到O4操作涉及的主鍵,,這里是1,,通過SQLStatement字段找到O4涉及的金額,這里是2 500,,用sql語句Select * from dbo.Audit where TableName=′dbo.SKDJB′and Operation=′i′ and SQLStatement like ′%(1,2 500%′在dbo.Audit表中查找在SKDJB上與O4對應(yīng)的insert操作O5,,用sql語句Select * from dbo.Audit where TableName=′dbo.SKDJB′ and Operation=′d′ and SQLStatement like ′% ID=6%′在dbo.Audit表中查找在SKDJB上與O4對應(yīng)的delete操作O6。O5可能是insert into dbo.SKDJB(ContractID,Amount,AmountOnContract,ID) values(1,2 500,5 000,6),,O6可能是delete from dbo.SKDJB where ID=6,。
    以上審計(jì)比較容易用計(jì)算機(jī)程序?qū)崿F(xiàn),但是對ZZB和YSKB的審計(jì)卻不那么簡單,,因?yàn)閷ZB和YSKB的操作需要共享SKDWJB中的資源,,這與SKDJB和SKDWJB的簡單一對一關(guān)系不一樣。為了降低對ZZB和YSKB的審計(jì)難度,,用Petri網(wǎng)來描述幾個(gè)表之間的資源使用關(guān)系,如圖7所示,,同時(shí)流程系統(tǒng)軟件按照該P(yáng)etri網(wǎng)進(jìn)行設(shè)計(jì),。

    圖7中的兩張表SKDWJB1和SKDWJB2是為了方便審計(jì)工作而增加的。從圖7中可以看到,,在SKDWJB上的insert操作有兩類,,一類是輸入過程引發(fā)的,另一類是轉(zhuǎn)帳過程引發(fā)的,。前文已經(jīng)描述了對輸入過程引發(fā)的在SKDWJB上的insert操作的審計(jì),,現(xiàn)在要考慮SKDWJB和ZZB的關(guān)系,將SKDWJB上的insert操作的審計(jì)修改為以下內(nèi)容:
    對于SKDWJB上的insert操作O1,,如果O1沒有違反規(guī)則,,則要求在SKDJB上有與該操作對應(yīng)的insert操作O2和delete操作O3(設(shè)該條件表示為C1);或者要求在SKDWJB和SKDWJB1上都有相應(yīng)的delete操作(設(shè)該條件表示為C2),。下面提供按照這條規(guī)則可以找出所有違規(guī)操作的簡要證明:
    令O1→C1∪C2表示:如果任意O1合乎流程,,那么C1和C2必然有一個(gè)被滿足。
    反證:O1→C1∩C2,,假設(shè)存在某一個(gè)在SKDWJB上的insert操作O1違規(guī),,那么必然在SKDJB上與O1對應(yīng)的insert操作O2和delete操作O3至少缺一個(gè)(即C1),并且要求SKDWJB上相應(yīng)的delete操作O4和在SKDWJB1上相應(yīng)的delete操作O5至少缺一個(gè)(即C2),。只要操作是按照上面的Petri網(wǎng)進(jìn)行,,以上假設(shè)是不可能的,即不可能存在違規(guī)操作O1,。即只要違規(guī)操作O1存在,,就一定可以按照上面的規(guī)則將其找出。
    在圖7所示的Petri網(wǎng)中,,轉(zhuǎn)帳這個(gè)變遷實(shí)施的前提條件是SKDWJB和SKDWJB1中同時(shí)有一個(gè)標(biāo)記,,這個(gè)條件可被輸入變遷滿足,。從圖7可看出,當(dāng)輸入變遷實(shí)施時(shí),,給SKDWJB和SKDWJB1各輸入一個(gè)標(biāo)記,,從而滿足轉(zhuǎn)帳變遷實(shí)施的條件。轉(zhuǎn)帳變遷實(shí)施后,,給SKDWJB輸入一個(gè)標(biāo)記,,這個(gè)標(biāo)記是記帳變遷實(shí)施的條件之一,記帳變遷實(shí)施的另一個(gè)條件是SKDWJB2中存在標(biāo)記,,這個(gè)條件被輸入變遷的實(shí)施滿足,。
    本文研究得出如下結(jié)論:(1)流程為服務(wù)所導(dǎo)向。服務(wù)需要在變化,,服務(wù)質(zhì)量要求在提高,,因此流程是不斷在變化的。有潛在審計(jì)需求的信息系統(tǒng)需要在系統(tǒng)分析中盡早考慮審計(jì)需要,,考慮越早,,需要做的工作越少。(2)Petri網(wǎng)的作用在于確定為滿足審計(jì)需要增加的表,。在圖7中,,SKDWJB1和SKDWJB2都是為了滿足審計(jì)需要增加的表,如果不是為了審計(jì),,這兩張表都是不必要的,。(3)從審計(jì)過程中看到,選擇路由是難于審計(jì)的,,順序或并行路由是易于審計(jì)的,。在流程中,一張表格被多個(gè)過程使用,,如果不采取增加表的措施,,將產(chǎn)生混亂。所以,,流程設(shè)計(jì)者如果考慮審計(jì)需要,,就必須盡量避免選擇路由出現(xiàn)在流程中,如此,,可以為信息系統(tǒng)審計(jì)人員減少不必要的工作,。(4)流程審計(jì)今后或許可以向更加智能化、自動化的方向發(fā)展,,如開發(fā)出比較智能的算法來完成信息系統(tǒng)審計(jì)工作,。
參考文獻(xiàn)
[1] Huang Shiming,YEN D C,,HUNG Y C,,et al.A business process gap detecting mechanism between information system process flow an internal control flow[J].Decision Support  Systems,,2009,47(4):436-454.
[2] 李國棟,,宋斌,,柳長安.基于Petri網(wǎng)的組件化工作流模型研究[J].微計(jì)算機(jī)信息,2009,,25(30):104-106.
[3] 丁志軍,,劉海峰,蔣昌俊.審計(jì)緩沖區(qū)的形式化模型及其驗(yàn)證[J].計(jì)算機(jī)科學(xué),,2006,,33(5):98-103.
[4] 王保云,楊英杰,,常德顯,,等.一種安全審計(jì)事件時(shí)空邏輯關(guān)系可視化方法[J].計(jì)算機(jī)工程,2009,,35(2):151-153.
[5] 李博文,,李孝忠.基于Petri網(wǎng)的審計(jì)工作流模型設(shè)計(jì)與驗(yàn)證[J].計(jì)算機(jī)應(yīng)用,2006,,26(Z):242-243.
[6] 劉志磊.Petri Nets工作流及其在審計(jì)管理中的應(yīng)用[D].北京:北京郵電大學(xué),2008.
[7] 楊雯,,劉厚泉,,劉曼.基于高級Petri網(wǎng)的審計(jì)業(yè)務(wù)流程建模[J].福建電腦,2007(11):104-105.
[8] 張衛(wèi)祥.面向工作流系統(tǒng)基于流程挖掘的安全審計(jì)技術(shù)研究與實(shí)現(xiàn)[D].上海:華東師范大學(xué),,2007.
[9] AALST V W,,HEE K V.工作流管理[M].王建民,聞立杰,,譯.北京:清華大學(xué)出版社,,2004.
[10] 張瑞君,蔣硯章.會計(jì)信息系統(tǒng)[M].北京:中國人民大學(xué)出版社,,2009.
[11] NIELSEN R.SQL Server 2008寶典[M].馬振晗,,任鴻,高宇輝,,譯.北京:清華大學(xué)出版社,,2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。