專利名稱:計算機軟件系統中實現安全審計與留痕的系統結構及方法
技術領域:
本發明涉及計算機軟件領域,特別涉及企業應用軟件系統領域,具體是指一種計 算機軟件系統中實現基于元數據元的安全審計與留痕的系統結構及其方法。
背景技術:
隨著企業應用與企業核心業務結合越來越緊密,例如金融行業帳務處理系統,網 上銀行系統,均涉及核心業務,這些業務對于安全審計要求很高,一般要求這些業務特別 是“寫”的業務,例如轉賬、支付等,均需要進行業務操作留痕和業務數據的原始數據,這樣 安全審計包括兩個部分,一部分是操作日志,必須保存什么時間,什么人,操作什么業務,即 3W。另一部分業務數據的原始數據留痕,例如一筆客戶信息,修改前數據,必須和客戶修改 操作同時進行留痕和記錄,結合操作日志,忠實記錄誰修改什么數據,從什么數據修改為什 么數據。當然,在業界通行做法,就是針對需要進行安全審計的業務,特殊進行歷史模型的 設計,同時根據特定業務邏輯(Application Logic)處理,例如針對客戶信息修改或者刪除 處理,以硬編碼的方式,增加客戶數據備份處理和業務操作留痕處理等內容。例如請參閱圖 1所示,其中為以客戶和訂單信息為例的數據模型設計,再請參閱圖2所示,其中為業務邏 輯操作。采用現有技術中的這種方式,存在以下問題(1)必須針對特定功能,進行針對性安全審計的設計,包括數據模型審計和業務邏 輯處理,因此導致處理效率很低,開發工作量較大;(2)隨需應變能力較弱;特別對于已經上線的系統,安全審計變更較為頻繁的系 統,例如我們針對一個已有系統某個特定功能增加安全審計,或者調整安全審計粒度的時 候,需要修改數據實體、業務邏輯多層次的代碼;(3)復用能力低,安全審計規范無法落實;這個功能從安全審計需求而言,是存在 一定共性需求,如何把通用類功能靈活綁定在每一個特定功能上,是需要考慮和關注的。
發明內容
本發明的目的是克服了上述現有技術中的缺點,提供一種能夠實現針對任意業務 功能、靈活進行業務數據粒度和數量的配置、安全審計能夠隨需應變、有效提高業務開發效 率、降低開發成本、工作性能穩定可靠、適用范圍較為廣泛的計算機軟件系統中實現基于元 數據元的安全審計與留痕的系統結構及其方法。為了實現上述的目的,本發明的計算機軟件系統中實現基于元數據元的安全審計 與留痕的系統結構及其方法如下該計算機軟件系統中實現基于元數據元的安全審計與留痕的系統結構,其主要特 點是,所述的系統結構中包括配置接口功能模塊、過濾器、數據分解器、日志記錄功能模塊, 所述的配置接口功能模塊依次通過所述的過濾器和數據分解器與所述的日志記錄功能模塊相連接。該計算機軟件系統中實現基于元數據元的安全審計與留痕的系統結構中的日志 記錄功能模塊包括數據庫記錄器、文件記錄器和控制臺記錄器,所述的數據庫記錄器、文件 記錄器和控制臺記錄器均與所述的數據分解器相連接。該通過上述的系統結構實現計算機軟件系統中基于元數據元的安全審計與留痕 的方法,其主要特點是,所述的方法包括以下步驟(1)所述的配置接口功能模塊根據配置信息獲取相應類型的過濾器;(2)當有Request請求數據的時候,所述的過濾器根據該Request請求數據的統一 資源定位符URL進行安全攔截;(3)根據所述的過濾器對Request請求數據進行安全審計的結果信息,進行業務 數據的輸出處理;(4)所述的日志記錄功能模塊根據系統預設的輸出形式進行日志信息輸出。該實現計算機軟件系統中基于元數據元的安全審計與留痕的方法中的配置信息 包括URL配置信息和數據配置信息。該實現計算機軟件系統中基于元數據元的安全審計與留痕的方法中的進行業務 數據的輸出處理,具體為根據鍵-值形式,進行數據輸出,或者根據SDO對象或者XML數據,通過XPATH形 式進行數據輸出。該實現計算機軟件系統中基于元數據元的安全審計與留痕的方法中的日志記錄 功能模塊進行日志信息輸出,具體為所述的日志記錄功能模塊根據系統預設的輸出形式采用以下方式中的一種或者 多種進行日志信息輸出所述的數據庫記錄器將所述的日志信息輸出至數據庫中;所述的文件記錄器將所述的日志信息輸出至文件中;所述的控制臺記錄器將所述的日志信息輸出至控制臺中。采用了該發明的計算機軟件系統中實現基于元數據元的安全審計與留痕的系統 結構及其方法,由于其中通過功能攔截器、元數據元(MMM)定義操作、元數據控制操作等三 個核心部分,實現了針對任意業務功能,通過配置界面進行,靈活增加特定業務功能審計、 特定業務功能業務數據審計,并可以靈活地進行業務數據粒度和數量的配置,從而很好地 解決了安全審計規范的固化問題,使得安全審計能夠隨需應變,提高了業務開發效率,減低 了開發成本,工作性能穩定可靠,適用范圍較為廣泛。
圖1為現有技術中的以客戶和訂單信息為例的數據模型設計示意圖。圖2為現有技術中的業務邏輯操作示意圖。圖3為本發明的計算機軟件系統中實現基于元數據元的安全審計與留痕的系統 結構中的靜態類圖。圖4為本發明的計算機軟件系統中實現基于元數據元的安全審計與留痕的方法 的過程示意圖。
圖5為本發明中的元數據元的解釋示意圖。
具體實施例方式為了能夠更清楚地理解本發明的技術內容,特舉以下實施例詳細說明。首先對本發明中所出現的術語進行必要的解釋元數據——關于數據的數據或者叫做用來描述數據的數據或者叫做信息的信 息。例如,可以把元數據簡單的理解成,最小的數據單位。元數據可以為數據說明其元素或 屬性(名稱、大小、數據類型等)或其結構(長度、字段、數據列)。針對SDO數據實體描述信息,一般也定義為元數據,例如CUST數據對象,定義了 CUSTID (客戶號、Integer類型、必輸入項)。元數據元——英文對應為“metadata meta”,針對SDO元數據安全審計中,需 要對審計的元數據進行定義和攔截,因此提出元數據元的概念,這是描述元數據審計和攔 截信息等內容,具體可參閱圖5所示。請參閱圖3所示,該計算機軟件系統中實現基于元數據元的安全審計與留痕的系 統結構,其中包括配置接口功能模塊、過濾器、數據分解器、日志記錄功能模塊,所述的配置 接口功能模塊依次通過所述的過濾器和數據分解器與所述的日志記錄功能模塊相連接。其中,所述的日志記錄功能模塊包括數據庫記錄器、文件記錄器和控制臺記錄器, 所述的數據庫記錄器、文件記錄器和控制臺記錄器均與所述的數據分解器相連接。再請參閱圖4所示,該通過上述的系統結構實現計算機軟件系統中基于元數據元 的安全審計與留痕的方法,其中包括以下步驟(1)所述的配置接口功能模塊根據配置信息獲取相應類型的過濾器;該配置信息 包括URL配置信息和數據配置信息;(2)當有Request請求數據的時候,所述的過濾器根據該Request請求數據的統一 資源定位符URL進行安全攔截;(3)根據所述的過濾器對Request請求數據進行安全審計的結果信息,進行業務 數據的輸出處理,具體為根據鍵-值形式,進行數據輸出,或者根據SDO對象或者XML數據,通過XPATH形式進行數據輸出;(4)所述的日志記錄功能模塊根據系統預設的輸出形式進行日志信息輸出,具體 為所述的日志記錄功能模塊根據系統預設的輸出形式采用以下方式中的一種或者 多種進行日志信息輸出所述的數據庫記錄器將所述的日志信息輸出至數據庫中;所述的文件記錄器將所述的日志信息輸出至文件中;所述的控制臺記錄器將所述的日志信息輸出至控制臺中。在實際應用中,本發明的業務日志記錄功能對業務人員關注的數據進行監控。在 系統開發完成之后,業務人員對系統的關鍵操作提出記錄日志的需求,由配置人員將業務 人員關注的數據配置,控制業務人員關注的數據能夠被記錄。業務人員一般會關注如什么用戶在什么時間登錄,在什么時間進行了什么關鍵操作等信息。在記錄日志方面,系統通過截取需要記錄的URL所有的HTTP請求,并根據用戶的 配置對HTTP請求的內容過濾。即可以實現業務日志功能。各個類的方法 日志記錄的各個類為LogInterc^pter調用。Interc^pter調用順序圖請參閱圖4 所示。(1)根據配置信息(配置URL和數據配置),取得多種Filter,當存在request請 求時候,我們根據URL,進行安全攔截請求。(2)同時,根據配置需求安全審計的信息,進行哪些業務數據進行輸出;例如我們 根據key-value形式,進行數據輸出。通過SDO對象或者XML數據,我們通過XPATH形式, 進行數據輸出。(3)同時我們根據輸出形式,輸出一種或者多種數據格式,例如文件、數據庫等內容。本發明的方法中,主要的代碼實現用偽代碼給出如下public class DataPasser {public static LogData handleData(HttpServletRequest request, Filter
filter) {LogData IogData = null ;String url = request, get RequestURL (). toString(). toLowerCase ();String reg = filter. getUrlPattern(). replace (" -k " , " . -k “);if (url. matches (reg)) {IogData = new LogData(request, filter);}return IogData ;}}public class LogData{private Date date ;private HttpServletRequest request ;private Filter filter ;II...public String getFormattedLog(){StringBuffer sb = new StringBuffer();sb. append (〃 [ ]");sb. append ( ‘‘ [itime] [ ‘‘ ) . append (DateUtil. format(getTime (), " yyyy-MM-ddHH:mm:s s. SSS" )). append("]〃 );sb. append (〃 [iurl] [" ). append (getUrl O) · append ("=>" ). append (getActionO). append (〃 ]〃 );sb. append (〃 [iuser] [" ). append (getUser ()). append (〃 ]〃);String [] datakeys = getDataKeys ();for(int i = O ;i<datakeys. length ;i++) {sb. append ( 〃 [i 〃 ). append (datakeys [i]). append ( 〃 ][ 〃 ). append(request. getParameter (datakeys [i])). append ("]〃);}sb. append (〃 [$$] 〃 );return sb. toString ();}public Date getTime () {return date ;}public String getActionO {return request. getParameter(" eosFlowAction");
70099]//...
0100]}
0101]public class LogInterceptor implements IffebInterceptor{
0102]private List<Filter>fliters ;
0103]public LogInterceptor () {
0104]this, filters = IConfig. factory, create (). getFilters ();
0105]}
0106]public void dolntercept(HttpServletRequest request,HttpServletResponse
0107]response,IffebInterceptorChain chain)throws IOException,ServletException{
0108]for(int i = O ;i<filters. size() ;i++) {
0109]LogData IogData = DataPasser. handleData(request, filters, get(i));
0110]if(logData ! = null) {
0111]writerData(logData, filters, get(i));
0112]break ;
0113]}
0114]}
0115]chain, dolntercept (request, response);
0116]}
0117]private void writerData(LogData logData, Filter filter){
0118]for(int i = O ;i<filter. getOutput (). length ;i++) {
0119]Iffriter. factory, create(filter. getOutput()[i]). write (logData);
0120]} 0121]} 0122]}
0123]相應的技術方案具有以下優點
0124](1)固化安全審計規范和要求
0125]通過元數據配置方式和攔截器方式,支持標準安全規范方式,進行業務數據留痕
和業務日志記錄。(2)隨需應變的能力通過配置文件配置和元數據配置方式,能方便支持任意功能的安全審計配置,同 時系統上線后,也能靈活進行調整和增加。(3)減低成本,提高效率針對Handler方式和元數據方式,也能快速定義安全配置;而不采用硬編碼和針 對數據模型的方式。下面結合具體例子進行進一步說明假設有個客戶基本信息維護(cust)的安全審計需要,包括任何人,修改客戶信息 (客戶ID,客戶名稱、客戶編碼等)。同時要求輸出安全審計表中。下面詳細說明(1)配置 filter (標準 J2EE 應用)或者 handler (EOS 應用)
8
選)
(2)配置文件所在路徑WEB-INF/classes/bizlog. properties文件(本文件可
配置文件的第一行需要指名業務日志的輸出路徑 如下所示log_file_path = e/logs/cust. log業務日志的配置格式如下URL字符串.屬性=值#URL字符串中任意多個字符#其中屬性包括#data 定義對應于該URL的關注數據,即,從頁面傳入的參數#output 定義對應于該URL的輸出位置。可以選擇以下三種方式file 輸出到日志文件console 輸出到控制臺database 輸出到數據庫例如 DB_JIDI = default_db(3)針對客戶信息維護功能內容,舉例如下例如前提是客戶維護的URL均為/cust/*. jsp,數據庫源為default_db.需要 記錄信息包括custName,custCode等內容。以下為一個示例log_file_path = e/logs/business, log/cust/ * .jsp. data = custld,custName,custCode-k . output = dababaseDB_JIDI = default_db基于上述描述,本發明的基于元數據的安全審計方法的核心思想包括以下幾點(1)基于元數據方式進行業務數據留痕和記錄。根據reques數據區中,數據內容, 通過SDO或者XML方式,以XPATH方式進行尋址,根據元數據配置要求,進行數據留痕和輸
出ο(2)通過不同輸出端,采用一種或多種輸出形式支持數據輸出和存儲,包括DB\ FILE\C0NS0LE等多種方式,并支持應用進行特殊擴展。(3)全面考慮業務數據留痕的通用需求,完全通過配置化的方式,支持業務數據安 全審計和留痕操作。(4)全面支持基于Handler方式進行擴展,同時很好與元數據配置相結合,支持操 作日志和業務日志兩者完美結合。采用了上述的計算機軟件系統中實現基于元數據元的安全審計與留痕的系統結 構及其方法,由于其中通過功能攔截器、元數據元(MMM)定義操作、元數據控制操作等三個 核心部分,實現了針對任意業務功能,通過配置界面進行,靈活增加特定業務功能審計、特 定業務功能業務數據審計,并可以靈活地進行業務數據粒度和數量的配置,從而很好地解 決了安全審計規范的固化問題,使得安全審計能夠隨需應變,提高了業務開發效率,減低了 開發成本,工作性能穩定可靠,適用范圍較為廣泛。
在此說明書中,本發明已參照其特定的實施例作了描述。但是,很顯然仍可以作出 各種修改和變換而不背離本發明的精神和范圍。因此,說明書和附圖應被認為是說明性的 而非限制性的。
權利要求
一種計算機軟件系統中實現基于元數據元的安全審計與留痕的系統結構,其特征在于,所述的系統結構中包括配置接口功能模塊、過濾器、數據分解器、日志記錄功能模塊,所述的配置接口功能模塊依次通過所述的過濾器和數據分解器與所述的日志記錄功能模塊相連接。
2.根據權利要求1所述的計算機軟件系統中實現基于元數據元的安全審計與留痕的 系統結構,其特征在于,所述的日志記錄功能模塊包括數據庫記錄器、文件記錄器和控制臺 記錄器,所述的數據庫記錄器、文件記錄器和控制臺記錄器均與所述的數據分解器相連接。
3.—種通過權利要求1所述的系統結構實現計算機軟件系統中基于元數據元的安全 審計與留痕的方法,其特征在于,所述的方法包括以下步驟(1)所述的配置接口功能模塊根據配置信息獲取相應類型的過濾器;(2)當有Request請求數據的時候,所述的過濾器根據該Request請求數據的統一資源 定位符URL進行安全攔截;(3)根據所述的過濾器對Request請求數據進行安全審計的結果信息,進行業務數據 的輸出處理;(4)所述的日志記錄功能模塊根據系統預設的輸出形式進行日志信息輸出。
4.根據權利要求3所述的實現計算機軟件系統中基于元數據元的安全審計與留痕的 方法,其特征在于,所述的配置信息包括URL配置信息和數據配置信息。
5.根據權利要求3所述的實現計算機軟件系統中基于元數據元的安全審計與留痕的 方法,其特征在于,所述的進行業務數據的輸出處理,具體為根據鍵_值形式,進行數據輸出,或者根據SDO對象或者XML數據,通過XPATH形式進 行數據輸出。
6.根據權利要求3所述的實現計算機軟件系統中基于元數據元的安全審計與留痕的 方法,其特征在于,所述的日志記錄功能模塊包括數據庫記錄器、文件記錄器和控制臺記錄 器,所述的數據庫記錄器、文件記錄器和控制臺記錄器均與所述的數據分解器相連接,所述 的日志記錄功能模塊進行日志信息輸出,具體為所述的日志記錄功能模塊根據系統預設的輸出形式采用以下方式中的一種或者多種 進行日志信息輸出所述的數據庫記錄器將所述的日志信息輸出至數據庫中;所述的文件記錄器將所述的日志信息輸出至文件中;所述的控制臺記錄器將所述的日志信息輸出至控制臺中。
全文摘要
本發明涉及一種計算機軟件系統中實現安全審計與留痕的系統結構,其中包括配置接口功能模塊、過濾器、數據分解器、日志記錄功能模塊,配置接口功能模塊依次通過過濾器和數據分解器與日志記錄功能模塊連接。本發明還涉及一種通過該系統結構實現計算機軟件系統中基于元數據元的安全審計與留痕的方法。采用該種計算機軟件系統中實現安全審計與留痕的系統結構及方法,實現了針對任意業務功能,通過配置界面進行,靈活增加特定業務功能審計、特定業務功能業務數據審計,靈活地進行業務數據粒度和數量的配置,解決了安全審計規范的固化問題,使得安全審計能夠隨需應變,提高了業務開發效率,減低了開發成本,工作性能穩定可靠,適用范圍較為廣泛。
文檔編號G06F9/44GK101908014SQ20101026908
公開日2010年12月8日 申請日期2010年9月1日 優先權日2010年9月1日
發明者丁躍彬, 陳路凝 申請人:上海普元信息技術股份有限公司