CN104598825A - 一种基于改进贝叶斯算法的安卓恶意软件检测方法 - Google Patents

一种基于改进贝叶斯算法的安卓恶意软件检测方法 Download PDF

Info

Publication number
CN104598825A
CN104598825A CN201510050936.XA CN201510050936A CN104598825A CN 104598825 A CN104598825 A CN 104598825A CN 201510050936 A CN201510050936 A CN 201510050936A CN 104598825 A CN104598825 A CN 104598825A
Authority
CN
China
Prior art keywords
malware
android
software
characteristic attribute
authority request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510050936.XA
Other languages
English (en)
Inventor
张迎周
居友道
马凤娇
滕庆亚
徐曼青
王子元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201510050936.XA priority Critical patent/CN104598825A/zh
Publication of CN104598825A publication Critical patent/CN104598825A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明给出了一种基于改进贝叶斯算法的安卓恶意软件检测的方法,通过改进贝叶斯算法对安卓恶意程序和良性程序的特征属性进行分析和分类,实现一种基于改进贝叶斯算法的恶意软件检测方法,从应用程序权限申请的角度出发,判断分析是否为恶意软件。该方法是利用安卓权限请求机制中权限请求标签作为检测的数据源。在此提出利用权限请求标签组合方式用于区分恶意软件和良性软件,利用改进的贝叶斯算法做出检测模型,改进的贝叶斯体现在其对数据源的属性之间的考虑了相互的独立性,这样再利用朴素贝叶斯分类器进行数据建模,大大提高了检测指标,提高了检测的正确率,以及减少了误报率。

Description

一种基于改进贝叶斯算法的安卓恶意软件检测方法
技术领域
本发明给出了一种基于改进贝叶斯算法的安卓恶意软件检测方法,主要解决安卓平台应用软件中涉及恶意软件如何检测的问题,属于移动应用安全领域。
背景技术
随着移动互联网的飞速发展,具有移动操作系统的智能手机已成为目前移动终端发展的主流。智能手机不再是传统的通讯工具,像掌上电脑一样,智能手机已具有独立的操作系统,可以由用户自行安装或卸载如QQ、百度地图、手机安全卫士等第三方开发商提供的应用,不断地对手机的功能进行扩充。其中,基于Linux内核的Android移动终端操作系统发展最为迅速,2012年第3季度市场占有率达到75%,各种功能的应用程序满足了用户多种多样的需求。由于其开源性,任何组织或个人编写的软件都可以上传到系统的应用商店,供用户随意下载并安装使用。因此,恶意软件也把用户的智能终端作为潜在的攻击目标。目前,恶意扣费、隐私窃取、系统破坏成为恶意软件的主要危害。
在移动平台上,软件的恶意行为往往隐藏在普通软件中,通过自动连接互联网下载数据、自动拨打电话、自动发送短信注册相关SP(服务提供商)服务等方式,使用户在不知情的情况下被骗去大量费用。另外,某些恶意程序还会偷偷地读取用户联系人、邮箱信息、用户地理位置、手机IMEI标识等敏感数据,甚至通过网络或短信的方式,将收集到的数据发送出去,达到窃取用户隐私信息的目的。除此之外,一些恶意程序在运行过程中,会对用户数据文件进行删除、卸载系统组件、改变系统外观,对手机系统造成严重破坏。这些软件的恶意行为已经严重影响了人们对智能手机的正常使用。因此,如何对发布到互联网、应用商店中的应用程序的安全性进行有效评估与度量是软件管理者面临的一项重要问题。
目前恶意软件检测方案主要有误用检测和异常检测。误用检测是基于已知恶意行为特征的方法,它是通过规则集来检测恶意软件。有论文提出了通过收集样本的资源消耗的历史数据,然后从收集的样本数据提炼出一个强有力的签名用于恶意软件的检测。有论文提出了根据应用程序开发者定义的安全策略来保护通过能够可用接口调用其它应用程序的安全。有论文提出ScanAroid的方法,它是提取应用程序的安全格式,用数据流分析的方法来检测恶意软件,如果有些数据流违背了安全格式,那么就认定其为恶意软件。有论文提出了Kirin安全服务,它验证应用程序的安全等级,它定义了各种潜在的危险permission标签组合。有论文运用了算法来结构化规则,他们提出了基于签名的方法,结合了Permission属性。通过收集内容构造控制流程图来检测恶意软件。
异常检测不同于误用检测,它是通过应用数据挖掘与机器学习算法来学习已知恶意软件的行为,以此来预测未知的或新颖的恶意软件,尽管异常检测能够检测未知的恶意软件,但它有时候有很高的误报率。有论文提出了基于行为检测的框架来代替基于签名的解决方法。它是通过观察应用程序的活动逻辑顺序来检测恶意软件,通过利用数据挖掘中的支持向量机分离器方法来区别恶意软件与正常软件。有论文从应用软件二进制文件中提取函数调用,然后应用叫做Centroid聚类算法机制来检测恶意软件。有论文提出了在移动平台上基于恶意软件异常的资源消耗来检测恶意软件的异常行为。有论文采用用户相关的API调用概率的方法来检测恶意软件的异常行为,利用马尔科夫模型来学习应用软件和用户的行为,最后用于区别正常软件与恶意软件。有论文提出叫做Andromaly的方法来检测恶意软件,它是基于行为分析的,它测试一系列的特征集的方法来找出最能够代表恶意软件特征的特征集,Andromaly运用了几种机器学习算法,例如LogisticRegression,Bayesian Networks.来训练标记好的恶意软件标签和正常软件标签用于区别恶意软件和正常软件。有论文通过使用支持向量机算法提出基于软件行为的恶意软件检测框架,叫做AntiMalDroid。有论文提出来的这个框架能够动态的扩展恶意软件特征库,有提取关键permission属性,执行相应的统计概率来鉴定有怀疑的应用软件。
发明内容
技术问题:本发明的目的是提出一种基于改进贝叶斯算法的安卓恶意软件检测方法。通过改进贝叶斯算法对安卓恶意程序和良性程序的特征属性进行分析和分类,实现一种基于改进贝叶斯算法的恶意软件检测方法,从应用程序权限申请的角度出发,判断分析是否为恶意软件。该方法提高了检测率,降低误报率。最终目的是给出一个基于改进贝叶斯算法的安卓恶意软件检测的方法。
技术方案:本发明是一种基于改进贝叶斯算法的安卓恶意软件检测方法,该方法从恶意软件和良性软件中提取权限请求文件,然后对每两个权限请求标签合并为一个特征属性进行统计,再利用互信息的概念以互信息评价函数提取相关特征属性,特征提取基本任务是从众多特征属性中找出那些对分类有明显影响的特征属性,然后用卡方验证方法去除冗余权限请求标签组合对恶意软件检测的影响,最后用朴素贝叶斯算法进行数学建模,生成检测模型,实现一种基于改进贝叶斯算法的android恶意软件检测方法。
其包含的步骤为:
步骤1):从恶意软件网站上下载恶意安卓软件作为恶意软件数据源,从谷歌官方安卓市场上下载安卓软件作为良性软件;
步骤2):下载下来的软件数据源利用APKTOOL工具进行反汇编提取权限请求文件;
步骤3):对恶意软件和良性软件的权限请求文件中的权限请求标签进行两两组合合并为一个特征属性统计;
步骤4):利用互信息的概念以互信息评价函数提取特征属性,特征提取基本任务是从众多特征属性中找出那些对分类有明显影响的特征属性,选取具有明显影响的特征作为分类的特征属性;
步骤5):利用卡方检验方法对统计好的权限请求标签组合进行去除冗余数作为预处理好的数据,使得特征属性之间的关联性更弱,有利用提高朴素贝叶斯分类器的性能,提高恶意软件的检测率;
步骤6)将预处理好的数据用朴素贝叶斯算法进行数据建模,生成检测模型。
有益效果:作为安卓平台上恶意软件检测的方法,本发明基本上从应用程序权限申请的角度出发,它是对以往的检测方法进行了改进和扩展。具有以下的一些特点和创新之处:
(1)本文提出了基于权限请求文件的权限请求标签两两组合的方式,软件的恶意行为的实施需要多个权限请求共同完成的,考虑到这一点,本文提出权限请求标签组合的方法。
(2)本文提出利用改进的贝叶斯算法进行检测模型的建立,本文改进的地方是数据源的权限请求标签两两组合之间关联性降低了,利用卡方检验方法进行除去冗余属性对检测的影响。
(3)本文提出的方法不需要在模拟环境中运行,提高了恶意软件检测的效率。
附图说明
图1是基于改进贝叶斯算法的android恶意软件检测模型框图。
具体实施方式
该方法从恶意软件和良性软件中提取权限请求文件,然后统计每两个权限请求标签组合作为一个特征属性,再利用互信息的概念以互信息评价函数提取特征属性,特征提取基本任务是从众多特征属性中找出那些对分类有明显影响的特征属性,选取这些特征作为分类的特征属性。然后用卡方检验方法去除冗余权限请求标签组合对恶意软件检测的影响,最后用朴素贝叶斯算法建立数学建模,生成检测模型。本发明提出了一种基于改进贝叶斯算法的安卓恶意软件检测的方法,该方法由三部分组成:数据收集、数据处理部分、改进贝叶斯算法建立检测模型部分。
本发明基于改进贝叶斯算法的安卓恶意软件检测的方法,该方法包括三个部分:数据收集及处理部分、改进贝叶斯算法建立检测模型部分、检测模型测试部分。图1给出了本发明方法的具体流程。下面的内容是介绍本发明中基于改进贝叶斯算法的安卓恶意软件检测方法的详细描述:
(1)APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译APK,同时安装反编译系统APK所需要的FRAMEWORK-RES框架,清理上次反编译文件夹等功能。需要java支持。
(2)安卓应用软件的权限请求文件是在应用程序安装时,安卓平台需要检查的文件,它包含了应用程序需要申请的全部权限请求,考虑到恶意行为的实需要多个权限的请求,而且每个权限请求都对应着一个权限请求标签,那么检测恶意软件就可以检测权限请求文件作为一种方法。
(3)互信息概念
在恶意软件检测过程中涉及到大量的特征属性,因此特征提取是恶意软件检测中的一个重要问题。一方面,属性数量过大,会造成计算复杂度过大;另一方面,某些属性在有些类中发生频繁,具有更好的分类效果,而另一些属性对分类作用不大,若把这些属性作为变量有可能导致分类效果变差,给分类带来噪音。
特征提取是从众多的属性中找出那些对分类最有效的特征属性。采用以互信息量为评价函数,实现特征提取。互信息量法是一种利用不确定性进行特征提取的方法。使用这种方法,不需要知道属性量的具体大小及其分布细节。通过互信息量找出区分正常行为和异常行为主要特征属性,其他数据属性被视为冗余属性或噪声属性被删除,从而达到选取特征属性的目的。本文提出了一种基于最大互信息量的简单启发式搜索方法用于提取KAS。
算法框架如下:
Input:AS:a set of available properties;P(C):a prior distribution over the classes
Output:The set of selected properties KAS∈AS
Initialize:
do 1.select the most‐informative next property:
Y * = arg max Y ∈ AS / KAS I ( C : Y | KAS )
2.update property set:KAS=KAS∪{Y*}
While ∃ ∈ AS / KAS , such that I ( C : Y | KAS ) > 0
return KAS
该算法每步都选择具有最大互信息的特征属性:
Y * = arg max Y ∈ AS / KAS I ( C : Y | KAS )
(4)朴素贝叶斯算法:
贝叶斯学习方法中实用性很高的一种为朴素贝叶斯学习器,常被称为朴素贝叶斯分类器(Bayes classifier)。在某些领域内其性能可与神经网络和决策树学习相当。
朴素贝叶斯分类器应用的学习任务中,每个实例x可由属性值的合取描述,而目标函数f(x)从某有限集合V中取值。学习器被提供一系列关于目标函数的训练样例以及新实例(描述为属性值的元组)<a1,a2...an>,然后要求预测新实例的目标值(或分类)。
贝叶斯方法的新实例分类目标是在给定描述实例的属性值<a1,a2...an>下,得到最可能的目标值vMAP
v MAP = arg max v j ∈ V P ( v j | a 1 , a 2 . . . a n )
可使得贝叶斯公式将此表达式重写为:
v MAP = arg max v j ∈ V P ( a 1 , a 2 . . . a n | v j ) P ( v j ) P ( a 1 , a 2 . . . a n ) = arg max v j ∈ V P ( a 1 , a n . . . a n | v j ) P ( v j ) - - - ( 1 )
现在要做的是基于训练数据估计公式(1)中两个数据项的值。估计每个P(vj)很容易,只要计算每个目标值vj出现在训练数据中的频率就可以。然后,除非有一个非常大的训练数据的集合,否则用这种方法估计不同的P(a1,a2...an|vj)项不太可行。问题在于这些项的数量等于可能实例的数量乘以可能目标值的数量。因此为获得合理的估计,实例空间中每个实例必须出现多次。
朴素贝叶斯分类器基于一个简单的假定:在给定目标值是属性值之间相互独立。换言之,该假定说明在给定实例的目标值情况下,观测到联合的a1,a2...an的概率等于每个单独属性的概率乘积:
P(a1,a2...an|vj)=ΠiP(ai|vj)
将其代入(1)中,可得到朴素贝叶斯分类器所使用的方法:
v NB = arg max v j ∈ V P ( v i ) Π i P ( a i | v j ) - - - ( 2 )
其中vNB表示朴素贝叶斯分类器输出的目标值。注意,在朴素贝叶斯分类器中,须从训练数据中估算的不同P(ai|vj)项的数量只是不同的属性值数量乘以不同目标值数量——这比要估计P(a1,a2...an|vj)项所需的量小得多。
概括地讲。朴素贝叶斯学习方法需要估计不同的P(ai|vj)和P(vj)项,基于它们在训练数据上的频率。这些估计对应了待学习的假设。然后该假设使用式(2)中的规则来分类新实例。只要所需的条件独立性能够被满足,朴素贝叶斯分类vNB等于MAP分类。

Claims (2)

1.一种基于改进贝叶斯算法的安卓恶意软件检测方法,其特征在于该方法从恶意软件和良性软件中提取权限请求文件,然后对每两个权限请求标签合并为一个特征属性进行统计,再利用互信息的概念以互信息评价函数提取相关特征属性,特征提取基本任务是从众多特征属性中找出那些对分类有明显影响的特征属性,然后用卡方验证方法去除冗余权限请求标签组合对恶意软件检测的影响,最后用朴素贝叶斯算法进行数学建模,生成检测模型,实现一种基于改进贝叶斯算法的android恶意软件检测方法。
2.根据权利要求1所述的一种基于改进贝叶斯算法的安卓恶意软件检测方法,其包含的步骤为:
步骤1):从恶意软件网站上下载恶意安卓软件作为恶意软件数据源,从谷歌官方安卓市场上下载安卓软件作为良性软件;
步骤2):下载下来的软件数据源利用APKTOOL工具进行反汇编提取权限请求文件;
步骤3):对恶意软件和良性软件的权限请求文件中的权限请求标签进行两两组合合并为一个特征属性统计;
步骤4):利用互信息的概念以互信息评价函数提取特征属性,特征提取基本任务是从众多特征属性中找出那些对分类有明显影响的特征属性,选取具有明显影响的特征作为分类的特征属性;
步骤5):利用卡方检验方法对统计好的权限请求标签组合进行去除冗余数作为预处理好的数据,使得特征属性之间的关联性更弱,有利用提高朴素贝叶斯分类器的性能,提高恶意软件的检测率;
步骤6)将预处理好的数据用朴素贝叶斯算法进行数据建模,生成检测模型。
CN201510050936.XA 2015-01-30 2015-01-30 一种基于改进贝叶斯算法的安卓恶意软件检测方法 Pending CN104598825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510050936.XA CN104598825A (zh) 2015-01-30 2015-01-30 一种基于改进贝叶斯算法的安卓恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510050936.XA CN104598825A (zh) 2015-01-30 2015-01-30 一种基于改进贝叶斯算法的安卓恶意软件检测方法

Publications (1)

Publication Number Publication Date
CN104598825A true CN104598825A (zh) 2015-05-06

Family

ID=53124602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510050936.XA Pending CN104598825A (zh) 2015-01-30 2015-01-30 一种基于改进贝叶斯算法的安卓恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN104598825A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866763A (zh) * 2015-05-28 2015-08-26 天津大学 基于权限的Android恶意软件混合检测方法
CN105426760A (zh) * 2015-11-05 2016-03-23 工业和信息化部电信研究院 一种安卓恶意应用的检测方法及装置
CN105740709A (zh) * 2016-01-29 2016-07-06 博雅网信(北京)科技有限公司 一种基于权限组合的安卓恶意软件检测方法
CN107239694A (zh) * 2017-05-27 2017-10-10 武汉大学 一种基于用户评论的Android应用权限推理方法及装置
CN108306855A (zh) * 2017-12-25 2018-07-20 北京知道未来信息技术有限公司 一种基于动态指纹特征函数库的数控网络安全监测方法
CN108491719A (zh) * 2018-03-15 2018-09-04 重庆邮电大学 一种改进朴素贝叶斯算法的安卓恶意程序检测方法
CN109815736A (zh) * 2019-01-24 2019-05-28 深圳昂楷科技有限公司 一种数据库脱敏方法、装置及脱敏设备
CN110110177A (zh) * 2019-04-10 2019-08-09 中国人民解放军战略支援部队信息工程大学 一种基于图的恶意软件家族聚类评估方法及装置
CN110197068A (zh) * 2019-05-06 2019-09-03 广西大学 基于改进灰狼算法的Android恶意应用检测方法
CN110968865A (zh) * 2019-11-27 2020-04-07 桂林电子科技大学 一种基于概率本体的安卓软件风险评估方法
CN110990834A (zh) * 2019-11-19 2020-04-10 重庆邮电大学 一种android恶意软件的静态检测方法、系统及介质
US11941118B2 (en) 2018-11-06 2024-03-26 Carrier Corporation System and method to build robust classifiers against evasion attacks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831338A (zh) * 2012-06-28 2012-12-19 北京奇虎科技有限公司 一种Android应用程序的安全检测方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831338A (zh) * 2012-06-28 2012-12-19 北京奇虎科技有限公司 一种Android应用程序的安全检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张锐等: "基于权限相关性的Android恶意软件检测", 《计算机应用》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866763B (zh) * 2015-05-28 2019-02-26 天津大学 基于权限的Android恶意软件混合检测方法
CN104866763A (zh) * 2015-05-28 2015-08-26 天津大学 基于权限的Android恶意软件混合检测方法
CN105426760A (zh) * 2015-11-05 2016-03-23 工业和信息化部电信研究院 一种安卓恶意应用的检测方法及装置
CN105740709A (zh) * 2016-01-29 2016-07-06 博雅网信(北京)科技有限公司 一种基于权限组合的安卓恶意软件检测方法
CN105740709B (zh) * 2016-01-29 2018-09-28 博雅网信(北京)科技有限公司 一种基于权限组合的安卓恶意软件检测方法
CN107239694B (zh) * 2017-05-27 2020-03-10 武汉大学 一种基于用户评论的Android应用权限推理方法及装置
CN107239694A (zh) * 2017-05-27 2017-10-10 武汉大学 一种基于用户评论的Android应用权限推理方法及装置
CN108306855A (zh) * 2017-12-25 2018-07-20 北京知道未来信息技术有限公司 一种基于动态指纹特征函数库的数控网络安全监测方法
CN108306855B (zh) * 2017-12-25 2021-03-30 北京知道未来信息技术有限公司 一种基于动态指纹特征函数库的数控网络安全监测方法
CN108491719A (zh) * 2018-03-15 2018-09-04 重庆邮电大学 一种改进朴素贝叶斯算法的安卓恶意程序检测方法
US11941118B2 (en) 2018-11-06 2024-03-26 Carrier Corporation System and method to build robust classifiers against evasion attacks
CN109815736A (zh) * 2019-01-24 2019-05-28 深圳昂楷科技有限公司 一种数据库脱敏方法、装置及脱敏设备
CN110110177A (zh) * 2019-04-10 2019-08-09 中国人民解放军战略支援部队信息工程大学 一种基于图的恶意软件家族聚类评估方法及装置
CN110197068A (zh) * 2019-05-06 2019-09-03 广西大学 基于改进灰狼算法的Android恶意应用检测方法
CN110990834A (zh) * 2019-11-19 2020-04-10 重庆邮电大学 一种android恶意软件的静态检测方法、系统及介质
CN110990834B (zh) * 2019-11-19 2022-12-27 重庆邮电大学 一种android恶意软件的静态检测方法、系统及介质
CN110968865A (zh) * 2019-11-27 2020-04-07 桂林电子科技大学 一种基于概率本体的安卓软件风险评估方法

Similar Documents

Publication Publication Date Title
CN104598825A (zh) 一种基于改进贝叶斯算法的安卓恶意软件检测方法
Surendran et al. A TAN based hybrid model for android malware detection
Chakraborty et al. Ec2: Ensemble clustering and classification for predicting android malware families
Martín et al. CANDYMAN: Classifying Android malware families by modelling dynamic traces with Markov chains
Baldwin et al. Leveraging support vector machine for opcode density based detection of crypto-ransomware
CN107341401B (zh) 一种基于机器学习的恶意应用监测方法和设备
Odusami et al. Android malware detection: A survey
Norouzi et al. A data mining classification approach for behavioral malware detection
Polino et al. Jackdaw: Towards automatic reverse engineering of large datasets of binaries
CN106796640A (zh) 分类恶意软件检测和抑制
CN105468977A (zh) 一种基于朴素贝叶斯的Android恶意软件分类方法和装置
CN112685735B (zh) 用于检测异常数据的方法、设备和计算机可读存储介质
Allen et al. Improving accuracy of android malware detection with lightweight contextual awareness
CN109614795B (zh) 一种事件感知的安卓恶意软件检测方法
Lin et al. Dimsum: Discovering semantic data of interest from un-mappable memory with confidence
CN112528284A (zh) 恶意程序的检测方法及装置、存储介质、电子设备
CN106599688A (zh) 一种基于应用类别的安卓恶意软件检测方法
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
CN102867038A (zh) 文件类型的确定方法和装置
Qiu et al. Data-driven android malware intelligence: a survey
CN110858247A (zh) 安卓恶意应用检测方法、系统、设备及存储介质
Karbab et al. Petadroid: adaptive android malware detection using deep learning
Deypir Entropy-based security risk measurement for Android mobile applications
Huynh et al. A new adaptive learning algorithm and its application to online malware detection
Lin et al. Towards interpreting ML-based automated malware detection models: A survey

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150506

RJ01 Rejection of invention patent application after publication