一种结合动静态分析的Android恶意软件检测方法与流程

文档序号:37271938发布日期:2024-03-12 21:01阅读:14来源:国知局
一种结合动静态分析的Android恶意软件检测方法与流程

本发明涉及恶意软件检测,具体而言,涉及一种结合动静态分析的android恶意软件检测方法。


背景技术:

1、随着智能手机的普及,android系统已成为最受欢迎的移动操作系统之一。近年来,随着android系统用户数量的增加,恶意软件也日益增多,恶意软件不仅会窃取用户的个人隐私数据,甚至会控制用户的手机,造成用户的经济损失。因此,基于android系统的恶意软件检测已成为一个重要的研究领域。就目前而言,现有的研究主要通过分析恶意软件的应用程序行为、流量等动态特征以及权限、api调用、操作码等静态特征,结合机器学习和深度学习模型提出各种检测方法和工具,以保护用户的手机安全。然而,恶意软件开发者也在不断地提高其恶意软件的隐蔽性,因此导致了恶意软件的代码变得难以理解和分析,从而使检测工具难以识别其真正的行为,也难以被反汇编和分析。基于此,针对上述问题,我们设计了一种结合动静态分析的android恶意软件检测方法。


技术实现思路

1、本发明的目的在于提供一种结合动静态分析的android恶意软件检测方法,其通过结合动态分析手段及静态分析手段,不仅能够自动化运行android应用程序提取动态特征,消除混淆和加壳技术对应用程序的影响;而且能够分析apk文件的代码提取静态特征,保证代码的高覆盖率,进一步提高了恶意应用的检测能力。

2、本发明的实施例通过以下技术方案实现:

3、一种结合动静态分析的android恶意软件检测方法,该方法的步骤包括:

4、对待检测android应用程序样本集文件进行反编译,并提取函数调用关系,构建函数调用图,并对函数调用图的敏感api和反射api进行标记,生成标记函数调用图;

5、通过六度分隔理论对标记函数调用图进行挖掘,得到敏感子图及反射子图,基于tf-idf算法分别计算求得敏感api的恶意系数以及反射api的恶意系数,并通过敏感api的恶意系数将敏感子图映射为敏感特征向量,通过反射api的恶意系数将反射子图映射为反射特征向量,结合敏感特征向量、反射特征向量与全连接神经网络,构建android应用程序的静态恶意分类模型;

6、将android应用程序的静态恶意分类模型与预设的android应用程序的动态恶意分类模型进行结合,以完成android恶意软件的精准检测。

7、可选的,所述对待检测android应用程序样本集文件进行反编译,具体为通过apktool模块对待检测android应用程序样本集文件进行反编译。

8、可选的,所述标记函数调用图的数学表达式如下:

9、tfcg=(v,e)

10、

11、vi=(namei,typei)

12、其中,v为函数调用图的结点,e为函数调用图的边,namei为结点vi的函数名,typei为标记,代表该函数是否属于敏感api或者反射api。

13、可选的,所述基于tf-idf算法分别计算求得敏感api的恶意系数以及反射api的恶意系数,其中,在计算敏感api的恶意系数前,还包括将所述敏感api的功能归类到不同的敏感权限中,再基于所述tf-idf算法计算求得敏感权限的恶意系数,其计算公式为:

14、

15、其中,pi为某个敏感权限,mc(pi)为恶意应用数据集中敏感权限pi对应敏感api的数量,p为恶意应用数量,c为所有应用数量,bc(pi)为良性应用数据集中权限pi对应api的数量。

16、可选的,所述基于所述tf-idf算法计算求得反射api的恶意系数,其计算公式为:

17、

18、其中,mc(ari)为恶意应用数据集中rai的数量,bc(rai)为良性应用数据集中rai的数量。

19、可选的,所述通过敏感api的恶意系数将敏感子图映射为敏感特征向量,其计算公式为:

20、

21、

22、其中,vsl为敏感权限pi对应的敏感api结点集合,vk为vsi中的各个结点,vi为敏感特征向量中第i维特征值,malcoe(pi)为敏感权限pi的恶意系数,count(vk)为结点vk对应敏感api被调用的总次数,pred(vk)为结点vk的前驱结点集合,vj为每个前驱结点,e[vj,vk].w为源结点为vj且目标结点为vk的边e的权重w,表征为调用次数。

23、可选的,所述预设的android应用程序的动态恶意分类模型,其构建过程为:

24、运行android应用程序样本集文件,并授予全部权限,监控并抓取明文请求流量以及行为日志;

25、对明文请求流量进行url解码,并提取明文请求流量中的有效载荷,将有效载荷转换为二维图像,并对二维图像进行填充;

26、基于tf-idf算法分别计算行为日志中各个行为的敏感系数,通过阈值机制对敏感行为进行识别,并统计敏感行为在行为日志中的执行次数,求得固定维度向量,将固定维度向量与二维图像进行拼接,形成特征向量;

27、结合特征向量与机器学习算法,构建android应用程序的动态恶意分类模型。

28、可选的,所述基于tf-idf算法分别计算行为日志中各个行为的敏感系数,其计算公式为:

29、

30、其中,sencoe(ai)为某个行为ai的敏感系数,fre in mal(ai)、fre in ben(ai)分别为行为ai分别在恶意应用数据集和良性应用数据集中的出现频率。

31、可选的,所述通过阈值机制对敏感行为进行识别,具体为:给定阈值θ,并设定敏感系数sencoe(ai)≥θ的行为作为敏感行为。

32、可选的,所述将有效载荷转换为二维图像,具体为:通过ascii码十六进制将有效载荷转换为二维图像。

33、本发明实施例的技术方案至少具有如下优点和有益效果:

34、本发明实施例通过结合动态分析手段及静态分析手段,不仅能够自动化运行android应用程序提取动态特征,消除混淆和加壳技术对应用程序的影响;而且能够分析apk文件的代码提取静态特征,保证代码的高覆盖率,进一步提高了恶意应用的检测能力。



技术特征:

1.一种结合动静态分析的android恶意软件检测方法,其特征在于,该方法的步骤包括:

2.根据权利要求1所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述对待检测android应用程序样本集文件进行反编译,具体为通过apktool模块对待检测android应用程序样本集文件进行反编译。

3.根据权利要求1所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述标记函数调用图的数学表达式如下:

4.根据权利要求1所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述基于tf-idf算法分别计算求得敏感api的恶意系数以及反射api的恶意系数,其中,在计算敏感api的恶意系数前,还包括将所述敏感api的功能归类到不同的敏感权限中,再基于所述tf-idf算法计算求得敏感权限的恶意系数,其计算公式为:

5.根据权利要求4所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述基于所述tf-idf算法计算求得反射api的恶意系数,其计算公式为:

6.根据权利要求5所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述通过敏感api的恶意系数将敏感子图映射为敏感特征向量,其计算公式为:

7.根据权利要求1-6任一项所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述预设的android应用程序的动态恶意分类模型,其构建过程为:

8.根据权利要求7所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述基于tf-idf算法分别计算行为日志中各个行为的敏感系数,其计算公式为:

9.根据权利要求7所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述通过阈值机制对敏感行为进行识别,具体为:给定阈值θ,并设定敏感系数sencoe(ai)≥θ的行为作为敏感行为。

10.根据权利要求7所述的结合动静态分析的android恶意软件检测方法,其特征在于,所述将有效载荷转换为二维图像,具体为:通过ascii码十六进制将有效载荷转换为二维图像。


技术总结
本发明涉及恶意软件检测技术领域,具体而言,涉及一种结合动静态分析的Android恶意软件检测方法,该方法的步骤包括:对待检测Android应用程序样本集文件进行反编译,并提取函数调用关系构建函数调用图,并对其敏感API和反射API进行标记,生成标记函数调用图;通过六度分隔理论对标记函数调用图进行挖掘,得到敏感子图及反射子图,基于TF‑IDF算法分别计算求得敏感API的恶意系数以及反射API的恶意系数,通过恶意系数分别将敏感子图映射为敏感特征向量,将反射子图映射为反射特征向量,构建Android应用程序的静态恶意分类模型;将Android应用程序的静态恶意分类模型与Android应用程序的动态恶意分类模型结合,完成Android恶意软件的精准检测。

技术研发人员:崔艳鹏,胡建伟,胡业晗
受保护的技术使用者:成都西电网络安全研究院
技术研发日:
技术公布日:2024/3/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1