一种基于特权特征和污点特征的机器学习恶意软件检测方法技术

技术编号:33085723 阅读:19 留言:0更新日期:2022-04-15 10:48
本文公开了一种基于特权特征和污点特征的机器学习恶意软件检测方法,该方法基于特权特征对现有的基于污点分析的检测方案进行了改进,能够在使用较少数据量的同时实现高分类结果,通过扩展特征值的多维计算,构建基于特权特征、污点源特征和污点汇特征的特征值表,并引入Transformer对其进行分析和检测,这是基于Android平台的恶意软件检测的良好实现。基于Android平台的恶意软件检测的良好实现。基于Android平台的恶意软件检测的良好实现。

【技术实现步骤摘要】
一种基于特权特征和污点特征的机器学习恶意软件检测方法


[0001]本专利技术涉及一种基于特权特征和污点特征的机器学习恶意软件检测方法,属于信息安全


技术介绍

[0002]随着移动设备的快速发展,应用软件的安全问题也越来越突出。即使是从官方应用商店下载的应用程序,也会存在许多问题,这些应用会访问一些敏感信息,例如设备的位置、联系人、通话记录和IMEI(国际移动设备标识)。此外,社交相关应用程序和银行相关应用程序还会收集和存储大量敏感数据和私人信息,例如社交软件中的聊天记录、银行相关应用程序中的银行密码等。这些行为的后果,无论是有意的还是无意的,都是不可预测的。流行应用程序的敏感数据泄漏已经得到广泛承认。
[0003]移动操作系统,例如Android,使用权限系统来限制应用程序的权限,以确保获取的Android应用程序的完整性以及其他一些相关的安全机制,例如访问和过滤敏感数据,但现有系统仍然没有解决Android应用程序引入的安全威胁。
[0004]对于恶意软件检测,许多研究人员将其分为静态分析和动态分析,静态污点分析首先根据字节码文件构建函数调用图;然后提取元数据识别敏感信息;最后,通过调用图传播污染分析来识别可能的泄漏路径。但是由于上下文分析不足,存在较高的误报率。动态分析是在模拟环境或真实环境中,在程序的运行过程中进行检测观察,或基于行为分析,或基于污点分析,来判断应用程序在运行过程中是否存在恶意的行为倾向。但是,动态分析作为服务运行必然会占用系统额外的内存和资源,降低手机的性能,并且当动态监控程序受到攻击时,会暴露敏感信息并泄漏更高级别的权限。因此,针对动态污点分析耗时、内存密集以及静态污点分析特征不足的问题,本专利技术提出了一种基于权限特征和污点特征的恶意软件检测方案,并且使用深度学习算法,有效地提升了恶意软件检测分类的结果。

技术实现思路

[0005]本专利技术所要解决的技术问题是:提供一种基于特权特征和污点特征的机器学习恶意软件检测方法,结合了权限特征和污点特征,对用户的隐私信息进行保护。
[0006]本专利技术为解决上述技术问题采用以下技术方案:本专利技术的一种基于特权特征和污点特征的机器学习恶意软件检测方法,是一种轻量级的基于上下文的Android恶意软件检测方案,扩展特征值的多维计算,构建基于特权特征、污点源特征和污点汇特征的特征值表,其中,特征提取阶段包括以下步骤:
[0007]步骤1,解压APK文件,获取AndroidMainfest.xml文件;
[0008]步骤2,反编译AndroidMainfest.xml文件,从中提取权限信息;
[0009]步骤3,使用FlowDroid提取sink特征、source特征和path特征;
[0010]特征预处理与计算阶段包括以下步骤:
[0011]步骤4,计算每种权限出现的频率,得到单个权限的特征值表;
[0012]步骤5,根据步骤4,计算单个程序整体权限特征值;
[0013]步骤6,计算sink特征、source特征和path特征的特征值,若泄露路径为0时,Source特征和Sink特征的特征值计算与权限的特征值计算相同;若泄漏路径不为0时Source和Sink的特征值受Path特征值的影响,每增加一条Path,则对应的Source和Sink的特征值按比例P增加。
[0014]步骤7,使用深度学习算法进行检测和分类。
[0015]作为本专利技术的一种优选方案,步骤6所述的比例P为10%。
[0016]作为本专利技术的一种优选方案,步骤4中计算每种权限出现的频率,得到单个权限的特征值表;具体过程如下:
[0017]先从N个Android恶意软件中提取出现频率最高的M种权限;计算每种权限出现的频率,将该频率乘以100作为每一个权限的特征值,得到单个权限的特征值表,将特征值记为:
[0018][0019]作为本专利技术的一种优选方案,步骤5中计算单个程序整体权限特征值,具体过程如下:
[0020]根据单个Android应用程序本身所提取的权限,按照特征值表所赋予的特征值进行计算,进而得出Android应用程序的权限特征值,计算公式如下:
[0021][0022]其中所指的是第i个特征权限的存在情况,0表示不存在该权限特征,1表示存在该权限特征,则表示第i个特征权限的特征值。
[0023]作为本专利技术的一种优选方案,步骤6中Source特征,Sink特征和Path特征是有着非常重要的联系,当出现一个Path时,意味存在数据的泄露的可能,它会将该Android应用程序的危险性提高一个等级,而每增加一条可能泄露的路径,数据泄露的可能性就越大,程序的危险性也越高,故V
permission
和V
Source
值受到V
Path
的影响;将所发现的泄漏的路径数作为Path特征的特征值。
[0024]Source特征是根据污点分析得到的所有Source的集合,它是引入的不受信任数据的接口和APP访问危险权限时调用的API等,我们会根据提取到的Source特征进行量化,得到被测安卓应用程序的Source特征值。
[0025]Sink特征是根据污点分析得到的所有Sink的集合,它是可能导致隐私泄漏的敏感API的调用等,我们会根据提取到的Sink特征进行量化,得到被测安卓应用程序的Sink特征值。
[0026]Path特征是从Source集合到Sink集合中所有可达路径的集合,存在这样一条或多条路径说明被测安卓应用程序存在数据泄漏的可能,我们会将提取到的Path特征进行量化。
[0027]计算sink特征和source特征特征值,具体过程如下:
[0028]当V
Path
=0时,即在没有发现泄露的前提下,Source特征和Sink特征的特征值计算
与权限的特征值计算相同,从Source特征和Sink特征的提取中发现,Sink特征的数量要比Source多,Source特征选取的是N
source
个特征,而Sink特征则是选取N
sink
个特征,其中N
sink
大于等于2N
source

[0029]当V
Path
=0时,Source特征值计算公式如下:
[0030][0031]其中表示第i个Source特征值的存在情况,0表示不存在该Source特征,1表示存在该Source特征,则表示第i个Source特征的特征值。
[0032]Sink特征值计算与Source特征值计算相同,公式如下:
[0033][0034]其中表示第i个Sink特征值的存在情况,0表示不存在该Sink特征,1表示存在该Sink特征,则表示第i个Sink特征的特征值。
[0035]当V
Path
≠0时,即出现可能泄露的路径时,Source和Si本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于特权特征和污点特征的机器学习恶意软件检测方法,其特征在于,包括如下步骤:步骤1,解压APK文件,获取AndroidMainfest.xml文件;步骤2,反编译AndroidMainfest.xml文件,从中提取权限信息;步骤3,使用FlowDroid提取sink特征、source特征和path特征;步骤4,计算每种权限出现的频率,得到单个权限的特征值表;步骤5,根据步骤4,计算单个程序整体权限特征值;步骤6,计算sink特征、source特征和path特征的特征值,若泄露路径为0时,Source特征和Sink特征的特征值计算与权限的特征值计算相同;若泄漏路径不为0时Source和Sink的特征值受Path特征值的影响,每增加一条Path,则对应的Source和Sink的特征值按比例P增加;步骤7,使用深度学习算法进行检测和分类。2.根据权利要求1所述一种基于特权特征和污点特征的机器学习恶意软件检测方法,其特征在于,步骤6所述的比例P为10%。3.根据权利要求1所述一种基于特权特征和污点特征的机器学习恶意软件检测方法,其特征在于,步骤4中计算每种权限出现的频率,得到单个权限的特征值表;具体过程如下:先从N个Android恶意软件中提取出现频率最高的M种权限;计算每种权限出现的频率,将该频率乘以100作为每一个权限的特征值,得到单个权限的特征值表,将特征值记为:4.根据权利要求1所述一种基于特权特征和污点特征的机器学习恶意软件检测方法,其特征在于,步骤5中计算单个程序整体权限特征值,具体过程如下:根据单个Android应用程序本身所提取的权限,按照特征值表所赋予的特征值进行计算,进而得出Android应用程序的权限特征值,计算公式如下:其中所指的是第i个特征权限的存在情况,0表示不存在该权限特征,1表示存在该权限特征,则表示第i个特征权限的特征值。5.根据权利要求1所述一种基于特权特征和污点特征的机器学习恶意软件检测方法,其特征在于,步骤6中计算sink特征...

【专利技术属性】
技术研发人员:方黎明朱泽升恽昕宇
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

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

1