本申请涉及数据库审计,特别是涉及一种数据库的审计方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着现代计算机应用技术的发展和互联网的广泛普及,各种各样的应用数据存储在数据库中,因而数据的安全显得愈发重要。越来越多的数据应用厂商、企业以及政府机构等开始部署独立的数据库审计产品,重视对数据库的数据行为的审计。
2、现有的数据库审计产品主要通过采集和分析网络流量包,解析出对数据库服务器的数据操作行为,完成对目标数据库的监控和审计。这是由于通过tcp/ip方式连接访问数据库可以产生网络流量,在windows系统上依靠npcap或wpcap,可以捕获这类网络流量从而实现审计功能。然而,还有一部分本地访问数据库的方式是无法审计的。这类本地访问数据库的方式并非通过tcp/ip方式,因此不产生网络流量,如windows系统上sqlserver的shared memory以及named pipe方式。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够获取不产生网络流量的数据库访问方式的通信数据进行审计的数据库的审计方法、装置、计算机设备、计算机可读存储介质以及计算机程序产品。
2、第一方面,本申请提供了一种数据库的审计方法,所述方法包括:
3、基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令,所述通信函数用于实现所述客户端工具与所述数据库的通信交互;
4、基于所述第一跳转指令,跳转至所述第一动态库文件中的数据拷贝指令,拷贝所述客户端工具与数据库之间的通信数据;
5、基于所述第一动态库文件中的第二跳转指令,在所述通信数据拷贝后跳转至所述通信函数,执行所述通信函数对应的通信流程;
6、在所述通信流程结束后将所述通信数据转发至审计设备。
7、在其中一个实施例中,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令包括:
8、基于所述第一动态库文件,定义目标函数,所述目标函数与所述通信函数定义相同;
9、基于所述目标函数,将所述通信函数的起始地址处的汇编代码修改为所述第一跳转指令。
10、在其中一个实施例中,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令之后包括:
11、调用所述通信函数,执行所述第一跳转指令。
12、在其中一个实施例中,所述基于所述第一动态库文件中的第二跳转指令,在所述通信数据拷贝后跳转至所述通信函数,执行所述通信函数对应的通信流程包括:
13、所述通信数据拷贝后,调用所述第一动态库文件中的跳板通信函数,所述跳板通信函数中定义有所述通信函数的起始地址的汇编代码;
14、基于所述第二跳转指令,跳转至所述通信函数的程序中断处,执行所述通信函数对应的通信流程。
15、在其中一个实施例中,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令之前包括:
16、基于面向所述客户端工具的父进程的第一可执行文件,将第二动态库文件注入所述客户端工具的父进程,所述第二动态库文件用于监测所述客户端工具的启动进程;
17、基于所述第二动态库文件,调用面向所述客户端工具的第二可执行文件将所述第一动态库文件注入所述客户端工具。
18、在其中一个实施例中,所述在所述通信流程结束后将所述通信数据转发至审计设备包括:
19、将所述通信数据组装成网络流量包转发至审计设备,所述网络流量包包括所述通信数据、源ip、源端口、目的ip、目的端口以及pcap文件头。
20、第二方面,本申请还提供了一种数据库的审计装置,所述装置包括:
21、指令修改模块,用于基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令,所述通信函数用于实现所述客户端工具与所述数据库的通信交互;
22、第一跳转模块,用于基于所述第一跳转指令,跳转至所述第一动态库文件中的数据拷贝指令,拷贝所述客户端工具与数据库之间的通信数据;
23、第二跳转模块,用于基于所述第一动态库文件中的第二跳转指令,在所述通信数据拷贝后跳转至所述通信函数,执行所述通信函数对应的通信流程;
24、转发审计模块,用于在所述通信流程结束后将所述通信数据转发至审计设备。
25、第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的内容。
26、第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的内容。
27、第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面的内容。
28、上述数据库的审计方法、装置、计算机设备、存储介质和计算机程序产品,通过客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令,所述通信函数用于实现所述客户端工具与所述数据库的通信交互;基于所述第一跳转指令,跳转至所述第一动态库文件中的数据拷贝指令,拷贝所述客户端工具与数据库之间的通信数据;基于所述第一动态库文件中的第二跳转指令,在所述通信数据拷贝后跳转至所述通信函数,执行所述通信函数对应的通信流程;在所述通信流程结束后将所述通信数据转发至审计设备,一方面避免了通过安装驱动监管程序运行带来的异常和冲突,另一方面减少cpu资源的的消耗,获取到不产生网络流量的数据库访问方式的通信数据,实现了数据库的审计。
1.一种数据库的审计方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据库的审计方法,其特征在于,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令包括:
3.根据权利要求2所述的数据库的审计方法,其特征在于,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令之后包括:
4.根据权利要求1所述的数据库的审计方法,其特征在于,所述基于所述第一动态库文件中的第二跳转指令,在所述通信数据拷贝后跳转至所述通信函数,执行所述通信函数对应的通信流程包括:
5.根据权利要求1所述的数据库的审计方法,其特征在于,所述基于客户端工具中所注入的第一动态库文件,将通信函数的起始地址修改为第一跳转指令之前包括:
6.根据权利要求1所述的数据库的审计方法,其特征在于,所述在所述通信流程结束后将所述通信数据转发至审计设备包括:
7.一种数据库的审计装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。