一种应用安全的评估方法和装置与流程

文档序号:20702557发布日期:2020-05-12 15:56阅读:117来源:国知局
一种应用安全的评估方法和装置与流程

本文件涉及网络安全领域,尤其涉及一种应用安全的评估方法和装置。



背景技术:

目前,随着应用的设计和开发越来越复杂,对应用的安全性要求也越来越高,其中,应用的安全性也可以理解为应用架构的安全性,安全的应用架构,不仅可以保证应用的后续安全稳定的发展,而且可以对应用中的漏洞和隐私等提供隔离和安全保障。

通常,为了确定应用的架构是否安全,可以对应用进行安全评估,在得到评估结果后,可以根据评估结果确定应用的架构是否安全。然而目前还缺少一种有效地方法可以实现上述目的。



技术实现要素:

本说明书实施例提供一种应用安全的评估方法和装置,用于解决目前无法对应用的安全进行有效评估的问题。

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

第一方面,提出一种应用安全的评估方法,包括:

获取目标应用内部的调用链路;

基于所述调用链路对所述目标应用发起模拟攻击;

根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

根据所述目标安全值,对所述目标应用的安全进行评估。

第二方面,提出一种应用安全的评估装置,包括:

获取单元,获取目标应用内部的调用链路;

模拟单元,基于所述调用链路对所述目标应用发起模拟攻击;

确定单元,根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

评估单元,根据所述目标安全值,对所述目标应用的安全进行评估。

第三方面,提出一种电子设备,该电子设备包括:

处理器;以及

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

获取目标应用内部的调用链路;

基于所述调用链路对所述目标应用发起模拟攻击;

根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

根据所述目标安全值,对所述目标应用的安全进行评估。

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

获取目标应用内部的调用链路;

基于所述调用链路对所述目标应用发起模拟攻击;

根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

根据所述目标安全值,对所述目标应用的安全进行评估。

本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下技术效果:

本说明书一个或多个实施例提供的技术方案,在对目标应用的安全进行评估时,可以获取目标应用内部的调用链路,基于该调用链路对目标应用发起模拟攻击,根据模拟攻击的结果,确定目标应用在模拟攻击下的目标安全值,根据该目标安全值实现对目标应用的安全评估。这样,由于在对目标应用的安全进行评估时,可以通过目标应用内部的调用链路对目标应用进行模拟攻击,并基于模拟攻击结果对目标应用的安全进行量化,因此,可以根据量化结果对目标应用的安全进行有效评估。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本说明书的一个实施例应用安全的评估方法的流程示意图;

图2是本说明书的一个实施例应用安全的评估方法的流程示意图;

图3是本说明书的一个实施例电子设备的结构示意图;

图4是本说明书的一个实施例应用安全的评估装置的结构示意图。

具体实施方式

目前,随着对应用安全性的要求越来越高,往往需要对应用的安全进行评估。本说明书的一个或多个实施例在对应用进行安全评估时,采用了量化评估的方式,即根据目标安全值对应用的安全进行评估。

具体地,在对目标应用的安全进行评估时,可以获取目标应用内部的调用链路,基于该调用链路对目标应用发起模拟攻击,根据模拟攻击的攻击结果,可以确定在模拟攻击在目标应用对应的目标安全值,根据该目标安全值,对目标应用的安全进行评估。

这样,由于在对目标应用的安全进行评估时,可以通过目标应用内部的调用链路对目标应用进行模拟攻击,并基于模拟攻击结果对目标应用的安全进行量化,因此,可以根据量化结果对目标应用的安全进行有效评估。

为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图1是本说明书的一个实施例应用安全的评估方法的流程示意图。所述方法如下所述。

s102:获取目标应用内部的调用链路。

在s102中,在对目标应用进行安全评估时,可以获取目标应用内部的调用链路。其中,目标应用可以是能够安装在移动终端中的应用,也可以是能够安装在个人计算机上的应用,还可以是物联网中的应用等,调用链路可以理解为包含调用关系的有向图。

在一种实现方式中,获取目标应用内部的调用链路,具体可以包括:

首先,获取目标应用的代码。这里的代码可以是二进制代码。

其次,对目标应用的代码进行反编译,确定目标应用内部的多个类和多个方法之间的调用关系。

最后,根据调用关系,生成调用链路。

在其他实现方式中,目标应用内部的调用链路还可以通过其他方法实现,例如,可以通过对目标应用的代码进行分析,根据分析结果生成调用链路等,这里不再一一举例说明。

s104:基于所述调用链路对所述目标应用发起模拟攻击。

本实施例中,调用链路中可以包括多个节点,在基于调用链路对目标应用发起模拟攻击时,可以基于调用链路中的节点对目标应用发起模拟攻击。具体实现方式可以如下:

首先,在得到目标应用内部的调用链路后,可以确定调用链路中的多个目标节点,该多个目标节点可以是应用自身需要重要保护的节点,例如,敏感隐私节点、重点数据节点、敏感权限节点等。目标节点的个数需要小于调用链路中包括的节点的总个数,具体可以根据实际情况(例如用于进行应用安全评估的系统的性能)确定,这里不做具体限定。

其次,可以从调用链路中选取多个攻击节点,该多个攻击节点可以是应用的一个或多个模块中的节点,可以用于后续向目标应用发起模拟攻击。其中,多个攻击节点可以是随机选取的节点,且,多个攻击节点中不包含上述目标节点。也就是说,可以从调用链路中除上述多个目标节点之外的其余节点中选取多个节点作为攻击节点。

最后,基于多个攻击节点对目标应用发起模拟攻击。

本实施例中,在基于多个攻击节点对目标应用发起模拟攻击时,可以基于其中一个攻击节点发起一次模拟攻击,基于多个攻击节点可以发起多次模拟攻击。

以其中一个攻击节点为例,具体可以包括:

首先,可以模拟该攻击节点为突破节点,也就是说,可以模拟该攻击节点被攻击者突破,变成攻击者可以控制的节点;然后,基于该攻击节点对目标应用发起模拟攻击。其中,基于该攻击节点对目标应用发起模拟攻击的过程,是为了寻找攻击节点到上述多个目标节点之间是否存在可通过链路。

例如,假设目标节点包括a、b、c和d,在基于攻击节点e对目标应用发起模拟攻击时,可以根据目标应用的调用链路确定:攻击节点e与目标节点a之间是否存在可通过链路,攻击节点e与目标节点b之间是否存在可通过链路,攻击节点e与目标节点c之间是否存在可通过链路,攻击节点e与目标节点d之间是否存在可通过链路。

本实施例中,在基于攻击节点对目标应用进行模拟攻击后,可以得到攻击结果,该攻击结果可以包括攻击节点到多个目标节点的可通过链路的个数。

s106:根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值。

在s106中,可以根据模拟攻击的攻击结果,对目标应用在模拟攻击下的安全性进行量化打分,得到目标安全值。

具体地,在基于上述多个攻击节点对目标应用发起多次模拟攻击后,在根据模拟攻击的结果,确定目标安全值时,可以包括:

首先,针对其中一个攻击节点,可以根据基于该攻击节点发起的模拟攻击的攻击结果,确定该攻击节点到多个目标节点的可通过链路的个数。

例如,假设目标节点的个数为100个,攻击节点与其中50个目标节点之间存在可通过链路,那么,可通过链路的个数是50个。

其次,根据可通过链路的个数,确定该攻击节点对应的安全值。

一个攻击节点对应的安全值可以表征目标应用在该攻击节点发起的模拟攻击下的安全性。

在确定攻击节点对应的安全值时,优选地,可以确定多个目标节点的总个数,在得到该总个数后,可以将该总个数的平方与该攻击节点对应的可通过链路的个数的比值,确定为攻击节点对应的安全值。

例如,假设目标节点为100个,攻击节点到这100个目标节点的可通过链路的个数为50,则,攻击节点对应的安全值为(100*100)/50=200。

基于上述确定安全值的方法可知,若攻击节点到目标节点的可通过链路的个数越少,则攻击节点对应的安全值越大,目标应用在该攻击节点发起的模拟攻击下的安全性越高;反之,若攻击节点到目标节点的可通过链路的个数越多,则攻击节点对应的安全值越小,目标应用在该攻击节点发起的模拟攻击下的安全性越低。

可选地,在确定攻击节点对应的安全值时,也可以通过其他方法实现。例如,将目标节点的个数与可通过链路的个数的比值确定为攻击节点对应的安全值,等,这里不再一一举例说明。

本实施例中,在确定一个攻击节点对应的安全值后,可以基于相同的方法确定其他攻击节点对应的安全值,最终可以得到多个攻击节点对应的多个安全值。

最后,根据多个攻击节点对应的多个安全值,确定目标安全值。

目标安全值可以表征目标应用在多个攻击节点发起的多次模拟攻击的情况下的安全性。

在根据多个攻击节点对应的多个安全值,确定目标安全值时,至少可以采用以下三种方法实现:

第一种:将多个安全值的平均值作为目标安全值;

第二种:将多个安全值的加权平均值确定为目标安全值;

第三种:将多个安全值的方均根值确定为目标安全值。

在实际应用中,可以选择上述任一种方法确定目标安全值。

基于上述确定目标安全值的方法可知,目标安全值越大,目标应用在多次模拟攻击下的安全性越高,目标安全值越小,目标应用在多次模拟攻击下的安全性越低。

s108:根据所述目标安全值,对所述目标应用的安全进行评估。

由于目标安全值是对目标应用的安全进行量化打分后的值,因此,根据目标安全值,可以实现对目标应用安全的量化评估,从而可以更加有效地确定目标应用架构的安全性。

需要说明的是,在上述步骤中,在对目标应用发起模拟攻击时,是基于多个攻击节点对目标应用发起多次模拟攻击,并根据多次模拟攻击结果得到的目标安全值对目标应用进行安全评估,可选地,也可以基于一个攻击节点对目标应用发起模拟攻击,并根据一次模拟攻击结果得到的一个安全值对目标应用进行安全评估。在实际应用中,考虑到基于一个安全值对目标应用进行安全评估时的准确度可能比较低,因此,在对安全评估结果的准确率要求较高的情况下,可以基于多个攻击节点对目标应用发起模拟攻击,并根据目标安全值对目标应用进行安全评估,反之,在准确率要求较低的情况下,为了简化评估步骤,提高评估效率,可以基于一个攻击节点对目标应用发起模拟攻击,并根据一次模拟攻击得到的安全值对目标应用进行安全评估。

图2为本说明书的一个实施例应用安全的评估方法的流程示意图。图2所示的实施例与图1所示的实施例属于相同的发明构思,图2所示的实施例具体可以包括以下步骤。

s201:获取目标应用内部的调用链路。

其中,目标应用内部的调用链路可以通过对目标应用的代码进行反编译,根据反编译的结果生成,可选地,也可以通过对目标应用的代码进行分析,根据分析结果生成。

s202:确定调用链路中的多个目标节点。

多个目标节点可以是目标应用中的敏感隐私节点、重点数据节点、敏感权限节点等,多个目标节点的个数可以根据实际情况确定。

s203:从调用链路中选取除多个目标节点以外的一个攻击节点。

在选取攻击节点时,可以随机从目标应用的某个模块中选取一个节点作为攻击节点。

s204:模拟攻击节点为调用链路中的突破节点。

在模拟攻击节点为调用链路中的突破节点后,该攻击节点可以视为攻击者可以控制的节点,以便后续可以基于该攻击节点发起模拟攻击。

s205:基于攻击节点对目标应用发起模拟攻击,确定攻击节点到多个目标节点的可通过链路。

这里可以根据调用链路,确定攻击节点到多个目标节点是否存在可通过链路。

s206:根据模拟攻击的攻击结果,确定可通过链路的个数。

模拟攻击的攻击结果包括攻击节点到多个目标节点的可通过链路的个数。其中,假设目标节点的个数为m,攻击节点到其中n(n小于或等于m)个目标节点存在可通过链路,那么,可以确定可通过链路的个数为n。

s207:根据可通过链路的个数,确定目标应用在模拟攻击下的安全值。

这里可以将目标节点的个数的平方与可通过链路的个数的比值,确定为目标应用在模拟攻击下的安全值。

本实施例中,为了保证后续进行安全评估的结果具有较高的准确率,在得到一个攻击节点对应的安全值后,还可以重复执行上述s203至s207,即选取多个攻击节点,并基于多个攻击节点对目标应用进行多次模拟攻击,得到多个攻击节点对应的多个安全值。

s208:根据多个攻击节点对应的多个安全值,确定目标应用在多次模拟攻击下的目标安全值。

这里可以将多个安全值的平均值作为目标安全值,也可以将多个安全值的加权平均值确定为目标安全值,还可以将多个安全值的方均根值确定为目标安全值。

s209:根据目标安全值,对目标应用的安全进行评估。

目标安全值是对目标应用的安全进行量化打分后的值,根据目标安全值,可以实现对目标应用安全的量化评估。其中,目标安全值越大,目标应用的安全性越高,即目标应用的架构越安全。

可选地,在上述s207中,在得到一个攻击节点对应的安全值后,在评估结果的准确率要求较低的情况下,也可以根据该安全值,对目标应用的安全进行评估,其中,安全值越大,目标应用的安全性越高。

本说明书一个或多个实施例提供的技术方案,在对目标应用的安全进行评估时,可以获取目标应用内部的调用链路,基于该调用链路对目标应用发起模拟攻击,根据模拟攻击的结果,确定目标应用在模拟攻击下的目标安全值,根据该目标安全值实现对目标应用的安全评估。这样,由于在对目标应用的安全进行评估时,可以通过目标应用内部的调用链路对目标应用进行模拟攻击,并基于模拟攻击结果对目标应用的安全进行量化,因此,可以根据量化结果对目标应用的安全进行有效评估。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

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

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

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

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

获取目标应用内部的调用链路;

基于所述调用链路对所述目标应用发起模拟攻击;

根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

根据所述目标安全值,对所述目标应用的安全进行评估。

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

该电子设备还可执行图1和图2的方法,并实现应用安全的评估装置在图1和图2所示实施例中的功能,本说明书实施例在此不再赘述。

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

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

获取目标应用内部的调用链路;

基于所述调用链路对所述目标应用发起模拟攻击;

根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

根据所述目标安全值,对所述目标应用的安全进行评估。

图4是本说明书的一个实施例应用安全的评估装置40的结构示意图。请参考图4,在一种软件实施方式中,所述应用安全的评估装置40可包括:获取单元41、模拟单元42、确定单元43和评估单元44,其中:

获取单元41,获取目标应用内部的调用链路;

模拟单元42,基于所述调用链路对所述目标应用发起模拟攻击;

确定单元43,根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值;

评估单元44,根据所述目标安全值,对所述目标应用的安全进行评估。

可选地,所述模拟单元42,基于所述调用链路对所述目标应用发起模拟攻击,包括:

确定所述调用链路中的多个目标节点;

从所述调用链路中选取除所述多个目标节点之外的多个攻击节点;

基于所述多个攻击节点对所述目标应用发起模拟攻击。

可选地,所述模拟单元42,基于所述多个攻击节点对所述目标应用发起模拟攻击,包括:

针对其中一个攻击节点,执行以下操作:

模拟所述攻击节点为所述调用链路中的突破节点;

基于所述攻击节点对所述目标应用发起模拟攻击,确定所述攻击节点到所述多个目标节点的可通过链路。

可选地,所述确定单元43,根据所述模拟攻击的攻击结果,确定所述目标应用在所述模拟攻击下的目标安全值,包括:

针对其中一个攻击节点,根据所述模拟攻击的攻击结果,确定所述攻击节点到所述多个目标节点的所述可通过链路的个数;

根据所述可通过链路的个数,确定所述攻击节点对应的安全值;

根据所述多个攻击节点对应的多个安全值,确定所述目标安全值,其中,所述目标安全值越大,所述目标应用的安全性越高。

可选地,所述确定单元43,根据所述可通过链路的个数,确定所述攻击节点对应的安全值,包括:

确定所述多个目标节点的个数;

将所述多个目标节点的个数的平方与所述可通过链路的个数的比值,确定为所述攻击节点对应的安全值。

可选地,所述确定单元43,根据所述多个攻击节点对应的多个安全值,确定所述目标安全值,包括:

将所述多个安全值的平均值确定为所述目标安全值;或,

将所述多个安全值的加权平均值确定为所述目标安全值;或,

将所述多个安全值的方均根值确定为所述目标安全值。

可选地,所述获取单元41,获取目标应用内部的调用链路,包括:

获取所述目标应用的代码;

对所述代码进行反编译,确定所述目标应用内部的多个类和多个方法之间的调用关系;

根据所述调用关系,生成所述调用链路。

本说明书实施例提供的应用安全的评估装置40还可执行图1和图2的方法,并实现应用安全的评估装置在图1和图2所示实施例的功能,本说明书实施例在此不再赘述。

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

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

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

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

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

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