本发明涉及移动互联网安全技术领域,具体而言,涉及一种移动应用影响力评估方法和装置。
背景技术:
移动应用影响力的研究,对整个移动互联网的态势分析和预测具有重要意义。在android应用软件(以下简称app)中存在很多组件之间的调用和数据传递,也存在很多控件或实例的回调等,通过应用关联分析,如app组件调用、数据传递和回调分析等,可以计算出app之间的相互调用关系,进而为app间安全重要性评估提供服务。
现有的应用关联分析研究主要集中在利用渠道商中app描述信息进行数据挖掘。通过自然语言处理和数据挖掘等方法,发现官方商店中应用之间的潜在关联。但是其中更多考虑的是社交层面的信息传播,忽视了app内在的调用关系,无法分辨出app内在的关联。
技术实现要素:
针对上述现有技术中存在的问题,本发明提供了一种移动应用影响力评估方法和装置,充分考虑了应用间组件的相关性,实现了对移动应用影响力更有效合理地评估。
第一方面,本发明实施例提供了一种移动应用影响力评估方法,包括:
收集待评估的目标移动应用的基本信息;所述基本信息中包含所述目标移动应用的类别和所述目标移动应用的下载量;将所述目标移动应用保存到本地存储器中;
确定所述目标移动应用中包含的各个组件的调用与预先存储的移动应用中的组件声明之间的关联关系;
根据所述关联关系、所述目标移动应用的类别和所述目标移动应用的下载量,确定所述目标移动应用中包含的各个组件的影响力值;
根据所述目标移动应用中包含的各个组件的影响力值,确定所述目标移动应用的影响力值。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,确定所述目标移动应用中包含的各个组件与预先存储的移动应用中的各个组件之间的关联关系的步骤,包括:
确定所述目标移动应用中包含的各个组件调用与预先建立的组件声明数据库中的各个组件声明之间的关联关系,将所述关联关系添加到所述关联数据库中;
建立所述关联数据库的过程,包括:
通过网络爬虫从移动应用商店中搜索移动应用,将所述目标移动应用保存到本地存储器中;所述移动应用商店包括官方商店和渠道商的移动应用商店;
确定搜索到的所有移动应用中的各个组件之间的关联关系,存入关联数据库中。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,确定搜索到的所有移动应用中的各个组件之间的关联关系,存入关联数据库中的步骤,包括:
从每个移动应用的权限文件中提取各个组件的声明特征,保存到关联数据库的声明集合中;
从每个移动应用中提取各个组件的调用特征,保存到关联数据库的调用集合中;
将所述调用集合中各个组件的调用特征与所述声明集合中各个组件的声明特征相结合,得到各个组件之间的关联关系,存入关联数据库中。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,确定所述目标移动应用中包含的各个组件与预先存储的移动应用中各个组件之间的关联关系的步骤,包括:
从所述目标移动应用的权限文件中提取各个组件的声明特征,与所述调用集合中的调用特征相结合;
从所述目标移动应用中提取各个组件的调用特征,与所述声明集合中的声明特征相结合;得到所述目标移动应用中包含的各个组件与预先建立的关联数据库中的各个组件之间的关联关系。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,确定所述目标移动应用中包含的各个组件的影响力值的步骤,包括:
根据所述关联数据库中存储的各个组件之间的关联关系,确定各个组件之间的调用关系,以所述组件为节点,以组件之间的调用关系为边,构建组件间通信复杂网络;所述组件间通信复杂网络包括一个或多个连通有向循环图;
根据所述组件间通信复杂网络中节点间的关联关系,节点所属移动应用的类别和节点所属移动应用的下载量,得到各节点间的激活力;
根据各节点间的激活力,确定所述目标移动应用中包含的各个组件的影响力值。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据所述组件间通信复杂网络中节点间的关联关系,节点所属移动应用的类别和节点所属移动应用的下载量,得到各节点间的激活力的步骤,包括:
采用如下公式,计算所述组件间通信复杂网络中任意两节点之间的激活力;
其中,fij为节点i与节点/之间的激活力,ni为节点i所属移动应用的下载量,n表示所有移动应用的下载总量,gij为节点i所属移动应用的类别到节点j所属移动应用的类别的比例因子,dij为所述连通有向循环图中节点i到节点j的最短距离,ρij表示节点i和节点j在所述组件间通信复杂网络中联通路径包含移动应用的最大数量,qi为所述连通有向循环图中经过节点i的频数,qj为所述连通有向循环图中经过节点j的频数,qij为所述连通有向循环图中先后经过节点i和节点j的共现频数。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述根据各节点间的激活力,确定所述目标移动应用中包含的各个组件的影响力值的步骤,包括:
采用迭代计算方法,计算所述移动应用中包含的各个组件所对应的节点的影响力值,作为所述移动应用中包含的各个组件的影响力值;计算公式为:
其中,crspr(x)为节点x的影响力值,节点p为集合i(x)中的节点,集合i(x)为节点x的入链节点集合,crspr(p)为节点p的影响力值,集合ο(p)为节点p的出链节点集合,f(p,q)为节点p与节点q之间的激活力,α为随机游走系数,n为组件间通信复杂网络中节点的总数。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,根据所述目标移动应用中包含的各个组件的影响力值,确定所述目标移动应用的影响力值的步骤,包括:
将所述移动应用中包含的所有组件的影响力值求和,得到所述移动应用的影响力值。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述方法还包括:
根据所述目标移动应用的影响力值,设置所述目标移动应用的安全等级,以对所述目标移动进行检测和防护。
第二方面,本发明实施例还提供了一种移动应用影响力评估装置,包括:
信息收集模块,用于收集待评估的目标移动应用的基本信息;所述基本信息中包含所述目标移动应用的类别和所述目标移动应用的下载量;将所述目标移动应用保存到本地存储器中;
关联信息确定模块,用于确定所述目标移动应用中包含的各个组件与预先存储的移动应用中的各个组件之间的关联关系;
组件影响力值计算模块,用于根据所述关联关系、所述目标移动应用的类别和所述目标移动应用的下载量,确定所述目标移动应用中包含的各个组件的影响力值;
应用影响力值计算模块,用于根据所述目标移动应用中包含的各个组件的影响力值,确定所述目标移动应用的影响力值。
本发明实施例带来了以下有益效果:
本发明实施例提供的移动应用影响力评估方法和装置,从app中提取组件关联信息,根据关联信息构建海量app组件关联复杂网络;然后对移动应用影响力场景进行分析描述,提出基于节点间作用力的改进的应用影响力评估算法。该方法充分考虑了应用间组件的相关性,针对海量应用的组件关联网络构建方法,得到海量应用的关联关系库,并且基于节点间作用力评估移动应用影响力,实现了对移动应用的影响力更有效合理地评估。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例所提供的移动应用影响力评估方法的流程图;
图2为本发明另一实施例所提供的移动应用影响力评估方法的流程图;
图3为本发明一实施例所提供的移动应用影响力评估方法的原理图;
图4为本发明一实施例所提供的移动应用影响力评估装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有的应用关联分析方法无法分辨出app内在的关联的问题。本发明实施例提供了一种移动应用影响力评估方法和装置,以下首先对本发明的移动应用影响力评估方法进行详细介绍。
实施例一
该实施例提供了一种移动应用影响力评估方法,如图1所示,该方法包括如下步骤:
步骤s101,收集待评估的目标移动应用的基本信息。所述基本信息中包含目标移动应用的类别和目标移动应用的下载量。将目标移动应用保存到本地存储器中,例如,将目标移动应用保存到本地的文件系统中。
待评估的目标移动应用可以来自于网络,也可以是由用户或客户提供的。
步骤s102,确定目标移动应用中包含的各个组件与预先存储的移动应用中的各个组件之间的关联关系。
系统中提前存储了海量的移动应用,保存了这些移动应用中的组件的声明特征和调用特征,并存储了各组件之间的关联关系。
当目标移动应用为属于系统之外的新的移动应用时,需要从目标移动应用的权限文件中提取目标移动应用所包含的各个组件的声明特征,与系统中的移动应用的组件的调用特征相结合;再从目标移动应用中提取各个组件的调用特征,与系统中的移动应用的组件的声明特征相结合,目标移动应用中包含的各个组件与预先存储的移动应用中的各个组件之间的关联关系。
步骤s103,根据步骤s102中取得的关联关系、目标移动应用的类别和目标移动应用的下载量,确定目标移动应用中包含的各个组件的影响力值。
根据所述关联关系,可以确定与目标移动应用的各个组件相关联的组件的范围以及组件关联方式,根据相关联的组件的影响力值,目标移动应用的类别和目标移动应用的下载量,就可以确定目标移动应用中包含的各个组件的影响力值。
步骤s104,根据所述目标移动应用中包含的各个组件的影响力值,确定所述目标移动应用的影响力值。
将所述目标移动应用中包含的所有组件的影响力值求和,即可得到目标移动应用的影响力值。
由于影响力值越高的移动应用,其组件就更应该注意安全性,需重点保护,否则可能会影响到其他很多应用,如果一个重要的移动应用中的主要组件出现了漏洞,可能波及很多调用这个组件的应用。因此,可以根据所述目标移动应用的影响力值,可以设置目标移动应用的安全等级,以对目标移动进行检测和防护。对于影响力值高的应用,分配更多的资源进行检测和防护,有利于对资源合理分配和资源节省。
本实施例提供的移动应用影响力评估方法和装置,充分考虑了应用间组件的相关性,针对海量应用的组件关联网络构建方法,得到海量应用的关联关系库,并且基于节点间作用力评估移动应用影响力,实现了对移动应用的影响力更有效合理地评估。
实施例二
该实施例也提供了一种移动应用影响力评估方法,如图2和图3所示,该方法包括如下步骤:
步骤s201,通过网络爬虫从移动应用商店中搜索移动应用,收集搜索到的所有移动应用的基本信息,所述基本信息包括移动应用的类别和下载量。下载移动应用至本地存储器中。所述移动应用商店包括官方商店和渠道商的移动应用商店。
步骤s202,确定搜索到的所有移动应用中的各个组件之间的关联关系,存入关联数据库中。
具体实现方式为:
从每个移动应用的权限文件中提取所有组件的声明,根据activity、service、contentprovider和broadcastreceiver这四大类型的基本组件声明格式提取特征七元组<targetcomponent,targettype,targetpkg,targetclass,scheme,authority,uri>,构建声明集合,分析出海量移动应用中所有允许被调用的组件特征信息,保存到关联数据库中。
扫描移动应用的代码,提取所有组件的调用代码段,根据组件调用情况,提取特征七元组<sourcecomponent,destype,despkg,desclass,scheme,authority,uri>,构建调用集合,存入数据库中。
将调用集合中存储的组件的调用特征与声明集合中存储的组件的声明特征结合分析,得到组件间的关联关系,将得到的关联关系保存到关联数据库中。例如,如果调用集合中某组件的<destype,despkg,desclass>与声明集合中某组件的<targettype,targetpkg,targetclass>相同,则可得到一条组件间的关联关系<sourcecomponent,...,targetcomponent>。也可以根据表1所示的条件,查找组件间的关联关系,例如,通过调用集合中某组件的desclass或scheme两个特征其中之一,加上相应的sourcepkg和sourceclass,就可以查找与其相关联的属于activity类型的组件,建立组件间的关联关系。
表1
随着关联关系分析的移动应用数量的增加,调用集合中调用特征和声明集合中声明特征规模持续增加,组件关联关系信息逐渐完整。
步骤s203,收集待评估的目标移动应用的基本信息。所述基本信息中包含目标移动应用的类别和目标移动应用的下载量。下载目标移动应用到本地存储器中。
步骤s204,确定目标移动应用中包含的各个组件与预先建立的关联数据库中的各个组件之间的关联关系;将所述关联关系添加到关联数据库中。
从目标移动应用的权限文件中提取各个组件的声明特征,如上述的声明特征七元组,与调用集合中的调用特征相结合;从目标移动应用中提取各个组件的调用特征,如上述的调用特征七元组与声明集合中的声明特征相结合;得到目标移动应用中包含的各个组件与预先建立的关联数据库中的各个组件之间的关联关系,将这些关联关系添加到关联数据库中。
步骤s205,根据关联数据库中存储的各个组件之间的关联关系,确定各个组件之间的调用关系。以组件为节点,以组件之间的调用关系为边,构建组件间通信复杂网络。所述组件间通信复杂网络包括一个或多个连通有向循环图,标明组件间的调用方向。
步骤s206,根据组件间通信复杂网络中节点间的关联关系,节点所属移动应用的类别和节点所属移动应用的下载量,得到各节点间的激活力。
其中,组件间通信复杂网络中节点间的关联关系代表的是组件之间的关联关系。可以采用如下公式,计算组件间通信复杂网络中任意两节点之间的激活力;
其中,fij为节点i与节点j之间的激活力,ni为节点i所属移动应用的下载量,n表示所有移动应用的下载总量,gij为节点i所属移动应用的类别到节点j所属移动应用的类别的比例因子,dij为所述连通有向循环图中节点i到节点j的最短距离,ρij表示节点i和节点j在所述组件间通信复杂网络中联通路径包含移动应用的最大数量,qi为所述连通有向循环图中经过节点i的频数,qj为所述连通有向循环图中经过节点j的频数,qij为所述连通有向循环图中先后经过节点i和节点j的共现频数。
步骤s207,根据各节点间的激活力,确定目标移动应用中包含的各个组件的影响力值。
根据各节点间的激活力,计算出节点激活力稀疏矩阵。基于该矩阵,采用迭代计算方法,计算目标移动应用中包含的各个组件所对应的节点的影响力值,作为目标移动应用中包含的各个组件的影响力值。计算目标移动应用中包含的各个组件的影响力值时,仅需使用与目标移动应用相关联的节点间的激活力。计算公式如下:
其中,crspr(x)为节点x的影响力值,节点p为集合i(x)中的节点,集合i(x)为节点x的入链节点集合,crspr(p)为节点p的影响力值,集合ο(p)为节点p的出链节点集合,f(p,q)为节点p与节点q之间的激活力,α为随机游走系数,n为组件间通信复杂网络中节点的总数。
步骤s208,根据目标移动应用中包含的各个组件的影响力值,确定目标移动应用的影响力值的步骤。
具体来说,将目标移动应用中包含的所有组件的影响力值求和,即可得到目标移动应用的影响力值。
本实施例提供的方法,通过构建海量应用组件的组件间通信复杂网络,对app集合中可能出现的跨组件通信进行预测评估,降低跨组件通信的误报率。本实施例的基于组件关联的移动应用影响力评估方法,可实现多应用的组件关联调用或数据分析,对跨应用调用导致的数据泄漏或漏洞利用分析以及对关联程度高的应用和调用频繁的相关组件进行保护都具有重要的意义。
实施例三
该实施例提供了一种移动应用影响力评估装置,如图4所示,该装置包括:
信息收集模块41,用于收集待评估的目标移动应用的基本信息;所述基本信息中包含目标移动应用的类别和目标移动应用的下载量;将目标移动应用保存到本地存储器中;
关联信息确定模块42,用于确定目标移动应用中包含的各个组件与预先存储的移动应用中的各个组件之间的关联关系;
组件影响力值计算模块43,用于根据所述关联关系、目标移动应用的类别和目标移动应用的下载量,确定目标移动应用中包含的各个组件的影响力值;
应用影响力值计算模块44,用于根据目标移动应用中包含的各个组件的影响力值,确定目标移动应用的影响力值。
本实施例提供的移动应用影响力评估装置,充分考虑了应用间组件的相关性,针对海量应用的组件关联网络构建方法,得到海量应用的关联关系库,根据节点间作用力计算移动应用影响力,实现了对移动应用的影响力更有效合理地评估。
本发明实施例提供的移动应用影响力评估方法和装置具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
需要说明的是,在本发明所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。