辅助确定垂直越权、确定垂直的方法、装置及电子设备与流程

文档序号:18106473发布日期:2019-07-06 11:41阅读:345来源:国知局
辅助确定垂直越权、确定垂直的方法、装置及电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种辅助确定垂直越权、确定垂直越权的方法、装置及电子设备。



背景技术:

随着应用数量的日益增多,应用的安全问题也日益严峻,针对应用的各种攻击手段层出不穷,例如,针对应用的业务逻辑漏洞的攻击呈上升趋势。应用的业务逻辑漏洞,是因业务开发人员对业务逻辑的处理不够严谨,导致的应用在业务逻辑处理上存在的缺陷。越权是常见的业务逻辑漏洞类型之一,越权又可以细分为垂直越权和平行越权。在一个应用中,通常会为不同的用户分配不同的权限,如果低权限用户能够使用仅对高权限用户开放的功能,这种使用行为即被称为垂直越权,例如普通用户能够使用管理员用户的权限的行为就是一种垂直越权行为。

垂直越权漏洞的存在,可能会导致用户敏感信息被泄露、用户信息被恶意修改或删除等危害,因此有必要对应用的垂直越权访问进行检测,以及时发现垂直越权,防止应用受到针对垂直越权漏洞的攻击。目前,主要依靠人工对应用的垂直越权访问进行检测,但是人工检测方式虽然准确率较高但检测效率很低。



技术实现要素:

本说明书实施例提供了一种辅助确定垂直越权、确定垂直越权的方法、装置及电子设备,以提高垂直越权访问的检测效率。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,提出了一种辅助确定垂直越权的方法,所述方法包括:

接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

第二方面,提出了一种确定垂直越权的方法,所述方法包括:

接收访问目标应用的待测访问请求;

获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

第三方面,提出了一种辅助确定垂直越权的装置,所述装置包括:

第一接收模块,用于接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

第一获取模块,用于获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

第一生成模块,用于基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

第四方面,提出了一种确定垂直越权的装置,所述装置包括:

第三接收模块,用于接收访问目标应用的待测访问请求;

第三获取模块,用于获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

第二确定模块,用于基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

第五方面,提出了一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

第七方面,提出了一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

接收访问目标应用的待测访问请求;

获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

第八方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

接收访问目标应用的待测访问请求;

获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于可以在对目标应用的关键函数进行aop处理之后,基于目标类别的用户采用合法业务逻辑调用目标应用的关键函数的合法调用序列,生成针对目标类别的用户的特征库,该特征库可以用于自动辅助确定针对目标应用的垂直越权访问,因此,可以提高目标应用的垂直越权检测效率。

附图说明

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

图1是本说明书实施例提供的辅助确定垂直越权的方法的流程示意图之一。

图2是本说明书实施例提供的辅助确定垂直越权的方法的流程示意图之二。

图3是本说明书实施例提供的确定垂直越权的方法的流程示意图之一。

图4是本说明书实施例提供的确定垂直越权的方法的流程示意图之二。

图5是本说明书实施例提供的一种电子设备的结构示意图之一。

图6是本说明书实施例提供的一种电子设备的结构示意图之二。

图7是本说明书实施例提供的辅助确定垂直越权的装置的结构示意图之一。

图8是本说明书实施例提供的辅助确定垂直越权的装置的结构示意图之二。

图9是本说明书实施例提供的确定垂直越权的装置的结构示意图之一。

图10是本说明书实施例提供的确定垂直越权的装置的结构示意图之二。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了提高应用的垂直越权检测效率,本说明书实施例提供一种辅助确定垂直越权的方法及装置,以及一种确定垂直越权的方法及装置,这些方法和装置可以应用于服务端的应用中。其中,一种确定垂直越权的方法及装置可以被注入到服务端的应用程序中,与服务端的应用程序融为一体,以对应用程序进行实时的保护,这种将方法和装置注入到服务端的应用程序中对应用程序进行保护的手段,属于应用程序自我保护(runtimeapplicationself-protection,rasp)手段。rasp是一种在应用程序运行时检测攻击并进行自我保护的技术,它将自身注入到应用程序中,与应用程序融为一体,对应用程序进行实时检测,使应用程序具有自我保护能力。

下面结合附图1至图2,对本说明书实施例提供的一种辅助确定垂直越权的方法进行详细的说明。

如图1所示,本说明书实施例提供的一种辅助确定垂直越权的方法,该方法可以应用于特征库的建立阶段,该方法可以包括如下步骤:

步骤102、接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用。

目标应用,可以是需要进行越权检测的任何应用程序,例如web应用,以及其他客户端-服务端(client-server,cs)应用。

合法访问请求,是指不存在垂直越权缺陷,而是以预设合法业务逻辑(或者说正常的业务逻辑)访问目标应用的访问请求。预设合法业务逻辑可以是预先根据发起访问请求的用户的类别确定的,对于不同类别的用户,其对应的预设合法业务逻辑可能是不同的,且一种类别的用户可能对应存在多种预设合法业务逻辑。其中,用户的类别通常是以用户所拥有的访问权限确定的。

例如在一个论坛类的web应用中,可以根据访问权限的高低,将用户分为普通用户和管理员两种类别,其中,对于普通用户而言,进行帖子编辑以及发布等操作的业务逻辑可以认为是合法业务逻辑,进行帖子删除操作的业务逻辑可以认为是非法业务逻辑,相应的,普通用户发起的一个发布帖子的访问请求,可以认为是合法访问请求,普通用户发起的一个删除帖子的访问请求,可以认为是非法访问请求;而对于管理员而言,帖子的编辑、发布和删除等操作均可以为是合法业务逻辑,相应的,管理员发起的一个删除帖子的访问请求,可以认为是合法访问请求。

步骤104、获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列。

面向切面编程(aspectorientedprogramming,aop),是一种程序编程思想,它可以通过底层函数挂钩(hook)、运行期动态代理等方式对应用的关键函数进行处理,以在不修改应用的源代码的情况下,为应用动态添加功能,隔离应用的业务逻辑的各个部分,降低业务逻辑各部分之间的耦合度。在本说明书实施例中,当对目标应用的关键函数进行aop处理之后,可以减小所述目标应用的关键函数之间的耦合度,这样方便后续得到访问请求调用目标应用的关键函数的调用序列。

其中,目标应用程序的关键函数可以包括但不限于api接口和逻辑处理函数等关键函数中的至少一种。关键函数的确定,取决于目标应用本身,不同的目标应用,对应确定出的关键函数可能不同。

举例来说,假如合法访问请求在访问目标应用的过程中,按照合法业务逻辑先后调用了目标应用的如下关键函数:func_a、func_b、func_c、func_d和func_e,那么对应的合法调用序列为:func_a→func_b→func_c→func_d→func_e。

步骤106、基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

作为一个例子,所述基于所述合法调用序列生成目标类别的用户的特征库,包括:将所述合法调用序列作为特征进行保存,得到所述目标类别的用户的特征库。以上文所举的例子为例,可以将“func_a→func_b→func_c→func_d→func_e”这样一条合法调用序列作为目标类别的用户的一个特征进行保存。

可以理解,通过穷举的方式列举出某一类别的用户的所有合法业务逻辑,并针对每一合法业务逻辑,通过该类别的用户发起访问目标应用的合法访问请求,获得该类别用户对应的所有可能的合法调用序列,将这些合法调用序列作为特征进行保存,可以得到该类别的用户的特征库,以用于辅助确定针对目标应用的访问请求是否存在垂直越权,该特征库中可能包含多条合法调用序列,其中一条合法调用序列即为一个特征。

还可以理解,通过变换目标类别,我们可以得到目标应用的不同类别的用户对应的特征库,例如,假如目标应用对应存在n种类别的用户,那么我们可以通过本说明书实施例得到目标应用的n个特征库。

不难理解,当某一类别的用户发起的访问目标应用的某一访问请求调用目标应用的关键函数的调用序列,与该类别的用户的特征库中的所有合法调用序列均不匹配时,说明该访问请求不是一个合法的访问请求,而是一个存在垂直越权缺陷的非法访问请求。

本说明书实施例提供的一种辅助确定垂直越权的方法,由于可以在对目标应用的关键函数进行aop处理之后,基于目标类别的用户采用合法业务逻辑调用目标应用的关键函数的合法调用序列,生成针对目标类别的用户的特征库,该特征库可以用于自动辅助确定针对目标应用的垂直越权访问,因此,可以提高目标应用的垂直越权检测效率。

可选地,在图1所示的实施例的基础上,如图2所示,在另一实施例中,本说明书实施例提供的一种辅助确定垂直越权的方法,可以应用于服务端的目标应用中,该方法还可以包括如下步骤:

步骤108、接收所述目标类别的用户访问所述目标应用的待测访问请求。

待测访问请求,可以是目标应用上线之后,目标类别的用户发起的访问目标应用的任意访问请求。

步骤110、获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数。

实时调用序列,可以是跟随待测访问请求的调用实时生成的调用序列。具体的,实时调用序列,是待测访问请求每调用一次目标应用的关键函数,就基于该待测访问请求在本次访问中已调用的和正在调用的目标应用的关键函数生成的一个调用序列。

例如,假如待测访问请求当前正在调用的目标应用的关键函数为“func_a”,且在调用func_a之前,待测访问请求没有调用目标应用的其他关键函数,那么待测访问请求调用所述目标应用的关键函数的实时调用序列为:func_a;假如待测访问请求当前正在调用的目标应用的关键函数为“func_d”,且在调用func_d之前,待测访问请求还依次调用了目标应用的关键函数:func_a、func_b和func_c,那么待测访问请求调用所述目标应用的关键函数的实时调用序列为:func_a→func_b→func_c→func_d,以此类推。

步骤112、基于所述实时调用序列与所述特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果。

作为一个例子,所述基于所述实时调用序列与所述特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,包括:在所述实时调用序列与所述特征库中的特征均不匹配的情况下,也即在所述实时调用序列与特征库中任一条合法调用序列都不匹配的情况下,确定所述待测访问请求为垂直越权访问请求;否则,返回执行(或者说重新执行)步骤110至步骤112,直到所述待测访问请求对所述目标应用的关键函数的调用结束。

实时调用序列与合法调用序列是否匹配,是按照调用顺序,将实时调用序列的每一关键函数与合法调用序列的关键函数逐一进行对比确定的,如果有一个关键函数不匹配,则认为该实时调用序列与该合法调用序列不匹配。

举例来说,假如目标类别的用户的特征库中存储的一条合法调用序列为“func_a→func_b→func_c→func_d→func_e”,那么当所述实时调用序列为“func_a→func_b→func_d”时,通过比较不难发现,由于实时调用序列中的第三个关键函数“func_d”与合法调用序列中的第三个关键函数“func_c”不匹配,因此可以确定该实时调用序列与该合法调用序列不匹配,以此类推,当该实时调用序列与目标类别的特征库中的所有合法调用序列均不匹配时,即可确定待测访问请求是一个垂直越权访问请求,需要采取措施进行阻断。

也即,可以将待测访问请求对应的实时调用序列,与目标类别的用户的特征库中的每一合法调用序列分别进行匹配,如果遍历特征库中的合法调用序列之后,没有发现一条与所述实时调用序列匹配的合法调用序列,即可认为所述实时调用序列与所述特征库中的特征均不匹配,进而可以确定待测访问请求是一个垂直越权访问请求,需要采取措施进行阻断。

本说明书实施例提供的一种辅助确定垂直越权的方法,由于可以进一步地接收目标类别的用户发起的待测访问请求,获取待测访问请求调用目标应用的关键函数的实时调用序列,并基于所述实时调用序列与目标类别的用户的特征库中的特征的匹配关系,自动实时地确定出待测访问请求对应的垂直越权检测结果,因此可以提高目标应用的垂直越权检测效率。

此外,本说明书实施例提供的一种辅助确定垂直越权的方法,是在目标应用的服务端实现的,用户通过客户端发起的访问请求都是指向服务端的,而不依赖于客户端本身,因此可以实现对目标应用的实时监测。

可选地,在图2所示的实施例的基础上,本说明书实施例提供的一种辅助确定垂直越权的方法,还可以包括:在确定所述待测访问请求为垂直越权访问请求的情况下,阻断所述待测访问请求对所述目标应用的代码的继续调用。

作为一个例子,可以通过aop对所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。

更为具体的,可以通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。当然,也可以通过aop对目标应用的其他关键函数进行阻断控制,以实现阻断所述待测访问请求对所述目标应用的代码的继续调用的目的。

通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,可以取得类似在待测访问请求当前正在调用的关键函数中插入阻断代码的效果,事实上目标应用的关键函数并没有发生变化。例如,假如待测访问请求当前正在调用的所述目标应用的关键函数为:

那么,通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,可以取得如下的效果:

其中,阻断代码例如可以是“exit()”这样的代码。

可以理解,除了本文所列举的通过aop对所述目标应用的关键函数进行代码阻断控制,实现对目标应用的关键函数的继续调用的方式外,本领域技术人员还可以采用其他方式进行阻断,本说明书实施例对此不做限制。

本说明书实施例提供的一种辅助确定垂直越权的方法,由于可以进一步地在确定所述待测访问请求为垂直越权访问请求之后,阻断所述待测访问请求对所述目标应用的代码的继续调用,因此,可以有效地避免非法的待测访问请求利用目标应用的垂直越权漏洞实施超越权限的访问,进而防止目标应用受到针对垂直越权漏洞的攻击,达到实时保护目标应用的目的。

以上是对本说明书提供的一种辅助确定垂直越权的方法的说明,下面对本说明书提供的一种确定垂直越权的方法进行说明。

如图3所示,本说明书实施例提供的一种确定垂直越权的方法,可以应用于服务端的目标应用中,该方法可以包括如下步骤:

步骤302、接收访问目标应用的待测访问请求。

待测访问请求,可以是目标应用上线之后,由用户发起的访问所述目标应用的任意访问请求。

步骤304、获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列。

关于实时调用序列的说明请参照上文中对图2所示的实施例的介绍,此处不做重复描述。

其中,目标应用程序的关键函数可以包括但不限于api接口和逻辑处理函数等关键函数中的至少一种。关键函数的确定,取决于目标应用本身,不同的目标应用,对应确定出的关键函数可能不同。

步骤306、基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

作为一个例子,如图4所示,步骤306可以包括:

子步骤3061、判断所述实时调用序列与预设特征库中的任一特征是否匹配;如果是,返回执行步骤304;否则,执行子步骤3062。

子步骤3062、确定所述待测访问请求为垂直越权访问请求。

本说明书实施例提供的一种确定垂直越权的方法,由于可以接收待测访问请求,获取待测访问请求调用目标应用的关键函数的实时调用序列,并基于所述实时调用序列与预设特征库中的特征的匹配关系,自动实时地确定出待测访问请求对应的垂直越权检测结果,因此可以提高目标应用的垂直越权检测效率。

此外,本说明书实施例提供的一种确定垂直越权的方法,是在目标应用的服务端的实现的,用户通过客户端发起的访问请求都是指向服务端的,而不依赖于客户端本身,因此可以实现对目标应用的实时监测。

可选地,如图4所示,在另一实施例中,在确定所述待测访问请求为垂直越权访问请求之后,本说明书实施例提供的一种垂直越权确定方法,还可以包括:

步骤308、阻断所述待测访问请求对所述目标应用的代码的继续调用。

作为一个例子,步骤308可以通过aop对所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。

更为具体的,步骤308可以通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,可以取得类似在待测访问请求当前正在调用的关键函数中插入阻断代码的效果,事实上目标应用的关键函数并没有发生变化。

可以理解,除了本文所列举的通过aop对所述目标应用的关键函数进行代码阻断控制,实现对目标应用的关键函数的继续调用的方式外,步骤308还可以采用其他方式进行阻断,本说明书实施例对此不做限制。

本说明书实施例提供的一种确定垂直越权的方法,由于可以进一步地在确定所述待测访问请求为垂直越权访问请求之后,阻断所述待测访问请求对所述目标应用的代码的继续调用,因此,可以有效地避免非法的待测访问请求利用目标应用的垂直越权漏洞实施超越权限的访问,进而防止目标应用受到针对垂直越权漏洞的攻击,达到实时保护目标应用的目的。

以上是对本说明书实施例提供的一种确定垂直越权的方法的说明,下面对本说明书实施例提供的电子设备进行说明。

图5是本说明书的一个实施例提供的电子设备的结构示意图之一。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成辅助确定垂直越权的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

上述如本说明书图1或图2所示实施例揭示的辅助确定垂直越权的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1或图2的辅助确定垂直越权的方法,本说明书在此不再赘述。

当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

图6是本说明书的一个实施例提供的电子设备的结构示意图之二。如图6所示,与图5所示的实施例的不同之处在于,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成确定垂直越权的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

接收访问目标应用的待测访问请求;

获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

上述如本说明书图3或图4所示实施例揭示的确定垂直越权的方法可以应用于处理器中,或者由处理器实现。

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1或图2所示实施例的方法,并具体用于执行以下操作:

接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用;

获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列;

基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3或图4所示实施例的方法,并具体用于执行以下操作:

接收访问目标应用的待测访问请求;

获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列;

基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

下面对本说明书提供的一种辅助确定垂直越权的装置进行说明。

图7是本说明书提供的辅助确定垂直越权的装置700的结构示意图。请参考图7,在一种软件实施方式中,辅助确定垂直越权的装置700可包括:第一接收模块701、第一获取模块702和第一生成模块703。

第一接收模块701,用于接收访问目标应用的合法访问请求,所述合法访问请求用于采用预设合法业务逻辑访问所述目标应用。

目标应用,可以是需要进行越权检测的任何应用程序,例如web应用,以及其他客户端-服务端(client-server,cs)应用。

合法访问请求,是指不存在垂直越权缺陷,而是以预设合法业务逻辑(或者说正常的业务逻辑)访问目标应用的访问请求。预设合法业务逻辑可以是预先根据发起访问请求的用户的类别确定的,对于不同类别的用户,其对应的预设合法业务逻辑可能是不同的,且一种类别的用户可能对应存在多种预设合法业务逻辑。其中,用户的类别通常是以用户所拥有的访问权限确定的。

第一获取模块702,用于获取所述合法访问请求调用所述目标应用的关键函数的合法调用序列,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述合法调用序列。

在本说明书实施例中,当对目标应用的关键函数进行aop处理之后,可以减小所述目标应用的关键函数之间的耦合度,这样方便后续得到访问请求调用目标应用的关键函数的调用序列。

其中,目标应用程序的关键函数可以包括但不限于api接口和逻辑处理函数等关键函数中的至少一种。关键函数的确定,取决于目标应用本身,不同的目标应用,对应确定出的关键函数可能不同。

第一生成模块703,用于基于所述合法调用序列生成目标类别的用户的特征库,所述特征库用于辅助确定针对所述目标应用的垂直越权访问,所述目标类别为发起所述合法访问请求的用户的类别。

作为一个例子,所述基于所述合法调用序列生成目标类别的用户的特征库,包括:将所述合法调用序列作为特征进行保存,得到所述目标类别的用户的特征库。

可以理解,通过穷举的方式列举出某一类别的用户的所有合法业务逻辑,并针对每一合法业务逻辑,通过该类别的用户发起访问目标应用的合法访问请求,可以获得该类别用户对应的所有可能的合法调用序列,将这些合法调用序列作为特征进行保存,可以得到该类别的用户的一个完整的特征库,以用于辅助确定针对目标应用的访问请求是否存在垂直越权,该特征库中可能包含多条合法调用序列,其中一条合法调用序列即为一个特征。

还可以理解,通过变换目标类别,我们可以得到目标应用的不同类别的用户对应的特征库,例如,假如目标应用对应存在n种类别的用户,那么我们可以通过本说明书实施例得到n个特征库。

不难理解,当某一类别的用户发起的访问目标应用的某一访问请求调用目标应用的关键函数的调用序列,与该类别的用户的特征库中的所有合法调用序列均不匹配时,说明该访问请求不是一个合法的访问请求,而是一个存在垂直越权缺陷的非法访问请求。

本说明书实施例提供的辅助确定垂直越权的装置700,由于可以在对目标应用的关键函数进行aop处理之后,基于目标类别的用户采用合法业务逻辑调用目标应用的关键函数的合法调用序列,生成针对目标类别的用户的特征库,该特征库可以用于自动辅助确定针对目标应用的垂直越权访问,因此,可以提高目标应用的垂直越权检测效率。

可选地,在图7所示的实施例的基础上,如图8所示,在另一实施例中,本说明书实施例提供的辅助确定垂直越权的装置700,还可以包括:第二接收模块704、第二获取模块705和第一确定模块706。

第二接收模块704,用于接收所述目标类别的用户访问所述目标应用的待测访问请求。

待测访问请求,可以是目标应用上线之后,目标类别的用户发起的访问目标应用的任意访问请求。

第二获取模块705,用于获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数。

实时调用序列,可以是跟随待测访问请求的调用实时生成的调用序列。具体的,实时调用序列,是待测访问请求每调用一次目标应用的关键函数,就基于该待测访问请求在本次访问中已调用的和正在调用的目标应用的关键函数生成的一个调用序列。

第一确定模块706,用于基于所述实时调用序列与所述特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果。

作为一个例子,第一确定模块706可用于:在所述实时调用序列与所述特征库中的特征均不匹配的情况下,也即在所述实时调用序列与特征库中任一条合法调用序列都不匹配的情况下,确定所述待测访问请求为垂直越权访问请求;否则,重新触发第二获取模块705和第一确定模块706,直到所述待测访问请求对所述目标应用的关键函数的调用结束。

实时调用序列与合法调用序列是否匹配,是按照调用顺序,将实时调用序列的每一关键函数与合法调用序列的关键函数逐一进行对比确定的,如果有一个关键函数不匹配,则认为该实时调用序列与该合法调用序列不匹配。

进一步地,第一确定模块706可以将实时调用序列与特征库中的每一合法调用序列分别进行匹配,如果遍历特征库中的合法调用序列之后,没有发现一条与所述实时调用序列匹配的合法调用序列,即可认为所述实时调用序列与所述特征库中的特征均不匹配。

本说明书实施例提供的辅助确定垂直越权的装置700,由于可以进一步地接收目标类别的用户发起的待测访问请求,获取待测访问请求调用目标应用的关键函数的实时调用序列,并基于所述实时调用序列与目标类别的用户的特征库中的特征的匹配关系,自动实时地确定出待测访问请求对应的垂直越权检测结果,因此可以提高目标应用的垂直越权检测效率。

此外,本说明书实施例提供的辅助确定垂直越权的装置700,是在目标应用的服务端实现的,用户通过客户端发起的访问请求都是指向服务端的,而不依赖于客户端本身,因此可以实现对目标应用的实时监测。

可选地,在图8所示的实施例的基础上,本说明书实施例提供的辅助确定垂直越权的装置700,还可以包括:第一阻断模块,用于在确定所述待测访问请求为垂直越权访问请求的情况下,阻断所述待测访问请求对所述目标应用的代码的继续调用。

作为一个例子,第一阻断模块可以通过aop对所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。

更为具体的,第一阻断模块可以通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,可以取得类似在待测访问请求当前正在调用的关键函数中插入阻断代码的效果,事实上目标应用的关键函数并没有发生变化。

可以理解,除了本文所列举的通过aop对所述目标应用的关键函数进行代码阻断控制,实现对目标应用的关键函数的继续调用的方式外,第一阻断模块还可以采用其他方式进行阻断,本说明书实施例对此不做限制。

本说明书实施例提供的辅助确定垂直越权的装置700,由于可以进一步地在确定所述待测访问请求为垂直越权访问请求之后,阻断所述待测访问请求对所述目标应用的代码的继续调用,因此,可以有效地避免非法的待测访问请求利用目标应用的垂直越权漏洞实施超越权限的访问,进而防止目标应用受到针对垂直越权漏洞的攻击,达到实时保护目标应用的目的。

需要说明的是,辅助确定垂直越权的装置700能够实现图1或图2的方法实施例的方法,具体可参考图1或图2所示实施例的辅助确定垂直越权的方法,此处不再赘述。

下面对本说明书提供的一种确定垂直越权的装置进行说明。

图9是本说明书提供的确定垂直越权的装置900的结构示意图。请参考图9,在一种软件实施方式中,确定垂直越权的装置900可包括:第三接收模块901、第三获取模块902和第二确定模块903。

第三接收模块901,用于接收访问目标应用的待测访问请求。

待测访问请求,可以是目标应用上线之后,由用户发起的访问所述目标应用的任意访问请求。

第三获取模块902,用于获取所述待测访问请求调用所述目标应用的关键函数的实时调用序列,所述实时调用序列包括所述待测访问请求已调用和当前正在调用的所述目标应用的关键函数,所述目标应用的关键函数经过面向切面编程aop处理,以便于获取所述实时调用序列。

其中,目标应用程序的关键函数可以包括但不限于api接口和逻辑处理函数等关键函数中的至少一种。关键函数的确定,取决于目标应用本身,不同的目标应用,对应确定出的关键函数可能不同。

第二确定模块903,用于基于所述实时调用序列与预设特征库中的特征的匹配关系,确定所述待测访问请求对应的垂直越权检测结果,所述预设特征库是基于预设类别的用户采用合法业务逻辑调用所述目标应用的关键函数的调用序列生成的,所述预设类别与发起所述待测访问请求的用户的类别相同。

作为一个例子,如图10所示,第二确定模块903可以包括:判断子模块9031和确定子模块9032。

判断子模块9031,用于判断所述实时调用序列与预设特征库中的任一特征是否匹配;如果是,重新触发第三获取模块902;否则,触发确定子模块9032。

确定子模块9032,用于确定所述待测访问请求为垂直越权访问请求。

本说明书实施例提供的确定垂直越权的装置900,由于可以接收待测访问请求,获取待测访问请求调用目标应用的关键函数的实时调用序列,并基于所述实时调用序列与预设特征库中的特征的匹配关系,自动实时地确定出待测访问请求对应的垂直越权检测结果,因此可以提高目标应用的垂直越权检测效率。

此外,本说明书实施例提供的确定垂直越权的装置900,是在目标应用的服务端的实现的,用户通过客户端发起的访问请求都是指向服务端的,而不依赖于客户端本身,因此可以实现对目标应用的实时监测。

可选地,如图10所示,在另一实施例中,本说明书实施例提供的垂直越权确定装置900,还可以包括:第二阻断模块904。

第二阻断模块904,用于在确定所述待测访问请求为垂直越权访问请求之后,阻断所述待测访问请求对所述目标应用的代码的继续调用。

作为一个例子,第二阻断模块904可以通过aop对所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。

更为具体的,第二阻断模块904可以通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,以阻断所述待测访问请求对所述目标应用的代码的继续调用。通过aop对所述待测访问请求当前正在调用的所述目标应用的关键函数进行代码阻断控制,可以取得类似在待测访问请求当前正在调用的关键函数中插入阻断代码的效果,事实上目标应用的关键函数并没有发生变化。

可以理解,除了本文所列举的通过aop对所述目标应用的关键函数进行代码阻断控制,实现对目标应用的关键函数的继续调用的方式外,第二阻断模块904还可以采用其他方式进行阻断,本说明书实施例对此不做限制。

本说明书实施例提供的确定垂直越权的装置,由于可以进一步地在确定所述待测访问请求为垂直越权访问请求之后,阻断所述待测访问请求对所述目标应用的代码的继续调用,因此,可以有效地避免非法的待测访问请求利用目标应用的垂直越权漏洞实施超越权限的访问,进而防止目标应用受到针对垂直越权漏洞的攻击,达到实时保护目标应用的目的。

需要说明的是,确定垂直越权的装置900能够实现图3或图4的方法实施例的方法,具体可参考图3或图4所示实施例的确定垂直越权的方法,此处不再赘述。

总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1