掌桥专利:专业的专利平台
掌桥专利
首页

一种基于白名单的审计处理方法和装置

文献发布时间:2024-01-17 01:14:25


一种基于白名单的审计处理方法和装置

技术领域

本申请涉及到数据库审计领域,具体而言,涉及一种基于白名单的审计处理方法和装置。

背景技术

图1是根据相关技术的数据库审计服务的架构示意图,如图1所示,数据库客户端在访问数据库的时候会产生数据库流量,数据库流量包括数据库客户端发送给数据库的访问请求,以及数据库发送给客户端的结果集,该结果集是响应于所述访问请求发送的。流量插件会对数据库客户端和数据库之间交互的数据库流量进行复制,流量插件将复制的流量发送给审计服务进行数据库审计,需要说明的是审计服务可以一台服务器或者服务器集群,也可以是运行在其他设备上的审计程序等。流量插件与审计服务可能不再同一内网内,这样流量插件就需要通过外部网络将数据库流量发送给审计服务,外部网络中可能会包括多个网络设备(例如,交换机以及路由器等,这些网络设备在图1中未示出)。

在图1示出的场景中,可能会存在对审计服务的攻击服务,例如,可以冒充流量插件向审计服务发送流量,发送的这些流量中可能包括了能够对审计服务产生风险的代码。

发明内容

本申请实施例提供了一种基于白名单的审计处理方法和装置,以至少解决现有技术中可以冒充流量插件向审计服务发送流量会给审计服务带来风险的问题。

根据本申请的一个方面,提供了一种基于白名单的审计处理方法,包括:审计服务接收到来自流量插件的认证请求消息,其中,所述流量插件用于获取数据库客户端和数据库之间的数据库流量,并将获取到数据库流量发送给所述审计服务;所述审计服务用于对接收到的所述数据库流量进行审计;所述审计服务从所述认证请求消息中获取令牌,其中,所述令牌为预先发送给用户的,所述令牌被配置在所述流量插件中;所述审计服务判断是否存在与所述令牌对应的用户,如果不存在,则所述审计服务对所述流量插件的认证失败,所述审计服务断开与所述流量插件之间的连接;如果存在,则所述审计服务对所述流量插件的认证成功,所述审计服务确定所述流量插件是可信任的流量插件,能够接收来自所述流量插件的数据库流量。

进一步地,在所述审计服务对所述流量插件的认证成功之后,所述方法还包括:所述审计服务针对所述令牌对应的所述用户生成所述用户的唯一标识;所述审计服务将所述唯一标识发送给所述流量插件;所述审计服务在接收到数据库流量之后,确定所述数据库流量中是否携带有的所述用户的唯一标识,在携带有所述用户的唯一标识的情况下,对所述数据库流量进行审计;在所述数据库流量中未携带所述用户的唯一标识的情况下,断开与所述数据库流量的来源方的连接。

进一步地,在所述审计服务将所述唯一标识发送给所述流量插件之后,所述唯一标识被配置给至少一个流量插件,所述至少一个流量插件均使用所述唯一标识向所述审计服务发送数据库流量。

进一步地,在所述审计服务对所述流量插件认证成功之后,所述方法还包括:所述审计服务确定所述流量插件认证使用的所述令牌是否在时间上过期;如果已经过期,则所述审计服务将新的令牌发送给所述流量插件,其中,所述流量插件在所述令牌过期之后,使用接收到的所述新的令牌再次进行认证。

根据本申请的另一个方面,还提供了一种基于白名单的审计处理装置,位于审计服务中,所述装置包括:接收模块,用于接收到来自流量插件的认证请求消息,其中,所述流量插件用于获取数据库客户端和数据库之间的数据库流量,并将获取到数据库流量发送给所述审计服务;所述审计服务用于对接收到的所述数据库流量进行审计;获取模块,用于从所述认证请求消息中获取令牌,其中,所述令牌为预先发送给用户的,所述令牌被配置在所述流量插件中;处理模块,用于判断是否存在与所述令牌对应的用户,如果不存在,则确定对所述流量插件的认证失败,断开与所述流量插件之间的连接;如果存在,则确定对所述流量插件的认证成功,确定所述流量插件是可信任的流量插件,能够接收来自所述流量插件的数据库流量。

进一步地,在所述审计服务对所述流量插件的认证成功之后,还包括:生成模块,用于针对所述令牌对应的所述用户生成所述用户的唯一标识;发送模块,用于将所述唯一标识发送给所述流量插件;审计模块,用于在接收到数据库流量之后,确定所述数据库流量中是否携带有的所述用户的唯一标识,在携带有所述用户的唯一标识的情况下,对所述数据库流量进行审计;在所述数据库流量中未携带所述用户的唯一标识的情况下,断开与所述数据库流量的来源方的连接。

进一步地,在所述审计服务将所述唯一标识发送给所述流量插件之后,所述唯一标识被配置给至少一个流量插件,所述至少一个流量插件均使用所述唯一标识向所述审计服务发送数据库流量。

进一步地,在所述审计服务对所述流量插件认证成功之后,还包括:确定模块,用于确定所述流量插件认证使用的所述令牌是否在时间上过期;第二发送模块,在所述令牌已经过期的情况下,将新的令牌发送给所述流量插件,其中,所述流量插件在所述令牌过期之后,使用接收到的所述新的令牌再次进行认证。

根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。

根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。

在本申请实施例中,采用了审计服务接收到来自流量插件的认证请求消息,其中,所述流量插件用于获取数据库客户端和数据库之间的数据库流量,并将获取到数据库流量发送给所述审计服务;所述审计服务用于对接收到的所述数据库流量进行审计;所述审计服务从所述认证请求消息中获取令牌,其中,所述令牌为预先发送给用户的,所述令牌被配置在所述流量插件中;所述审计服务判断是否存在与所述令牌对应的用户,如果不存在,则所述审计服务对所述流量插件的认证失败,所述审计服务断开与所述流量插件之间的连接;如果存在,则所述审计服务对所述流量插件的认证成功,所述审计服务确定所述流量插件是可信任的流量插件,能够接收来自所述流量插件的数据库流量。通过本申请解决了现有技术中可以冒充流量插件向审计服务发送流量会给审计服务带来风险的问题,从而减少了审计风险,提高了审计服务的安全性。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据相关技术的数据库审计服务的架构示意图;

图2是根据本申请实施例的基于白名单的审计处理方法的流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在图1示出的相关技术中,可能会存在冒充流量插件(在以下实施方式中也可以将流量插件简称为Rmagent)向审计服务发送流量的情况,为了解决这个问题,可以通过在审计服务中配置IP地址白名单的方式来对流量插件进行认证,即在审计服务中预先配置网络协议(InternetProtocol,简称为IP)地址,然后判断接收到的数据库流量是否来源于预先配置的这些IP地址,如果不是,则认为这些流量不是正规的流量插件发送过来的,如果数据库流量来源于预先配置的这些IP地址,则对这些数据库流量进行审计。

这种白名单的方式在图1示出的场景中,只能将流量插件所使用的外网地址添加到白名单中,然后通过查看审计服务中的传输控制协议(TransmissionControlProtocol,简称为TCP)连接,通过TCP连接中的源地址则可以确定数据库流量是否来源于正规的流量插件。这种直接将外网地址加到白名单中的方式,虽然可以确保使用该外网地址的流量插件可以通过认证,但是,经过该外网IP地址的所有Rmagent插件都会认证通过,安全性比较低。

为了解决上述问题,在以下实施方式中根据本申请的一个方面,提供了一种基于白名单的审计处理方法,图2是根据本申请实施例的基于白名单的审计处理方法的流程图,如图2所示,下面对图2中的方法所涉及到的步骤进行说明。

步骤S202,审计服务接收到来自流量插件的认证请求消息,其中,所述流量插件用于获取数据库客户端和数据库之间的数据库流量,并将获取到数据库流量发送给所述审计服务;所述审计服务用于对接收到的所述数据库流量进行审计。

步骤S204,所述审计服务从所述认证请求消息中获取令牌,其中,所述令牌为预先发送给用户的,所述令牌被配置在所述流量插件中。

步骤S206,所述审计服务判断是否存在与所述令牌对应的用户,如果不存在,则所述审计服务对所述流量插件的认证失败,所述审计服务断开与所述流量插件之间的连接。

步骤S208,如果存在,则所述审计服务对所述流量插件的认证成功,所述审计服务确定所述流量插件是可信任的流量插件,能够接收来自所述流量插件的数据库流量。

在上述步骤中,使用了预先配置的令牌来判断流量插件是否为被信任的流量插件,在流量插件为可信任的插件的情况下,审计服务才接收来自所述流量插件的数据库流量,因此通过上述步骤解决了现有技术中可以冒充流量插件向审计服务发送流量会给审计服务带来风险的问题,从而减少了审计风险,提高了审计服务的安全性。

上述图2中示出的步骤也可以结合IP地址白名单共同使用,例如,在步骤S202的审计服务接收到来自流量插件的认证请求消息的步骤中,审计服务可以根据预先配置的IP地址白名单,来判断认证请求消息的所来源的IP地址是否是在IP地址白名单中的地址,如果是在IP地址白名单中的IP地址,再从认证请求消息中获取令牌并执行图2中的剩余的步骤。如果认证请求消息的IP地址不在白名单中,则审计服务丢弃所述流量插件的认证请求消息。

在另一个可选的实施方式中,如果认证请求消息的IP地址不在白名单中,则审计服务也获取认证请求消息中的令牌,并判断该令牌所属的用户是否仍然被允许使用所述审计服务,如果该令牌所属的用户不允许被使用所述审计服务,则将该令牌与所述用户的对应关系删除。如果所述令牌所属的用户仍然允许使用所述审计服务,则将所述令牌作废,然后为所述用户生成新的令牌,并将新的令牌发送给所述用户。

审计服务在从流量插件中获取数据库流量的时候是持续获取的,如果每次都进行认证则比较繁琐也会影响审计服务的效率,在一个可选实施方式中,在所述审计服务对所述流量插件的认证成功之后,所述方法还包括:所述审计服务针对所述令牌对应的所述用户生成所述用户的唯一标识;所述审计服务将所述唯一标识发送给所述流量插件;所述审计服务在接收到数据库流量之后,确定所述数据库流量中是否携带有的所述用户的唯一标识,在携带有所述用户的唯一标识的情况下,对所述数据库流量进行审计;在所述数据库流量中未携带所述用户的唯一标识的情况下,断开与所述数据库流量的来源方的连接。通过该可选的实施方式,后续流量插件发送信息需要携带该唯一标识,不再携带令牌。属于该用户的其他后续的流量插件连接过来后,可以不用再重新生成唯一标识,直接使用已有的唯一标识即可。

审计服务在接收到来自流量插件发送的消息之后,获取所述流量插件中携带的唯一标识,如果没有获取到唯一标志,则可以获取令牌,在获取到令牌的情况下,查找该令牌所属的用户是否已经被分配了唯一标识,如果该用户已经被分配了唯一标识,则将该唯一标识发送给所述流量插件,以供所述流量插件在后续向审计服务发送消息的时候进行携带。

通过用户的唯一标识可以看出,该唯一标识不是唯一区分流量插件,而是对用户进行区分,一个用户可以使用了多个流量插件,在这种情况下,在所述审计服务将所述唯一标识发送给所述流量插件之后,所述唯一标识被配置给至少一个流量插件,所述至少一个流量插件均使用所述唯一标识向所述审计服务发送数据库流量。通过该可选的方式,一个用户所有的流量插件均可以配置该用户的唯一标识,从而均可以成为被信任的流量插件。

为了提高安全性,在一个可选的实施方式中还可以为令牌设置生效时间,也就是说令牌在时间上是可以过期的。在该可选实施方式中,在所述审计服务对所述流量插件认证成功之后,所述方法还包括:所述审计服务确定所述流量插件认证使用的所述令牌是否在时间上过期;如果已经过期,则所述审计服务将新的令牌发送给所述流量插件,其中,所述流量插件在所述令牌过期之后,使用接收到的所述新的令牌再次进行认证。

通过上述可选实施方式解决了现有技术中可以冒充流量插件向审计服务发送流量会给审计服务带来风险的问题,从而减少了审计风险,提高了审计服务的安全性。

下面结合一个可选实施方式进行说明。在以下实施方式中,不再依靠IP白名单认证的方式,而是针对用户使用特定的标识进行认证。下面对使用特定的标识进行认证的方式进行说明。

步骤1,对使用审计产品的用户,颁发一个令牌(Token)。

在该步骤中,令牌(Token)可以理解为是系统的临时密钥,该令牌可以是一串字符串,可以用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。在使用令牌的情况下,可以不适用密码或其他凭证来证明自己的身份。使用令牌之后,安全性就会提高,这是因为令牌最大的特点就是随机性和不可预测性。这样一般伪装者是无法猜测出来令牌是什么的。

令牌有很多种,例如,访问令牌(AccessToken)表示访问控制操作主题的系统对象;密保令牌(SecurityToken)又叫作认证令牌或者硬件令牌,是一种计算机身份校验的物理设备;会话令牌(SessionToken)是交互会话中唯一的身份标识符。在以下步骤中可以使用访问令牌和会话令牌,当然也可以使用其他类型的令牌,在此不再一一赘述。

步骤2,在部署流量插件(Rmagent)时,需要查询最新的Token,将该Token一起部署到流量插件中(即该Token会落地)。在该步骤中用户在部署流量插件的时候,将自己在步骤1中获得的令牌配置在流量插件中一起进行部署。

步骤3,Rmagent在连接审计服务时,首先携带该Token,发送到审计服务进行认证。

步骤4,在审计服务收到该Token后,查询是否存在该Token对应的用户,如果没有查询到该令牌对应的用户,则认证不通过,断开与流量插件的连接。

在该步骤中,在断开与流量插件的连接之前还可以获取该流量插件所使用的IP地址,然后保存IP地址,在从该IP地址接收到的令牌认证不通过的次数超过阈值之后,将所述IP地址添加到黑名单中,审计服务不会接收来源于黑名单中的IP地址的数据流量。例如,审计服务在接收到认证请求之后,可以判断该认证请求是否来源于黑名单中的IP地址,如果是,则断开该连接,不再接收令牌,如果不是,则接收该令牌,并查询是否存在该令牌对应的用户,如果没有查询到,则认证不通过。如果查询到存在该令牌对应的用户,则认证通过。

步骤5,第一个连接审计服务的Rmagent认证通过后,生成属于该用户的唯一的UUID,下发到Rmagnet。后续Rmagent发送信息需要携带该UUID,不再携带Token。属于该用户的其他后续的Rmagent连接过来后,不会再重新生成UUID,直接使用已有的UUID。

UUID是通用唯一识别码(UniversallyUniqueIdentifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。为了提高效率,常用的UUID可缩短至16位。UUID用来识别属性类型,在所有空间和时间上被视为唯一的标识。一般来说,可以保证这个值是真正唯一的任何地方产生的任意一个UUID都不会有相同的值。使用UUID的一个好处是可以为新的服务创建新的标识符。这样一来,客户端在查找一个服务时,只需要在它的服务查找请求中指出与某类服务(或某个特定服务)有关的UUID,如果服务的提供者能将可用的服务与这个UUID相匹配,就返回一个响应。

UUID是基于当前时间、计数器(counter,计数器用于为该UUID生成一个唯一的数字)和硬件标识(通常为无线网卡的MAC地址或其他硬件标识)等数据计算生成的。UUID可以被任何人独立创建,并按需发布。UUID没有集中管理机构,因为它们是不会被复制的独特标识符。属性协议允许设备使用UUID识别属性类型,从而不需要用读/写请求来识别它们的本地句柄。

在该步骤中,UUID和令牌可以不在审计服务中落地(即可以不保存在审计服务中),但是会记录在数据中心的配置中。当然也可以在审计服务中保存该UUID和令牌,在实际实施时根据需要进行配置即可。

步骤6,为保证安全性,审计服务会将Token定时更新,并在检测到Rmagent侧Token过期后重新下发Token,保证认证通过的Rmagent侧Token始终是有效的,防止Rmagent断开重连时Token失效导致连接失败。在该步骤中Token文件是一直保存的。

在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。

上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。

该本实施例中就提供了这样的一种装置或系统。该装置被称为是一种基于白名单的审计处理装置,位于审计服务中,所述装置包括:接收模块,用于接收到来自流量插件的认证请求消息,其中,所述流量插件用于获取数据库客户端和数据库之间的数据库流量,并将获取到数据库流量发送给所述审计服务;所述审计服务用于对接收到的所述数据库流量进行审计;获取模块,用于从所述认证请求消息中获取令牌,其中,所述令牌为预先发送给用户的,所述令牌被配置在所述流量插件中;处理模块,用于判断是否存在与所述令牌对应的用户,如果不存在,则确定对所述流量插件的认证失败,断开与所述流量插件之间的连接;如果存在,则确定对所述流量插件的认证成功,确定所述流量插件是可信任的流量插件,能够接收来自所述流量插件的数据库流量。

该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。

可选地,在所述审计服务对所述流量插件的认证成功之后,还包括:生成模块,用于针对所述令牌对应的所述用户生成所述用户的唯一标识;发送模块,用于将所述唯一标识发送给所述流量插件;审计模块,用于在接收到数据库流量之后,确定所述数据库流量中是否携带有的所述用户的唯一标识,在携带有所述用户的唯一标识的情况下,对所述数据库流量进行审计;在所述数据库流量中未携带所述用户的唯一标识的情况下,断开与所述数据库流量的来源方的连接。

可选地,在所述审计服务将所述唯一标识发送给所述流量插件之后,所述唯一标识被配置给至少一个流量插件,所述至少一个流量插件均使用所述唯一标识向所述审计服务发送数据库流量。

可选地,在所述审计服务对所述流量插件认证成功之后,还包括:确定模块,用于确定所述流量插件认证使用的所述令牌是否在时间上过期;第二发送模块,在所述令牌已经过期的情况下,将新的令牌发送给所述流量插件,其中,所述流量插件在所述令牌过期之后,使用接收到的所述新的令牌再次进行认证。

通过上述可选实施方式解决了现有技术中可以冒充流量插件向审计服务发送流量会给审计服务带来风险的问题,从而减少了审计风险,提高了审计服务的安全性。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 一种数据库的审计日志处理方法及相关装置
  • 一种基于JAVA的实例对象处理方法和装置
  • 一种基于缓存中间件的规范化处理方法及装置
  • 一种适用于白名单策略的物联网流量审计方法及装置
  • 基于区块链的审计日志处理方法、装置和日志审计系统
技术分类

06120116076190