一种数据库的事件关联方法与审计系统与流程

文档序号:23897718发布日期:2021-02-09 12:44阅读:94来源:国知局
[0001]本发明属于网络与数据库安全
技术领域
:,尤其是涉及一种数据库事件的关联方法以及利用该关联方法的数据库审计系统。
背景技术
::[0002]三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。通常情况下,客户端不直接与数据库进行交互,而是通过com/dcom/com+等三层协议与中间层建立连接,再经由中间层与数据库进行交互。三层协议具有比较强的封装性,在给用户带来便利的同时,也导致了许多审计分析的难题。[0003]三层审计,是将应用层区域的审计数据与数据库层区域的审计数据综合起来进行“关联分析”,从而将应用层操作准确对应到数据库层的操作。当发生安全事件时,根据关联审计记录的日志信息,可快速定位到网络中的责任人。传统的基于时间序列的匹配、关联,效率和准确性都有待进一步提高。技术实现要素:[0004]有鉴于此,本发明旨在提供一种数据库事件的关联法以及利用该方法的数据库审计系统,进行多次关联与筛除,提高关联的处理效率和结果准确性。[0005]一方面,提供一种数据库事件的关联方法,在三层架构中,将客户端至web服务器的事件与web服务器至数据库服务器的事件进行关联,具体包括:分别记录客户端向web服务器与web服务器向数据库服务器的事件信息,形成第一事件池与第二事件池;从所述第一事件池中取出同一会话id的所有第一事件;对每个第一事件:根据发生时间从第二事件池中检索发生时间符合特定相关条件的第二事件,与所述第一事件组成初级关联事件;所述初级关联事件中,判断第二事件的信息是否具有第一事件的至少一个有效值,若具有则将初级关联事件确定为次级关联事件,否则筛除;将次级关联事件的所有第一事件按发生时间排序,每个第一事件关联的第二事件按发生时间排序;对于在后第一事件关联的第二事件,若其发生时间位于在前第一事件关联的任一第二事件之前,则筛除,否则将次级关联事件确定为最终关联事件。[0006]所述根据发生时间从第二事件池中检索发生时间符合特定相关条件的第二事件,包括:以时间t为时间窗,检索发生时间处于区间“第一事件发生时间±t”内的第二事件。[0007]所述客户端向web服务器的事件信息,包括客户端请求的发生时间,会话id,四元组信息与有效值;所述web服务器向数据库服务器的事件信息,包括web服务器请求的发生时间,会话id,四元组信息与数据库操作信息;其中,所述会话id以五元组信息的hash值表示。[0008]从所述客户端向web服务器的事件信息提取有效值,包括:根据三层协议解析出请求的有效数据,对有效数据进行正则提取得到特征关键字,最后根据关键字获取对应的有效值。[0009]若未提取到有效值,则所述客户端向web服务器的事件信息包括发生时间,会话id,四元组信息与全部有效数据;对有效数据进行重复关键字的持续解析、学习与验证,得到特征关键字对应的正则,再进行有效值的提取。[0010]判断第二事件的信息是否具有第一事件的至少一个有效值,包括判断第二事件的数据库操作信息中是否包括至少一个第一事件信息的有效值。[0011]所述数据库操作信息包括sql操作信息与非sql语法的关键字信息。[0012]所述将次级关联事件确定为最终关联事件之后,还包括:人工确认所述最终关联事件,以及提取关联规则进行建模学习,当继续出现相同规则的第一事件与第二事件时,直接输出为最终关联事件。[0013]另一方面,提供一种数据库的关联审计系统,包括:数据解析模块,分别解析客户端至web服务器的数据与web服务器至数据库服务器的数据,得到相应的事件信息;事件信息存储模块,用于存储事件信息,包括第一事件的发生时间,会话id,四元组信息与有效值,以及第二事件的发生时间,会话id,四元组信息与数据库操作信息;事件关联模块,根据预设的相关条件,将第一事件与第二事件关联起来;审计模块,对关联后的事件内容进行安全审计。[0014]所述的审计系统将第一事件信息与第二事件信息,分别形成第一事件池与第二事件池;从所述第一事件池中取出同一会话id的所有第一事件;对每个第一事件:根据发生时间从第二事件池中检索发生时间符合特定相关条件的第二事件,与所述第一事件组成初级关联事件;所述初级关联事件中,判断第二事件的信息是否具有第一事件的至少一个有效值,若具有则将初级关联事件确定为次级关联事件,否则筛除;将次级关联事件的所有第一事件按发生时间排序,每个第一事件关联的第二事件按发生时间排序;对于在后第一事件关联的第二事件,若其发生时间位于在前第一事件关联的任一第二事件之前,则筛除,否则将次级关联事件确定为最终关联事件。[0015]上述的技术方案,与现有技术相比,实现了以下有益效果:先根据发生时间窗将客户端至web服务器的第一事件与web服务器至数据库服务器的第二事件进行初级关联,再判断第二事件中是否包含第一事件中的有效值进行次级关联,最后根据发生时间序列进行筛除,得到最终关联事件,对最终确认的关联事件进行内容审计,可以准确的定位到数据库操作的真正用户,提高数据库防护有效性。附图说明[0016]附图1为本发明的数据库的事件关联方法实施例,工作流程示意图;附图2为基于图1关联方法的审计系统,组成模块示意图。具体实施方式[0017]下面结合附图与实施例对本发明的技术方案进行详细说明。[0018]如图1所示,一种数据库事件的关联方法,将客户端至web服务器的事件与web服务器至数据库服务器的事件进行关联,具体包括:s100,分别获取客户端向web服务器与web服务器向数据库服务器的数据,分别记录为第一事件数据与第二事件数据。[0019]s200,解析数据得到事件信息,存入第一事件池与第二事件池;其中,第一事件信息包括客户端请求的发生时间,会话id,四元组信息与有效值;第二事件信息包括web服务器请求的发生时间,会话id,四元组信息与数据库操作信息;其中,所述会话id以五元组信息的hash值表示。[0020]s300,从所述第一事件池中取出同一会话id的所有第一事件,对每个第一事件:以时间t为时间窗,检索发生时间处于区间“第一事件发生时间±t”内的第二事件,与所述第一事件组成初级关联事件。[0021]s400,所述初级关联事件中,判断第二事件的信息是否具有第一事件的至少一个有效值,若具有则将初级关联事件确定为次级关联事件,否则筛除。[0022]取有效值,包括:根据三层协议解析出请求的有效数据,对有效数据进行正则提取得到特征关键字,最后根据关键字获取对应的有效值。[0023]若未提取到有效值,则所述客户端向web服务器的事件信息包括发生时间,会话id,四元组信息与全部有效数据;对有效数据进行重复关键字的持续解析、学习与验证,得到特征关键字对应的正则,再进行有效值的提取。[0024]判断第二事件的信息是否具有第一事件的至少一个有效值,包括判断第二事件的数据库操作信息中是否包括至少一个第一事件信息的有效值。[0025]所述数据库操作信息包括sql操作信息与非sql语法的关键字信息。[0026]s500,将次级关联事件的所有第一事件按发生时间排序,每个第一事件关联的第二事件按发生时间排序;对于在后第一事件关联的第二事件,若其发生时间位于在前第一事件关联的任一第二事件之前,则筛除,否则将次级关联事件确定为最终关联事件。[0027]所述将次级关联事件确定为最终关联事件之后,还包括:人工确认所述最终关联事件,以及提取关联规则进行建模学习,当继续出现相同规则的第一事件与第二事件时,直接输出为最终关联事件。[0028]实施例一该实施例以基于dcom的三层架构为例,说明具体的事件关联过程。[0029]步骤1:客户端->应用服务器端(dcom)(即第一事件)数据自学习与内容审计审计引擎分析客户端->应用服务器端的网络数据包,按照dcom协议格式解析出tubdata(有效数据),tubdata数据格式一般为xaa1aa2,xbb1bb2bb3,(x、a、b为特征关键字,a1、a2、b1、b2、b3为有效数据)。通过对tubdata的正则提取以及持续性的数据解析、学习及验证,不断的完善解析规则库,从而可以直接从网络数据包中解析出tubdata的有效数据。[0030]入库记录客户端->应用服务器端事件的信息,包含发生时间(微秒),会话id(以源ip,目的ip,源端口,目的端口,协议类型5元素hah所得的值,代表唯一的一个会话),源ip,目的ip,源端口,目的端口,操作数据(如a1、a2、b1等)等。[0031]步骤2:应用服务器->数据库服务器端(即第二事件)数据库内容审计审计引擎分析应用服务器->数据库服务器端的网络数据包,按照数据库协议格式解析出数据库操作的详细信息,并入库记录应用服务器->数据库服务器端事件的信息,包含发生时间(微秒),会话id(以源ip,目的ip,源端口,目的端口,协议类型5元素hah所得的值,代表唯一的一个会话),源ip,目的ip,源端口,目的端口,操作信息(如elect*fromtablewhereaa=ꢀ‘11’等ql操作)等。[0032]步骤3:客户端->应用服务器端与应用服务器->数据库服务器端审计内容(即第一事件与第二事件)关联(1)关联程序运行后,先从客户端->应用服务器端事件信息记录中检索出发生时间最早且会话已结束的同一个会话的所有事件aa,然后从检索出的aa中依次逐条取出事件a信息。[0033](2)针对每条事件a的信息,依据发生时间,以一定的时间窗t(微秒)从应用服务器->数据库服务器端信息记录中检索出发生时间满足条件“(事件a的发生时间–t)≦发生时间≦(事件a的发生时间+t)”。[0034]同时操作信息满足条件“包含事件a的操作数据中的某个或多个”,此时事件a与检索出的事件b(单个或多个)组成初步的疑似关联关系。[0035]此处需要说明的是,时间窗和平台的处理性能有关,时间窗越小,关联的精确度越高。[0036](3)继续以同样的方法遍历aa中的每一个事件,直至aa中的所有数据都检索完成。[0037](4)针对(2)中筛选出的疑似关联关系数据b组成的集合进行再次筛选,筛选的原则如下:会话中的所有事件都是按照时间递增与事件aa中的事件关联对应。具体的是将事所有件a按发生前后时间进行排序,将每个时间a关联的事件b按发生时间前后进行排序,后一个事件a的所有事件b的发生时间,均应当在前一个事件a的所有事件b之后,如果不是则说明关联错误,进行筛除。[0038](5)经过筛选后,剩余的对应关系则为最终的疑似关联关系。此时业务管理员可能还需要再对最终的疑似关联关系进行确认,从而得到最终的关联关系。此时将客户端->应用服务器端真正的源与应用服务器->数据库服务器最终的ql操作关联了起来。[0039](6)对于最终的关联关系,系统会进行建模学习,为以后出现同样规则的关联关系进行直接确认。[0040]如图2所示,一种数据库的关联审计系统,包括:数据解析模块,分别解析客户端至web服务器的数据与web服务器至数据库服务器的数据,得到相应的事件信息;事件信息存储模块,用于存储事件信息,包括第一事件的发生时间,会话id,四元组信息与有效值,以及第二事件的发生时间,会话id,四元组信息与数据库操作信息;事件关联模块,根据预设的相关条件,将第一事件与第二事件关联起来;审计模块,对关联后的事件内容进行安全审计。[0041]所述的审计系统将第一事件信息与第二事件信息,分别形成第一事件池与第二事件池;该审计系统,从所述第一事件池中取出同一会话id的所有第一事件;对每个第一事件:根据发生时间从第二事件池中检索发生时间符合特定相关条件的第二事件,与所述第一事件组成初级关联事件;所述初级关联事件中,判断第二事件的信息是否具有第一事件的至少一个有效值,若具有则将初级关联事件确定为次级关联事件,否则筛除;将次级关联事件的所有第一事件按发生时间排序,每个第一事件关联的第二事件按发生时间排序;对于在后第一事件关联的第二事件,若其发生时间位于在前第一事件关联的任一第二事件之前,则筛除,否则将次级关联事件确定为最终关联事件。对最终关联事件的内容进行审计,实现数据库操作的安全防护。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1