本发明涉及安卓系统技术领域,尤其涉及一种基于异质网络的安卓恶意应用检测方法及系统。
背景技术:
得益于便携性和不断丰富的功能,智能手机在人们的日常生活中早已无处不在。2019年,随着5g手机的发布以及厂商加速清理旧设备库存,运行安卓操作系统的智能手机市场占比进一步上涨到87%。但也由于巨大的市场份额和生态系统的开放性,安卓智能手机一直遭受着大量的恶意攻击,主要包括隐私窃取和资费消耗等类型,因此对安卓恶意应用检测工作的研究是目前网络空间安全的重点。
现有的检测方法分为静态检测方法、动态检测方法和混合检测方法三类,其中,静态检测方法是当前最主流的检测方法,静态检测方法的检测对象,主要是应用源代码或者反编译后的代码,也是发展时间最长,最广泛使用的方法,它的发展可分为基于特征值和规则,基于传统机器学习以及基于深度学习三个阶段;动态检测是指在应用程序运行过程中监控其行为特征,对实时性和运行环境要求较高,耗时更长,动态方法是基于行为的方法,研究对象主要是运行时应用的行为及记录;混合检测方法主要是将静态特征和动态特征混合使用,也包括一些如元数据特征的其他特征,混合检测与动态检测的重要区别就是前者的特征工程工作会注重到所有类型的特征,从安卓应用程序的安装文件到应用运行时的行为。
然而,现有的检测方法还存不足之处,即当前的特征提取方式普遍存在缺乏纯度或者缺失(主要为缺乏相互关系),其中,缺乏纯度主要表现为:现有的安卓恶意应用检测工作,分析过程中大多存在噪音代码(多个应用间共享且无安全威胁的模块,如第三方共享库)的影响,导致了分析的恶意应用的纯度不够,进而影响检测效果;缺失主要表现为:现有的检测方法忽略了应用之间的关系信息,例如,调用相同敏感的应用程序接口(applicationprogramminginterface,简称api)、拥有同一开发者的签名和具有重复代码等,导致缺乏应用之间的深层语义表征,从而影响检测效果。因此,现在亟需一种基于异质网络的安卓恶意应用检测方法及系统来解决上述问题。
技术实现要素:
针对现有技术存在的问题,本发明实施例提供一种基于异质网络的安卓恶意应用检测方法及系统。
第一方面,本发明实施例提供了一种基于异质网络的安卓恶意应用检测方法,包括:
根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;
根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;
将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
进一步地,所述内容特征包括代码包、包名、应用程序接口和签名;所述关系特征包括代码包调用关系信息、包名归属信息和签名归属信息。
进一步地,所述根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络,包括:
将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络。
进一步地,所述根据所述节点上下文,得到图嵌入矩阵,包括:
根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;
将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
进一步地,所述卷积神经网络包括vgg网络、googlenet网络或resnet网络。
进一步地,所述将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络,包括:
对安卓应用安装包进行特征提取,得到所述安卓应用安装包的内容特征和关系特征;
将所述内容特征作为节点,将所述关系特征作为边,并将所述节点和所述边添加到已构建的代码团关系异质网络中,得到目标代码团关系异质网络,以根据所述目标代码团关系异质网络,进而得到所述安卓应用安装包对应的图嵌入矩阵,并通过训练好的安卓应用检测模型,对所述安卓应用安装包进行应用检测。
第二方面,本发明实施例提供了一种基于异质网络的安卓恶意应用检测系统,包括:
特征提取模块,用于根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;
图嵌入矩阵生成模块,用于根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;
安卓应用检测模块,用于将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
进一步地,所述图嵌入矩阵生成模块包括:
第一处理单元,用于根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;
第二处理单元,用于将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种基于异质网络的安卓恶意应用检测方法及系统,通过对现有安卓应用检测工作存在的缺乏纯度和缺失的问题进行改善,针对安卓恶意应用进行深层语义的表征,解决了现有方法存在噪音代码和忽略了复杂相互关系的问题,提出了一种构建表征代码包之间复杂关系的异质图方法,并设计相应的节点表征方法,使得安卓应用检测更加全面,检测结果更加准确,提高了安卓应用检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于异质网络的安卓恶意应用检测方法的流程示意图;
图2为本发明实施例提供的元路径示意图;
图3为本发明实施例提供的基于元路径p1进行随机游走的示意图;
图4为本发明实施例提供的图嵌入矩阵生成示意图;
图5为本发明实施例提供的安卓应用检测整体流程示意图;
图6为本发明实施例提供的基于异质网络的安卓恶意应用检测系统的结构示意图;
图7为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对目前安卓应用检测工作中的不足(缺乏纯度和缺乏相互关系),本发明实施例提出了将安卓应用划分成多个代码包的方案,以便于剔除噪音代码;针对当前检测方法忽略了应用间复杂相互关系的问题,结合划分代码包的操作,提出对代码包层面复杂的关系进行研究,构建代码包异质关系网络的方案。在完成网络构建后,利用图嵌入技术,设计一种节点表征方法,以通过图嵌入矩阵最大限度保留结构特征和语义特征。进一步基于图嵌入矩阵,利用深度学习方法构建一个检测模型,训练出未知安卓应用分类器,以根据该分类器对后续的待检测安卓应用进行检测。与现有的方法相比,本发明实施例实现了对安卓应用检测过程中特征的缺乏纯度与缺失的完善,使得检测结果更加准确和完整,达到了97%的检测准确率,并且在检测效率上有60%多的提升。
图1为本发明实施例提供的基于异质网络的安卓恶意应用检测方法的流程示意图,如图1所示,本发明实施例提供了一种基于异质网络的安卓恶意应用检测方法,包括:
步骤101,根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络。
在本发明实施例中,首先运用反编译工具,对安卓应用安装包(androidapplicationpackage,简称apk)文件进行解析,获取得到apk文件中的内容特征和关系特征,并将内容特征作为节点,关系特征作为节点之间的边,构建代码团关系异质网络(即构建得到异构图)。通过引入代码团关系异质网络,对提取得到的特征进行建模,利用异质的特性,映射处理不同的类型节点和边,将apk应用文件的内在关联信息转换为异构网络中的类型和结构信息,从而更好的描述了应用之间复杂的相互关系,并减少噪音代码对检测结果的影响。具体地,内容特征主要包括代码包(指耦合程度较低的各个代码模块)、包名(应用的包名,如com.tencent.mm)、敏感api(具有恶意行为风险的权限)以及签名md5(使用应用签名的md5值来唯一标识)。在异质图中,内容特征作为节点类别代表不同的节点属性。对应于这些节点类型,关系特征作为“边”的类型也有以下六种:代码团----调用----敏感api、敏感api----被调用----代码团、代码团----属于----包名、包名----包含----代码团、代码团----包含于----签名md5、签名md5----包含----代码团。在本发明实施例中,上述描述特征的提取与选择,有助于考虑应用之间的关系和排除噪音代码,相同的代码块可以由不同的应用共享,比如使用百度地图的sdk,就需要将相应的官方代码植入所开发应用的代码;同样的,通过将恶意负载植入大量良性应用并重打包,便可以生成大量的恶意应用(这也是生成恶意应用的主要方式),因此,可以通过异质图中的代码团----敏感api----代码团的二阶连接来表达这种关系。本发明实施例通过将安卓应用分解后,通过异质图连接的设计方式,来表征应用之间的关系。构建良性关系异质图便是为了剔除噪音代码,在良性关系异质图中连接数最高的代码团节点便视为噪音代码团,在后续的特征表征中便将其忽视,从而提高安卓应用分析的纯度,进而提高检测效果。需要说明的是,在安卓应用检测模型训练阶段,也是通过反编译工具,快速地对数据集中所有apk文件进行解析,从而得到用于训练的样本数据。
步骤102,根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵。
在本发明实施例中,通过上述实施例构建代码团关系异质网络,将apk应用内在关联信息转换为该网络中的类型和结构信息,进一步地,需要通过图嵌入方法,获得每个节点的特征表示。本发明实施例使用基于元路径的随机游走算法,获取代码团关系异质网络中的节点上下文,具体地,定义一个元路径集合p,图2为本发明实施例提供的元路径示意图,可参考图2所示,本发明实施例通过三种元路径(分别为元路径p1、元路径p2和元路径p3)来描述节点之间的连接模式,分别表示多个节点和边的一组连接,也就是异质图上的一段路经。
进一步地,将每一条随机游走的路径看作是一句话,节点看作单词,邻居节点看作上下文,图3为本发明实施例提供的基于元路径p1进行随机游走的示意图,可参考图3所示,图3虚线方框部分所示便是基于元路径p1进行随机游走得到的“句子”,即节点上下文。
在上述实施例的基础上,所述根据所述节点上下文,得到图嵌入矩阵,具体包括:
根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;
将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
在本发明实施例中,使用跳字模型(skip-gram)来生成图嵌入矩阵。skip-gram模型的输出层是一个softmax回归分类器,经过学习,隐层到输出层的权重参数就是最后的图嵌入向量,也就是得到了每个图节点的图嵌入向量。本发明实施例以签名md5节点为中心进行说明,组合周围的k阶邻居图节点的图嵌入向量,级联得到安卓应用安装包的图嵌入矩阵,图4为本发明实施例提供的图嵌入矩阵生成示意图,生成图嵌入矩阵的具体过程可参考图4所示,并且,在这个过程中,邻居阶数k和嵌入向量维度d的取值可通过实验获取得到。
步骤103,将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
本发明实施例提供的基于异质网络的安卓恶意应用检测方法,通过对现有安卓应用检测工作存在的缺乏纯度和缺失的问题进行改善,针对安卓恶意应用进行深层语义的表征,解决了现有方法存在噪音代码和忽略了复杂相互关系的问题,提出了一种构建表征代码包之间复杂关系的异质图方法,并设计相应的节点表征方法,使得安卓应用检测更加全面,检测结果更加准确,提高了安卓应用检测效率。
在上述实施例的基础上,所述内容特征包括代码包、包名、应用程序接口和签名;所述关系特征包括代码包调用关系信息、包名归属信息和签名归属信息。
在上述实施例的基础上,所述根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络,包括:
将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络。
在本发明实施例中,构建得到的代码团关系异质网络(异质图)可定义为有向图g=(n,e),具体映射关系可表示为,节点类型映射φ:n→t和边类型映射ψ:e→r,其中,n表示节点集(即内容特征的集合),e表示边集(即关系特征的集合),t表示节点类型集,r表示边类型集,并且满足节点类型的数量|t|>1或边类型的数量|r|>1。在本发明实施例中,一个异质图g的模式便可表示为tg=(t,r),表示该异质图中包含属于t中的节点类型和属于r中的节点类型。
进一步地,对本发明实施例中的内容特征所对应的节点以及关系特征所对应边进行具体说明:
一、节点类型。1、代码包(也可称为代码团),是指根据应用代码中的逻辑独立性,将从apk文件得到的反汇编代码分为多个代码团。不同的应用的源代码可能包含相同的代码区域,例如,插入了相同恶意负载的重打包应用或共享了良性第三方库的应用。2、包名,是指每个应用都有一个包名(在.gradle文件中配置),但是该包名不是应用的唯一标识,事实上包名是可以任意指定的,比如,可以开发一个和微信报名相同的应用(com.tencent.mm),这种重复其实就非常具有恶意行为的嫌疑。因此,包名也是需要从apk文件中提取的重要特征。3、api,是指敏感api,代表应用程序中涉及敏感权限的所有api,例如,android.permission.sendsms,android.permission.readcontacts。这些敏感api毋庸置疑是判断恶意行为最直接有效的途径,所以也是异质图中不可或缺一种节点。4、签名md5,每个应用始终还是需要一个唯一标识,因为数据集中的标签还是针对于应用的,良性或者恶意的判别结果是用于描述应用的,所以,使用签名的md5值来唯一标识一个应用,作为它被解析出来的一众节点的核心,也是后续节点的特征向量融合为应用的特征矩阵的出发点。
二、边类型。1、代码包调用关系信息,可表示为代码团----调用----敏感api,这种边将代码团和敏感api节点进行连接,从语义表示这部分代码调用了该敏感api。2、包名归属信息,可表示为代码团----属于----包名,一个包可能包含多个代码团,这种类型的边表示这个代码团存在于这个包中,同时,它也可能存在于多个同名或不同名的包中。3、签名归属信息,可表示为代码团----包含于----签名md5,由于使用签名md5来唯一标识应用,这种类型的边就表示该应用,或者更准确地说该apk文件,包含这个代码团。可以理解的是,敏感api----被调用----代码团、包名----包含----代码团、签名md5----包含----代码团就分别是以上三种边的反向。优选地,在本发明实施例中,在对卷积神经网络进行训练的过程中,可构建两张异质图:一个为代码团关系异质图,是由从数据集中所有良性和恶意应用提取出的特征组成的;良性关系异质图,单独由所有良性应用中的代码团节点组成,用于过滤噪音代码以提升分析的纯度。
在上述实施例的基础上,所述卷积神经网络包括vgg网络、googlenet网络或resnet网络。
在本发明实施例中,将每个待检测的安卓应用程序表示为一个图嵌入矩阵,并将该图嵌入矩阵输入到基于卷积神经网络训练得到的检测模型中,输出得到该安卓应用程序的检测结果,从而判断该安卓应用程序中是否为恶意应用。本发明实施例采用的卷积神经网络包括vgg,googlenet、resnet等,并基于这些模型设计了一系列的分类器:hs-vggnet,hs-resnet和hs-incepnet。
在上述实施例的基础上,所述将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络,包括:
对安卓应用安装包进行特征提取,得到所述安卓应用安装包的内容特征和关系特征;
将所述内容特征作为节点,将所述关系特征作为边,并将所述节点和所述边添加到已构建的代码团关系异质网络中,得到目标代码团关系异质网络,以根据所述目标代码团关系异质网络,进而得到所述安卓应用安装包对应的图嵌入矩阵,并通过训练好的安卓应用检测模型,对所述安卓应用安装包进行应用检测。
在本发明实施例中,为了检测未知安卓应用程序是否为恶意应用,首先根据异质图构建过程提取节点和边,然后将提取得到的节点和边,直接连接到已构建的异质图中。为了避免重新训练节点嵌入向量的消耗(实际上,这种消耗是无法忍受的),直接进行应用特征矩阵的构建,并且对没有嵌入向量的节点,使用零向量进行填充。这样,与异质图中已知节点的连接越多,未知安卓应用程序的特征矩阵就越丰富。通过训练好的模型对应用进行检测之后,最终将检测结果进行保存,并生成对应的检测报告。图5为本发明实施例提供的安卓应用检测整体流程示意图,对安卓应用安装包进行应用检测的整体过程可参考图5所示。
图6为本发明实施例提供的基于异质网络的安卓恶意应用检测系统的结构示意图,如图6所示,本发明实施例提供了一种基于异质网络的安卓恶意应用检测系统,包括特征提取模块601、图嵌入矩阵生成模块602和安卓应用检测模块603,其中,特征提取模块601用于根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;图嵌入矩阵生成模块602用于根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;安卓应用检测模块603用于将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
本发明实施例提供的基于异质网络的安卓恶意应用检测系统,通过对现有安卓应用检测工作存在的缺乏纯度和缺失的问题进行改善,针对安卓恶意应用进行深层语义的表征,解决了现有方法存在噪音代码和忽略了复杂相互关系的问题,提出了一种构建表征代码包之间复杂关系的异质图方法,并设计相应的节点表征方法,使得安卓应用检测更加全面,检测结果更加准确,提高了安卓应用检测效率。
在上述实施例的基础上,所述图嵌入矩阵生成模块包括第一处理单元和第二处理单元,其中,第一处理单元,用于根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;第二处理单元,用于将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图7为本发明实施例提供的电子设备结构示意图,参照图7,该电子设备可以包括:处理器(processor)701、通信接口(communicationsinterface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于异质网络的安卓恶意应用检测方法,例如包括:根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种基于异质网络的安卓恶意应用检测方法,其特征在于,包括:
根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;
根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;
将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
2.根据权利要求1所述的基于异质网络的安卓恶意应用检测方法,其特征在于,所述内容特征包括代码包、包名、应用程序接口和签名;所述关系特征包括代码包调用关系信息、包名归属信息和签名归属信息。
3.根据权利要求1所述的基于异质网络的安卓恶意应用检测方法,其特征在于,所述根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络,包括:
将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络。
4.根据权利要求1所述的基于异质网络的安卓恶意应用检测方法,其特征在于,所述根据所述节点上下文,得到图嵌入矩阵,包括:
根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;
将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
5.根据权利要求1所述的基于异质网络的安卓恶意应用检测方法,其特征在于,所述卷积神经网络包括vgg网络、googlenet网络或resnet网络。
6.根据权利要求3所述的基于异质网络的安卓恶意应用检测方法,其特征在于,所述将所述内容特征作为节点,并通过所述关系特征作为边对所述节点进行连接,构建得到代码团关系异质网络,包括:
对安卓应用安装包进行特征提取,得到所述安卓应用安装包的内容特征和关系特征;
将所述内容特征作为节点,将所述关系特征作为边,并将所述节点和所述边添加到已构建的代码团关系异质网络中,得到目标代码团关系异质网络,以根据所述目标代码团关系异质网络,进而得到所述安卓应用安装包对应的图嵌入矩阵,并通过训练好的安卓应用检测模型,对所述安卓应用安装包进行应用检测。
7.一种基于异质网络的安卓恶意应用检测系统,其特征在于,包括:
特征提取模块,用于根据安卓应用安装包中的内容特征和关系特征,构建代码团关系异质网络;
图嵌入矩阵生成模块,用于根据随机游走算法和预设元路径,获取所述代码团关系异质网络中的节点上下文,并根据所述节点上下文,得到图嵌入矩阵;
安卓应用检测模块,用于将所述图嵌入矩阵输入到训练好的安卓应用检测模型,得到所述安卓应用安装包的应用检测结果,其中,所述训练好的安卓应用检测模型是通过样本图嵌入矩阵,对卷积神经网络进行训练得到的。
8.根据权利要求7所述的基于异质网络的安卓恶意应用检测系统,其特征在于,所述图嵌入矩阵生成模块包括:
第一处理单元,用于根据所述节点上下文,基于跳字模型,得到每个图节点对应的图嵌入向量;
第二处理单元,用于将所述图嵌入向量进行组合,得到所述安卓应用安装包对应的图嵌入矩阵。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于异质网络的安卓恶意应用检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述基于异质网络的安卓恶意应用检测方法的步骤。
技术总结