CN110197068B - 基于改进灰狼算法的Android恶意应用检测方法 - Google Patents
基于改进灰狼算法的Android恶意应用检测方法 Download PDFInfo
- Publication number
- CN110197068B CN110197068B CN201910372914.3A CN201910372914A CN110197068B CN 110197068 B CN110197068 B CN 110197068B CN 201910372914 A CN201910372914 A CN 201910372914A CN 110197068 B CN110197068 B CN 110197068B
- Authority
- CN
- China
- Prior art keywords
- feature
- apk
- malicious application
- classifier
- malicious
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
- G06F18/24155—Bayesian classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于改进灰狼算法的Android恶意应用检测方法,主要解决现有基于机器学***衡数据集下进行检测时,分类器建模时间过长,恶意样本容易被错分的问题。包括以下步骤:1)收集样本,包括良性样本和恶意样本;2)对样本进行反编译,提取出样本特征形成样本特征集;3)将样本特征集划分为训练集和测试集;4)使用改进后的灰狼算法进行特征选择,选择出最优特征子集;5)用最优特征子集进行分类器训练。本发明中的特征选择方法可以选择出最优特征子集,大大降低了分类器的构建时间,能够提高Android恶意应用检测的检测效率和检测精度。
Description
技术领域
本发明涉及软件安全领域,尤其涉及一种基于改进灰狼算法的Android恶意应用检测方法。
背景技术
随着移动互联网的飞速发展,Android已经成为当今最受欢迎的移动操作***之一。Android因其开放性吸引了无数的开发人员在其上开发制作自己的应用程序,但其巨大的发展空间也同时吸引着广大骇客,骇客利用恶意应用侵犯Android***使用者的财产安全和隐私安全。进行Android恶意应用检测成为防止此类威胁的重要手段。
随着机器学***衡的,良性应用的数量远远大于恶意应用的数量,而不平衡数据集会使机器学习分类器偏向大类样本,即良性应用,易造成恶意样本被错分。
发明内容
本发明的目的在于针对现有技术中存在的不足,提供了一种基于改进灰狼算法的Android恶意应用检测方法。该方法能够有效提高Android恶意应用检测的检测效率和检测精度。
为了实现上述目的,本发明采用了以下技术方案:
一种基于改进灰狼算法的Android恶意应用检测方法,包括下列步骤:
1)收集样本集,也就是Android应用程序(简称APK),包括良性APK和恶意APK;
2)对良性APK和恶意APK分别进行反编译,提取出样本特征形成样本特征集;
3)基于k折交叉验证方法,将样本特征集分成k份,取其中一份为测试集,其余k-1份为训练集;
4)使用改进后灰狼算法进行包裹式特征选择,选择出最优特征子集,使用常见机器学习分类器(如朴素贝叶斯、支持向量机或者决策树等)进行分类检测,采用fitness(x)作为灰狼算法的适应度函数;
5)对分类器使用选择出的特征子集进行训练,得到训练好的分类器。
6)根据步骤2)提取待检测APK特征,将其映射到最优特征子集中得到特征向量,用训练好的分类器判断该特征向量是否恶意,即完成检测。
本发明进一步说明,所述步骤2)中提取样本特征的方法为:
2a)使用反编译工具apktool对收集到的APK进行反编译,得到*.smali文件,依次扫描各个smali文件中的“invoke-virtual”语句,得到该APK的API调用信息;
2b)使用Android SDK中的工具——appt提取出APK申请的权限,得到该APK的权限信息;
2c)取所有APK的API调用信息和权限信息的全集作为特征集合;每一行表示一个APK文件,每一列表示一个特征,0表示不存在该特征,1表示存在该特征,并在最后一列加入类别标签,良性表示为0,恶意表示为1。
本发明进一步说明,所述步骤3)的k折交叉验证方法中k是任意大于1的常数。常见k取值为5或10。
本发明进一步说明,所述步骤4)中改进后灰狼算法的包裹式特征选择,具体为:
4a)初始化:初始化灰狼算法的种群规模noP,个体维度noV(noV等于特征集合中特征的个数),于是得到一个noP×noV的01矩阵,矩阵每一行表示一个个体,具体为:Xi=(Xi1,Xi2,…,XinoV),行中的每一列对应着一个特征,其值为0表示不选择该特征,其值为1表示选择该特征;另外设置算法搜索的最大迭代次数为Max_iteration;
为了在高维不平衡数据集中高效正确检测出Android恶意应用,需要综合考虑检测出G-mean、小类(在此处指恶意样本类)的F-value、选择的特征数量占总特征数量的比例,所以设计灰狼算法的适应度函数fitness(x)为:
其中,F-value和G-mean的计算公式分别为:
其中,TP表示恶意应用软件被正确识别的数量,FP表示良性应用软件被误识别为恶意应用软件的数量,FN表示恶意应用软件被误识别的数量;使用k折交叉验证训练分类器可以得到TP、FP、FN,再根据公式计算得到F-value和G-mean;|x|表示个体中1的个数,n是所有特征的数量,等于noV;
4d)采用改进后的位置更新策略更新灰狼种群中各个个体的位置:
本发明的技术创新相关说明:
特征选择作为机器学习的关键环节,通过去除冗余特征实现数据集精简,提高机器学习分类器的分类效率和分类正确率。根据在特征选择过程中是否需要机器学习算法的参与可将特征选择算法分为过滤式方法(Filter)和包裹式方法(Wrapper)。过滤式方法依赖于一些特定的指标,而不需要某个具体的机器学习算法的参与。包裹式方法需要依赖于特定的机器学习算法,根据该算法的分类性能(例如,正确率)来评价选择的特征子集的优劣。
寻找最优特征子集是特征选择的首要任务。如果一个特征集合中包含n个特征,那么它将有2n个子集,要从这2n个子集中找到最优特征子集是NP难题。特征选择的目标就是在选择尽可能少的特征数量的同时最大化分类器的正确率,故可以将特征选择看作是一个优化问题。而智能算法在处理优化问题上效果良好,所以可以将智能算法应用到特征选择上。
因此,在本发明中发明人的技术思路是从位置更新公式方面提高灰狼算法的寻优能力,并设计新的适应度函数,使其更适合解决高维不平衡数据集下的特征选择。使用改进后的灰狼算法进行包裹式特征选择得到最优特征子集,再使用最优特征子集进行分类器训练以进行Android恶意应用检测。
本发明与现有技术相比具有如下优点:
1.本发明从位置更新公式方面提高了灰狼算法的寻优能力,能够高效快速地在高维数据集中寻找最优特征子集。
2.本发明提出了新的适应度函数,综合考虑了小类的F-value和G-mean,最终选择的特征数量为三个要素,使得在使用机器学习分类器进行Android恶意应用检测时具有更高的F-value和G-mean,更少的特征数量。
附图说明
图1为本发明一实施例的实现流程图;
图2为本发明一实施例中基于改进灰狼算法的包裹式特征选择的实现流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
实施例:
基于改进灰狼算法的Android恶意应用检测方法,包括下列步骤:
步骤一:收集样本集,也就是Android应用程序(简称APK),包括良性APK和恶意APK;
步骤二:对APK进行反编译,提取出其API调用信息和权限申请信息作为特征,并将其向量化为特征集合,形成样本特征集;具体为:
2a)使用反编译工具apktool对收集到的APK进行反编译,得到*.smali文件,依次扫描各个smali文件中的“invoke-virtual”语句,得到该APK的API调用信息;
2b)使用Android SDK中的工具——appt提取出APK申请的权限,得到该APK的权限信息;
2c)取所有APK的API调用信息和权限信息的全集作为特征集合;每一行表示一个APK文件,每一列表示一个特征,0表示不存在该特征,1表示存在该特征,并在最后一列加入类别标签,良性表示为0,恶意表示为1;
步骤三:使用k折交叉验证法将样本集划分为训练集和测试集;k是任意大于1的常数;常见k取值为5或10;
步骤四:使用改进的灰狼算法进行包裹式特征选择,得到最优特征子集,使用常见机器学习分类器(如朴素贝叶斯、支持向量机或者决策树等)进行分类检测,采用改进后的适应度函数fitness(x)作为灰狼算法的适应度函数;具体为:
4a)初始化:初始化灰狼算法的种群规模noP,个体维度noV(noV等于特征集合中特征的个数),于是可以得到一个noP×noV的01矩阵,矩阵每一行表示一个个体,为:Xi=(Xi1,Xi2,…,XinoV),行中的每一列对应着一个特征,其值为0表示不选择该特征,其值为1表示选择该特征;另外设置算法搜索的最大迭代次数为Max_iteration;
4b)对灰狼种群中每一个个体所表示的特征集合,分别用训练集训练分类器,并用测试集测试分类效果,可以得到TP、FN和FP,使用fitness(x)计算灰狼个体的适应度值,将适应度值较大的前三个个体确定为:
为了在高维不平衡数据集中高效正确检测出Android恶意应用,需要综合考虑检测出G-mean、小类的F-value,小类在此处指恶意样本类,选择的特征数量占总特征数量的比例,所以设计灰狼算法的适应度函数为:
其中,F-value和G-mean的计算公式分别为:
其中,TP表示恶意应用软件被正确识别的数量,FP表示良性应用软件被误识别为恶意应用软件的数量,FN表示恶意应用软件被误识别的数量;使用k折交叉验证训练分类器可以得到TP、FP、FN,再根据公式计算得到F-value和G-mean;|x|表示个体中1的个数,n是所有特征的数量,等于noV;
4d)更新灰狼种群中各个个体的位置:
步骤五:使用最优特征子集训练分类器,得到训练好的分类器;
步骤六:提取待检测APK的特征,将其对应到最优特征子集中形成特征向量,用训练好的分类器对该特征向量进行分类。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (5)
1.一种基于改进灰狼算法的Android恶意应用检测方法,其特征在于,包括下列步骤:
1)收集样本集,也就是Android应用程序,包括良性APK和恶意APK;
2)对良性APK和恶意APK分别进行反编译,提取出样本特征形成样本特征集;
3)基于k折交叉验证方法,将样本特征集分成k份,取其中一份为测试集,其余k-1份为训练集;
4)使用改进后灰狼算法进行包裹式特征选择,选择出最优特征子集,使用常见机器学习分类器进行分类检测,采用fitness(x)作为灰狼算法的适应度函数;
所述的使用改进后灰狼算法进行包裹式特征选择,具体为:
4a)初始化:初始化灰狼算法的种群规模noP,个体维度noV,于是得到一个noP×noV的01矩阵,矩阵每一行表示一个个体,具体为:Xi=(Xi1,Xi2,…,XinoV),行中的每一列对应着一个特征,其值为0表示不选择该特征,其值为1表示选择该特征;另外设置算法搜索的最大迭代次数为Max_iteration;
4b)对灰狼种群中每一个个体所表示的特征集合,分别用训练集训练分类器,并用测试集测试分类效果,得到TP、FN和FP;并使用fitness(x)计算灰狼个体的适应度值,将适应度值最大的前三个个体确定为:
4d)采用公式(6)~公式(7)更新灰狼种群中各个个体的位置:
所述的适应度函数fitness(x)为:
其中,F-value和G-mean的计算公式分别为:
其中,TP表示恶意应用软件被正确识别的数量,FP表示良性应用软件被误识别为恶意应用软件的数量,FN表示恶意应用软件被误识别的数量;使用k折交叉验证训练分类器可以得到TP、FP、FN,再根据公式计算得到F-value和G-mean;|x|表示个体中1的个数,n是所有特征的数量,等于noV;
5)对分类器使用选择出的最优特征子集进行训练,得到训练好的分类器;
6)根据步骤2)提取待检测APK特征,将其映射到最优特征子集中得到特征向量,用训练好的分类器判断该特征向量是否恶意,即完成检测。
2.根据权利要求1所述的基于改进灰狼算法的Android恶意应用检测方法,其特征在于,所述步骤2)中提取样本特征的方法为:
2a)使用反编译工具apktool对收集到的APK进行反编译,得到*.smali文件,依次扫描各个smali文件中的“invoke-virtual”语句,得到该APK的API调用信息;
2b)使用Android SDK中的工具——appt提取出APK申请的权限,得到该APK的权限信息;
2c)取所有APK的API调用信息和权限信息的全集作为特征集合;每一行表示一个APK文件,每一列表示一个特征,0表示不存在该特征,1表示存在该特征,并在最后一列加入类别标签,良性表示为0,恶意表示为1。
3.根据权利要求1所述的基于改进灰狼算法的Android恶意应用检测方法,其特征在于,所述步骤3)的k折交叉验证方法中k是任意大于1的常数。
4.根据权利要求1所述的基于改进灰狼算法的Android恶意应用检测方法,其特征在于,常见k取值为5或10。
5.根据权利要求1所述的基于改进灰狼算法的Android恶意应用检测方法,其特征在于,所述步骤4)中常见机器学习分类器采用朴素贝叶斯、支持向量机或者决策树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372914.3A CN110197068B (zh) | 2019-05-06 | 2019-05-06 | 基于改进灰狼算法的Android恶意应用检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372914.3A CN110197068B (zh) | 2019-05-06 | 2019-05-06 | 基于改进灰狼算法的Android恶意应用检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110197068A CN110197068A (zh) | 2019-09-03 |
CN110197068B true CN110197068B (zh) | 2022-07-12 |
Family
ID=67752335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910372914.3A Active CN110197068B (zh) | 2019-05-06 | 2019-05-06 | 基于改进灰狼算法的Android恶意应用检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110197068B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800424A (zh) * | 2021-02-02 | 2021-05-14 | 西南交通大学 | 一种基于随机森林的僵尸网络恶意流量监测方法 |
CN113343242A (zh) * | 2021-07-26 | 2021-09-03 | 北京信息科技大学 | 一种恶意Android应用在线检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512558A (zh) * | 2016-01-07 | 2016-04-20 | 北京邮电大学 | 一种基于反编译模块特征的android广告插件检测方法 |
CN107832830A (zh) * | 2017-11-17 | 2018-03-23 | 湖北工业大学 | 基于改进型灰狼优化算法的入侵检测***特征选择方法 |
CN109543406A (zh) * | 2018-09-29 | 2019-03-29 | 广东工业大学 | 一种基于XGBoost机器学习算法的Android恶意软件检测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI461952B (zh) * | 2012-12-26 | 2014-11-21 | Univ Nat Taiwan Science Tech | 惡意程式偵測方法與系統 |
CN105897801A (zh) * | 2014-12-05 | 2016-08-24 | 广西大学 | 基于云存储的手机对等免疫方法 |
CN104598825A (zh) * | 2015-01-30 | 2015-05-06 | 南京邮电大学 | 一种基于改进贝叶斯算法的安卓恶意软件检测方法 |
CN104794398A (zh) * | 2015-04-17 | 2015-07-22 | 天津大学 | 基于机器学***台恶意软件检测方法 |
CN105897752B (zh) * | 2016-06-03 | 2019-08-02 | 北京奇虎科技有限公司 | 未知域名的安全检测方法及装置 |
CN107577942B (zh) * | 2017-08-22 | 2020-09-15 | 中国民航大学 | 一种用于Android恶意软件检测的混合特征筛选方法 |
CN109241740B (zh) * | 2018-09-11 | 2020-12-18 | 中国人民解放军战略支援部队信息工程大学 | 恶意软件基准测试集生成方法及装置 |
-
2019
- 2019-05-06 CN CN201910372914.3A patent/CN110197068B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512558A (zh) * | 2016-01-07 | 2016-04-20 | 北京邮电大学 | 一种基于反编译模块特征的android广告插件检测方法 |
CN107832830A (zh) * | 2017-11-17 | 2018-03-23 | 湖北工业大学 | 基于改进型灰狼优化算法的入侵检测***特征选择方法 |
CN109543406A (zh) * | 2018-09-29 | 2019-03-29 | 广东工业大学 | 一种基于XGBoost机器学习算法的Android恶意软件检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110197068A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Warnecke et al. | Evaluating explanation methods for deep learning in security | |
Sun et al. | SigPID: significant permission identification for android malware detection | |
CN109829306B (zh) | 一种优化特征提取的恶意软件分类方法 | |
Sihag et al. | De-LADY: Deep learning based Android malware detection using Dynamic features. | |
CN110704840A (zh) | 一种基于卷积神经网络cnn的恶意软件检测方法 | |
CN107679403B (zh) | 一种基于序列比对算法的勒索软件变种检测方法 | |
CN109491914B (zh) | 基于不平衡学习策略高影响缺陷报告预测方法 | |
CN109271788B (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及*** | |
Ficco | Detecting IoT malware by Markov chain behavioral models | |
Jin et al. | A malware detection approach using malware images and autoencoders | |
CN111062036A (zh) | 恶意软件识别模型构建、识别方法及介质和设备 | |
US20220318387A1 (en) | Method and Computer for Learning Correspondence Between Malware and Execution Trace of the Malware | |
CN110197068B (zh) | 基于改进灰狼算法的Android恶意应用检测方法 | |
CN109740347A (zh) | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 | |
CN113935033A (zh) | 特征融合的恶意代码家族分类方法、装置和存储介质 | |
CN110704841A (zh) | 一种基于卷积神经网络的大规模安卓恶意应用检测***及方法 | |
Sivakumar et al. | Malware Detection Using The Machine Learning Based Modified Partial Swarm Optimization Approach | |
CN116432184A (zh) | 基于语义分析和双向编码表征的恶意软件检测方法 | |
CN115828239A (zh) | 一种多维数据决策融合的恶意代码检测方法 | |
CN109508545B (zh) | 一种基于稀疏表示和模型融合的Android Malware分类方法 | |
Waheed et al. | Evolving trees for detecting android malware using evolutionary learning | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、***及存储介质 | |
CN114285587A (zh) | 域名鉴别方法和装置、域名分类模型的获取方法和装置 | |
CN115545091A (zh) | 基于集成学习器的恶意程序api调用序列检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |