一种非法应用程序类别识别方法及装置与流程

文档序号:20702504发布日期:2020-05-12 15:55阅读:262来源:国知局
一种非法应用程序类别识别方法及装置与流程

本发明涉及一种应用程序类别识别领域,特别涉及一种非法应用程序类别识别方法及装置。



背景技术:

近年来,非法应用程序的数量与日俱增,而随着非法应用程序的增长速度和传播速度的不断加快,对于非法应用程序的分析以及对非法应用程序进行分类变得越来越困难。非法应用程序是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的应用程序,并且非法应用程序自身通过原始程序并生成变体,以避免基于签名的检测措施,使得非法应用程序变得更加复杂,仅靠简单自动分析很难获得非法应用程序所属的类别,非法应用程序也很容易绕过基于程序签名的反病毒程序来逃避监测分类。

现有的对于非法应用程序的分类方式是通过监测非法应用程序的调用权限与调用图等几个简单的特征来判断该程序为何类非法应用程序,然而仅仅通过几个特征难以找出各个特征之间的关联并根据关联关系进行分类,此种非法应用程序分类方式并不适用于现代应用程序集群,并且现有的权限信息不再像以往一样具有对于分辨非法应用程序的权威性,很多合法应用程序同样会调用大量的权限,仅通过观察权限的调用情况不足以表明非法应用程序的类型,所以需要建立一种对于非法应用程序的各方面进行监测的机制,来分析非法应用程序的行为特征,以便更好的确定非法应用程序的类别。



技术实现要素:

本发明提供一种非法应用程序类别识别方法及装置,用于解决在仅使用了权限和调用图等一个或几个简单的特征请情况下,难以找出特征之间的关联的问题,并且现有的良性的应用程序也需要大量权限,如果应用程序检测系统只使用一种或少量的特征,那么它会产生有偏见的结果。

本发明的第一方面,提供一种非法应用程序类别识别方法,所述方法包括:

获取应用程序样本集,所述应用程序样本集包括至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序;

将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,所述序列特征中包括表示该应用程序运行时调用的api接口顺序的api调用序列,从各应用程序的安装包中获取表示安装包生成的名称特征;

根据各应用程序的序列特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,根据各应用程序的名称特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度;

根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

可选地,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度高于设定高阈值时,确定该识别的应用程序为非法的应用程序;

确定与该待识别的应用程序的最终相似度最高的非法的应用程序的类别,为待识别的应用程序所属的非法的应用程序的类别。

可选地,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度低于设定低阈值时,确定待识别的应用程序为合法应用程序。

可选地,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终相似度高于设定聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合。

可选地,还包括:

根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别。

可选地,从各应用程序的安装包中获取表示安装包生成的名称特征,包括:

获取各应用程序的安装包在仿真运行平台上虚拟运行时,确定的表示调用权限名称的权限信息;

获取根据各应用程序的安装包中的开发账号确定的签名信息将应用程序样本集中各应用程序的安装包中开发人员名称确定的签名信息;

获取根据各应用程序的安装包在仿真运行平台上虚拟运行时,由其中的应用程序组件生成的活动名称确定的活动名称信息。

可选地,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,包括:

利用敏感哈希中的nilsimsa算法将各应用程序的序列特征中的api调用序列统一为相同长度的摘要信息;

通过比对任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的摘要信息,得到对应的第一相似度。

可选地,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度,包括:

利用jaccard集合相似度算法,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度。

可选地,根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度,包括:

将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度。

可选地,还包括:

根据各非法的应用程序的序列特征,确定各非法的应用程序之间的第一相似度,根据各非法的应用程序的名称特征,确定各非法的应用程序之间的第二相似度;

将任意两个非法的应用程序的第一相似度、第二相似度输入权重优化器,利用所述权重优化器调整第一相似度和第二相似度的权重,使得对第一相似度和第二相似度加权求和后输出的两个非法的应用程序是否属于同一类别的结果,与应用程序样本集中该两个非法应用程序是否属于同一类别结果一致;

根据所述权值优化器调整结束后的权重,得到第一相似度和第二相似对应的权重。

本发明第二方面提供一种非法应用程序类别识别装置,所述装置包括如下模块:

样本获取模块,用于获取应用程序样本集,所述应用程序样本集包括至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序;

特征获取模块,用于将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,所述序列特征中包括表示该应用程序运行时调用的api接口顺序的api调用序列,从各应用程序的安装包中获取表示安装包生成的名称特征;

相似度确定模块,用于根据各应用程序的序列特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,根据各应用程序的名称特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度;

最终相似度确定模块,用于根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

应用程序类别确定模块,用于根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

应用程序类别确定模块,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度高于设定高阈值时,确定该识别的应用程序为非法的应用程序;

确定与该待识别的应用程序的最终相似度最高的非法的应用程序的类别,为待识别的应用程序所属的非法的应用程序的类别。

应用程序类别确定模块,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度低于设定低阈值时,确定待识别的应用程序为合法应用程序。

应用程序类别确定模块,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终相似度高于设定聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合。

应用程序类别确定模块,还包括:

根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别。

特征获取模块,从各应用程序的安装包中获取表示安装包生成的名称特征,包括:

获取各应用程序的安装包在仿真运行平台上虚拟运行时,确定的表示调用权限名称的权限信息;

获取根据各应用程序的安装包中的开发账号确定的签名信息将应用程序样本集中各应用程序的安装包中开发人员名称确定的签名信息;

获取根据各应用程序的安装包在仿真运行平台上虚拟运行时,由其中的应用程序组件生成的活动名称确定的活动名称信息。

相似度确定模块,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,包括:

利用敏感哈希中的nilsimsa算法将各应用程序的序列特征中的api调用序列统一为相同长度的摘要信息;

通过比对任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的摘要信息,得到对应的第一相似度。

相似度确定模块,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度,包括:

利用jaccard集合相似度算法,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度。

最终相似度确定模块,根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度,包括:

将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度。

相似度权重确定模块,还包括:

根据各非法的应用程序的序列特征,确定各非法的应用程序之间的第一相似度,根据各非法的应用程序的名称特征,确定各非法的应用程序之间的第二相似度;

将任意两个非法的应用程序的第一相似度、第二相似度输入权重优化器,利用所述权重优化器调整第一相似度和第二相似度的权重,使得对第一相似度和第二相似度加权求和后输出的两个非法的应用程序是否属于同一类别的结果,与应用程序样本集中该两个非法应用程序是否属于同一类别结果一致;

根据所述权值优化器调整结束后的权重,得到第一相似度和第二相似对应的权重。

本发明第三方面提供一种非法应用程序类别识别装置,所述装置包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器用于执行所述存储器中的计算机程序,所述计算机程序用于执行本发明第一方面提供的一种非法应用程序类别识别方法。

本发明第四方面提供一种计算机程序介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现本发明第一方面提供的一种非法应用程序类别识别方法。

利用本发明提供的一种非法应用程序类别识别方法及装置,可以建立一种对于非法应用程序的各方面进行监测的机制,来分析非法应用程序的行为特征,以便更好的确定非法应用程序的类别。

附图说明

图1为非法应用程序类别识别方法的系统示意图;

图2为非法应用程序类别识别方法流程示意图;

图3为非法应用程序识别分类过程示意图;

图4为非法应用程序类别识别方法的完整示意图;

图5为非法应用程序类别识别装置的模块示意图;

图6为非法应用程序类别识别装置的结构示意图。

具体实施方式

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

下面结合说明书附图对本发明实施例作进一步详细描述。应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示,为一种非法应用程序类别识别方法的系统示意图,在sdk平台101中,存在虚拟运行设备102以及应用程序特征分析设备103;sdk为(softwaredevelopmentkit,软件开发工具包),sdk平台用于运行软件开发工具包,所述软件开发工具包为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合;虚拟运行设备102中包含应用程序样本集,所述应用程序样本集中包括:至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序,其中识别出类别的非法的应用程序为从bitdefender(比特梵德,bd)中获取的;bitdefender最重要的功能就是通过监测应用程序和类似病毒的活动确定应用程序的类型,提供删除非法代码的先进启发式技术;从将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,得到应用程序样本集中的各应用对应的序列特征及名称特征。在虚拟运行设备102将应用程序样本集中的各应用对应的序列特征及名称特征发送到应用程序特征分析设备103,应用程序特征分析设备103根据各应用程序的序列特征确定应用程序样本集中的各样本之间的相似度;应用程序特征分析设备103根据各样本之间的相似度应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

实施例1

本发明实施例提供一种非法应用程序类别识别方法,所述步骤如图2所示:

步骤s201,获取应用程序样本集,所述应用程序样本集包括至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序;

其中,由sdk平台获取包含有至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序的样本集,其中应用程序样本以安装包apk的形式获取上传到sdk平台上,apk(androidapplicationpackage,android安装包)是类似symbiansis或sisx的文件格式。通过将apk文件直接传到android模拟器或android手机中执行即可安装,其安装包同样可以为在其他平台执行安装的exe、ipa、sisx、rpm以及dep等类型安装包;

所述至少一个识别出类别的非法的应用程序包括通过bitdefender得到的已知类别的非法应用程序,该非法的应用程序包括:fakebank、gepew、gidix、fakelnst、smspy、bankun、misosms、telman等非法应用程序类型;

步骤s202,将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,所述序列特征中包括表示该应用程序运行时调用的api接口顺序的api调用序列,从各应用程序的安装包中获取表示安装包生成的名称特征;

通过sdk平台的调度程序,将待识别的应用程序以及非法的应用程序在虚拟运行设备102中进行运行,通过对上述各应用程序进行运行,得到该应用程序的序列特征以及名称特征。

具体的,序列特征为应用程序运行时调用的api接口顺序的api调用序列,因api调用序列不能通过对应用程序的代码分析及包分析提取,仅能通过在虚拟运行设备中执行来获得。对于非法应用程序来说,api调用序列为应用程序攻击虚拟运行设备中api接口的时间顺序;由于应用程序的行为与api调用序列密切相关,利用api调用序列可以推断出应用程序的功能,所述api调用序列为在虚拟运行设备中对各应用程序中的调用接口进行了命名,根据应用程序的调用顺序,对调用接口的名称按顺序排列得到api调用序列,因此,如果获得了api调用序列的相似性,就可以对具有相似功能的应用程序样本进行更高精度的分类。

所述名称特征主要包括三部分:

1)权限信息,各应用程序在虚拟运行设备中运行时,会获取虚拟运行设备的相关权限,非法应用程序在需要获取虚拟运行设备相关信息及文件时,必然会通过获取设备权限来,得到设备相关信息及文件,因此获得权限数越多,代表该应用程序的危险性更改,所以可以将获取的权限作为根据有目的攻击对相似的应用程序进行分类。

2)签名信息,在安装包中存在图像文件、xml文件、源代码文件和任何其他文件。由于不同的开发人员的倾向命名文件的规则不同,因此文件名中通常包含开发人员的签名信息。当该开发人员在创建其他的应用程序时,相同的签名信息可能保留在其他的应用程序包中,因此,文件名中的签名信息可以用来比较应用程序之间的相似性。

3)活动名称信息,在应用程序的运行的活动是有在主要活动上操作,活动的名称(如文件名)也是由开发人员决定。由于活动还包括应用程序的包名,因此开发人员的签名信息更倾向于活动名而不是文件名。此外,由于活动名称是从外部引用的,当非法的应用程序自动转换其代码时,无法更改对应的活动名称。因此,活动名称同样可以作为比较应用程序之间相似度的方法。

步骤s203,根据各应用程序的序列特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,根据各应用程序的名称特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度;

所述第一相似度由任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的序列特征的相似性确定,其中各应用程序对应的api调用序列的长度应该保持一致,并不应该因细微的内容变化差异而产生显著差异,因此本发明实施例采用局部敏感哈希(localitysensitivehashing,lsh):局部敏感哈希的基本思想类似于一种空间域转换思想,lsh算法基于一个假设,如果两个文本在原有的数据空间是相似的,那么分别经过哈希函数转换以后的它们也具有很高的相似度;相反,如果它们本身是不相似的,那么经过转换后它们应仍不具有相似性。所以通过将lsh算法的nilsimsa哈希算法计算api调用序列的相似度,各个应用程序样本对应的api序列转化为同一长度的摘要,在实施例中,将摘要长度转化为256位,并将摘要中-1~1之间的值进行归一化,在归一化之后,通过比较归一化后的摘要,得到各应用程序之间第一相似度。

所述第二相似度由名称特征中的权限信息、签名信息、活动名称信息计算,具体的将权限信息、签名信息、活动名称信息放置到应用程序对应的名称字符串中,基于jaccard集合相似度算法,该相似度计算方法为计算两个字符串中包含的各字符名称的交集以及并集,将交集的大小除以并集的大小,得到第二相似度,得到的值介于0~1之间,相似度为0表示给定的两个集合没有公共字符,相似度为1表示两个集合是等价的。

步骤s204,根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

具体为,根据任一待识别的应用程序与各非法的应用程序之间对应的第一相似度和第二相似度的权重,得到任一待识别的应用程序与各非法的应用程序之间的最终相似度;

根据任一待识别的应用程序与其他待识别的应用程序之间对应的第一相似度和第二相似度的权重,得到任一待识别的应用程序与其他待识别的应用程序之间的最终相似度;

所述第一相似度和第二相似度的权重基于权重优化器得到,其中根据各非法的应用程序的序列特征,确定各非法的应用程序之间的第一相似度,根据各非法的应用程序的名称特征,确定各非法的应用程序之间的第二相似度;

将将任意两个非法的应用程序的第一相似度、第二相似度输入权重优化器,利用所述权重优化器调整第一相似度和第二相似度的权重,使得对第一相似度和第二相似度加权求和后输出的两个非法的应用程序是否属于同一类别的结果,与应用程序样本集中该两个非法应用程序是否属于同一类别结果一致;

通过设定不同的非法的应用程序对输入次数得到不同的权重,根据不同权重对于应用程序的分类准确性得到第一相似度和第二相似度对应的最优权重。

根据第一相似度以及第二相似度对应的权重,将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序与各非法的应用程序之间的最终相似度;以及

根据第一相似度以及第二相似度对应的权重,将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序与其他待识别的应用程序之间的最终相似度;

步骤s205,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

判断与任一待识别的应用程序的最终相似度最高的是否为非法的应用程序,当确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度高于设定高阈值时,确定该识别的应用程序为非法的应用程序;

确定与该待识别的应用程序的最终相似度最高的非法的应用程序的类别,为待识别的应用程序所属的非法的应用程序的类别;

确定与该待识别的应用程序的最高最终相似度低于设定低阈值时,确定该识别的应用程序为合法的应用程序。

作为一种可选的实施方式,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别,还可以为,当确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终的相似度高于设定的聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合。

所述聚类阈值是基于k-fold交叉验证进行预测。为了在多种阈值情况下获得更好的精度,根据聚类阈值设定的不同(80%-95%)来测量精度,重复分类实验,确定最优阈值。阈值从80%依次增加到95%,随着每个阈值的增大,准确度会随之提升但对于待分类的应用程序的聚类效果会变差,因为本发明所使用的非法应用程序样本数量较少,因此通过k-fold交叉验证来进行这一实验,以补充样本的不足,基于k-fold中的k与迭代次数的设置,得到最优的聚类阈值,在最优的聚类阈值下对于同一类型集合的分类类别的准确度最高。

根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别。

具体的,根据与该待识别的应用程序的最终相似度最高的为的其他待识别的应用程序,且所述最终相似度高于上述经过k-fold交叉验证得到的最优的聚类阈值,将该待识别应用程序与对应的其他待识别的应用程序,划分到同一类型集合中,根据该类型集合中所属的已知的非法应用程序的类别,确定该类型集合中的待识别应用程序,均为该已知的非法应用程序的类别。

如图3所示,如待识别样本a在应用程序样本集中与待识别样本b的最终相似度最高,且高于最优的聚类阈值,则将该待识别样本a与待识别样本b划分为同一类型的集合中,此外待识别样本c在应用程序样本集中与待识别样本b的最终相似度最高,则将该待识别样本c与待识别样本b划分为同一类型的集合中,且该待识别样本在非法应用程序判断中,已确定待识别样本b与已知类型为fakebank非法应用程序d的最终相似度最高,则判断该类型的集合为fakebank类型的类型集合,其中的待识别样本a、b、c均为fakebank类型的非法应用程序。

最终,根据在应用程序样本集中各应用程序的最终相似度关系以及应用程序的类型,生成表示各应用程序相似关系以及类别的应用程序类别分类图,以便于更加明确的显示各待识别应用程序的类别。

如图4所示,为一种非法应用程序类别识别方法的完整步骤,

步骤s401,获取应用程序样本集至sdk平台中;

步骤s402,将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,并从各应用程序的安装包中获取名称特征;

步骤s403,根据序列特征以及名称特征确定,应用程序样本集中任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度、第二相似度;

步骤s404,根据第一相似度和第二相似度的对应权重得到任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

步骤s405,判断与任一待识别的应用程序最终相似度最高的应用程序类型,当类型为非法的应用程序时,执行步骤s406,当类型为其他待识别的应用程序时,执行步骤s407;

步骤s406,根据所述最高的最终相似度与低阈值和高阈值之间的关系,判断任一待识别的应用程序的类型,当最高的最终相似度高于设定高阈值时,执行步骤s408,当最高的最终相似度低于设定低阈值时,执行步骤s409;

步骤s407,确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终相似度高于设定聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合;

步骤s408,该待识别应用程序确定为与该最终相似度最高的为非法的应用程序相同的类别;

步骤s409,确定该待识别的应用程序为合法的应用程序;

步骤s410,根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别;

步骤s411,在应用程序样本集中所有待识别样本都进行了样本类型识别后,根据各应用程序的最终相似度关系以及应用程序的类型,生成应用程序类别分类图。

实施例2

本发明实施例提供一种非法应用程序类别识别装置,所述装置包括如下模块:

样本获取模块501,用于获取应用程序样本集,所述应用程序样本集包括至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序;

特征获取模块502,用于将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,所述序列特征中包括表示该应用程序运行时调用的api接口顺序的api调用序列,从各应用程序的安装包中获取表示安装包生成的名称特征;

相似度确定模块503,用于根据各应用程序的序列特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,根据各应用程序的名称特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度;

最终相似度确定模块504,用于根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

应用程序类别确定模块505,用于根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

应用程序类别确定模块505,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度高于设定高阈值时,确定该识别的应用程序为非法的应用程序;

确定与该待识别的应用程序的最终相似度最高的非法的应用程序的类别,为待识别的应用程序所属的非法的应用程序的类别。

应用程序类别确定模块,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度低于设定低阈值时,确定待识别的应用程序为合法应用程序。

应用程序类别确定模块505,根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终相似度高于设定聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合。

应用程序类别确定模块505,还包括:

根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别。

特征获取模块502,从各应用程序的安装包中获取表示安装包生成的名称特征,包括:

获取各应用程序的安装包在仿真运行平台上虚拟运行时,确定的表示调用权限名称的权限信息;

获取根据各应用程序的安装包中的开发账号确定的签名信息将应用程序样本集中各应用程序的安装包中开发人员名称确定的签名信息;

获取根据各应用程序的安装包在仿真运行平台上虚拟运行时,由其中的应用程序组件生成的活动名称确定的活动名称信息。

相似度确定模块503,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,包括:

利用敏感哈希中的nilsimsa算法将各应用程序的序列特征中的api调用序列统一为相同长度的摘要信息;

通过比对任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的摘要信息,得到对应的第一相似度。

相似度确定模块503,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度,包括:

利用jaccard集合相似度算法,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度。

最终相似度确定模块504,根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度,包括:

将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度。

相似度权重确定模块506,还包括:

根据各非法的应用程序的序列特征,确定各非法的应用程序之间的第一相似度,根据各非法的应用程序的名称特征,确定各非法的应用程序之间的第二相似度;

将任意两个非法的应用程序的第一相似度、第二相似度输入权重优化器,利用所述权重优化器调整第一相似度和第二相似度的权重,使得对第一相似度和第二相似度加权求和后输出的两个非法的应用程序是否属于同一类别的结果,与应用程序样本集中该两个非法应用程序是否属于同一类别结果一致;

根据所述权值优化器调整结束后的权重,得到第一相似度和第二相似对应的权重。

实施例3

本发明实施提供一种计算机程序介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时如下方法:

获取应用程序样本集,所述应用程序样本集包括至少一个识别出类别的非法的应用程序及至少一个待识别的应用程序;

将应用程序样本集中各应用程序在仿真运行平台上虚拟运行,获取运行时生成的序列特征,所述序列特征中包括表示该应用程序运行时调用的api接口顺序的api调用序列,从各应用程序的安装包中获取表示安装包生成的名称特征;

根据各应用程序的序列特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,根据各应用程序的名称特征,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度;

根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度;

根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别。

该非法应用程序类别识别装置可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(英文全称:centralprocessingunits,英文简称:cpu)601(例如,一个或一个以上处理器)和存储器602,一个或一个以上存储应用程序604或数据605的存储介质603(例如一个或一个以上海量存储设备)。其中,存储器602和存储介质603可以是短暂存储或持久存储。存储在存储介质603的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对信息处理装置中的一系列指令操作。更进一步地,中央处理器601可以设置为与存储介质603通信,在装置600上执行存储介质603中的一系列指令操作。

装置600还可以包括一个或一个以上电源606,一个或一个以上有线或无线网络接口607,一个或一个以上输入输出接口608,和/或,一个或一个以上操作系统609,例如windowsserver,macosx,unix,linux,freebsd等。

可选地,所述装置根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,及确定为非法的应用程序时,确定所属的非法的应用程序的类别,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度高于设定高阈值时,确定该识别的应用程序为非法的应用程序;

确定与该待识别的应用程序的最终相似度最高的非法的应用程序的类别,为待识别的应用程序所属的非法的应用程序的类别。

可选地,所述装置根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为非法的应用程序,且最高的最终相似度低于设定低阈值时,确定待识别的应用程序为合法应用程序。

可选地,所述装置根据所述最终相似度,确定该待识别的应用程序是否为非法的应用程序,包括:

确定与该待识别的应用程序的最终相似度最高的为其他待识别的应用程序时,且最高的最终相似度高于设定聚类阈值时,将该待识别的应用程序与最终相似度最高的其他待识别的应用程序,划分到同一类型集合。

可选地,所述装置还包括:

根据该待识别的应用程序为非法的应用程序及所属的非法的应用程序的类别,确定与该待识别的应用程序属于同一类型集合的待识别应用程序,为非法的应用程序及相同的非法的应用程序的类别。

可选地,所述装置从各应用程序的安装包中获取表示安装包生成的名称特征,包括:

获取各应用程序的安装包在仿真运行平台上虚拟运行时,确定的表示调用权限名称的权限信息;

获取根据各应用程序的安装包中的开发账号确定的签名信息将应用程序样本集中各应用程序的安装包中开发人员名称确定的签名信息;

获取根据各应用程序的安装包在仿真运行平台上虚拟运行时,由其中的应用程序组件生成的活动名称确定的活动名称信息。

可选地,所述装置确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第一相似度,包括:

利用敏感哈希中的nilsimsa算法将各应用程序的序列特征中的api调用序列统一为相同长度的摘要信息;

通过比对任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的摘要信息,得到对应的第一相似度。

可选地,所述装置确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度,包括:

利用jaccard集合相似度算法,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的第二相似度。

可选地,所述装置根据所述第一相似度与第二相似度,确定任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度,包括:

将第一相似度和第二相似度分别乘以对应的权重并求和,得到任一待识别的应用程序分别与各非法的应用程序及其他待识别的应用程序之间的最终相似度。

可选地,所述装置还包括:

根据各非法的应用程序的序列特征,确定各非法的应用程序之间的第一相似度,根据各非法的应用程序的名称特征,确定各非法的应用程序之间的第二相似度;

将任意两个非法的应用程序的第一相似度、第二相似度输入权重优化器,利用所述权重优化器调整第一相似度和第二相似度的权重,使得对第一相似度和第二相似度加权求和后输出的两个非法的应用程序是否属于同一类别的结果,与应用程序样本集中该两个非法应用程序是否属于同一类别结果一致;

根据所述权值优化器调整结束后的权重,得到第一相似度和第二相似对应的权重。

实施例4

本发明实施例提供一种计算机程序介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现实施例1提供的非法应用程序类别识别方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

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

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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