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

文档序号:35997651发布日期:2023-11-16 09:51阅读:35来源:国知局
基于动态原型的安卓小样本恶意软件家族检测方法及装置

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


背景技术:

1、连接到互联网的移动设备已经无处不在。它们正在以多种方式改变我们的日常生活(如社交、网上银行、医疗保健、教育、日常工作等)。安卓作为最流行的移动操作系统之一,是移动市场的基础软件基础设施。不幸的是,由于其开放性和普及性,安卓也成为许多网络攻击的主要目标之一,比如有的恶意安卓软件通过发送短信和拨打电话的形式产生恶意扣费,或者在下载该软件的同时附带下载大量不需要的其他软件等。如何有效地检测分类安卓恶意软件已经成为当前众多国内外学者的研究重点。

2、近年来,大量基于机器学习尤其是深度学习的研究方法被提出,根据特征提取方式可分为基于静态分析和基于动态分析的方法。静态恶意代码检测是在不运行代码的情况下,利用反编译技术提取api调用、权限等特征,具有速度快、开销小等优点,但难以应对代码混淆等技术;动态分析是在模拟器或者真实设备上安装运行应用程序,并实时监控其系统调用等行为,可以一定程度上弥补静态分析的不足,但是时间复杂度高且某些代码行为触发难度特殊。两种方法各有优劣因此不少工作经常使用混合分析以提高模型检测性能。常规的基于机器学习的检测分类方法大多依赖大量标记样本,忽略了新型恶意软件家族发现初期往往样本稀缺的事实。

3、而针对这类小样本类别的检测在安卓恶意软件领域并不成熟,相反在图像领域则提出了众多性能良好的模型如匹配网络、原型网络等,其中原型网络使用类别内所有样本的均值作为原型向量代表每个类别,再基于相似性度量进行检测,取得了很好的效果。然而安卓恶意软件家族内部存在迭代现象,简单取均值作为原型向量不够具有代表性。因此,有必要研究对于样本稀缺的安卓恶意软件家族(小样本安卓恶意软件家族)的特定检测方法,高效识别发展初期的小样本安卓恶意软件家族。


技术实现思路

1、本发明的目的在于针对目前小样本安卓恶意软件家族检测方法的不足,提供一种基于动态原型的安卓小样本恶意软件家族检测方法及装置。

2、本发明的目的是通过以下技术方案来实现的:一种基于动态原型的安卓小样本恶意软件家族检测方法,该方法包括以下步骤:

3、s1,收集安卓恶意软件样本构造数据集,包括用于训练特征提取网络的训练集,以及进行小样本安卓恶意软件家族检测的测试集;

4、s2,对数据集中所有apk样本通过静动态分析得到对应特征,并组合得到特征向量;

5、s3,将训练集中apk样本特征向量作为输入,基于对比学习训练特征提取网络;

6、s4,将测试集分为带标签的支持集和无标签的查询集,测试集与训练集的家族标签空间不相交;将测试集中所有样本经静动态分析后提取的高维特征向量,输入训练好的特征提取网络,得到嵌入空间内的低维特征向量;

7、s5,对于支持集得到的每个家族内所有样本的低维特征向量,通过聚类后得到多个聚簇中心,再基于每个聚簇中心与查询样本的相似度加权得到代表每个家族的动态原型向量;

8、s6,对于s5得到的所有家族的动态原型向量,基于度量学习计算与查询样本特征向量欧式距离最近的动态原型向量,该动态原型向量的家族类别即为查询样本所属的家族类别。

9、进一步地,s1中,收集安卓恶意软件样本,根据家族标签分为多个恶意家族;将样本数量小于设定阈值的小样本恶意软件家族放入测试集,其他恶意软件家族放入训练集。

10、进一步地,静态分析包括:使用安卓逆向分析平台进行逆向,通过smali文件提取api调用和操作码,通过androidmanifest.xml文件提取权限;动态分析包括:首先在模拟器或者真实设备上安装运行程序,然后监控记录系统调用和动态加载特征。

11、进一步地,s2中,对于提取的所有类别特征,分别构建危险敏感列表,即每个类别特征对应一个危险敏感列表,危险敏感列表中存储恶意软件常出现的该类别特征中的单个特征;

12、对于每个apk样本,分类别进行查看,判断各类别特征中每个特征是否包含在对应类别的危险敏感列表中,若包含则设置对应特征值为1,否则为0,从而得到多个0-1向量,分别代表一类特征,将所有向量拼接得到代表该apk样本的长特征向量。

13、进一步地,s3中,构建三层mlp作为特征提取网络,第一层节点数与提取的单个特征个数保持一致;选择triplet网络训练范式进行训练,首先选择训练集中随机一个样本特征向量x,再随机选择与x同家族样本特征向量x+,与x不同家族样本特征向量x-;令d1为x与x+之间距离,d2为x与x-之间距离,则:

14、

15、

16、其中f为特征提取网络,f(x)、f(x+)、f(x-)分别为x、x+、x-原始高维特征向量通过f后的低维特征向量;

17、训练的目标是最小化同一家族内部样本距离d1,最大化不同家族间样本距离d2,因此损失函数定义如下:

18、

19、其中margin是一个正值,用于控制同类样本之间距离和异类样本之间距离之间的差异;

20、最小化loss(d1,d2),则||f(x)-f(x+)||2→0,||f(x)-f(x-)||2→∞,d1→0,d2→∞,符合预期训练目标。

21、进一步地,s4中,使用标准的小样本分类问题定义,假设支持集中共有n个恶意家族,每个家族有k个带标签的apk样本,则原多家族分类问题为n-way k-shot小样本分类问题;查询集无标签信息,其分类结果与支持集家族标签空间一致。

22、进一步地,s5中,对于支持集得到的每个家族内所有样本的低维特征向量,通过聚类后得到多个聚簇中心;假设qm为查询集中第m个查询样本,对于支持集中第i个家族,对应查询样本qm的动态原型向量计算公式如下:

23、

24、其中t是聚簇的数量,是第i个家族的聚簇中心向量,αj是第j个聚簇中心向量的权重计算公式如下:

25、

26、

27、其中ej是第j个聚簇中心向量与查询样本的欧氏距离;f(qm)为查询样本qm通过特征提取网络f后的低维特征向量。

28、进一步地,s6中,对于查询集中第m个查询样本qm,通过s5得到支持集中n个家族的对应动态原型向量查询样本的分类问题转化成如下优化问题:

29、

30、其中c(qm)为求解的查询样本qm所属的家族类别,即查询样本的家族标签与特征空间中距离其通过特征提取网络f后的低维特征向量最近的动态原型向量对应的家族标签一致。

31、本发明还提供一种基于动态原型的安卓小样本恶意软件家族检测装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述的基于动态原型的安卓小样本恶意软件家族检测方法。

32、本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的基于动态原型的安卓小样本恶意软件家族检测方法。

33、本发明的有益效果是:本发明提供的基于动态原型的安卓小样本恶意软件家族检测方法,在原型网络的基础上针对安卓恶意软件领域的特性做了进一步改进,实现了对于样本极度稀缺的恶意家族的高效检测。相比传统单一的机器学习检测分类方法,本发明方法不需要依赖大量标记样本,解决了新型恶意家族发现初期样本稀少难以检测的问题。本发明方法检测准确率高,实现方便。

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