一种数据库三层审计的方法

文档序号:7809380阅读:467来源:国知局
一种数据库三层审计的方法
【专利摘要】本发明公开了一种数据库三层审计的方法,该方法在三层架构中将WEB请求与数据库访问的请求关联起来,通过这种关联得到实际发起数据库访问请求的终端用户,生成审计信息。通过本发明无需改变用户的运行环境,且无需修改用户的业务系统,就可以进行精确的数据库三层访问审计,不会对现有业务系统造成影响。
【专利说明】一种数据库三层审计的方法

【技术领域】
[0001] 本发明涉及数据库审计【技术领域】,尤其涉及一种数据库三层审计的方法。

【背景技术】
[0002] 在现有的数据库审计系统中,通常都是用户终端直接发出SQL请求到数据库服务 器,系统通过用户请求的数据包里面的信息,对SQL语句进行分析,可以将访问数据库的请 求与实际用户直接关联起来,从而生成审计信息。
[0003] 但是在有些应用环境中,用户是通过浏览器向WEB服务器发出请求,然后由WEB服 务器再向数据库发出访问请求,在这种情况下,用户的请求里面通常都没有携带SQL信息, 原有的通过用户请求数据包里面的信息直接进行审计的方法就失效了,必须要将用户请求 与数据库访问请求关联起来,才能准确的审计出实际的数据库访问用户。
[0004] 目前通过将访问WEB服务器时间与访问数据库时间进行关联的方法,发现实际访 问数据库的用户。这种方法只适用于用户访问量不大的情景,当用户访问量很大的时候,这 种方法误差较大。
[0005] 此外,WEB服务器提供专门的审计接口,将用户访问与数据库访问关联关系提供给 审计系统。这种方法实施难度大,会影响现有WEB服务器的业务,难以维护升级。


【发明内容】

[0006] 本发明为了解决现有技术中数据库三层审计用户请求和数据库访问关联准确性 不够的缺点或不足,提出了一种数据库三层审计的方法,采用了通过返回值进行关联,从而 实现了准确关联实际操作用户的目的。
[0007] -种数据库三层审计的方法,该方法在三层架构中将WEB请求与数据库访问的请 求关联起来,通过这种关联得到实际发起数据库访问请求的终端用户,生成审计信息,具体 流程如下:
[0008] 1)在WEB服务器两端同时进行抓包并缓存相关的链路信息;
[0009] 2)将用户WEB请求的返回内容与数据库请求缓存中的SQL请求的返回内容逐一进 行模糊匹配,如果匹配成功,则将WEB访问缓存中的对应项与数据库访问请求缓存中的对 应项关联起来;
[0010] 3)对返回内容匹配成功的SQL语句进行分析,将SQL分析结果与相应的WEB请求 用户进行关联,生成审计信息;
[0011] 4)如果匹配成功,则在生成审计信息后,将关联的项从对应的缓存中删除;如果 匹配不成功,则只删除WEB请求信息缓存中的对应项。
[0012] 优选地,本发明将用户对WEB服务器的访问进行旁路抓包,并将如下信息进行缓 存:源IP地址、源端口号、目的IP地址,目的端口号、源MAC地址、请求发起时间、返回内容。
[0013] 优选地,本发明将WEB服务器对数据库服务器的访问进行旁路抓包,并将如下信 息进行缓存:源IP地址、源端口号、目的IP地址,目的端口号、SQL语句、请求发起时间、返 回内容。
[0014] 优选地,本发明步骤4)中系统定期对缓存里面的信息进行扫描,将请求发起时间 与当前时间进行对比,如果时长超过指定阈值,则从缓存中清除该信息项。
[0015] 本发明技术方案带来的有益效果:
[0016] 通过本发明无需改变用户的运行环境,且无需修改用户的业务系统,就能够进行 精确的数据库三层访问审计,不会对现有业务系统造成影响。

【专利附图】

【附图说明】
[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。
[0018] 图1是本发明方法的架构部署图;
[0019] 图2是本发明实施例的流程图。

【具体实施方式】
[0020] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0021] 针对现有技术的不足,本发明提供了一种数据库三层审计的方法,这种方法可以 在三层架构中准确将WEB请求与数据库访问的请求关联起来,通过这种关联得到实际发起 数据库访问请求的终端用户,同时这种方法不会对现有业务系统造成影响。
[0022] 本发明的原理:
[0023] 1)如果用户的请求需要访问数据库,那么数据库的返回结果通常会返回给发起这 一请求的用户。
[0024] 2)通过将数据库返回给WEB服务器的内容与WEB服务器返回给终端用户的内容进 行模糊匹配,可以关联到发起数据库访问的实际终端用户。
[0025] 3)通过对WEB服务器访问数据库的SQL进行审计,将审计结果对应到关联到的终 端用户,可以满足实际的安全审计需要。
[0026] 如图1所示为本发明方法的架构部署图,将审计系统的相应的两个抓包口分别连 接在WEB服务器两侧(用户侧与数据库服务器侧)的两个镜像口,运行系统就可以进行正 常审计。本发明在WEB服务器或其他应用服务器的两侧即用户访问侧和数据库访问侧进行 抓包分析。
[0027] 通过以上原理,实现本发明采用如下方案:
[0028] 1)在WEB服务器两端同时进行抓包并缓存相关的链路信息。
[0029] 将用户对WEB服务器的访问进行旁路抓包,并将如下信息进行缓存:源IP地址、源 端口号、目的IP地址,目的端口号、源MAC地址、请求发起时间、返回内容。
[0030] 将WEB服务器对数据库服务器的访问进行旁路抓包,并将如下信息进行缓存:源 IP地址、源端口号、目的IP地址,目的端口号、SQL语句、请求发起时间、返回内容。
[0031] 2)将用户WEB请求的返回内容与数据库请求缓存中的SQL请求的返回内容逐一进 行模糊匹配,如果匹配成功,则将WEB访问缓存中的对应项与数据库访问请求缓存中的对 应项关联起来。
[0032] 3)对返回内容匹配成功的SQL语句进行分析,将SQL分析结果与相应的WEB请求 用户进行关联,生成审计信息。
[0033] 4)如果匹配成功,则在生成审计信息后,将关联的项从对应的缓存中删除;如果 匹配不成功,则只删除WEB请求信息缓存中的对应项;系统定期对缓存里面的信息进行扫 描,将请求发起时间与当前时间进行对比,如果时长超过指定阈值,则从缓存中清除该信息 项。
[0034] 具体实施如图2所示:
[0035] 1)用户使用IE浏览器通过HTTP协议向WEB服务器发送信息查询请求;
[0036] 2) WEB服务器收到请求,审计系统将该请求信息放入缓存cachel ;
[0037] 3) WEB服务器根据HTTP请求内容向数据库服务器通过TDS协议发送SQL查询命 令,审计系统将该请求信息放入缓存cache2 ;
[0038] 4)数据库服务器通过TDS协议返回查询结果,审计系统将该结果内容添加进缓存 cache2中的对应的项中;
[0039] 5) WEB服务器将相应的处理信息通过HTTP返回给对应的用户,审计系统将该返回 信息内容添加进缓存cachel中的对应的项中;
[0040] 6)审计系统将缓存cachel中的返回内容与缓存cache2中的缓存内容逐项进行模 糊匹配,如果匹配成功,则将缓存cachel中的相应项与缓存cache2中的相应项进行关联;
[0041] 7)审计系统将成功关联的项中的SQL语句进行分析,结合缓存项中的其他信息生 成相应的审计信息;
[0042] 8)审计系统删除当前缓存cachel中的对应项,如果匹配成功也同时删除缓存 cache2中的对应项;
[0043] 9)审计系统定期扫描缓存中的项,将缓存时间超过阈值的项删除。
[0044] 此外,本发明中缓存超时阀值可以根据系统的硬件条件以及实际的运行环境灵活 配置。还可以对于系统吞吐量大且审计实时性要求较高的应用环境,将关联分析模块独立 在一个单独的机器或者多机上运行。
[0045] 以上对本发明实施例所提供的一种数据库三层审计的方法进行了详细介绍,本文 中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮 助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思 想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对 本发明的限制。
【权利要求】
1. 一种数据库三层审计的方法,其特征在于,该方法在三层架构中将WEB请求与数据 库访问的请求关联起来,通过这种关联得到实际发起数据库访问请求的终端用户,生成审 计信息,具体流程如下: 1) 在WEB服务器两端同时进行抓包并缓存相关的链路信息; 2) 将用户WEB请求的返回内容与数据库请求缓存中的SQL请求的返回内容逐一进行模 糊匹配,如果匹配成功,则将WEB访问缓存中的对应项与数据库访问请求缓存中的对应项 关联起来; 3) 对返回内容匹配成功的SQL语句进行分析,将SQL分析结果与相应的WEB请求用户 进行关联,生成审计信息; 4) 如果匹配成功,则在生成审计信息后,将关联的项从对应的缓存中删除;如果匹配 不成功,则只删除WEB请求信息缓存中的对应项。
2. 根据权利要求1所述的方法,其特征在于,将用户对WEB服务器的访问进行旁路抓 包,并将如下信息进行缓存:源IP地址、源端口号、目的IP地址,目的端口号、源MAC地址、 请求发起时间、返回内容。
3. 根据权利要求1所述的方法,其特征在于,将WEB服务器对数据库服务器的访问进 行旁路抓包,并将如下信息进行缓存:源IP地址、源端口号、目的IP地址,目的端口号、SQL 语句、请求发起时间、返回内容。
4. 根据权利要求1-3任一所述的方法,其特征在于,步骤4)中系统定期对缓存里面的 信息进行扫描,将请求发起时间与当前时间进行对比,如果时长超过指定阈值,则从缓存中 清除该信息项。
5. 根据权利要求1所述的方法,其特征在于,本发明在WEB服务器或其他应用服务器的 两侧即用户访问侧和数据库访问侧进行抓包分析。
6. 根据权利要求1所述的方法,其特征在于,缓存超时阀值还能够根据系统的硬件条 件以及实际的运行环境灵活配置。
7. 根据权利要求1所述的方法,其特征在于,对于系统吞吐量大且审计实时性要求较 高的应用环境,将关联分析模块独立在一个单独的机器或者多机上运行。
【文档编号】H04L29/08GK104113598SQ201410347465
【公开日】2014年10月22日 申请日期:2014年7月21日 优先权日:2014年7月21日
【发明者】柯宗贵, 杨育斌, 周炎华 申请人:蓝盾信息安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1