一种数据库审计方法、装置、WEB服务器、数据库审计系统和存储介质与流程

文档序号:23063805发布日期:2020-11-25 17:48阅读:167来源:国知局
一种数据库审计方法、装置、WEB服务器、数据库审计系统和存储介质与流程

本发明属于计算机领域,尤其涉及一种数据库审计方法、装置、web服务器、数据库审计系统和存储介质。



背景技术:

近年来,国内外企业生产、经营、财务数据泄露事件频频爆发,各行业对此也提高了针对企业数据保护的安全意识,计划完善数据安全体系,管理监控公司、业务等方面的数据库安全,目前纷纷在拓展一系列数据安全相关保障产品。

传统的软件架构大多采用二层架构,应用层直接到数据库。在信息化发展越来越迅速的今天,二层架构可维护性低并且高耦合已经无法满足业务需求。而三层架构提高了信息系统的效率,具有高内聚,低耦合的特点,目前已经被广泛应用于目前的软件架构设计上,但是其审计难度也大大增加。三层架构导致信息割裂,一般数据库审计设备只能审计到web服务器的信息,无法准确定位到“业务端”访问应用系统的身份信息。

软件的三层架构一般包括两头的客户端与数据库端,以及中间的web服务器端、中间件和复杂的web服务器组件;这三层架构之间并没有穿透,因此通常只知道前端某个web服务器在进行操作,但不知道具体是谁在从操作。为了解决该问题,行业内提供了较多解决方案,例如采用基于dcom(microsoftdistributedcomponentobjectmodel,分布式组件对象模型)的三层关联审计,但是,这种方式在进行业务量高并发时均不能起到有效作用,关联的精确性较低。



技术实现要素:

本发明实施例的目的在于提供一种数据库审计方法,旨在解决目前的三层关联审计方法在业务量高并发时关联的精确性较低的问题。

本发明实施例是这样实现的,一种数据库审计方法,包括:

拦截用户端向web服务器发起的登录请求;

获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识;

拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息;

基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

本发明实施例还提供一种数据库审计装置,包括:

第一拦截单元,用于拦截用户端向web服务器发起的登录请求;

第一信息获取单元,用于获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识;

第二拦截单元,用于拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息;以及

关联与上传单元,用于基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

本发明实施例还提供一种web服务器,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述数据库审计方法的步骤。

本发明实施例还提供一种数据库审计系统,包括:

所述web服务器;

与所述web服务器通信连接的用户端;

与所述web服务器通信连接的数据库服务器;以及

与所述web服务器通信连接的数据库审计服务器。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述数据库审计方法的步骤。

本发明实施例提供的一种数据库审计方法,其通过数据拦截的方式来获取用户账户信息、业务流量、交互行为事件,并将这些信息通过唯一性标识进行关联,从而将用户端的各项操作行为进行了精准追踪;其中通过流量拦截的方式可以获取到用户的所有的访问内容、数据操作内容等,并天然地实现了从用户端到web服务器/中间件,再到数据库的三层关联,无需再将用户对web服务器、数据库的操作行为通过各种手段或者算法与数据库审计日志进行关联,实现了轻量化部署,在高并发的环境下还能正常地进行三层关联审计;并且,这种方式确保了三层关联审计的准确性,只要数据的拦截、获取不遗漏,其审计准确率几乎达到了百分之百。

附图说明

图1为本发明实施例提供的数据库审计方法的应用环境图;

图2为本发明实施例提供的数据库审计方法的流程图;

图3为本发明实施例提供的数据库审计装置的结构框图;

图4为一个实施例中计算机设备的内部结构框图;

图5为本发明实施例提供的数据库审计系统的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。

图1为本发明实施例提供的数据库设计方法的应用环境图,在该应用环境中,包括用户终端110、web服务器120、数据库服务器130,以及数据库审计服务器140。

其中,web服务器120、数据库服务器130、数据库审计服务器140可以是独立的物理服务器或终端,也可以是多个物理服务器构成的服务器集群,可以是提供云服务器、云数据库、云存储和cdn等基础云计算服务的云服务器。

用户终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。用户终端110与web服务器120之间、web服务器120与数据库服务器130之间、web服务器120与审计服务器之间均可以通过网络进行连接,本发明在此不做限制。

为了简明起见,图1中示出的用户终端、web服务器、数据库服务器、数据库审计服务器均为1个,其数量可能小于一个实际数据库系统中各部件/模块的数量,但这并不影响所述数据库审计方法的清楚、充分公开,也不应理解为对本方法的实际应用架构的限制。

在一种实施例中,涉及一种三层架构的网络应用系统,具体包括:部署于用户终端110上的用户端应用程序(或称用户端),部署于web服务器上的功能/服务组件、中间件,以及部署于数据库服务器130上的目标数据库。在一种情况中,所述数据库审计方法可通过部署于web服务器上的一些功能组件/模块/插件来配合实现,比如agent模块(流量代理模块),其受控于部署于数据库审计服务器上的agentmanager模块(流量代理模块管理中心)。

如图2所示,在一个实施例中,提出了一种数据库审计方法,本实施例主要以该方法应用于上述图1中的web服务器120来举例说明。

具体的所述数据库审计方法,具体可以包括以下步骤:

步骤s202,拦截用户端向web服务器发起的登录请求。

在本实施例的一种情况中,所述数据审计方法是借助于部署在web服务器120上的流量代理模块(例如agent模块)来实现的;在本步骤中,agent模块可以拦截用户端向web服务器发起的登录请求。

在本实施例的一种情况中,agent模块提供debug模式,即允许以调试模式运行agent模块。

在本实施例的一种情况中,agent模块由多个plugin(插件)组成,其中,agent模块至少包括userplugin(用户信息获取模块)、rquestplugin(接口请求信息获取模块)。

在本实施例的一种情况中,所述登录请求一般至少包含有用户名与用户登录密码/口令等,还可以包含其他的用户账户信息。

步骤s204,获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识。

在本实施例的一种情况中,用户账户信息、唯一性标识均可通过agent模块的userplugin进行拦截获取。

在本实施例的一种情况中,所述用户账户信息包括以下信息中的任意一项或者多项:用户名、用户端ip地址、用户端设备的mac地址、用户端设备的设备唯一识别码、发起所述登录请求的用户账户信息。

在本实施例的一种情况中,所述唯一性标识可以为用户名、或者用户名的加密信息、登录令牌(即token),或者其他以预设规则生成的标识。

步骤s206,拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息。

在本实施例的一种情况中,用户端与web服务器间的业务流量、第一业务流量(即包含有唯一性标识的业务流量)均可通过agent模块的requestplugin进行拦截、获取。

在本实施例的一种情况中,当用户端首次登录web服务器后,web服务器会为用户端配置唯一性标志,用户端后续登录该web服务器时,可以携带该唯一性标识,作为免登录凭证;同时该唯一性标识还进一步用作第一业务流量、交互事件信息的唯一识别信息,用于追踪用户操作行为。

在本实施例的一种情况中,唯一性标志为token,用户端向服务器发起请求或者发送数据时,均会附带该token。本实施例中,所述数据库审计方法是基于流量代理模块对流量的拦截来实现信息获取的,因此,该流量代理模块可以通过流量拦截来获取该token。

在本实施例的一种情况中,交互事件信息主要包括针对目标数据库的:访问内容、操作内容、操作内容对应的sql语句、返回结果等信息。

步骤s208,基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

在本实施例的一种情况中,agent模块可进行流量的拦截以及基于流量拦截获取相关的用户数据;该agent模块最终可将审计数据(包括所述交互事件信息与所述用户账户信息的关联信息)上传至数据库审计服务器。

具体的,数据库审计服务器上部署有agentmanager(即流量代理模块/流量插件管理中心),该agentmanager可以对多个agent模块进行统一管理与配置,即能够实现对agent模块上传的审计数据进行接收和保存,每个agent模块具备唯一的id与名称,它们分别部署于多个web服务器上。另外,agent模块中的plugin支持插拔,可以在agentmanager中启用或者关闭,各plugin间可以相互交互。

在上述实施例中,所述数据库审计方法是通过数据拦截的方式来获取用户账户信息、业务流量、交互行为事件,并将这些信息通过唯一性标识进行关联,从而将用户端的各项操作行为进行了精准追踪;其中通过流量拦截的方式可以获取到用户的所有的访问内容、数据操作内容等,并天然地实现了从用户端到web服务器/中间件,再到数据库的三层关联,无需再将用户对web服务器、数据库的操作行为通过各种手段或者算法与数据库审计日志进行关联,实现了轻量化部署,在高并发的环境下还能正常地进行三层关联审计;并且,这种方式确保了三层关联审计的准确性,只要数据的拦截、获取不遗漏,其审计准确率几乎达到了百分之百。

作为一个优选实施例,为避免对web服务器的正常服务造成影响,agent模块通过旁路拦截的方式来获取用户端与web服务器之间的流量和/或者web服务器与数据库之间的流量。具体的,预先为web服务器与用户端的传输接口设置镜像传输接口,以及为web服务器与数据库的传输接口设置镜像传输接口,agent模块通过该镜像传输接口拦截获取用户端与web服务器之间、web服务器与数据库之间的流量。因此,更进一步的,步骤s202中“拦截用户端向web服务器发起的登录请求”即是“在用户端与web服务器的镜像传输接口拦截用户端向web服务器发起的登录请求”同样的,“拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量”即是“在用户端与web服务器的镜像传输接口拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量”。其它实施例中虽未指出具体的拦截位置,但可以理解的,其它实施例中涉及到数据/流量/信息拦截的方法,其拦截位置可以为直接的传输接口,也可以指镜像传输接口。

在一个实施例中,对于步骤s204中的“获取对应的用户账户信息”步骤而言,具体是从前一步骤所拦截的登录请求中获取该用户账户信息,或者该登录请求所提供的相关信息去获取该用户账户信息。

在本实施例的一种情况中,在部署agent模块的web服务器环境中,该用户账户信息主要通过agent模块中的userplugin来实现;一般而言,用户账户信息可以存储在各种媒介中,而通过userplugin可以从多种数据源/媒介中获取该用户账户信息。基于此,“获取对应的用户账户信息”步骤进一步包括:

从指定位置获取所述用户账户信息。

在本实施例的一种情况中,可通过userplugin从指定位置(也即数据来源)获取该用户账户信息,具体可通过预先配置来确定该指定位置,以下给出了从指定位置或指定数据来源获取用户账户信息的情况。

在一种情况中,用户账户信息的获取支持配置(包括对数据来源的配置),可以通过开关组件来设置agent是否上报所检索的信息,而开启该开关组件的时候,需要先设置及确认以下一项或多项参数来辅助检索:

1、数据来源:session对象、redis对象、memcached对象、remote对象;

2、是否加密:默认不支持加密;

3、用户名:检测value中的值为该名称。对于session需要进行深层次的搜索;

4、登录对应的url:默认为"*/login/*"。

通过上述方式,可以事先对所要获取的信息的相关细节内容和条件进行设置,从而实现更为精细的用户账户信息获取。

在一种情况中,假设用户账户信息为用户名,那么对于用户名已保存的应用,例如session,redis,memcached等,这些对象可以成为数据来源,可以从存储介质中获取出该用户名与token的关系。

在一种情况中,相关对象的协议也是数据来源,例如可以从cookie和authorization请求头中获取用户名。

在本实施例的一种情况中,若未设定用户账户信息的存放位置,则可通过userplugin来检测用户账户信息的存放位置,具体的,“获取对应的用户账户信息”步骤可进一步包括:

检测所述用户账户信息的存放位置,并从检测到的存放位置获取所述用户账户信息。

在一种情况中,用户账户信息为用户名;userplugin可以执行信息的自动扫描,以下为userplugin对session对象进行扫描,以获取用户名的具体方式:

先对session对象中的所有key(关键字)进行扫描,例如扫描出username、oginname等key;

若session对象中配置了用户名(但不知道具体对应哪个字段),则需要对session对象的value(值)进行匹配;具体为:对session对象中的所有值进行遍历,若某个value是用户名,则认为此key为存放用户名的key;

若session对象中获取不到用户名,必须手动配置缓存的key所在位置;

把可能的结果显示出来,由用户配置规则,之后agent模块执行此流程获取用户名。

在一种优选的示例中,可以将key配置为字典,并设置优先级;具体的,session中对用户名的key的命名方式不同,不同的业务系统具有不同的命名方式,因此,本实施例中,需要事先配置好相应的字典表,比如:a公司的用户名叫user_name,b公司叫userid。在此基础上,可以进一步设置排列或查询的优先级,例如,优先匹配人工配置的字段,如果没有人工配置好的字段,则使用系统默认的username这个字段。

在一个实施例中,对于步骤s204中的“所述获取或生成与所述用户账户信息关联的唯一性标识”而言,其具体包括:

从指定位置获取所述唯一性标识;或者,则检测所述唯一性标识的存放位置,并从检测到的存放位置获取所述唯一性标识;或者,获取所述web服务器为所述用户端重新配置的唯一性标识;或者,基于预设规则生成所述唯一性标识,并返回给所述用户端;

记录所述唯一性标识与所述用户账户信息的关联关系,并将所述关联关系上传至所述数据库审计服务器。

在本实施例的一种情况中,该唯一性标识,其可以是用户账户信息中的一部分信息(例如为用户名或者用户名的加密信息等),在获取用户账户信息时一并获取。因此,对于其获取方式中“从指定位置获取所述唯一性标识;或者,则检测所述唯一性标识的存放位置,并从检测到的存放位置获取所述唯一性标识”与上文实施例中用户账户信息的获取方式“从指定位置获取所述用户账户信息”、“检测所述用户账户信息的存放位置,并从检测到的存放位置获取所述用户账户信息”相似,具体可以参见上文实施例,此处不再赘述。

在本实施例的另一种情况中,该唯一性标识非事先存在的用户账户信息的一部分,而是即时生成的;进一步的,该唯一性标识为web服务器为用户端即时配置的,对应于上述步骤“获取所述web服务器为所述用户端重新配置的唯一性标识”。具体的,以token(即登录令牌)为例,在一种方式中,agent模块基于其对web服务器的流量的拦截,可以获取到web服务器下发token的流量,并进行提取;在另一种方式中,agent模块可以对web服务器的数据活动进行监听,可直接抓取/获取token数据。

在本实施例的再一种情况中,该唯一性标识非事先存在的用户账户信息的一部分,为即时生成的;进一步的,该唯一性标识由agent模块基于预设规则(可以参照token的生成方式)生成,并插入到用户端与web服务器之间的后续业务流量中,该方式对应于上述步骤“基于预设规则生成所述唯一性标识,并返回给所述用户端”。

在一个实施例中,对于步骤“记录所述唯一性标识与所述用户账户信息的关联关系,并将所述关联关系上传至所述数据库审计服务器”,其描述的过程具体为:agent模块拦截并获取到唯一性标识与用户账户信息以后,将两者进行关联/绑定,并将该关联关系整理为日志,记录该访问行为,然后将该日志上传至数据库审计服务器,由数据库审计服务器上的agentmanager进行集中管理、审计。

在一个实施例中,对于步骤s206而言,其具体还包括:

拦截所述web服务器与所述用户端的传输接口的业务流量;

基于所述唯一性标识筛选出所述第一业务流量;

获取所述第一业务流量中的流量请求信息;

将所述流量请求信息添加为所述交互事件信息。

在本实施例的一种情况中,业务流量是指web服务器与用户端之间的交互数据,既包括上行流量,也包括下行流量。

第一业务流量是指包含有上述用户端/用户账户的唯一性标识的业务流量,此处的“第一”并不表达时序、位置顺序的意思,仅用于命名区分。“基于所述唯一性标识筛选出所述第一业务流量”即通过识别业务流量中是否包含所述唯一性标识来筛选出所述第一业务流量。

在本实施例的一种情况中,对于业务流量、第一业务流量的获取和筛选,具体可以通过agent模块的requestplugin来实现,通过的requestplugin可以获取http协议(或称超文本传输协议)中的request、response、sql等信息。为了提高信息筛选效率,本实施例还支持规则引擎对流量信息进行过滤,以下为部分规则的示例:

规则一:获取指定服务器的全部日志;

筛选方式:request.ip=="192.168.21.187"

规则二:获取所有192.168.0.0/16段的所有json请求;

筛选方式:string.startwith(request.ip,"192.168")

&&string.contains(request.header.content_type,"application/json")

规则三:获取所有的html请求,且响应体小于16k;

筛选方式:string.contains(request.header.content_type,"text/htm")

&&request.header.content_length<16384

在本实施例的一种情况中,requestplugin对流量信息的获取时,具体可以支持以下表格所列出的字段类型、内容:

在本实施例的一种情况中,“所述获取所述第一业务流量中的流量请求信息”,进一步包括:

从所述第一业务流量中获取超文本传输协议数据;

筛选出包含request类型字段的超文本传输协议数据,将其确定为流量请求信息。

在本实施例的一种情况中,交互事件信息主要包括针对目标数据库的:访问内容、操作内容、操作内容对应的sql语句、返回结果等信息。相应的,流量请求信息中一般包含针对目标数据库的操作行为的数据;可以理解的,流量请求信息为所述交互事件信息中的一种数据类型。进一步的,流量请求信息发送至web服务器后,会由web服务器解析出用于操作目标数据库的sql语句,数据库响应该sql语句的操作后,会返回执行结果信息,web服务器将该执行结果信息进一步返回给对应的用户端。基于此,可以理解的,交互事件信息包括:流量请求信息,和/或与流量请求信息对应的返回结果信息,和/或与流量请求对应的sql语句信息。

在本实施例的一种情况中,在“所述拦截所述web服务器与所述用户端的传输接口的业务流量”步骤之后还包括:

获取与所述流量请求信息对应的返回结果信息和/或sql语句信息;

将所述返回结果信息和/或所述sql语句信息添加为所述交互事件信息。

其中,所述返回结果信息为包含response类型字段的超文本传输协议数据;sql语句信息为包含sql类型字段的超文本传输协议数据,它们均可以通过requestplugin进行识别与筛选。

在一个实施例中,对于步骤s208,其具体包括:

在拦截到所述流量请求信息时,基于所述唯一性标识与所述用户账户信息的关联关系,将所述流量请求信息与所述用户账户信息进行关联,将对应的关联信息记录为第一日志;

若在当前会话周期内拦截到与所述流量请求对应的数据库响应信息时,将所述数据库响应信息记录与所述用户账户信息进行关联,将对应的关联信息记录为第二日志;

将所述第一日志与所述第二日志直接上传至所述数据库审计服务器,或者放入日志队列等待上传。

在上文实施例中,所述数据库审计方法是通过数据拦截的方式来获取用户账户信息、业务流量、交互行为事件,并将这些信息通过唯一性标识进行关联,从而将用户端的各项操作行为进行了精准追踪;其中通过流量拦截的方式可以获取到用户的所有的访问内容、数据操作内容等,并天然地实现了从用户端到web服务器/中间件,再到数据库的三层关联,无需再将用户对web服务器、数据库的操作行为通过各种手段或者算法与数据库审计日志进行关联,实现了轻量化部署,在高并发的环境下还能正常地进行三层关联审计;并且,这种方式确保了三层关联审计的准确性,只要数据的拦截、获取不遗漏,其审计准确率几乎达到了百分之百。

在一个实施例中,为了进一步验证web服务器端的审计数据的精准性,所述方法还包括如下步骤:

请求并接收数据库服务器自身所生成的第一审计日志;

获取所述第一审计日志中包含所述用户账户信息的审计项目的集合d;

获取web服务器上所有所述交互事件信息与所述用户账户信息的关联信息,其中,第一关联信息qi为所有所述交互事件信息与所述用户账户信息的关联信息中的任意一组;

通过以下相似度公式进行计算web服务器上所有第一关联信息qi与所述集合d的相似程度:

其中,q1、q2…qn为n组交互事件信息与用户账户信息的关联信息;r(qi,d)是指通过查询插件query计算得到的每个第一关联信息qi和第一审计日志d的相关度值;wi是第一关联信息qi的权重;最后将所有第一关联信息qi的wi∗r(qi,d)相加,从而得到web服务器所生成的所有第一关联信息qi与所述第一审计日志中包含所述用户账户信息的审计项目的集合d之间的整体相似程度;

其中,wi的具体公式如下:

其中,idf(qi)=wi,n是集合d中的审计项目总项数,n(qi)是包含第一关联信息qi的集合d中的审计项目项数,0.5是调教系数;log函数是为了让idf(qi)的值受n和n(qi)的影响更加平滑。

在本实施例中,通过相似度公式可以准确计算出web服务器端的审计数据与数据库服务器自身所生成的第一审计日志之间的近似程度,从而可验证本实施例所提供的数据库审计方法的精确度,以便及时调整流量的拦截、筛选规则,从而得到更加精准的数据库审计效果。

如图3所示,在一个实施例中,提供了一种数据库审计装置300,该数据库审计装置300可以集成于上述的web服务器120中,具体可以包括第一拦截单元510、第一信息获取单元320、第二拦截单元330、关联与上传单元340。

第一拦截单元310,用于拦截用户端向web服务器发起的登录请求;

第一信息获取单元320,用于获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识;

第二拦截单元330,用于拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息;以及

关联与上传单元340,用于基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

在本实施例中,上述第一拦截单元310、第一信息获取单元320、第二拦截单元330、关联与上传单元340分别为对应于前文数据库审计方法中的步骤s202、步骤s204、步骤s206、步骤s208的虚拟模块,因此,其相关内容的解释、相关的细化/优化/附加方案均可参见数据库审计方法对应的实施例,此处不再赘述。

图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的用户终端110或web服务器120。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据库审计方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据库审计方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的数据库审计装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据库审计装置的各个程序模块,比如,图3所示的第一拦截单元、第一信息获取单元、第二拦截单元以及关联与上传单元。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据库审计方法中的步骤。

例如,图4所示的计算机设备可以通过如图3所示的数据库审计装置中的第一拦截单元执行步骤s202。计算机设备可通过第一信息获取单元执行步骤s204。计算机设备可通过第二拦截单元执行步骤s206。计算机设备可通过关联与上传单元执行步骤s208。

在一个实施例中,提出了一种web服务器,所述web服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

拦截用户端向web服务器发起的登录请求;

获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识;

拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息;

基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:

拦截用户端向web服务器发起的登录请求;

获取对应的用户账户信息,以及获取或生成与所述用户账户信息关联的唯一性标识;

拦截所述用户端与所述web服务器之间包含所述唯一性标识的第一业务流量,获取所述第一业务流量中针对目标数据库的交互事件信息;

基于所述唯一性标识与所述用户账户信息的关联关系,将所述交互事件信息与所述用户账户信息进行关联,并将关联信息上传至数据库审计服务器。

在一个实施例中,如图5所示,还提供一种数据库审计系统400,包括:

如上一实施例所述的web服务器;

与所述web服务器通信的用户端;

与所述web服务器通信的数据库服务器;以及

与所述web服务器通信的数据库审计服务器。

在本实施例中,web服务器用于运行前文实施例中提出的数据库审计方法,更具体的,该web服务器上部署有agent模块,该agent模块配合执行上述的数据库审计方法,同时,数据库审计服务器上部署有agentmanager模块,该agentmanager模块用于管理、配置web服务器端的agent模块,基于该关系,agent模块可以将所采集的审计数据上传至agentmanager模块进行统一管理、审计。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1