一种获取调用客户端的主体的信息方法和装置与流程

文档序号:27426942发布日期:2021-11-17 20:40阅读:80来源:国知局
一种获取调用客户端的主体的信息方法和装置与流程

1.本技术涉及到数据处理领域,具体而言,涉及一种获取调用客户端的主体的信息方法和装置。


背景技术:

2.随着数据规模的不断扩大,数据库的作用变得越来越重要。通常访问数据库的时候,需要通过数据库客户端来进行访问,数据库也会记录日志文件。在该日志文件中会记录访问数据库的客户端、访问时间以及所进行的操作等。
3.通常,数据库会认为通过数据库客户端建立的会话是安全的,在一种情况下,远程连接终端会通过ssh等协议登录到数据库服务器,然后使用数据本地的客户端来进行访问,此时仅仅能够记录到是通过本地客户端访问的,但是,对于调用客户端的远程连接终端的信息缺无法获取到,这有可能导致出现风险。


技术实现要素:

4.本技术实施例提供了一种获取调用客户端的主体的信息方法和装置,以至少解决现有技术中无法获取调用客户端访问数据库的远程连接终端的信息所导致的问题。
5.根据本技术的一个方面,提供了一种获取调用客户端的主体的信息方法,其特征在于,包括:钩子hook程序确定客户端被调用,其中,所述hook程序钩挂在所述客户端上,所述客户端被调用后用于访问数据库;所述hook程序获取远程连接终端的标识信息,其中,所述远程连接终端为终端程序,所述终端程序用于通过远程调用所述客户端;所述hook程序根据所述终端标识获取所述远程连接终端调用所述客户端所使用的网络地址;所述hook程序记录此次所述客户端被调用的信息,其中,所述被调用的信息至少包括:所述网络地址。
6.进一步地,所述被调用的信息还包括以下至少之一:所述远程连接终端通过所述客户端向所述数据库发送的sql语句、所述客户端被所述远程连接终端调用的时间、所述远程连接终端的标识信息。
7.进一步地,在所述hook程序确定所述客户端被调用之前,所述方法还包括:配置所述远程连接终端的标识信息与其所使用的网络地址的对应关系;所述hook程序根据所述终端标识获取所述远程连接终端调用所述客户端所使用的网络地址包括:所述hook程序根据所述终端标识从所述对应关系中查找所述远程连接终端调用所述客户端所使用的网络地址。
8.进一步地,还包括:在所述hook程序根据所述终端标识获取所述远程连接终端调用所述客户端所使用的网络地址失败的情况下,所述hook程序中断通过所述远程连接终端对所述客户端的调用。
9.进一步地,在所述hook程序中断通过所述远程连接终端对所述客户端的调用之前,所述方法还包括:所述hook程序构造数据库连接失败的错误消息;所述hook程序将构造的错误消息返回给所述客户端。
10.进一步地,还包括:所述hook程序根据所述网络地址确定是否需要对sql语句进行审计,其中,所述sql语句为所述网络地址对应的远程连接终端通过所述客户端向所述数据库发送的sql语句。
11.进一步地,所述hook程序根据所述网络地址确定是否需要对sql语句进行审计包括:在所述网络地址为远程网络地址的情况下,所述hook程序确定需要对所述sql语句进行审计;在所述网络地址为本地网络地址的情况下,所述hook程序确定不需要对所述sql语句进行审计。
12.根据本技术的另一个方面,还提供了一种获取调用客户端的主体的信息装置,所述装置包括一个或多个模块,所述一个或多个模块用于执行上述的方法中的步骤。
13.根据本技术的另一个方面,还提供了一种处理器,用于运行上述的hook程序。
14.根据本技术的另一个方面,还提供了一种存储器,用于上述的hook程序。
15.在本技术实施例中,采用了钩子hook程序确定客户端被调用,其中,所述hook程序钩挂在所述客户端上,所述客户端被调用后用于访问数据库;所述hook程序获取远程连接终端的标识信息,其中,所述远程连接终端为终端程序,所述终端程序用于通过远程调用所述客户端;所述hook程序根据所述终端标识获取所述远程连接终端调用所述客户端所使用的网络地址;所述hook程序记录此次所述客户端被调用的信息,其中,所述被调用的信息至少包括:所述网络地址。通过本技术解决了现有技术中无法获取调用客户端访问数据库的远程连接终端的信息所导致的问题,能够有效查找到客户端的调用者,从而为风险的防范处理提供了依据。
附图说明
16.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例的获取调用客户端的主体的信息方法的流程图。
具体实施方式
17.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
18.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
19.在本实施例中提供了一种获取调用客户端的主体的信息方法,图1是根据本技术实施例的获取调用客户端的主体的信息方法的流程图,如图1所示,该方法包括如下步骤:步骤s102,钩子(hook)程序确定客户端(即数据库客户端)被调用,其中,hook程序钩挂在客户端上,客户端被调用后用于访问数据库;在某些情况下,客户端可能是通过ssh访问数据库的,作为一个可以选择增加的实施方式,hook程序可以通过在libc库的read、fgets、fwrite等函数增加hook点,通过hook点读取上一次文件读到的位置信息,如果有更新,从上次位置后读取hook获取的缓存数据,提取出时间信息,ascii码字符串和明文数据等信息,先处理明文数据字符串,根据是否是可
显字符及对应的ascii码,确定键值信息,然后以每条完整的命令均以特殊符号作为结束特征,进行解析,从而可以得到秘钥。
20.步骤s104,hook程序获取远程连接终端的标识信息,其中,远程连接终端为终端程序,终端程序用于通过远程调用客户端;远程连接终端用于进行远程连接,对于远程连接也可以采用一些控制方式,例如,接收授权设备发来的包含有被授权设备密钥的远程控制请求消息,所述被授权设备密钥包括被授权设备的身份标识码;根据所述身份标识码,向与所述身份标识码对应的被授权设备发送远程控制通知消息,所述远程控制通知消息包括:所述被授权设备密钥和自身生成的远程控制链接;当接收到被授权设备通过所述远程控制链接发来的远程控制反馈消息时,根据所述远程控制反馈消息中携带的被授权设备密钥对被授权设备的身份进行审核;当审核通过时,向授权设备发送远程控制连接通过消息,以通过所述远程控制链接在所述授权设备与被授权设备之间建立远程控制连接。该远程连接终端被安装至所述授权设备和被授权设备中,用于进行该远程连接的控制。
21.步骤s106,hook程序根据终端标识获取远程连接终端调用客户端所使用的网络地址;在该步骤中,作为一个可以选择增加的实施方式,hook程序可以通过抓取网络数据包的方式,通过对抓取的网络数据包中内容进行提取,从而获取该远程连接终端所使用的网络地址。在下述中还说明了另一个中可选的实施方式,可以根据终端标识与网络地址的对应关系获取网络地址,此时,可以比较通过抓包得到的网络地址和通过对应关系获取的网络地址是否一致,如果这两个网络地址不一致,则确定使用该网络地址的远程连接终端为不受信任的远程连接终端(对不受信任的远程连接终端的处理与黑名单的客户端的处理方式是一致的)。对于不受信任的远程连接终端,hook程序会中断远程连接终端对客户端的调用。在确定使用该网路地址的远程连接终端为不受信任之后,将该远程连接终端的标识信息以及网络地址均添加到黑名单中。黑名单中的标识信息和网络地址能够被管理员进行编辑。在管理员删除或者更改黑名单中的标识信息和网络地址时,对管理员的更改进行记录,将管理员的登陆用户名称以及更改的内容均记录到日志文件中,并在管理员更改之后,将所述日志文件发送预先配置的用户,该用户的作用是对管理员的操作进行审核。
22.步骤s108,hook程序记录此次客户端被调用的信息,其中,被调用的信息至少包括:网络地址。
23.通过上述步骤,在数据库客户端(在本实施例中简称为客户端)配置一个hook程序,由于该hook程序是钩挂在客户端上,因此可以以客户端的身份来执行一些操作,在上述步骤中,可以通过远程连接终端的标识信息对客户端的远程连接终端进行溯源,获取到远程连接终端的网络地址(例如,ip地址和/或端口号)。hook程序随着客户端启动而启动,远程连接终端一旦调用客户端,hook程序就可以获取远程连接终端通过客户端所执行的动作。因此,通过本实施例解决了现有技术中无法获取调用客户端访问数据库的远程连接终端的信息所导致的问题,能够有效查找到客户端的调用者,从而为风险的防范处理提供了依据。
24.由于hook程序可以监控到客户端的行为,因此,为了更好的进行操作,还可以记录其他的被调用的信息,即在一个可选的实施方式中,被调用的信息还可以包括以下至少之
一:远程连接终端通过客户端向数据库发送的sql语句、客户端被远程连接终端调用的时间、远程连接终端的标识信息。这些信息在被记录之后,为今后查看远程连接终端所进行的所有操作提供了依据,这些被调用的信息可以用作数据统计,例如,可以统计哪个远程连接终端在预定时间段内通过客户端对数据库进行了最多的操作,以及这些操作的内容以及对象等,这些数据的统计为将来制定数据库的安全措施提供了数据的支持。
25.作为一个可以选择增加的实施方式,可以统计一段时间内的预定网络地址的远程连接终端所发送的sql语句,遍历所有的sql语句,从中确定风险sql语句,并统计该预定网络地址的远程连接终端发送风险sql语句的频率。在该频率小于第一阈值的情况下,确定该使用该预定网络地址的远程连接终端为可信任远程连接终端。可信任远程连接终端通过客户端发送的sql语句直接被发送到数据库进行执行,hook程序仅仅备份sql语句,对sql语句本身的发送不进行干预。
26.作为另一个可以选择增加的实施方式,如果使用该预定网络地址的远程连接终端发送风险sql语句的频率大于第二阈值的情况下,发送告警信息给管理员,其中,所述告警信息用于指示该预定网络地址的远程连接终端被列入黑名单,列入黑名单的远程连接终端调用客户端时会被拒绝,例如,hook程序中断通过远程连接终端对客户端的调用,其中,第二阈值大于第一阈值。
27.还有一种情况,hook程序也会中断远程连接终端对客户端的调用,即,hook程序根据终端标识获取远程连接终端调用客户端所使用的网络地址失败,这种情况的产生是由于在一个可选实施方式中,可以预先配置远程连接终端的标识信息和网络地址的对应关系,这相当于将网络地址和标识信息进行了预先的绑定,hook程序根据终端标识获取远程连接终端调用客户端所使用的网络地址包括:hook程序根据终端标识从对应关系中查找远程连接终端调用客户端所使用的网络地址。
28.在该可选实施方式,如果hook程序无法根据终端的标识查找到网络地址,则说明使用该网络地址的远程连接终端为不受信任的客户端,从而hook程序中断通过远程连接终端对客户端的调用。
29.在另外一个可选的方式中,为了提高交互性,在hook程序中断通过远程连接终端对客户端的调用之前,hook程序构造数据库连接失败的错误消息;hook程序将构造的错误消息返回给客户端。作为一个可以选择增加的实施方式,还可以在错误消息中的内容中添加远程连接终端所使用网络地址不被信任,这样可以是使用远程连接终端的用户得到更好的提示。
30.在另一个可选的实施方式中,hook程序可以根据配置判断是否需要将sql发送给负责审计的程序或者服务,在该可选实施例中,hook程序可以根据网络地址确定是否需要对sql语句进行审计,其中,sql语句为网络地址对应的远程连接终端通过客户端向数据库发送的sql语句。例如,在网络地址为远程网络地址的情况下,hook程序确定需要对sql语句进行审计;在网络地址为本地网络地址的情况下,hook程序确定不需要对sql语句进行审计。
31.除了根据网络地址确定是否需要审计之外,还可以结合上述实施方式中发送风险sql语句的频率来判断如何进行审计。例如,对于发送风险sql语句的频率低于第一阈值的网络地址对应的远程连接终端,其通过调用客户端发送的sql直接进行备份就好。对于发送
风险sql语句的频率大于等于所述第一阈值,并且小于等于所述第二阈值的网络地址对应的远程连接终端,其通过调用终端发送的sql语句均需要进行判断,如果跟预先确定的风险语句关键词匹配,则暂停该语句的执行,hook程序将该sql语句发送至负责风险排查的服务或者程序,当排查为安全之后,hook程序再控制客户端将该sql语句发送至数据库。如果sql语句没有包括预先确定的风险语句关键词,则将该sql进行备份,直接将sql语句发送至数据库执行就好。
32.通过上述实施例,可以根据远程连接终端的网络地址确定该远程连接终端的风险等级,从而采用不同的方式,可以兼顾sql语句执行的安全性和效率。
33.在本实施例中还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序(例如,上述实施例中的hook程序),处理器被设置为运行计算机程序以执行以上实施例中的方法。
34.上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd

rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
35.这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。在本实施例中就提供了一种这样的装置,该装置被称为获取调用客户端的主体的信息装置,装置包括一个或多个模块,一个或多个模块用于执行上述的方法中的步骤。各个步骤在上述方法实施例中已经进行了说明,在本实施例中不再赘述。
36.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1