CN114519187A - 基于多维度混合特征的Android恶意应用检测方法及系统 - Google Patents

基于多维度混合特征的Android恶意应用检测方法及系统 Download PDF

Info

Publication number
CN114519187A
CN114519187A CN202210147263.XA CN202210147263A CN114519187A CN 114519187 A CN114519187 A CN 114519187A CN 202210147263 A CN202210147263 A CN 202210147263A CN 114519187 A CN114519187 A CN 114519187A
Authority
CN
China
Prior art keywords
features
feature
android
gram
classifier
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
CN202210147263.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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN202210147263.XA priority Critical patent/CN114519187A/zh
Publication of CN114519187A publication Critical patent/CN114519187A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于多维度混合特征的Android恶意应用检测方法及系统,方法包括:获取Android应用数据集,获取对应Android应用的静态特征集合;利用N‑gram模型对静态特征集合进行处理,生成N‑gram操作码特征;利用特征选择算法FB‑SAGA,采用基于频繁度的适应度函数对N‑gram操作码特征进行筛选;将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,并与N‑gram操作码特征生成特征矩阵;将特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。通过本发明的技术方案,提高了Android恶意应用检测的分类准确率和分类效率,有效提高对未知应用的检测能力。

Description

基于多维度混合特征的Android恶意应用检测方法及系统
技术领域
本发明涉及应用检测技术领域,尤其涉及一种基于多维度混合特征的 Android恶意应用检测方法以及一种基于多维度混合特征的Android恶意应用检测系统。
背景技术
随着移动互联网的快速发展,移动应用服务(以下简称“APP”)己成为互联网的重要信息传播渠道和公共服务平台。据不完全统计,中国有超过200万个APP和330多个移动应用软件分发平台,移动互联网应用服务已成为大众创业、万众创新的重要载体。同时,值得注意的是,虽然移动互联网带来了便利,但应用软件中的木马病毒和恶意程序等有害问题也越来越严重。因此,如何迅速而精准地检测已经存在的恶意应用、还未被标记的恶意应用以及恶意应用程序的衍化版本,依然是当今恶意应用检测所研究的热点方向。
目前已有一些基于静态分析的Android恶意应用检测方法的研究,但仍存在以下问题:
1、传统的基于单一特征的Android恶意应用检测方法存在单一特征对于软件类别表征性弱,检测精度低等问题,同时对于不同恶意应用家族检测能力弱,泛化能力不足以及检测误报率较高,因此,有研究指出基于多特征混合的检测方法在检测精度上相比较单一特征的检测方法,其检测准确率更高。
2、传统的基于操作码特征的检测方法存在特征维度过高,对于未知应用的检测能力不足,同时未挖掘操作码特征中丰富的语义信息和上下文信息,造成检测结果精度较低。
3、传统的特征选择算法分为过滤法,包装法和嵌入法,以上算法存在时间复杂度较高和选取的特征贡献值较低等问题;标准的遗传算法存在收敛速度慢,各算子实现参数复杂和并行机制较弱等问题。
4、传统的Android恶意应用检测方法在进行特征选择算法对特征数据进行处理后直接输入机器学习分类模型中进行验证,这种模式完全依赖了特征选择算法的有效性,不能保证所选取的特征对于分类结果有较高的贡献值。
发明内容
针对上述问题,本发明提供了一种基于多维度混合特征的Android恶意应用检测方法及系统,通过在传统的权限特征基础上增加了结合N-gram模型的 Bi-gram Opcode特征,能够在很大程度上反映Android应用程序的真实行为,同时,引入了基于遗传算法的改进特征选择算法FB-SAGA,不仅考虑了特征子集的数量,还考虑了特征子集在样本集合中出现的频率以及所选特征子集在随机森林模型中的准确率,极大优化了最优特征子集的生成,提高了 Android恶意应用检测的分类准确率。
为实现上述目的,本发明提供了一种基于多维度混合特征的Android恶意应用检测方法,包括:
获取Android应用数据集,通过反编译手段获取对应Android应用的静态特征集合,所述静态特征集合包括权限特征、API特征和操作码特征;
利用N-gram模型对所述静态特征集合进行处理,生成N-gram操作码特征;
利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对所述N- gram操作码特征进行筛选;
将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与所述N-gram操作码特征生成特征矩阵;
将所述特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。
在上述技术方案中,优选地,所述机器学习分类模型的训练过程包括:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用所述测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过所述测试集的优化,使得所述模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用所述验证集验证所述机器学习分类模型针对恶意应用的分类性能。
在上述技术方案中,优选地,所述机器学习分类模型根据所述RF分类器、所述GNB分类器、所述LR分类器和所述KNN分类器的检测结果,对各分类器的检测结果赋予预设的权值,并采用投票策略对各分类器的检测结果进行综合,作为所述机器学习分类模型的检测结果。
在上述技术方案中,优选地,所述利用N-gram模型对所述静态特征集合进行处理生成N-gram操作码特征的具体过程包括:
利用基于指令相似度的40类Dalivik指令分类规则,对所述静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
在上述技术方案中,优选地,所述特征选择算法FB-SAGA中,基于频繁度的适应度函数为Fitness函数,所述Fitness函数随迭代数动态调整,使得迭代运行后期保持最优个体和其他个体间的适应度差率;
所述Fitness为:
Figure RE-GDA0003563168990000031
Figure RE-GDA0003563168990000032
其中,Xi表示第i个个体,Li表示对应X_i的特征子集,f(Li)表示高斯朴素贝叶斯算法分类准确率,num(s)表示正确预测的样本数量,∑S表示所选择的样本总数,n表示所选择的特征数,N表示数据集中特征总数,α和β分别取 0.99和0.01,系数cmin为常量值,取经验输入值或f(Li)的最小值。
在上述技术方案中,优选地,所述敏感权限数据库为将恶意应用程序中的权限特征删除良性应用程序中权限特征得到,所述敏感API数据库为将恶意应用程序中的API特征删除良性应用程序中API特征得到;
所述将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对保留针对恶意应用具有判别能力的特征集合的具体过程包括:
将筛选得到的特征与所述敏感权限数据库和所述敏感API数据库进行比对,删除所述敏感权限数据库和所述敏感API数据库中不存在的特征,保留所述敏感权限数据库和所述敏感API数据库中存在的特征。
在上述技术方案中,优选地,所述通过反编译手段获取对应Android应用的静态特征集合的具体过程包括:
通过Androguard逆向反编译工具对所述Android应用数据集进行反编译操作,获取配置文件;
通过对所述配置文件进行分别解析,得到所述Android应用数据集的应用权限信息、API信息和操作码信息,并生成静态特征矩阵,作为所述静态特征集合。
本发明还提出一种基于多维度混合特征的Android恶意应用检测系统,应用如上述技术方案中任一项公开的基于多维度混合特征的Android恶意应用检测方法,包括:
特征生成模块,用于获取Android应用数据集,并通过反编译手段获取对应Android应用的静态特征集合,所述静态特征集合包括权限特征、API特征和操作码特征;
特征处理模块,用于利用N-gram模型对所述静态特征集合进行处理,生成N-gram操作码特征;
特征选择模块,用于利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对所述N-gram操作码特征进行筛选;
分析对比模块,用于将筛选得到的特征与预设的敏感权限数据库和敏感 API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与所述 N-gram操作码特征生成特征矩阵;
结果输出模块,用于将所述特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。
在上述技术方案中,优选地,基于多维度混合特征的Android恶意应用检测系统还包括机器学习模块,所述机器学习模块具体用于:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用所述测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过所述测试集的优化,使得所述模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用所述验证集验证所述机器学习分类模型针对恶意应用的分类性能。
在上述技术方案中,优选地,所述特征处理模块具体用于:
利用基于指令相似度的40类Dalivik指令分类规则,对所述静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
与现有技术相比,本发明的有益效果为:
1、本发明提出的基于权限特征,API调用特征和Bi-gram Opcode特征的检测方法,在保留传统的权限特征基础上,引入了API特征和Bi-gram Opcode 特征,对于具有不同恶意行为的恶意软件具有较高的检测准确率和较低的误报率。
2、本发明在Android恶意应用检测方法中引入Bi-gram Opcode特征,通过结合操作码(Operation Code)特征和自然语言处理的N-gram模型来提取操作码特征,N-gram序列为提取操作码特征提供了重要的上下文信息,通过本发明提出的特征选择算法FB-SAGA实现了对操作码特征的有效降维,结合机器学习分类模型能够有效提高对未知应用的检测能力。
3、本发明在Android恶意应用检测领域引入了基于遗传算法的特征选择算法FB-SAGA,该算法优势在于通过保留了传统遗传算法的选择,交叉和变异算子,通过改变种群规模保证了算法的全局搜索能力,并能够根据不同的种群规模寻找解决特征选择问题的最优变异概率数值;通过极大化目标候选特征和特征集合的关联性,极小化目标候选特征和特征子集之间的信息冗余,把控各特征子集之间的关联程度,有效提高了分类算法效率。
4、本发明所提出的机制在传统的检测方法流程基础上添加了分析对比模块,在对特征数据进行特征选择之后对输出的特征集合与本发明自构建的敏感权限数据库和敏感API数据库进行交叉对比,进一步筛掉无用特征和冗余特征,弥补了特征选择模块存在的一些缺陷,提高了分类结果的准确度。。
附图说明
图1为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的流程框架示意图;
图2为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的特征生成过程示意图;
图3为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的特征处理过程示意图;
图4为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的特征选择过程示意图;
图5为本发明一种实施例公开的FB-SAGA特征选择算法的流程示意图;
图6为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的特征分析对比过程示意图;
图7为本发明一种实施例公开的机器学习分类模型的机器学习过程示意图;
图8为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测方法的结果输出过程示意图;
图9为本发明一种实施例公开的基于多维度混合特征的Android恶意应用检测系统的模块示意图。
图中,各组件与附图标记之间的对应关系为:
11.特征生成模块,12.特征处理模块,13.特征选择模块,14.分析对比模块, 15.结果输出模块,16.机器学习模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1所示,根据本发明提供的一种基于多维度混合特征的Android恶意应用检测方法,包括:
获取Android应用数据集,通过反编译手段获取对应Android应用的静态特征集合,静态特征集合包括权限特征、API特征和操作码特征;
利用N-gram模型对静态特征集合进行处理,生成N-gram操作码特征;
利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对N-gram 操作码特征进行筛选;
将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与N-gram操作码特征生成特征矩阵;
将特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前 Android应用是否为恶意应用。
在该实施方式中,通过在传统的权限特征基础上增加了结合N-gram模型的Bi-gram Opcode特征,能够在很大程度上反映Android应用程序的真实行为,同时,引入了基于遗传算法的改进特征选择算法FB-SAGA,不仅考虑了特征子集的数量,还考虑了特征子集在样本集合中出现的频率以及所选特征子集在随机森林模型中的准确率,极大优化了最优特征子集的生成,提高了 Android恶意应用检测的分类准确率。
如图2所示,具体地,安卓软件按照是否存在恶意代码或恶意行为分为良性软件和恶意软件,首先,处理收集的安卓软件数据集,判断输入文件的格式是否是APK文件,再通过Androguard逆向反编译工具对Android应用数据集进行反编译操作,获取配置文件,包括权限特征、API特征和操作码特征;通过对配置文件进行分别解析,得到Android应用数据集的应用权限信息、 API信息和操作码信息,并生成静态特征矩阵,作为静态特征集合。
其中,Androguard是使用python编写的逆向工具,该工具具备良好的可拓展性和跨平台性。它可将待反编译APK文件解压缩得到文件,类和方法等,并映射为python对象。首先调用Androguard工具包中的androlyze.py文件,再调用获取权限方法,获取良性应用和恶意应用样本文件中的配置清单文件中,通过逆向反编译dex文件,得到smali格式文件;并使用Androguard静态逆向分析工具包中的获取API方法得到应用程序调用API信息,所获取的API 包括第三方库中的API和用户自定义API,Java环境自带的API以及SDK中的API,本发明摒弃前两者API信息,选用SDK中的API信息作为选取的 API特征。
如图3所示,在上述实施方式中,优选地,利用N-gram模型对静态特征集合进行处理生成N-gram操作码特征的具体过程包括:
利用基于指令相似度的40类Dalivik指令分类规则,对静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
具体地,操作码特征来源于smali文件中的Dalvik指令,Dalvik指令包含了操作码和操作数。传统的Dalvik指令分类规则按功能分为14类,后来有研究人员进行了分类和精简,去除了一些指令,最终只保留了七大类核心指令集合,分别是M,R,G,I,T,P,V。该分类规则虽然精简了Dalvik指令,但是由于对Dalvik指令集合的删减较多,在很大程度上破坏了Dalvik指令序列的完整性和一致性。本发明在该基础上进一步细分,提出了基于指令相似度的 40类Dalvik指令分类规则,再使用Bi-gram模型将输入的操作码序列生成Bi- gramOpcode序列集合,并最终生成融合静态特征集合。具体做法是,对特征生成模块输出的操作码序列,按照本发明提出的40类Dalvik指令分类规则进行分类,例如move-result v0;return-object p0;iget-object v0,p0…经过分类规则处理,输出“moveres,return,iget…”;再经由N-gram模型处理,所输出最终序列为“movers,return/iget…”。
如图4所示,在机器学习分类领域中,分类的准确性常常等同于适应度函数。但是,在特征选择问题上,适应度函数的定义既要考虑分类结果的准确率,还要兼顾特征子集的数量。为了解决传统适应度函数在算法执行迭代过程中恒定不变,造成算法提前收敛到局部最优解,导致早熟现象,难以准确体现种群中个体差异和选择操作的作用,所选择的特征集合对于分类模型的优化帮助达不到预期效果,本发明设计一种新的特征选择算法FB-SAGA,使用基于频繁度的适应度函数来完成从初始数据集中选择关联度最高的前K个特征过程。本发明设计的适应度函数考虑到算法运行后期,随着种群集中性增加,算法逐渐趋于收敛,个体之间差异逐渐缩小,若适应度函数恒定不变,这将导致选择算子失去作用,退化为随机选择。因此本发明提出的适应度函数可随迭代数动态调整,其非线性增长方式可在一定程度上克服这种退化现象,使算法即使在迭代运行后期也能保持最优个体和其他个体间适应度差率,维持个体间较高竞争力。
如图5所示,具体地,在上述实施方式中,优选地,特征选择算法FB- SAGA中,基于频繁度的适应度函数为Fitness函数;
Fitness为:
Figure RE-GDA0003563168990000091
Figure RE-GDA0003563168990000092
其中,Xi表示第i个个体,Li表示对应X_i的特征子集,f(Li)表示高斯朴素贝叶斯算法分类准确率,num(s)表示正确预测的样本数量,∑S表示所选择的样本总数,n表示所选择的特征数,N表示数据集中特征总数,α和β分别取 0.99和0.01,系数cmin为常量值,该常量必须与种群特征无关,可取经验输入值或f(Li)的最小值,优选地,选取cmin的值为高斯朴素贝叶斯算法准确率最小值。
如图6所示,在上述实施方式中,优选地,敏感权限数据库为将恶意应用程序中的权限特征删除良性应用程序中权限特征得到,敏感API数据库为将恶意应用程序中的API特征删除良性应用程序中API特征得到;
在此基础上,将筛选得到的特征与敏感权限数据库和敏感API数据库进行比对,删除敏感权限数据库和敏感API数据库中不存在的特征,保留敏感权限数据库和敏感API数据库中存在的特征,最后,输出经过分析对比后的权限特征和API特征,然后和Bi-gramOpcode特征生成特征矩阵。
如图7所示,在上述实施方式中,通过对分类模型进行训练得到对恶意应用特征识别度较高的机器学习分类模型的模型参数,学习恶意应用的恶意行为模式达到分类目的。优选地,机器学习分类模型的训练过程包括:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过测试集的优化,使得模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用验证集验证机器学习分类模型针对恶意应用的分类性能。
在该实施方式中,针对模糊度优选采用的阈值为0.4,以得到最优的分类器模型。
具体地,在模糊数学领域,具有某个模糊概念所描述的属性的对象全体成为模糊集,模糊度则反映了一个模糊集的模糊程度。对于给定的模糊集 U={u1,u2,u3,...,un,模糊度的计算公式为:
Figure RE-GDA0003563168990000101
理论上来说,模糊度越大,该模糊集的不确定性越大。在分类任务中,分类器的输出类似一个模糊向量,向量中的每个元素代表了相应类的隶属程度。假设N个样本的数据集,类别数为C,分类器对每个样本都会产生一个输出向量ui={ui1,ui2,ui3,...,uic},其模糊度计算公式为:
Figure RE-GDA0003563168990000102
其中,uij表示了第i个样本对应第j类的隶属程度。
如图8所示,在上述实施方式中,优选地,机器学习分类模型根据RF分类器、GNB分类器、LR分类器和KNN分类器的检测结果,对各分类器的检测结果赋予预设的权值,并采用投票策略对各分类器的检测结果进行综合,作为机器学习分类模型的检测结果。
具体地,不同的机器学习分类模型有着不同的性能表现,本发明方法采用 RF,GNB,LR和KNN四种机器学习分类模型的检测结果综合评判Android 应用程序的分类结果,在投票策略阶段,通过给分类器检测结果加权的做法提高分类可信度,通过加权平均的方法得到最终检测结果,具体做法是四类机器学习分类模型RF,GNB,LR和KNN分别对输入的待检测样本进行检测分析,得到分类结果,给每个分类器不同的权值,检测精度较低的机器学习分类模型适用较高权值,而检测精度较高的机器学习分类模型适用较低权值。各机器学习算法分类模型将通过训练集学习到应用程序的权限特征,API特征和 Bi-gram Opcode特征出现的频率,并将模型输出向量的确信度高于预设阈值的特征作为恶意应用判定特征,该预设阈值可根据经验设置为δ,即检测结果确信度大于δ才可输出判别结果,否则直接结束。在测试集中测试机器学习模块训练好的机器学习分类模型,机器学习分类模型输出分析结果,分析结果是恶意软件或良性软件。
此外,与机器学习模块提到的模糊度概念相反,确信度用来衡量分类器对分类结果的确定程度。对于一个二分类的输出向量u={u0,u1},其确信度计算公式如下:
C(u)=1-F(u)
其中,F(u)表示该向量对应的模糊度:
Figure RE-GDA0003563168990000111
如图9所示,本发明还提出一种基于多维度混合特征的Android恶意应用检测系统,应用如上述实施方式中任一项公开的基于多维度混合特征的 Android恶意应用检测方法,包括:
特征生成模块11,用于获取Android应用数据集,并通过反编译手段获取对应Android应用的静态特征集合,静态特征集合包括权限特征、API特征和操作码特征;
特征处理模块12,用于利用N-gram模型对静态特征集合进行处理,生成 N-gram操作码特征;
特征选择模块13,用于利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对N-gram操作码特征进行筛选;
分析对比模块14,用于将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与 N-gram操作码特征生成特征矩阵;
结果输出模块15,用于将特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。
在该实施方式中,通过在传统的权限特征基础上增加了结合N-gram模型的Bi-gram Opcode特征,能够在很大程度上反映Android应用程序的真实行为,同时,引入了基于遗传算法的改进特征选择算法FB-SAGA,不仅考虑了特征子集的数量,还考虑了特征子集在样本集合中出现的频率以及所选特征子集在随机森林模型中的准确率,极大优化了最优特征子集的生成,提高了 Android恶意应用检测的分类准确率。
在上述实施方式中,优选地,基于多维度混合特征的Android恶意应用检测系统还包括机器学习模块16,机器学习模块16具体用于:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过测试集的优化,使得模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用验证集验证机器学习分类模型针对恶意应用的分类性能。
在上述实施方式中,优选地,特征处理模块12具体用于:
利用基于指令相似度的40类Dalivik指令分类规则,对静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
根据上述实施方式提出的基于多维度混合特征的Android恶意应用检测方法及系统,具有以下优势:
1、本发明提出的基于权限特征,API调用特征和Bi-gram Opcode特征的检测方法,在保留传统的权限特征基础上,引入了API特征和Bi-gram Opcode 特征,对于具有不同恶意行为的恶意软件具有较高的检测准确率和较低的误报率。
2、本发明在Android恶意应用检测方法中引入Bi-gram Opcode特征,通过结合操作码(Operation Code)特征和自然语言处理的N-gram模型来提取操作码特征,N-gram序列为提取操作码特征提供了重要的上下文信息,通过本发明提出的特征选择算法FB-SAGA实现了对操作码特征的有效降维,结合机器学习分类模型能够有效提高对未知应用的检测能力。
3、本发明在Android恶意应用检测领域引入了基于遗传算法的特征选择算法FB-SAGA,该算法优势在于通过保留了传统遗传算法的选择,交叉和变异算子,通过改变种群规模保证了算法的全局搜索能力,并能够根据不同的种群规模寻找解决特征选择问题的最优变异概率数值;通过极大化目标候选特征和特征集合的关联性,极小化目标候选特征和特征子集之间的信息冗余,把控各特征子集之间的关联程度,有效提高了分类算法效率。
4、本发明所提出的机制在传统的检测方法流程基础上添加了分析对比模块14,在对特征数据进行特征选择之后对输出的特征集合与本发明自构建的敏感权限数据库和敏感API数据库进行交叉对比,进一步筛掉无用特征和冗余特征,弥补了特征选择模块13存在的一些缺陷,提高了分类结果的准确度。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于多维度混合特征的Android恶意应用检测方法,其特征在于,包括:
获取Android应用数据集,通过反编译手段获取对应Android应用的静态特征集合,所述静态特征集合包括权限特征、API特征和操作码特征;
利用N-gram模型对所述静态特征集合进行处理,生成N-gram操作码特征;
利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对所述N-gram操作码特征进行筛选;
将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与所述N-gram操作码特征生成特征矩阵;
将所述特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。
2.根据权利要求1所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述机器学习分类模型的训练过程包括:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用所述测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过所述测试集的优化,使得所述模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用所述验证集验证所述机器学习分类模型针对恶意应用的分类性能。
3.根据权利要求2所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述机器学习分类模型根据所述RF分类器、所述GNB分类器、所述LR分类器和所述KNN分类器的检测结果,对各分类器的检测结果赋予预设的权值,并采用投票策略对各分类器的检测结果进行综合,作为所述机器学习分类模型的检测结果。
4.根据权利要求1所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述利用N-gram模型对所述静态特征集合进行处理生成N-gram操作码特征的具体过程包括:
利用基于指令相似度的40类Dalivik指令分类规则,对所述静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
5.根据权利要求1所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述特征选择算法FB-SAGA中,基于频繁度的适应度函数为Fitness函数,所述Fitness函数随迭代数动态调整,使得迭代运行后期保持最优个体和其他个体间的适应度差率;
所述Fitness为:
Figure FDA0003509450270000021
Figure FDA0003509450270000022
其中,Xi表示第i个个体,Li表示对应X_i的特征子集,f(Li)表示高斯朴素贝叶斯算法分类准确率,num(s)表示正确预测的样本数量,∑S表示所选择的样本总数,n表示所选择的特征数,N表示数据集中特征总数,α和β分别取0.99和0.01,系数cmin为常量值,取经验输入值或f(Li)的最小值。
6.根据权利要求1所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述敏感权限数据库为将恶意应用程序中的权限特征删除良性应用程序中权限特征得到,所述敏感API数据库为将恶意应用程序中的API特征删除良性应用程序中API特征得到;
所述将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对保留针对恶意应用具有判别能力的特征集合的具体过程包括:
将筛选得到的特征与所述敏感权限数据库和所述敏感API数据库进行比对,删除所述敏感权限数据库和所述敏感API数据库中不存在的特征,保留所述敏感权限数据库和所述敏感API数据库中存在的特征。
7.根据权利要求1所述的基于多维度混合特征的Android恶意应用检测方法,其特征在于,所述通过反编译手段获取对应Android应用的静态特征集合的具体过程包括:
通过Androguard逆向反编译工具对所述Android应用数据集进行反编译操作,获取配置文件;
通过对所述配置文件进行分别解析,得到所述Android应用数据集的应用权限信息、API信息和操作码信息,并生成静态特征矩阵,作为所述静态特征集合。
8.一种基于多维度混合特征的Android恶意应用检测系统,其特征在于,应用如权利要求1至7中任一项所述的基于多维度混合特征的Android恶意应用检测方法,包括:
特征生成模块,用于获取Android应用数据集,并通过反编译手段获取对应Android应用的静态特征集合,所述静态特征集合包括权限特征、API特征和操作码特征;
特征处理模块,用于利用N-gram模型对所述静态特征集合进行处理,生成N-gram操作码特征;
特征选择模块,用于利用特征选择算法FB-SAGA,采用基于频繁度的适应度函数对所述N-gram操作码特征进行筛选;
分析对比模块,用于将筛选得到的特征与预设的敏感权限数据库和敏感API数据库进行比对,保留针对恶意应用具有判别能力的特征集合,并与所述N-gram操作码特征生成特征矩阵;
结果输出模块,用于将所述特征矩阵输入已训练完成的机器学习分类模型中进行判别,判定当前Android应用是否为恶意应用。
9.根据权利要求8所述的基于多维度混合特征的Android恶意应用检测系统,其特征在于,还包括机器学习模块,所述机器学习模块具体用于:
获取样本数据集,并划分为训练集、测试集和验证集;
利用训练集分别对RF分类器、GNB分类器、LR分类器和KNN分类器进行训练;
在模型评估阶段,利用所述测试集对所有分类器的性能进行调参优化与检验;
计算各分类器模型输出向量的模糊度,通过所述测试集的优化,使得所述模糊度小于预设阈值,以最小化误差目标构建机器学习分类模型;
利用所述验证集验证所述机器学习分类模型针对恶意应用的分类性能。
10.根据权利要求8所述的基于多维度混合特征的Android恶意应用检测系统,其特征在于,所述特征处理模块具体用于:
利用基于指令相似度的40类Dalivik指令分类规则,对所述静态特征集合进行分类;
利用Bi-gram模型,对分类后的静态特征进行处理,输出Bi-gram操作码特征。
CN202210147263.XA 2022-02-17 2022-02-17 基于多维度混合特征的Android恶意应用检测方法及系统 Pending CN114519187A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210147263.XA CN114519187A (zh) 2022-02-17 2022-02-17 基于多维度混合特征的Android恶意应用检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210147263.XA CN114519187A (zh) 2022-02-17 2022-02-17 基于多维度混合特征的Android恶意应用检测方法及系统

Publications (1)

Publication Number Publication Date
CN114519187A true CN114519187A (zh) 2022-05-20

Family

ID=81599889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210147263.XA Pending CN114519187A (zh) 2022-02-17 2022-02-17 基于多维度混合特征的Android恶意应用检测方法及系统

Country Status (1)

Country Link
CN (1) CN114519187A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028936A (zh) * 2023-02-24 2023-04-28 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028936A (zh) * 2023-02-24 2023-04-28 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备
CN116028936B (zh) * 2023-02-24 2023-05-30 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备

Similar Documents

Publication Publication Date Title
CN117951701A (zh) 用于确定软件代码中的缺陷和漏洞的方法
KR102058966B1 (ko) 악성 어플리케이션 탐지 방법 및 그 장치
CN107229563A (zh) 一种跨架构的二进制程序漏洞函数关联方法
CN113010895B (zh) 一种基于深度学习的漏洞危害评估方法
CN114936158B (zh) 一种基于图卷积神经网络的软件缺陷定位方法
CN111047173B (zh) 基于改进d-s证据理论的社团可信度评估方法
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
CN109740347A (zh) 一种针对智能设备固件的脆弱哈希函数的识别与破解方法
CN109522221A (zh) 一种提高模糊测试效率的方法和系统
CN113221960B (zh) 一种高质量漏洞数据收集模型的构建方法及收集方法
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
Rabheru et al. Deeptective: Detection of php vulnerabilities using hybrid graph neural networks
CN111177731A (zh) 一种基于人工神经网络的软件源代码漏洞检测方法
Masabo et al. Big data: deep learning for detecting malware
CN116432184A (zh) 基于语义分析和双向编码表征的恶意软件检测方法
CN106874762A (zh) 基于api依赖关系图的安卓恶意代码检测方法
CN117454387A (zh) 基于多维度的特征提取的漏洞代码检测方法
CN114519187A (zh) 基于多维度混合特征的Android恶意应用检测方法及系统
Do Xuan et al. Automatically Detect Software Security Vulnerabilities Based on Natural Language Processing Techniques and Machine Learning Algorithms.
CN117009967B (zh) 一种恶意代码检测模型构建方法、系统及存储介质
Mahyari A hierarchical deep neural network for detecting lines of codes with vulnerabilities
KR20210158740A (ko) 기계학습 성능 기반 클러스터링 평가 장치 및 그 방법
CN116975881A (zh) 一种基于llvm的漏洞细粒度定位方法
Jere et al. Principal component properties of adversarial samples
CN110197068B (zh) 基于改进灰狼算法的Android恶意应用检测方法

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