检测数据库审计设备功能的方法及装置与流程

文档序号:20683422发布日期:2020-05-08 18:36阅读:349来源:国知局
本申请涉及数据库审计
技术领域
:,尤其涉及一种检测数据库审计设备功能的方法及装置。
背景技术
::在信息化社会中,数据库作为组织、存储和管理数据的仓库,被广泛应用于诸多领域。为了保护数据库,数据库安全技术应运而生。在一种数据库安全技术中,可以使用数据库审计设备记录各个业务层面(例如sql命令层面、业务层面、安全层面等)的数据库操作行为,并对风险行为产生告警,以及帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。为了保证数据库审计设备能够在生产环境中保证自身审计功能的有效性和准确性,可以对数据库审计设备的审计功能进行检测。现有技术中,由测试人员人工模拟出各个业务层面的数据库操作行为使得客户端与后端数据库产生交互流量,以使得数据库审计设备可以获取该交互流量并进行数据库审计,之后,依据审计结果检测数据库审计设备的审计功能。由于测试人员是通过操作键盘、鼠标一步步模拟数据库操作行为,因此,测试人员在短时间内无法做到多种复杂的数据库操作,从而导致客户端与后端数据库之间的交互流量较为单一,缺乏复杂度,不利于准确地、多业务层面地检测数据库审计设备的审计功能,同时耗费人力且效率较低。技术实现要素:有鉴于此,本申请提供一种检测数据库审计设备功能的方法及装置,以解决现有技术中客户端与后端数据库之间的交互流量过于单一,缺乏复杂度,不利于准确地、多业务层面地检测数据库审计设备的审计功能,同时耗费人力且效率较低的问题。具体地,本申请是通过如下技术方案实现的:根据本申请实施例的第一方面,提供一种检测数据库审计设备功能的方法,应用于客户端,所述方法包括:获取测试人员在预配置的关键字集合中所选择的目标关键字,所述关键字集合中包括多个关键字,每一关键字封装一项数据库操作的业务逻辑;向所述目标关键字传入业务数据;调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使所述数据库响应所述数据库操作请求并返回响应结果,以及使得数据库审计设备获取所述数据库操作请求和所述响应结果以进行数据库审计;获取所述数据库审计设备的审计结果并依据所述审计结果检测所述数据库审计设备的审计功能。可选的,所述向所述目标关键字传入业务数据,包括:获取预配置的与目标业务类型对应的业务数据集合,所述目标业务类型为所述目标关键字所对应的业务类型;针对所述目标业务类型对应的业务数据集合中每一业务数据,将所述业务数据传入所述目标关键字。可选的,所述目标关键字的数量至少为1个。可选的,当所述目标关键字的数量大于1个时,所述调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:利用robotframework自动化测试框架所支持的if语句和/或循环语句依次调用至少一个已传入业务数据的目标关键字向数据库发起数据库操作请求。可选的,当所述目标关键字的数量大于1个时,所述调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:采取单线程或多线程的方式调用已传入业务数据的目标关键字向数据库发起数据库操作请求。根据本申请实施例的第二方面,提供一种检测数据库审计设备功能的装置,应用于客户端,所述装置包括:目标获取模块,用于获取测试人员在预配置的关键字集合中所选择的目标关键字,所述关键字集合中包括多个关键字,每一关键字封装一项数据库操作的业务逻辑;传参模块,用于向所述目标关键字传入业务数据;流量生成模块,用于调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使所述数据库响应所述数据库操作请求并返回响应结果,以及使得数据库审计设备获取所述数据库操作请求和所述响应结果以进行数据库审计;检测模块,用于获取所述数据库审计设备的审计结果并依据所述审计结果检测所述数据库审计设备的审计功能。可选的,所述传参模块向所述目标关键字传入业务数据,包括:获取预配置的与目标业务类型对应的业务数据集合,所述目标业务类型为所述目标关键字所对应的业务类型;针对所述目标业务类型对应的业务数据集合中每一业务数据,将所述业务数据传入所述目标关键字。可选的,所述目标关键字的数量至少为1个。可选的,所述流量生成模块调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:利用robotframework自动化测试框架所支持的if语句和/或循环语句依次调用至少一个已传入业务数据的目标关键字向数据库发起数据库操作请求。可选的,所述流量生成模块调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:采取单线程或多线程的方式调用已传入业务数据的目标关键字向数据库发起数据库操作请求。本实施例提供的数据库审计方法,通过获取测试人员在预配置的关键字集合中所选择的目标关键字,向目标关键字传入业务数据,调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使数据库响应数据库操作请求并返回响应结果,以及使得数据库审计设备获取数据库操作请求和响应结果以进行数据库审计;获取数据库审计设备的审计结果并依据审计结果检测数据库审计设备的审计功能,可以实现自动向数据库发起数据库操作请求,相当于使得客户端与数据库之间自动产生交互流量,从而提高对数据库审计设备审计功能的检测效率,并且,由于测试人员可以根据实际需求从多个业务层面选择目标关键字,因此,可以使得客户端在短时间内自动向数据库发起复杂的数据库操作请求,继而提高客户端与后端数据库之间交互流量的复杂度,以实现从多个业务层面检测数据库审计设备的审计功能。附图说明图1为应用本申请提出的检测数据库审计设备功能的方法的组网架构示意图;图2为本申请一示例性实施例提供的一种检测数据库审计设备功能的方法的实施例流程图;图3为不同数据库操作类型下包含的具体数据库操作的一种示例;图4为本申请检测数据库审计设备功能的装置所在电子设备的一种硬件结构图;图5为本申请一示例性实施例提供的一种检测数据库审计设备功能的装置的实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。请参见图1,为应用本申请提出的检测数据库审计设备功能的方法的组网架构示意图。如图1所示,组网架构100中包括客户端110、数据库审计设备120、数据库130以及网络140。网络140用于在客户端110、数据库审计设备120、数据库130之间提供通信链路,可以包括无线链路、有线链路或者光纤电缆等,本申请对此不做限制。客户端110可以是支持网络连接从而提供各种网络服务的硬件设备或软件。当客户端110为硬件时,其可以是支持具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、服务器等。当客户端110为软件时,可以安装在上述所列举的电子设备中。在实践中,客户端110可以通过安装相应的工具或服务来提供相应的网络服务。例如,客户端110可以安装有robotframework自动化测试框架、数据库管理工具,例如navicat、sql*plus等,还导入有该自动化测试框架所需的第三方库,例如autoitlibrary、selenium2library等,以提供数据库测试、审计等服务。数据库130的类型包括但不限于mysql、oracle、sqlserver、db2等,以提供组织、存储、管理数据等服务。数据库审计设备120提供数据库审计功能,通过数据库审计功能,能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。例如,对于黑客的sql注入攻击行为,则可以通过数据库审计发现。可以理解的是,图1中的网络和各种设备的数目仅是示意,在实践中,根据实际需要,组网架构100可以包括任意数目的网络和设备。下面基于图1示出的组网架构100对本申请提供的检测数据库审计设备功能的方法进行说明:请参见图2,为本申请一示例性实施例提供的一种检测数据库审计设备功能的方法的实施例流程图,在一个例子中,该方法可应用于图1所示例的客户端110,包括以下步骤:步骤201:获取测试人员在预配置的关键字集合中所选择的目标关键字。在本申请实施例中,关键字集合中可以包括多个关键字,每一关键字封装一项数据库操作的业务逻辑。作为一个示例,上述关键字集合中的关键字可分为系统关键字和用户关键字。其中,系统关键字包含标准库中关键字和第三方库(例如autoitlibrary、selenium2library)中的关键字。用户关键字可以则是由测试人员基于robotframework自动化测试框架新建并按照预设的命名规则对新建的用户关键字进行命名。作为一个示例,上述命名规则可以为:数据库类型-数据库操作类型-访问形式-具体程序软件-sql类型-具体的数据库操作。作为一个示例,上述数据库操作类型可以包括两类,分别为为常规操作和安全性攻击操作,例如,如图3所示,为不同数据库操作类型下包含的具体数据库操作的一种示例。举例来说,下述为用户关键字命名的一种示例:mysql5.5-常规操作-数据库管理工具-navicat-ddl-create_table。在本申请实施例中,客户端可以将上述关键字集合展示给测试人员,以由测试人员从中选择关键字(以下将测试人员选择的关键字称为目标关键字)。作为一个示例,测试人员所选择的目标关键字的数量至少为1个。步骤202:向目标关键字传入业务数据。在应用中,测试人员可以针对每一业务类型的关键字配置业务数据集合,该业务数据集合中包含多个业务数据。基于此,在本步骤中,客户端可以首先确定目标关键字所对应的业务类型(以下简称目标业务类型),然后获取预配置的与目标业务类型对应的业务数据集合,最后,针对获取的业务数据集合中每一业务数据,将该业务数据传入目标关键字。以“检测sql注入点”这一数据库操作为例,其对应的业务数据集合如下述表1所示,则可以依次获取表1中的业务数据拼接在目标关键字中的url地址之后,例如,http://localhost/sqli-lab/less-4/index.php?id=1")or("1")=("1。表1错误双引号字符串注入id=1")("1")=("1步骤203:调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使数据库响应该数据库操作请求并返回响应结果,以及使得数据库审计设备获取该数据库操作请求和响应结果以进行数据库审计。作为一个示例,当目标关键字的数量大于1个时,可以采用单线程或者多线程的方式调用已传入业务数据的目标关键字向数据库发起数据库操作请求。其中,对于单线程方式而言,客户端可以利用robotframework自动化测试框架所支持的if语句和/或循环语句依次调用至少一个已传入业务数据的目标关键字向数据库发起数据库操作请求。对于多线程方式而言,客户端则可以通过多线程调用,例如processlibrary多线程调用,在每个线程下利用robotframework自动化测试框架所支持的if语句和/或循环语句依次调用至少一个已传入业务数据的目标关键字向数据库发起数据库操作请求。基于图1所示例的组网架构100,客户端110向数据库130发起数据库操作请求后,数据库130响应该数据库操作请求以执行该数据库操作请求所指示的数据库操作,并向客户端110返回响应结果。数据库审计设备120则可以获取该数据库操作请求和响应结果以进行数据库审计。作为一个示例,客户端110可以记录下向数据库130发送的每一数据库操作请求,并记录下接收到的每一响应结果,通过该种处理,可以保证数据库操作的可回溯性。步骤204:获取数据库审计设备的审计结果并依据审计结果检测数据库审计设备的审计功能。在本申请实施例中,客户端可以通过检查自身发起过的数据库操作请求和接收到的响应结果是否存在于获取到的数据库审计设备的审计结果中来检测数据库审计设备的审计功能。例如,如果客户端检查出自身发起过的数据库操作请求和接收到的响应结果均存在于数据库审计设备的审计结果中,那么,则可以认为数据库审计设备的审计功能已生效且审计功能比较完善;如果客户端检查出自身发起过的数据库操作请求和接收到的响应结果均未存在于数据库审计设备的审计结果中,那么,则可以认为数据库审计设备的审计功能失效。又例如,客户端可以检查自身发起过的数据库操作请求和接收到的响应结果在审计结果中的存在比例,依据该存在比例评价数据库审计设备的审计功能。例如,如果存在比例小于预设阈值,则可以认为数据库审计设备的审计功能较差,如果存在比例大于预设阈值,则可以认为数据库审计设备的审计功能处于测试人员的可接受范围内。至此,完成图2所示流程的相关描述。由上述实施例可见,通过获取测试人员在预配置的关键字集合中所选择的目标关键字,向目标关键字传入业务数据,调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使数据库响应数据库操作请求并返回响应结果,以及使得数据库审计设备获取数据库操作请求和响应结果以进行数据库审计;获取数据库审计设备的审计结果并依据审计结果检测数据库审计设备的审计功能,可以实现自动向数据库发起数据库操作请求,相当于使得客户端与数据库之间自动产生交互流量,从而提高对数据库审计设备审计功能的检测效率,并且,由于测试人员可以根据实际需求从多个业务层面选择目标关键字,因此,可以使得客户端在短时间内自动向数据库发起复杂的数据库操作请求,继而提高客户端与后端数据库之间交互流量的复杂度,以实现从多个业务层面检测数据库审计设备的审计功能。与前述检测数据库审计设备功能的方法的实施例相对应,本申请还提供了检测数据库审计设备功能的装置的实施例。本申请检测数据库审计设备功能的装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请检测数据库审计设备功能的装置所在电子设备的一种硬件结构图,除了图4所示的处理器41、内存42、网络接口43、非易失性存储器44,以及内部总线45之外,实施例中检测数据库审计设备功能的装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。请参见图5,为本申请一示例性实施例提供的一种检测数据库审计设备功能的装置的实施例框图,所述装置包括:目标获取模块51、传参模块52、流量生成模块53,以及检测模块54。其中,目标获取模块51,用于获取测试人员在预配置的关键字集合中所选择的目标关键字,所述关键字集合中包括多个关键字,每一关键字封装一项数据库操作的业务逻辑;传参模块52,用于向所述目标关键字传入业务数据;流量生成模块53,用于调用已传入业务数据的目标关键字向数据库发起数据库操作请求,以使所述数据库响应所述数据库操作请求并返回响应结果,以及使得数据库审计设备获取所述数据库操作请求和所述响应结果以进行数据库审计;检测模块54,用于获取所述数据库审计设备的审计结果并依据所述审计结果检测所述数据库审计设备的审计功能。在一实施例中,所述传参模块52向所述目标关键字传入业务数据,包括:获取预配置的与目标业务类型对应的业务数据集合,所述目标业务类型为所述目标关键字所对应的业务类型;针对所述目标业务类型对应的业务数据集合中每一业务数据,将所述业务数据传入所述目标关键字。在一实施例中,所述目标关键字的数量至少为1个。在一实施例中,所述流量生成模块53调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:利用robotframework自动化测试框架所支持的if语句和/或循环语句依次调用至少一个已传入业务数据的目标关键字向数据库发起数据库操作请求。在一实施例中,所述流量生成模块53调用已传入业务数据的目标关键字向数据库发起数据库操作请求,包括:采取单线程或多线程的方式调用已传入业务数据的目标关键字向数据库发起数据库操作请求。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1