专利名称:计算机软件系统中实现安全审计与留痕的系统结构及方法
技术领域:
本发明涉及计算机软件领域,特别涉及企业应用软件系统领域,具体是指一种计 算机软件系统中实现基于元数据元的安全审计与留痕的系统结构及其方法。
背景技术:
随着企业应用与企业核心业务结合越来越紧密,例如金融行业帐务处理系统,网 上银行系统,均涉及核心业务,这些业务对于安全审计要求很高,一般要求这些业务特别 是“写”的业务,例如转账、支付等,均需要进行业务操作留痕和业务数据的原始数据,这样 安全审计包括两个部分,一部分是操作日志,必须保存什么时间,什么人,操作什么业务,即 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日
发明者丁跃彬, 陈路凝 申请人:上海普元信息技术股份有限公司