当前位置: 首页 > 专利查询>浙江大学专利>正文

基于动态原型的安卓小样本恶意软件家族检测方法及装置制造方法及图纸

技术编号:39409802 阅读:11 留言:0更新日期:2023-11-19 16:01
本发明专利技术公开了一种基于动态原型的安卓小样本恶意软件家族检测方法及装置,解决了现有安卓软件家族检测方法无法有效地检测小样本恶意软件家族的问题。该方法首先将安卓恶意软件样本通过静、动态分析提取相应特征组成特征向量,然后借助训练集基于对比学习训练特征提取网络,将原始高维特征向量映射到低维特征空间内。在特征空间内,对于每个恶意家族通过聚类生成多个聚簇中心,然后基于每个聚簇中心与待检测样本的相似度加权生成代表该家族的动态原型向量,最终基于度量完成检测分类。本发明专利技术能够在恶意家族样本极其稀缺的情况下准确分类,有效解决了新型安卓恶意软件家族发现初期样本稀少无法运用传统机器学习模型进行检测分类的问题。测分类的问题。测分类的问题。

【技术实现步骤摘要】
基于动态原型的安卓小样本恶意软件家族检测方法及装置


[0001]本专利技术属于安卓恶意软件分析研究领域,涉及一种基于动态原型的安卓小样本恶意软件家族检测方法及装置。

技术介绍

[0002]连接到互联网的移动设备已经无处不在。它们正在以多种方式改变我们的日常生活(如社交、网上银行、医疗保健、教育、日常工作等)。安卓作为最流行的移动操作系统之一,是移动市场的基础软件基础设施。不幸的是,由于其开放性和普及性,安卓也成为许多网络攻击的主要目标之一,比如有的恶意安卓软件通过发送短信和拨打电话的形式产生恶意扣费,或者在下载该软件的同时附带下载大量不需要的其他软件等。如何有效地检测分类安卓恶意软件已经成为当前众多国内外学者的研究重点。
[0003]近年来,大量基于机器学习尤其是深度学习的研究方法被提出,根据特征提取方式可分为基于静态分析和基于动态分析的方法。静态恶意代码检测是在不运行代码的情况下,利用反编译技术提取API调用、权限等特征,具有速度快、开销小等优点,但难以应对代码混淆等技术;动态分析是在模拟器或者真实设备上安装运行应用程序,并实时监控其系统调用等行为,可以一定程度上弥补静态分析的不足,但是时间复杂度高且某些代码行为触发难度特殊。两种方法各有优劣因此不少工作经常使用混合分析以提高模型检测性能。常规的基于机器学习的检测分类方法大多依赖大量标记样本,忽略了新型恶意软件家族发现初期往往样本稀缺的事实。
[0004]而针对这类小样本类别的检测在安卓恶意软件领域并不成熟,相反在图像领域则提出了众多性能良好的模型如匹配网络、原型网络等,其中原型网络使用类别内所有样本的均值作为原型向量代表每个类别,再基于相似性度量进行检测,取得了很好的效果。然而安卓恶意软件家族内部存在迭代现象,简单取均值作为原型向量不够具有代表性。因此,有必要研究对于样本稀缺的安卓恶意软件家族(小样本安卓恶意软件家族)的特定检测方法,高效识别发展初期的小样本安卓恶意软件家族。

技术实现思路

[0005]本专利技术的目的在于针对目前小样本安卓恶意软件家族检测方法的不足,提供一种基于动态原型的安卓小样本恶意软件家族检测方法及装置。
[0006]本专利技术的目的是通过以下技术方案来实现的:一种基于动态原型的安卓小样本恶意软件家族检测方法,该方法包括以下步骤:
[0007]S1,收集安卓恶意软件样本构造数据集,包括用于训练特征提取网络的训练集,以及进行小样本安卓恶意软件家族检测的测试集;
[0008]S2,对数据集中所有APK样本通过静动态分析得到对应特征,并组合得到特征向量;
[0009]S3,将训练集中APK样本特征向量作为输入,基于对比学习训练特征提取网络;
[0010]S4,将测试集分为带标签的支持集和无标签的查询集,测试集与训练集的家族标签空间不相交;将测试集中所有样本经静动态分析后提取的高维特征向量,输入训练好的特征提取网络,得到嵌入空间内的低维特征向量;
[0011]S5,对于支持集得到的每个家族内所有样本的低维特征向量,通过聚类后得到多个聚簇中心,再基于每个聚簇中心与查询样本的相似度加权得到代表每个家族的动态原型向量;
[0012]S6,对于S5得到的所有家族的动态原型向量,基于度量学习计算与查询样本特征向量欧式距离最近的动态原型向量,该动态原型向量的家族类别即为查询样本所属的家族类别。
[0013]进一步地,S1中,收集安卓恶意软件样本,根据家族标签分为多个恶意家族;将样本数量小于设定阈值的小样本恶意软件家族放入测试集,其他恶意软件家族放入训练集。
[0014]进一步地,静态分析包括:使用安卓逆向分析平台进行逆向,通过smali文件提取API调用和操作码,通过AndroidManifest.xml文件提取权限;动态分析包括:首先在模拟器或者真实设备上安装运行程序,然后监控记录系统调用和动态加载特征。
[0015]进一步地,S2中,对于提取的所有类别特征,分别构建危险敏感列表,即每个类别特征对应一个危险敏感列表,危险敏感列表中存储恶意软件常出现的该类别特征中的单个特征;
[0016]对于每个APK样本,分类别进行查看,判断各类别特征中每个特征是否包含在对应类别的危险敏感列表中,若包含则设置对应特征值为1,否则为0,从而得到多个0

1向量,分别代表一类特征,将所有向量拼接得到代表该APK样本的长特征向量。
[0017]进一步地,S3中,构建三层MLP作为特征提取网络,第一层节点数与提取的单个特征个数保持一致;选择Triplet网络训练范式进行训练,首先选择训练集中随机一个样本特征向量x,再随机选择与x同家族样本特征向量x
+
,与x不同家族样本特征向量x

;令d1为x与x
+
之间距离,d2为x与x

之间距离,则:
[0018][0019][0020]其中f为特征提取网络,f(x)、f(x
+
)、f(x

)分别为x、x
+
、x

原始高维特征向量通过f后的低维特征向量;
[0021]训练的目标是最小化同一家族内部样本距离d1,最大化不同家族间样本距离d2,因此损失函数定义如下:
[0022][0023]其中margin是一个正值,用于控制同类样本之间距离和异类样本之间距离之间的差异;
[0024]最小化Loss(d1,d2),则||f(x)

f(x
+
)||2→
0,||f(x)

f(x

)||2→
∞,d1→
0,d2→
∞,符合预期训练目标。
[0025]进一步地,S4中,使用标准的小样本分类问题定义,假设支持集中共有n个恶意家
族,每个家族有k个带标签的APK样本,则原多家族分类问题为n

way k

shot小样本分类问题;查询集无标签信息,其分类结果与支持集家族标签空间一致。
[0026]进一步地,S5中,对于支持集得到的每个家族内所有样本的低维特征向量,通过聚类后得到多个聚簇中心;假设q
m
为查询集中第m个查询样本,对于支持集中第i个家族,对应查询样本q
m
的动态原型向量计算公式如下:
[0027][0028]其中t是聚簇的数量,是第i个家族的聚簇中心向量,α
j
是第j个聚簇中心向量的权重计算公式如下:
[0029][0030][0031]其中e
j
是第j个聚簇中心向量与查询样本的欧氏距离;f(q
m
)为查询样本q
m
通过特征提取网络f后的低维特征向量。
[0032]进一步地,S6中,对于查询集中第m个查询样本q
m
,通过S5得到支持集中n个家族的对应动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态原型的安卓小样本恶意软件家族检测方法,其特征在于,包括以下步骤:S1,收集安卓恶意软件样本构造数据集,包括用于训练特征提取网络的训练集,以及进行小样本安卓恶意软件家族检测的测试集;S2,对数据集中所有APK样本通过静动态分析得到对应特征,并组合得到特征向量;S3,将训练集中APK样本特征向量作为输入,基于对比学习训练特征提取网络;S4,将测试集分为带标签的支持集和无标签的查询集,测试集与训练集的家族标签空间不相交;将测试集中所有样本经静动态分析后提取的高维特征向量,输入训练好的特征提取网络,得到嵌入空间内的低维特征向量;S5,对于支持集得到的每个家族内所有样本的低维特征向量,通过聚类后得到多个聚簇中心,再基于每个聚簇中心与查询样本的相似度加权得到代表每个家族的动态原型向量;S6,对于S5得到的所有家族的动态原型向量,基于度量学习计算与查询样本特征向量欧式距离最近的动态原型向量,该动态原型向量的家族类别即为查询样本所属的家族类别。2.根据权利要求1所述的基于动态原型的安卓小样本恶意软件家族检测方法,其特征在于,S1中,收集安卓恶意软件样本,根据家族标签分为多个恶意家族;将样本数量小于设定阈值的小样本恶意软件家族放入测试集,其他恶意软件家族放入训练集。3.根据权利要求1所述的基于动态原型的安卓小样本恶意软件家族检测方法,其特征在于,静态分析包括:使用安卓逆向分析平台进行逆向,通过smali文件提取API调用和操作码,通过AndroidManifest.xml文件提取权限;动态分析包括:首先在模拟器或者真实设备上安装运行程序,然后监控记录系统调用和动态加载特征。4.根据权利要求1所述的基于动态原型的安卓小样本恶意软件家族检测方法,其特征在于,S2中,对于提取的所有类别特征,分别构建危险敏感列表,即每个类别特征对应一个危险敏感列表,危险敏感列表中存储恶意软件常出现的该类别特征中的单个特征;对于每个APK样本,分类别进行查看,判断各类别特征中每个特征是否包含在对应类别的危险敏感列表中,若包含则设置对应特征值为1,否则为0,从而得到多个0

1向量,分别代表一类特征,将所有向量拼接得到代表该APK样本的长特征向量。5.根据权利要求1所述的基于动态原型的安卓小样本恶意软件家族检测方法,其特征在于,S3中,构建三层MLP作为特征提取网络,第一层节点数与提取的单个特征个数保持一致;选择Triplet网络训练范式进行训练,首先选择训练集中随机一个样本特征向量x,再随机选择与x同家族样本特征向量x
+
,与x不同家族样本特征向量x

;令d1为x与x
+
之间距离,d2为x与x

之间距离,则:之间距离,则:其中f为特征提取网络,f(x)、f(x
+
)、f(x

)分别为x、x
+<...

【专利技术属性】
技术研发人员:王竟亦周帆蒋聪王文海
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1