基于敏感调用路径的Android恶意软件检测方法技术

技术编号:20993062 阅读:55 留言:0更新日期:2019-04-29 22:54
本发明专利技术公开了一种基于敏感调用路径的Android恶意软件检测方法,主要解决现有方案对恶意软件检测精确性较低的问题。其方案是:通过自然语言处理技术构建敏感目标接口API列表;用经过逆向分析的Android应用软件生成敏感调用路径集合;将敏感调用路径作为特征,通过分析大量良性软件和恶意软件数据集,建立Android敏感调用路径特征库;将样本的敏感调用路径集合处理成特征向量,利用特征向量采用有监督的机器学习算法训练分类器模型;用训练好的分类器模型检测出未知安全性的Android应用软件是否为恶意软件。本发明专利技术精度高,易扩展,智能化显著,可用于移动终端的自动化检测和Android应用市场的审查和分析。

Android Malware Detection Method Based on Sensitive Call Path

The invention discloses an Android malware detection method based on sensitive call path, which mainly solves the problem of low accuracy of malware detection in existing schemes. The scheme is: to construct API list of sensitive target interface by natural language processing technology; to generate sensitive call path set by Android application software after reverse analysis; to take sensitive call path as feature, to establish Android sensitive call path feature library by analyzing a large number of benign software and malware data sets; to process sensitive call path set of sample into feature direction. The classifier model is trained by supervised machine learning algorithm using eigenvectors, and the trained classifier model is used to detect whether the Android application software with unknown security is malware. The invention has high precision, easy expansion and remarkable intelligence, and can be used for automatic detection of mobile terminals and examination and analysis of Android application market.

【技术实现步骤摘要】
基于敏感调用路径的Android恶意软件检测方法
本专利技术属于信息安全
,特别涉及一种Android恶意软件检测方法,可用于移动终端的自动化检测和Android应用市场的审查和分析。
技术介绍
Android系统是目前移动终端上搭载的最为流行,使用最为广泛的移动操作系统。随着Android应用深刻融合人类生活,恶意软件也在兴起。根据McAfeeLabs2018年3月份最新发布的威胁报告,截止2017年年底移动恶意软件的总数量已经将近2500万个,全球移动恶意软件的感染率超过了11%。用户一旦安装和感染了恶意程序,所有的隐私数据将面临着被窃取和操纵的风险,危害十分巨大。Android平台拥有海量的应用程序,要对每一个应用程序进行人工分析,判断是否为恶意软件,代价十分巨大导致难以实现,人工分析也存在大量的不确定性。使用机器学习的方法自动检测Android应用的恶意行为,不仅快速而且高效。随着恶意软件的不断发现,训练模型也可以进一步优化,判断应用程序恶意性也将更为准确。但是,使用机器学习的关键是如何提取合适的特征,以及训练出合适的分类模型。特征的准确程度直接影响分类模型的精确性。现本文档来自技高网...

【技术保护点】
1.基于敏感调用路径的Android恶意软件检测方法,其特征在于,包括如下:(1)从国内外主流应用市场和相关样本库下载收集恶意和良性的Android应用软件样本,其中恶意样本和良性样本各占一半,每种样本数量均不小于B个,B为大于等于1的正整数;(2)构建敏感目标接口API列表:收集公开发表的Android安全研究论文和分析报告,建立自然语言表示的Android恶意行为知识库;在Android恶意行为知识库中,提取Android恶意行为描述的关键词;在Android官方的开发文档中收集包含关键词的所有接口API,作为敏感目标接口API列表;(3)使用静态分析工具对每个Android应用软件样本进...

【技术特征摘要】
1.基于敏感调用路径的Android恶意软件检测方法,其特征在于,包括如下:(1)从国内外主流应用市场和相关样本库下载收集恶意和良性的Android应用软件样本,其中恶意样本和良性样本各占一半,每种样本数量均不小于B个,B为大于等于1的正整数;(2)构建敏感目标接口API列表:收集公开发表的Android安全研究论文和分析报告,建立自然语言表示的Android恶意行为知识库;在Android恶意行为知识库中,提取Android恶意行为描述的关键词;在Android官方的开发文档中收集包含关键词的所有接口API,作为敏感目标接口API列表;(3)使用静态分析工具对每个Android应用软件样本进行逆向分析,提取出清单文件和Java字节码文件;(4)根据应用软件的清单文件和Java字节码文件生成Android应用软件的程序调用图;(5)将敏感目标接口API列表输入到程序调用图中,经过迭代查找,将程序调用图的起点作为敏感调用路径的起点,将敏感目标接口API作为终点,生成包含多条敏感调用路径的集合;(6)合并每个样本软件的敏感调用路径集合,去除重复的敏感调用路径之后,建立Android系统敏感调用路径特征库,使用每个样本的敏感调用路径集合中的路径对特征库进行匹配:若路径出现在特征库中,则经特征库对应的路径记为1;反之,记为0,以生成0和1序列,作为每个样本的特征向量;(7)将恶意样本软件的特征向量标注为恶意,将良性的样本软件的特征向量标注为良性,用这些带标注的特征向量构成数据集;(8)在数据集上,使用有监督的机器学习算法,训练分类器模型,并从数据集中随机选择部分数据对该分类器模型进行交叉验证,计算分类器模型的混淆矩阵M,准确率A,精确率P,召回率R,精确率和召回率的调和平均数F1这些指标;(9)根据分类器模型评价指标,调整机器学习算法的参数,训练E次,E为大于等于1的正整数;选择E次训练中评价指标最优的分类器模型,作为训练好的分类器模型;(10)对未知安全性的Android应用程序经过(4)-(6)处理后,输入到(9)训练好的分类器模型中,检测出该应用是否为恶意软件。2.根据权利要求1所述的方法,其中(2)所述的敏感目标接口API列表,是指一系列在Android系统中具有恶意行为倾向的敏感目标接口API集合,包括位置信息,短消息,联系人数据,网络请求,系统调用和反射机制的接口API。3.根据权利要求1所述的方法,其中(2)中使用词频-逆文档频率算法,提取Android恶意行为描述的关键词,其实现如下:(2a)计算Android恶意行为知识库中每条描述语句中的每个目标单词的词频TF:其中,X表示目标单词在描述语句中出现的总次数,L表示该描述语句的总词数;(2b)计算每个目标单词的逆文档频率IDF:其中,N表示知识库中描述语句的总个数;M表示目标单词的描述语句数量;(2c)计算每条描述语句的每个词汇的词频-逆文档频率P,每个词汇的P值用于评估该单词对于整个知识库的重要程度;P=TF·IDF(2d)对所有词汇的词频-逆文档频率P按照从大到小排序,最大的前K个词汇,即为知识库中描述Android恶意行为的关键词,K为大于等于1的正整数。4.根据权利要求1所述的方法,其中(3)中对Android应用软件进行逆向分析,其实现如下:(3a)使用逆向工具APKTOOL解压Android应用软件包,提取清单文件和包含程序核心逻辑的Dalvik字节码文件;(3b)使用反编译工具DARE将Dalvik字节码文件转换为Java字节码文件。5.根据权利要求1所述的方法,其中(...

【专利技术属性】
技术研发人员:陈均孙聪杨超王超许昕鹏马豫宛冯鹏斌
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1