数据库审计方法及装置与流程

文档序号:13289074阅读:205来源:国知局
技术领域本发明涉及网络安全领域,尤其涉及数据库审计方法及装置。

背景技术:
当前,各个生产领域内的企业在生产经营过程中,通常都会涉及到大量的重要数据信息,这些数据信息大多保存在各类数据库中,因此,如何保证数据库的安全,是一个亟待解决的问题。在各种保障数据库安全性的措施中,数据库审计是最重要也是最有效的方式之一。通常,通过记载的数据库客户端访问数据库时的各类操作指令以及相应的操作结果,来实现对数据库的审计。例如,通过分析记录的操作指令的内容、发送操作指令的用户、操作指令的发送时间等以及操作指令的对应的执行结果等信息,判断数据库的安全是否受到威胁。也可以利用记载的信息和分析信息生成审计日志,审计日志进行分析可以发现哪些操作指令可能影响数据库安全性,进而可以采取对应安全措施提高数据库的安全性。为保证数据库审计的完整性,现有技术中通常由数据库所在的数据库服务器完成数据库审计。但是数据库服务器采用自身审计方式完成数据库审计,需要大量消耗数据库服务器的系统资源,从而会降低数据库服务器的性能,影响数据库的正常使用。

技术实现要素:
本发明实施例提供了数据库审计方法及装置,以解决现有审计方法需要大量消耗数据库服务器的系统资源的问题。第一方面,本发明实施例提供了一种数据库审计方法,该方法包括:审计设备拦截数据库客户端与数据库服务器之间的交互数据包;所述审计设备从所述交互数据包中解析出数据库客户端与数据库服务器之间的交互内容;所述审计设备根据所述交互内容处理所述交互数据包;所述审计设备生成包含所述交互数据包处理结果的审计日志。结合第一方面,在第一方面第一种可能的实现方式中,所述拦截客户端与服务器之间的交互数据包包括:采用函数劫持方式从所述数据库客户端拦截所述数据库客户端与所述数据库服务器之间的数据包。结合第一方面,在第一方面第二种可能的实现方式中,所述根据所述交互内容处理所述交互数据包包括:判断所述交互内容是否符合预定安全规则;如果所述交互内容符合所述预定安全规则,放行所述交互数据包;如果所述交互内容不符合所述预定安全规则,丢弃所述交互数据包。结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述判断所述交互内容是否符合预定安全规则包括:如果所述交互内容包含数据库操作指令,确定发出所述数据库操作指令的用户;判断所述用户是否有权限执行所述数据库操作指令。结合第一方面第二种可能的实现方式或第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述根据所述交互数据包的处理结果生成包含所述交互内容的审计日志包括:在丢弃所述交互数据包后,生成包含已丢弃交互数据包记录及所述操作指令的审计日志;在放行所述交互数据包后,生成包含已放行交互数据包记录及所述操作指令的审计日志。第二方面,本发明实施例还提供了一种数据库审计装置,所述数据库审计装置包括:拦截单元,用于拦截数据库客户端与数据库服务器之间的交互数据包;解析单元,用于从所述交互数据包中解析出数据库客户端与数据库服务器之间的交互内容;处理单元,用于根据所述交互内容处理所述交互数据包;审计单元,用于生成包含所述交互数据包处理结果的审计日志。结合第二方面,在第二方面第一种可能的实现方式中,所述拦截单元,具体用于采用函数劫持方式从所述数据库客户端拦截所述数据库客户端与所述数据库服务器之间的数据包。结合第二方面,在第二方面第二种可能的实现方式中,所述处理单元包括:判断子单元,用于判断所述交互内容是否符合预定安全规则;处理子单元,用于在所述交互内容符合所述预定安全规则时,放行所述交互数据包;在所述交互内容不符合所述预定安全规则时,丢弃所述交互数据包。结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述处理单元还包括:确定子单元,用于在所述交互内容包含数据库操作指令时,确定发出所述数据库操作指令的用户;所述判断子单元,还用于判断所述用户是否有权限执行所述数据库操作指令。结合第二方面第二种可能的实现方式或第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述审计单元,还用于在丢弃所述交互数据包后,生成包含已丢弃交互数据包记录及所述操作指令的审计日志;在放行所述交互数据包后,生成包含已放行交互数据包记录及所述操作指令的审计日志。本发明实施例中,审计设备拦截数据库客户端与数据库服务器之间的交互数据包;所述审计设备从所述交互数据包中解析出数据库客户端与数据库服务器之间的交互内容;所述审计设备根据所述交互内容处理所述交互数据包;所述审计设备生成包含所述交互数据包处理结果的审计日志。与现有技术相比,在本发明实施例中可以通过审计设备完成数据库审计,并且可以根据交互内容对数据包进行处理,不但可以消除数据库服务器进行数据库审计产生的负载,而且可以降低数据库所在数据库服务器的数据包处理量,从而提升数据库服务器的性能,保证数据库的正常使用。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明数据库审计方法一个实施例的流程图;图2为本发明数据库审计装置一个实施例的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,为本发明数据库审计方法一个实施例的流程图。本实施例可以由审计设备执行,所述审计设备可以是硬件设备,也可以通过软件实现。由于用户需要通过数据库客户端才能访问和操作数据库服务器中的数据库,而数据库客户端通常是安装在某个设备的软件,因此所述审计设备可以是独立的设备,也可以集成在数据库客户端所在设备上。如图1所示该方法包括如下步骤:步骤101,拦截数据库客户端与数据库服务器之间的交互数据包。所述交互数据包既可以包括数据库客户端向数据库服务器发送的数据包,也可以包括数据库客户端向数据库服务器发送的数据包。在此需要说明的是,本发明中的拦截是指暂时阻挡从数据库客户端传输到数据库服务器或从数据库服务器传输到数据库客户端的交互数据包,等进一步处理后再决定是放行或是丢弃拦截到的交互数据包。对于不同类型数据库客户端,可以采用不同的方式拦截所述交互数据包。通常情况下,审计设备可以采用系统函数劫持方式,从所述数据库客户端拦截所述数据库客户端与所述数据库服务器之间的数据包。以所述数据库客户端的操作系统为视窗操作系统为例,当所述审计设备集成在所述数据库客户端上时,审计设备可以首先生成拦截程序,所述拦截程序可以是被封装成动态链接库的网络编程开发接口(WINdowsSocketsAPI)劫持程序;或者,在用户通过用户终端访问数据库时,审计设备通过远程发布数据库服务器获取已经生成的拦截程序。在数据库客户端运行时,审计设备将拦截程序注入到数据库客户端的软件系统中;当数据库客户端通过WindowsSocketsAPI的与数据库服务器进行数据交互时,拦截程序通过劫持WindowsSocketsAPI拦截数据库客户端与数据库服务器之间的交互数据包。审计设备也可以采用网络数据包拦截方式在数据库客户端与数据库服务器之间的路由设备上拦截所述交互数据包,具体的拦截过程在此就不再赘述。步骤102,从所述交互数据包中解析出数据库客户端与数据库服务器之间的交互内容。由于不同类型数据库的数据库客户端与数据库服务器进行交互时采用的协议不同,所述交互数据包的数据格式也不相同。因此在拦截到所述交互数据包之后,审计设备可以首先确定所述数据库的数据库类型,进而采用与所述数据格式对应的协议分析方式从所述交互数据包中解析出所述交互内容,所述交互内容可以包括数据库操作指令或数据库操作结果等。例如,当所述数据库为ORACLE时,可以采用与ORACLE对应的协议分析方式从所述交互数据包中解析出ORACLE操作指令等;当所述数据库为SQLSERVER时,可以采用与SQLSERVER对应的协议分析方式从所述交互数据包中解析出SQLSERVER操作指令等。步骤103,根据所述交互内容处理所述交互数据包。由于数据库客户端与数据库的交互内容多种多样,根据所述交互内容的不同,审计设备可以采用不同的处理方式对交互数据包进行处理。审计设备可以直接放行所述交互数据包,只从所述交互内容中摘取生成审计日志必要的信息,例如,操作指令的内容、发送操作指令的用户、操作指令的发送时间等;也可以摘取生成审计日志必要的信息并判断所述交互内容是否符合预定安全规则,在所述交互内容符合预定安全规则时,放行所述交互数据包;并且在所述交互内容不符合预定安全规则时,丢弃所述交互数据包。例如,由于不同用户可以通过同一数据库客户端向数据库发送数据库操作指令,因此当所述交互数据包为数据库客户端发送给数据库服务器的数据包时,如果所述交互内容包括数据库操作指令,审计设备首先确定发出所述数据库操作指令的用户;然后判断所述用户是否有权限执行所述数据库操作指令;如果所述用户有权限执行所述数据库操作指令,放行所述交互数据包;如果所述用户无权限执行所述数据库操作指令,丢弃所述交互数据包。采用此方式,审计设备可以防止无操作权限用户破坏数据库中数据信息。又如,当所述交互数据包为数据库服务器发送给数据库客户端的数据包时,如果所述交互内容包括数据库操作结果,审计设备可以判断所述数据库客户端是否在特定安全域中;如果所述数据库客户端在所述特定安全域中,放行所述交互数据包;如果所述数据库客户端不在所述特定安全域中,则丢弃所述交互数据包。其中,所述特定安全域可以为所述数据库客户端与所述数据库服务器共同所在的安全域;或者也可以为预先设定的任意一个安全域。采用此方式,审计设备可以防止数据库中保存的数据信息发生泄露。在丢弃所述交互数据包后,审计设备还可以向所述交互数据包的发送者及接收者发送丢弃交互数据包通知信息,以提醒交互数据包的接收者该交互数据包已被丢弃。例如,当所述交互数据包为数据库客户端发送给数据库服务器的数据包时,如果因为所述用户无权限执行所述交互数据包包含的数据库操作指令,而丢弃所述交互数据包,审计设备还可以向数据库客户端及数据库服务器发送通知信息,以提醒用户无权限执行所述数据库操作指令。步骤104,生成包含所述交互数据包处理结果的审计日志。在对所述交互数据包进行处理之后,审计设备可以生成审计日志,所述审计日志除包含所述交互内容外,还可以包含所述交互数据包的处理结果。在丢弃所述交互数据包后,审计设备可以生成包含已丢弃交互数据包记录及所述操作指令的审计日志;在放行所述交互数据包后,审计设备可以生成包含已放行交互数据包记录及所述操作指令的审计日志。例如,当交互内容包括数据库操作指令的交互数据包被丢弃时,所述审计日志中除了操作指令的内容、发送操作指令的用户、操作指令的发送时间等信息外,还可以包括已丢弃交互数据包记录。其中,所述已丢弃交互数据包记录用于记录该交互数据包什么时候被丢弃,为何被丢弃等信息。又如,当交互内容包括数据库操作指令的交互数据包被方形时,所述审计日志中除了操作指令的内容、发送操作指令的用户、操作指令的发送时间等信息外,还可以包括已放行交互数据包记录。其中,所述已放行交互数据包记录用于记录该交互数据包什么时候被放行等信息。采用本发明实施例,可以通过审计设备完成数据库审计,并且可以根据交互内容对数据包进行处理,不但可以消除数据库服务器进行数据库审计产生的负载,而且可以降低数据库所在数据库服务器的数据包处理量,从而提升数据库服务器的性能,保证数据库的正常使用。并且,由于采用本实施,可以获取数据库客户端与数据库之间的交互内容,因此对数据库审计可以精确到SQL操作语句一级。从而可以增加审计的精确度。参见图2,为本发明数据库审计装置一个实施例的流程图。该装置可以设置在数据库客户端所在用户设备上。如图2所示,所述装置可以包括:拦截单元201、解析单元202、处理单元203及审计单元204。其中,拦截单元201,用于拦截数据库客户端与数据库服务器之间的交互数据包;解析单元202,用于从所述交互数据包中解析出数据库客户端与数据库服务器之间的交互内容;处理单元203,用于根据所述交互内容处理所述交互数据包;审计单元204,用于生成包含所述交互数据包处理结果的审计日志。可选的,所述拦截单元201,可以用于采用函数劫持方式从所述数据库客户端拦截所述数据库客户端与所述数据库服务器之间的数据包。可选的,所述处理单元203可以包括:判断子单元,用于判断所述交互内容是否符合预定安全规则;处理子单元,用于在所述交互内容符合所述预定安全规则时,放行所述交互数据包;在所述交互内容不符合所述预定安全规则时,丢弃所述交互数据包。可选的,所述处理单元203还可以包括:确定子单元,用于在所述交互内容包含数据库操作指令时,确定发出所述数据库操作指令的用户;所述判断子单元,还用于判断所述用户是否有权限执行所述数据库操作指令。可选的,所述审计单元204,还用于在丢弃所述交互数据包后,生成包含已丢弃交互数据包记录及所述操作指令的审计日志;在放行所述交互数据包后,生成包含已放行交互数据包记录及所述操作指令的审计日志。可选的,所述装置还可以包括通知单元,用于向数据库客户端和/或数据库服务器发送丢弃交互数据包通知信息。从上述实施例可以看出,采用本实施例提供的数据库审计装置完成审计,不但可以消除数据库服务器进行数据库审计产生的负载,而且可以降低数据库所在数据库服务器的数据包处理量,从而提升数据库服务器的性能,保证数据库的正常使用。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,数据库服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1