摘 要: 新的分布式計算機審計技術——基于移動 Agent的分布式計算機審計技術的出現給人們帶來了新的發展。本文在介紹移動 Agent技術的基礎上提出了一種應用移動 Agent技術的現代化審計模型。
關鍵詞: 移動Agent 計算機審計系統 分布式審計系統
一、移動Agent的定義
Agent是指模擬人類行為與關系、具有一定智能并能夠自主運行和提供相應服務的程序,是面向對象技術向軟件智能化發展的產物,它的出現將計算機軟件設計提高到一個更高的抽象層次。人們可以把它看作一個自治的實體,它能夠感知環境,并且對外界的信息作出一定的判斷與推理,來控制自己的決策與行為,以便完成一定的任務。
移動Agent(Mobile Agent,簡稱MA)是具有移動性的Agent。移動Agent的概念是20世紀90年代初由General Magic公司在推出商業系統Telescript時提出的。簡單地說,移動Agent是一個能在異構網絡中自主地從一臺主機遷移到另一臺主機,并與其他Agent或資源交互的程序。移動的目的是使程序的執行盡可能靠近數據源,降低網絡的通信開銷,平衡負載,提高完成任務的時效。移動Agent實質上是一個封裝代碼、運行狀態和數據的計算實體,是可以在執行過程中有目的地、自主地在網絡中移動,利用與分布資源的局部交互而完成分布任務的軟件實體。傳統客戶機與服務器間的交互需要連續的通信支持;而移動Agent可以遷移到服務器上,與之進行高速的本地通信,這種通信不再占用網絡資源。
移動Agent是一種新的網絡計算技術,它能有效地降低分布式計算中的網絡負載,提高通信效率,動態適應變化了的網絡環境,并具有很好的安全性和容錯能力,為有效地進行數據庫訪問提供了一種新思路和新方法。
二、移動Agent系統的組成
不同移動Agent系統的體系結構各不相同,但幾乎所有的移動Agent系統都包含移動Agent(MA)和移動Agent服務設施(Mobile Agent Equipment,簡稱MAE)兩個部分,如圖1所示。

MAE負責為MA建立安全、正確的運行環境,為MA提供最基本的服務(包括創建、傳輸、執行),實施針對具體MA的約束機制、容錯策略、安全控制和通信機制等。MA的移動性和問題求解能力很大程度上取決于MAE所提供的服務。
通常情況下,一個MAE只位于網絡中的一臺主機(Host)上,但如果主機間是以高速網絡進行互聯的話,一個MAE也可以跨越多臺主機而不影響整個系統的運行效率。MAE利用Agent傳輸協議(Agent Transfer Protocol,ATP)實現MA在主機間的移動,并為其分配執行環境和服務接口。MA在MAE中執行,通過Agent通信語言(Agent Communication Language,簡稱ACL)相互通信并訪問MAE提供的各種服務。
在移動Agent系統的體系結構中,MA可以細分為用戶Agent(User Agent,簡稱UA)和服務Agent(Server Agent,簡稱SA)。UA可以從一個MAE移動到另一個MAE,它在MAE中執行,并通過ACL與其它MA通信或訪問MAE提供的服務。UA的主要作用是完成用戶委托的任務,它需要實現移動語義、安全控制、與外界的通信等功能。SA不具有移動能力,其主要功能是向本地的MA或來訪的MA提供服務,一個MAE上通常駐有多個SA,分別提供不同的服務。由于SA是能不移動的,并且只能由它所在MAE的管理員啟動和管理,這就保證了SA不會是“惡意的”。UA不能直接訪問系統資源,只能通過SA提供的接口訪問受控的資源,從而避免惡意Agent對主機的攻擊,這是移動Agent系統經常采用的安全策略。
三、移動Agent在審計中的應用
(一)網絡環境下的計算機審計系統模型特點
目前的計算機審計普遍采用“數據集中和專家找問題”方式,即要求將一些分布存儲在被審計單位各種業務、財務系統中的數據收集到一個集中的地方,然后由審計專家在這些集中的數據里查找問題。隨著被審計單位的交易日益頻繁,這種模式無法做到實時審計和在線審計,而且這種審計模式要求企業有高速的數據通信網絡。然而,雖然目前網絡帶寬在增加,但還是比不上企業數據增長的速度,結果導致通過有限的網絡帶寬來移動分布存儲的大容量的數據。審計流程中強調專家的個人能力,即要求審計小組由審計組長牽頭制訂審計流程和確定集中采集哪些數據。但是,這種依賴于個人能力和經驗的操作方式往往需要多次反復集中收集數據,這在要求實時審計和在線審計條件下是“不可思議”的。同時,這種方式也破壞了數據的私有性和安全性。在這種審計方式下,被審計單位的業務數據、資金往來數據“暴露無遺”,無疑給被審計單位的經濟情報等方面的保護工作帶來巨大的威脅。在某些情況下,系統安全意味著用戶使用一些不能離開本站點的敏感數據,這也讓目前的審計方式無法做到。因此,被審計數據的分布式存儲、數據的私有性與安全性、實時審計和在線審計等方面的要求迫切需要我們深入分布式環境下的計算機審計技術。
分布式審計能適應經濟的新發展,提高稽核監督的工作效率,保證企業實時動態地被審計監控,保障企業的業務及資金流動的合理有序,提高企業資金的風險靈敏度,更有效地把信用風險、市場風險和操作風險降到最低。分布式審計系統是一個復雜的分布式大系統,同時,隨著審計項目日益繁雜,網絡環境下的分布式審計系統模型應該具有以下特點:(1)模塊化設計,保證系統中不同模塊可以根據需要進行靈活的增減和配置,以及分布式審計系統的持續可用。(2)靈活審計,滿足分布式審計系統的多層次用戶的需要。(3)分布式移動審計,支持審計算法的移動性。(4)知識共享,采用通用的知識表示方式(或標準)實現各個業務系統上分布式審計,以及審計系統與其他系統的信息交互。(5)平臺無關,保證各個系統上的審計算法,全局審計算法,以及系統功能模塊能夠完成不同平臺上的數據處理和通訊任務。(6)安全保證,滿足被審計單位數據安全的需要。
(二)使用移動Agent技術的分布式審計系統
針對網絡環境下計算機審計系統模型特點,本文提出了一種使用移動Agent技術的分布式審計模型。如圖2所示,整個模型由三部分組成:人機界面、審計子系統和被審計單位子系統。

1.人機界面
人機界面是用戶與計算機審計系統互操作的渠道,完成用戶的審計輸入和審計結果的顯示。例如,用戶可以選擇審計模型(審計算法)、數據源、審計初始流程,可以完成系統中Agent的知識和規則的更新,彌補系統知識的不足,也可以輸入一些基本信息,如,在不同時期,針對不同性質的被審計單位,可以設定進行資金流審計的最低額度,等等;用戶還可以選擇最終的結果的可視化形式。同時,人機界面顯示審計子系統中“智能用戶Agent”提交的審計結果信息。
2.審計子系統
上面介紹了分布式審計模型中的三個主要部分的內部結構功能等,本部分著重分析該模型的核心部分——審計子系統中各組成Agent的功能及它們之間的協作關系。如圖2所示,審計子系統由協調Agent、審計Agent、智能用戶Agent、審計算法Agent、分析Agent和數據站點管理Agent組成。這些Agent協調一致地工作,它們的功能和它們之間的協作關系分析如下:
(1)智能用戶Agent
該Agent代表用戶向審計子系統提出審計請求。只需要用戶提出相應的要求或者做一系列的選擇,智能用戶Agent就可以將用戶要求轉化為協調Agent能夠識別的命令并提交給協調Agent進行任務的計劃分配;智能用戶Agent還負責處理通過人機接口輸入的系統更新信息等,如審計特定算法參數,Agent知識和規則等。該Agent除了處理用戶輸入的信息外,還需要能夠保存審計子系統的審計結果等輸出信息,或直接提交這些信息給用戶擁有的人機接口。
(2)協調Agent
它主要完成三項任務:①任務規劃優化,主要完成審計任務的規劃,并選擇最優的規劃方案。它與審計算法Agent、分析Agent、審計Agent管理器和數據站點管理Agent交互,得到審計算法效率功能特點、異常數據模型、系統中審計Agent的功能狀態、數據站點數據集大小和數據變化趨勢等信息來確定相應的審計方案以盡可能滿足用戶需要。該Agent具有實時規劃能力以滿足因某個移動Agent的失效而進行任務的重新規劃。②依據規劃結果,協調Agent創建并命名多個并行協同工作的裝載有審計算法或審計模型的移動審計Agent,并將這些移動Agent的基本信息注冊到審計Agent管理器中。③審計整個過程的協作協調,主要協調審計過程的各個Agent和維護系統當前的運行狀態信息等。它得到一個有關系統狀態信息的參考點。它可以看作是分布式審計任務的一個描述各Agent的操作基點的動態目錄。同時,協調Agent也是系統中Agent信息交換中心,負責維護Agent之間信息的交互傳遞等。
(3)審計Agent
該Agent是移動Agent,由協調Agent創建,并移動到協調器指定的數據站點進行數據分析,并將自身的位置信息和狀態信息傳遞給審計Agent管理器,將審計分析反饋給協調器以進行數據結果的融合。審計Agent運用自身攜帶的審計模型、審計算法或請求協調Agent得到的審計模型等完成具體的審計子任務,并為分析Agent提供異常數據。
(4)審計Agent管理器
負責管理所有審計Agent的相關信息,這樣各種Agent通過與管理Agent交互便可以動態獲取其他Agent的屬性信息(位置、功能等),從而與其他Agent進行交互,以獲取所需要的信息。它是實現系統分布式透明性的關鍵,主要用于收集、管理、統計、查詢各種Agent信息資源,按其功能分類或建立Agent聯盟。同時,它也擔當可信任的安全認證中心,保證各Agent之間的安全通信機制。
(5)審計算法Agent
審計算法Agent主要負責維護審計分析算法。用戶可以注冊審計分析算法。當算法注冊到系統中,算法Agent登記算法的元知識信息及其特點(比如,名字、版本、輸入參數、操作環境描述和輸出格式等)。同時,算法Agent將這些信息反饋給協調Agent。
(6)數據站點管理Agent
數據站點管理Agent主要負責被審計單位Agent服務器的基本信息,如Agent服務器的啟動、停止狀態信息、位置信息和數據源信息等。Agent服務器及時將其啟動、停止信息注冊到數據站點管理器以便協調器合理規劃審計任務,但在進行實時在線審計中,Agent服務器不能關閉。為了維護Agent服務器和防止Agent服務器出現故障,往往在被審計單位提供同步工作的Agent服務器。
(7)分析Agent
分析Agent采用數據挖掘算法,根據審計Agent提供的異常數據自動生成、更新審計模型及運行參數,是體現審計子系統自適應的核心部件。它主要包括異常信息傳遞模塊和自適應模式產生機構。
審計子系統由7類功能各異協同工作的Agent組成,當接受到用戶提交的具體審計任務后,系統自動有條不紊地對被審計單位的財務數據進行審計,及時發現問題并以多種形式向審計單位監控中心提交審計結果,達到規范經營活動和金融風險預警等目的,其中,審計Agent是審計任務執行的關鍵。
3.被審計單位子系統
被審計單位子系統包括Agent服務器、業務部子系統和數據站點三部分。其中,Agent服務器保存有本地數據站點的有關信息,如本地數據的形式、數據庫管理系統、業務數據庫表結構、數據范圍等。每個Agent服務器向數據站點管理Agent注冊,并及時更新數據站點管理Agent中的有關內容以便協調Agent有效地規劃審計任務。同時,Agent服務器為審計Agent提供服務設施和提供移動管理器、運行管理器、通信管理器和安全管理器等。這里,Agent服務器和業務部子系統運行在指定被審計單位的專用服務器上。
4.審計Agent的結構
審計Agent是一種移動Agent,每個審計Agent都是一個相對獨立的審計單元,利用其自帶的審計算法和知識庫信息等執行審計任務;還可以不斷地從分析Agent中獲取最新的知識用于審計。審計Agent封裝了描述其狀態的屬性,以便當Agent移動到另一主機上重新開始工作和向審計Agent管理器返回信息。圖3給出了一個審計Agent的內部結構,該結構包含下列模塊:

(1)接口模塊
主要將審計Agent的內部機制與外界隔離,所有信息交流都通過該接口。該模塊包含與協調Agent和Agent服務器進行交互接口和消息的傳遞接口以及與數據源的聯接接口。該Agent交流的信息包括控制信息、異常信息、算法更新模式信息、審計數據等。
(2)安全控制模塊
對移動Agent自身提供保護;防止外部環境對審計Agent的非法訪問,以保證數據的正確性和合法性;完成對數據的加/解密、數字簽名等任務。
(3)審計模塊
首先對業務、財務審計數據進行規范化,然后依據審計算法和審計模型來對已經規范化的數據進行分析,確定這些數據中是否包含不符合操作規程的行為數據或異常情況。最后,將分析得到異常數據上傳給協調Agent,以便作進一步綜合分析。
(4)知識庫
由協調Agent進行初始化,主要存放審計算法、審計模型和其它一些分析審計需要的知識。
參考文獻:
[1]張云勇等.移動agent及其應用[M].清華大學出版社,2005.
[2]何炎祥.Agent和多Agent系統的設計與應用[M].武漢大學出版社,2001.
[3]佟強,陳珉,王云.基于Mobile Agent的分布式空間數據服務模型[J].計算機工程,2004,(01).
[4]郭宗文等.計算機審計[M].清華大學出版社,2005.