CN113626810A - 基于敏感子图的安卓恶意软件检测方法及系统 - Google Patents

基于敏感子图的安卓恶意软件检测方法及系统 Download PDF

Info

Publication number
CN113626810A
CN113626810A CN202110781344.0A CN202110781344A CN113626810A CN 113626810 A CN113626810 A CN 113626810A CN 202110781344 A CN202110781344 A CN 202110781344A CN 113626810 A CN113626810 A CN 113626810A
Authority
CN
China
Prior art keywords
sensitive
android
subgraph
function call
call graph
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
CN202110781344.0A
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 University of Science and Technology
Original Assignee
Nanjing University of Science and 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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN202110781344.0A priority Critical patent/CN113626810A/zh
Publication of CN113626810A publication Critical patent/CN113626810A/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/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers

Landscapes

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

Abstract

本发明公开了一种基于敏感子图的安卓恶意软件检测方法及系统,检测方法包括:生成安卓应用的敏感函数调用图;挖掘敏感函数调用图中的敏感子图;提取敏感子图特征,训练分类器;识别恶意安卓应用。本发明能从安卓应用的代码调用流程中准确分离出与恶意行为相关的函数调用子图,利用机器学习算法检测恶意安卓应用;这种方法能同时结合安卓应用程序的语义信息和结构信息进行分析,有效提升了恶意安卓应用检测的准确率。

Description

基于敏感子图的安卓恶意软件检测方法及系统
技术领域
本发明属于安卓恶意检测技术,特别是一种基于敏感子图的安卓恶意软件检测方法及系统。
背景技术
近年来,全球进入了移动互联网时代,智能手机得到迅速普及。移动应用在衣食住行、购物、金融等多方面都给生活带来了诸多方便。安卓应用软件正在呈现飞速增长的趋势。但是由于安卓系统的流行性以及其本身的开放性,使得一些不法分子将黑手伸向了安卓系统应用软件,他们将APP(Application手机应用软件)盗版后向其中加入恶意代码,从而涌现出大批的恶意软件。Symantec公司最新的互联网安全报告显示,在如今的安卓平台的应用中,恶意软件占比17%。其恶意行为也多种多样,包括恶意扣费、诱骗欺诈、隐私获取等。所以如何高效检测恶意应用,保护用户隐私成为了安卓研究的重点。
许多方法用于从良性应用中区分出恶意应用,或者更细粒度的运用一些方法去区分安卓恶意家族软件。一些调查人员推荐静态分析方法,例如Arzt S提出通过分析安卓应用的字节码,提取静态特征例如API信息,权限信息,系统调用流程(Arzt S,Rasthofer S,Fritz C,et al.Flowdroid:Precise context,flow,field,object-sensitive andlifecycle-aware taint analysis for android apps[J].Acm Sigplan Notices,2014,49(6):259-269.)来识别恶意安卓应用。最近Yang C等人提出使用机器学习的方法来检测恶意安卓软件(Yang C,Xu Z,Gu G,et al.Droidminer:Automated mining andcharacterization of fine-grained malicious behaviors in android applications[C]//European symposium on research in computer security.Springer,Cham,2014:163-182.)。通过运用不同的模式挖掘算法,构建安卓应用的行为模式,他们的不同之处就在于构建的特征。然而,因为这些方法提取的特征会出现在良性安卓应用中,这些方法的准确性很低,不能更准确的去理解安卓应用的恶意行为相关的结构信息。
而一些基于图的恶意检测方法,例如(Moonsamy V,Rong J,Liu S.Miningpermission patterns for contrasting clean and malicious android applications[J].Future Generation Computer Systems,2014,36:122-132.)是从一个大的连通图或者非连通图中挖掘行为模式,而这个行为模式能刻画一个安卓应用程序的行为特征,从函数依赖图中挖掘出一个代码片段,这个代码片段完成对用户的隐私信息采集任务。Guan Q提出建立一个基于ACTIVITY的简化过程间控制流图(Guan Q,Huang H,Luo W,etal.Semantics-based repackaging detection for mobile apps[C]//InternationalSymposium on Engineering Secure Software and Systems.Springer,Cham,2016:89-105.),然后通过挖掘图中带有敏感行为的活动节点,找到节点中的上下文信息,建立安卓恶意检测模型。然而这些基于图的恶意检测方法有如下一些缺点:(1)分析效率很低,这些方法对整个安卓应用的调用图进行分析,而分析时间随安卓应用的大小增长呈指数级别增长。(2)分析效果差,通常而言,恶意行为相关的代码在FCG中通常只占很小一部分;而大部分的良性代码会对分析结果产生负面影响。
发明内容
本发明的目的在于提供一种基于敏感子图的安卓恶意检测方法及系统,该方法能从函数调用图中准确分离出恶意行为相关代码,并进行恶意分析,该方法能同时对安卓应用的语义信息和安卓应用的结构信息进行分析,实现了很高的检测准确率。
实现本发明目的的技术解决方案为:一种基于敏感子图的安卓恶意软件检测方法,包括以下步骤:
步骤1,生成安卓应用的敏感函数调用图,过程如下:
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
步骤2,挖掘敏感函数调用图中的敏感子图,过程如下:
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
步骤3,提取敏感子图的特征和训练分类器,过程如下:
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
步骤4,识别恶意安卓应用,过程如下:
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
一种基于敏感子图的安卓恶意软件检测系统,包括:
第一模块,用于生成安卓应用的敏感函数调用图;
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
第二模块,用于挖掘敏感函数调用图中的敏感子图;
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
第三模块,用于提取敏感子图的特征和训练分类器;
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
第四模块,用于识别恶意安卓应用;
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
本发明与现有的技术相比,其显著优点在于:(1)综合考虑安卓应用的语义信息和结构信息,具有高可解释性;(2)改进子图异构比较算法,降低算法的时间复杂度,与挖掘到的敏感子图的个数n呈线性增长关系;(3)基于敏感子图的恶意检测方法采用训练机器学习算法模型的方式去检测恶意安卓应用,具有较高的检测准确率;(4)本发明通过敏感子图结构信息去理解安卓应用的恶意行为,克服了语义信息无法显式说明检测方法的有效性的缺点。
下面结合附图对本发明作进一步详细描述。
附图说明
图1是本发明基于敏感子图的安卓恶意软件检测的框架流程图。
图2是挖掘敏感函数调用图中的敏感子图的流程图。
图3是提取敏感子图的特征和训练分类器的流程图。
图4是识别恶意安卓应用的示意图。
具体实施方式
本发明提出一种基于敏感子图的安卓恶意软件检测方法,首先找到安卓应用中敏感API的集合,并且据此构建敏感函数依赖图API,那些包含敏感函数的部分图区域与恶意行为相关。然后使用一种全新的子图挖掘算法,对比基于简单流程图的恶意检测方法,敏感子图能精确刻画恶意安卓应用的恶意行为而且分析效率更高。最后,基于敏感子图的恶意检测方法通过将挖掘的子图作为特征去区分恶意和良性安卓应用,不仅获得了更高分类准确率,同时对比其他基于图的恶意检测方法,在时间效率上的表现更加优异。
下面结合图1,说明本发明方法的具体步骤:
步骤1,生成安卓应用的敏感函数调用图的具体步骤如下:
步骤1.1,给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,apk3,...,apkm};
步骤1.2,根据每个函数API出现的次数Ni|1≤i≤n,恶意样本数量Nm,良性样本数量Nb,计算恶意样本中函数的出现频率f_mal=Ni/Nm,计算良性样本中函数的出现频率f_mal=Ni/Nb,分析计算安卓API的权重分数Scorei=f_mal/(f_mal+f_ben),当Scorei≥0.6,此函数API加入敏感函数API集合S={s1,s2,s3,...,sn};
步骤1.3,利用逆向工程工具apktool将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,得到敏感函数调用图
Figure BDA0003157267670000051
其中FS表示敏感函数调用图包含的敏感API集合为步骤1.2得到的敏感API函数集合的子集,N表示图中的节点集合,E表示图中的边集合,将每个安卓训练样本构造敏感函数调用图得到敏感函数调用图集合SSFCG={SFCG1,SFCG2,SFCG3,...,SFCGm},每个敏感函数调用图与安卓训练样本为一一映射关系
Figure BDA0003157267670000052
步骤2,结合图2,挖掘敏感函数调用图中的敏感子图,过程如下:
步骤2.1,获取每个安卓应用函数调用图中每个节点v的邻居节点neigh(v)={v1,v2,v3,...,vn};
步骤2.2,以敏感函数调用图的一个敏感API节点为起点深度搜索得到一个初始化SSG子图,其中敏感子图SSG是一个SFCG的嵌入式子图,表示如下公式所示,其中SS为敏感子图的敏感API集合,为其所属的SFCG的敏感API集合的子集,SN为敏感子图的节点集合,为其所属的SFCG的节点子集,SE为敏感子图的边集合,为其所属的SFCG的边集合的子集
Figure BDA0003157267670000053
步骤2.3,根据初始化子图深度搜索周围的邻居子图集合,当最后搜索到的敏感子图节点的邻居子图均已经访问过且没有前继节点
Figure BDA0003157267670000054
则搜索停止,这个过程中搜索到的所有x个SSG子图作为安卓应用a的敏感子图集合SSG(apki)={SSG1,SSG2,SSG3,...,SSGx|1≤i≤m}。
步骤3,结合图3,提取敏感子图的特征和训练分类器,过程如下:
步骤3.1,将所有安卓应用样本中挖掘出来的敏感子图利用改进的VF2算法进行异构分析,对于任意两个敏感子图SSG1,SSG2,应用五种语义规则检查敏感子图的异构性Mstc
Mstc(SSG1,SSG2)=Rpre∧Rsuc∧Rin∧Rout∧Rnew
其中Rpre和Rsuc规则检查两个敏感子图映射点对的一致性,Rin和Rout规则剪枝两个敏感子图的节点,Rnew规则对两个敏感子图进行第二轮剪枝,检查敏感子图的异构性。
步骤3.2,由步骤3.1算法对所有的敏感子图进行异构分析,得到互相异构的敏感子图集合特征
Figure BDA0003157267670000061
y为所有异构的敏感子图个数;
步骤3.3,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,安卓应用类型表示为Type(apk)={0|1},0表示良性安卓应用,1表示恶意安卓应用,安卓样本apki|1≤i≤m的特征为
Figure BDA0003157267670000062
综合所有安卓样本的特征,合并得到一个包含m个安卓应用的特征向量矩阵
Figure BDA0003157267670000063
步骤3.4,使用随机森林二元分类算法对步骤3.3得到的特征向量矩阵进行训练得到分类器Classifier;
步骤4,结合图4,识别恶意安卓应用,过程如下:
步骤4.1,将待预测的安卓应用样本apkunknown按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征
Figure BDA0003157267670000064
步骤4.2,使用步骤3.3得到的分类器检测待预测的安卓恶意应用apkunknown的类型为恶意或者良性。
进一步的,本发明还提供一种基于敏感子图的安卓恶意软件检测系统,包括:
第一模块,用于生成安卓应用的敏感函数调用图;
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
第二模块,用于挖掘敏感函数调用图中的敏感子图;
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
第三模块,用于提取敏感子图的特征和训练分类器;
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
第四模块,用于识别恶意安卓应用;
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
上述第一~第四模块的具体实现方式与上述检测方法的具体过程相同,此处不再赘述。
利用本发明的方法与两种基于图分析的安卓恶意检测方法,Dapasa和GraphSample取样的方法,与基于语义分析的安卓恶意检测方法,Drebin和MamaDroid方法进行对比。评价指标为精确率Precision,准确率Accuracy,回调率Recall,F1分数F1Score,实验用的数据,用到了10123个恶意安卓样本,来源于FlowDroid安卓恶意样本中心,用到了82010个良性安卓样本,来源于谷歌商店,这些样本均经过virtool工具验证过。恶意安卓软件的检测对比结果如表1所示:
表1不同检测方法的实验结果对比
Figure BDA0003157267670000081
实验结果表明,基于敏感子图的安卓恶意检测方法的各项评价指标均优于其他方法。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于敏感子图的安卓恶意软件检测方法,其特征在于,包括以下步骤:
步骤1,生成安卓应用的敏感函数调用图,过程如下:
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
步骤2,挖掘敏感函数调用图中的敏感子图,过程如下:
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
步骤3,提取敏感子图的特征和训练分类器,过程如下:
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
步骤4,识别恶意安卓应用,过程如下:
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
2.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤1生成安卓应用的敏感函数调用图的具体步骤如下:
步骤1.1,给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,apk3,...,apkm};
步骤1.2,利用Pscout和SuSi工具分析计算安卓API的权重分数获得一个敏感API集合S={s1,s2,s3,...,sn};
步骤1.3,利用逆向工程工具apktool将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,得到敏感函数调用图
Figure FDA0003157267660000011
其中FS表示敏感函数调用图包含的敏感API集合为步骤1.2得到的敏感API函数集合的子集,N表示图中的节点集合,E表示图中的边集合,将每个安卓训练样本构造敏感函数调用图得到敏感函数调用图集合SSFCG={SFCG1,SFCG2,SFCG3,...,SFCGm},每个敏感函数调用图与安卓训练样本为一一映射关系
Figure FDA0003157267660000021
3.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤2挖掘敏感函数调用图中的敏感子图的具体步骤如下:
步骤2.1,获取每个安卓应用函数调用图中每个节点v的邻居节点neigh(v)={v1,v2,v3,...,vn};
步骤2.2,以敏感函数调用图的一个敏感API节点为起点深度搜索得到一个初始化SSG子图,其中敏感子图SSG是一个SFCG的嵌入式子图,表示如下公式所示,其中SS为敏感子图的敏感API集合,为其所属的SFCG的敏感API集合的子集,SN为敏感子图的节点集合,为其所属的SFCG的节点子集,SE为敏感子图的边集合,为其所属的SFCG的边集合的子集
Figure FDA0003157267660000022
步骤2.3,根据初始化子图深度搜索周围的邻居子图集合,当最后搜索到的敏感子图节点的邻居子图均已经访问过且没有前继节点
Figure FDA0003157267660000023
则搜索停止,这个过程中搜索到的所有x个SSG子图作为安卓应用a的敏感子图集合SSG(apki)={SSG1,SSG2,SSG3,...,SSGx|1≤i≤m}。
4.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤3提取敏感子图的特征和训练分类器,步骤如下:
步骤3.1,将所有安卓应用样本中挖掘出来的敏感子图利用改进的VF2算法进行异构分析,对于任意两个敏感子图SSG1,SSG2,应用五种语义规则检查敏感子图的异构性Mstc
Mstc(SSG1,SSG2)=Rpre∧Rsuc∧Rin∧Rout∧Rnew
其中规则Rpre和Rsuc检查两个敏感子图映射点对的一致性,规则Rin和Rout剪枝两个敏感子图的节点,规则Rnew对两个敏感子图进行第二轮剪枝,五个规则一起用于检查敏感子图的异构性;
步骤3.2,由步骤3.1算法对所有的敏感子图进行异构分析,得到互相异构的敏感子图集合特征
Figure FDA0003157267660000031
y为所有异构的敏感子图个数;
步骤3.3,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,安卓应用类型表示为Type(apk)={0|1},0表示良性安卓应用,1表示恶意安卓应用,安卓样本apki|1≤i≤m的特征为
Figure FDA0003157267660000032
综合所有安卓样本的特征,合并得到一个包含m个安卓应用的特征向量矩阵
Figure FDA0003157267660000033
步骤3.4,使用随机森林二元分类算法对步骤3.3得到的特征向量矩阵进行训练得到分类器Classifier。
5.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤4识别恶意安卓应用,步骤如下:
步骤4.1,将待预测的安卓应用样本apkunknown按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征
Figure FDA0003157267660000034
步骤4.2,使用步骤3.3得到的分类器检测待预测的安卓恶意应用apkunknown的类型为恶意或者良性。
6.一种基于敏感子图的安卓恶意软件检测系统,其特征在于,包括:
第一模块,用于生成安卓应用的敏感函数调用图;
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
第二模块,用于挖掘敏感函数调用图中的敏感子图;
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
第三模块,用于提取敏感子图的特征和训练分类器;
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
第四模块,用于识别恶意安卓应用;
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
7.根据权利要求6所述的基于敏感子图的安卓恶意软件检测系统,其特征在于,所述第一模块,生成安卓应用的敏感函数调用图,具体为:
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,apk3,...,apkm};
利用Pscout和SuSi工具分析计算安卓API的权重分数获得一个敏感API集合S={s1,s2,s3,...,sn};
利用逆向工程工具apktool将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,得到敏感函数调用图
Figure FDA0003157267660000041
其中FS表示敏感函数调用图包含的敏感API集合为敏感API函数集合的子集,N表示图中的节点集合,E表示图中的边集合,将每个安卓训练样本构造敏感函数调用图得到敏感函数调用图集合SSFCG={SFCG1,SFCG2,SFCG3,...,SFCGm},每个敏感函数调用图与安卓训练样本为一一映射关系
Figure FDA0003157267660000051
8.根据权利要求6所述的基于敏感子图的安卓恶意软件检测系统,其特征在于,所述第二模块,挖掘敏感函数调用图中的敏感子图,具体如下:
获取每个安卓应用函数调用图中每个节点v的邻居节点neigh(v)={v1,v2,v3,...,vn};
以敏感函数调用图的一个敏感API节点为起点深度搜索得到一个初始化SSG子图,其中敏感子图SSG是一个SFCG的嵌入式子图,表示如下公式所示,其中SS为敏感子图的敏感API集合,为其所属的SFCG的敏感API集合的子集,SN为敏感子图的节点集合,为其所属的SFCG的节点子集,SE为敏感子图的边集合,为其所属的SFCG的边集合的子集
Figure FDA0003157267660000052
根据初始化子图深度搜索周围的邻居子图集合,当最后搜索到的敏感子图节点的邻居子图均已经访问过且没有前继节点
Figure FDA0003157267660000053
则搜索停止,这个过程中搜索到的所有x个SSG子图作为安卓应用a的敏感子图集合SSG(apki)={SSG1,SSG2,SSG3,...,SSGx|1≤i≤m}。
9.根据权利要求6所述的基于敏感子图的安卓恶意软件检测系统,其特征在于,所述第三模块,提取敏感子图的特征和训练分类器,具体如下:
将所有安卓应用样本中挖掘出来的敏感子图利用改进的VF2算法进行异构分析,对于任意两个敏感子图SSG1,SSG2,应用五种语义规则检查敏感子图的异构性Mstc
Mstc(SSG1,SSG2)=Rpre∧Rsuc∧Rin∧Rout∧Rnew
其中规则Rpre和Rsuc检查两个敏感子图映射点对的一致性,规则Rin和Rout剪枝两个敏感子图的节点,规则Rnew对两个敏感子图进行第二轮剪枝,五个规则一起用于检查敏感子图的异构性;
对所有的敏感子图进行异构分析,得到互相异构的敏感子图集合特征
Figure FDA0003157267660000061
y为所有异构的敏感子图个数;
映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,安卓应用类型表示为Type(apk)={0|1},0表示良性安卓应用,1表示恶意安卓应用,安卓样本apki|1≤i≤m的特征为
Figure FDA0003157267660000062
综合所有安卓样本的特征,合并得到一个包含m个安卓应用的特征向量矩阵
Figure FDA0003157267660000063
使用随机森林二元分类算法对特征向量矩阵进行训练得到分类器Classifier。
10.根据权利要求6所述的基于敏感子图的安卓恶意软件检测系统,其特征在于,所述第四模块,识别恶意安卓应用,具体如下:
将待预测的安卓应用样本apkunknown按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征
Figure FDA0003157267660000064
使用分类器检测待预测的安卓恶意应用apkunknown的类型为恶意或者良性。
CN202110781344.0A 2021-07-11 2021-07-11 基于敏感子图的安卓恶意软件检测方法及系统 Pending CN113626810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110781344.0A CN113626810A (zh) 2021-07-11 2021-07-11 基于敏感子图的安卓恶意软件检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110781344.0A CN113626810A (zh) 2021-07-11 2021-07-11 基于敏感子图的安卓恶意软件检测方法及系统

Publications (1)

Publication Number Publication Date
CN113626810A true CN113626810A (zh) 2021-11-09

Family

ID=78379377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110781344.0A Pending CN113626810A (zh) 2021-07-11 2021-07-11 基于敏感子图的安卓恶意软件检测方法及系统

Country Status (1)

Country Link
CN (1) CN113626810A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817924A (zh) * 2022-05-19 2022-07-29 电子科技大学 基于ast和跨层分析的安卓恶意软件检测方法及系统
CN118036006A (zh) * 2024-04-12 2024-05-14 山东省计算中心(国家超级计算济南中心) 基于敏感api的恶意软件检测方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203122A (zh) * 2016-07-25 2016-12-07 西安交通大学 基于敏感子图的安卓恶意重打包软件检测方法
US20180144132A1 (en) * 2016-11-18 2018-05-24 Sichuan University Kind of android malicious code detection method on the base of community structure analysis
CN111090859A (zh) * 2019-11-25 2020-05-01 北京理工大学 一种基于图编辑距离的恶意软件检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203122A (zh) * 2016-07-25 2016-12-07 西安交通大学 基于敏感子图的安卓恶意重打包软件检测方法
US20180144132A1 (en) * 2016-11-18 2018-05-24 Sichuan University Kind of android malicious code detection method on the base of community structure analysis
CN111090859A (zh) * 2019-11-25 2020-05-01 北京理工大学 一种基于图编辑距离的恶意软件检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张雪涛;王金双;孙蒙;: "基于GCN的安卓恶意软件检测模型", 软件导刊, no. 07, 15 July 2020 (2020-07-15) *
董克源;徐建;: "基于Stacking的Android恶意检测方法研究", 计算机与数字工程, no. 05, 20 May 2019 (2019-05-20) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817924A (zh) * 2022-05-19 2022-07-29 电子科技大学 基于ast和跨层分析的安卓恶意软件检测方法及系统
CN114817924B (zh) * 2022-05-19 2023-04-07 电子科技大学 基于ast和跨层分析的安卓恶意软件检测方法及系统
CN118036006A (zh) * 2024-04-12 2024-05-14 山东省计算中心(国家超级计算济南中心) 基于敏感api的恶意软件检测方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN109753800B (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
Aslan et al. A new malware classification framework based on deep learning algorithms
Fereidooni et al. ANASTASIA: ANdroid mAlware detection using STatic analySIs of Applications
Alrabaee et al. Fossil: a resilient and efficient system for identifying foss functions in malware binaries
Jian et al. A novel framework for image-based malware detection with a deep neural network
Raman Selecting features to classify malware
Ficco Detecting IoT malware by Markov chain behavioral models
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN105138916B (zh) 基于数据挖掘的多轨迹恶意程序特征检测方法
RU2427890C2 (ru) Система и способ сравнения файлов на основе шаблонов функциональности
CN113626810A (zh) 基于敏感子图的安卓恶意软件检测方法及系统
Rhode et al. Lab to soc: robust features for dynamic malware detection
Narayanan et al. Contextual weisfeiler-lehman graph kernel for malware detection
WO2021167483A1 (ru) Способ и система выявления вредоносных файлов в неизолированной среде
Kakisim et al. Sequential opcode embedding-based malware detection method
Meng et al. Androvault: Constructing knowledge graph from millions of android apps for automated analysis
CN113468525A (zh) 针对二进制程序的相似漏洞检测方法及装置
Bernardi et al. A fuzzy-based process mining approach for dynamic malware detection
Yesir et al. Malware detection and classification using fastText and BERT
Ban et al. Fam: featuring android malware for deep learning-based familial analysis
Park et al. Birds of a feature: Intrafamily clustering for version identification of packed malware
Sihag et al. Opcode n-gram based malware classification in android
Alrabaee A stratified approach to function fingerprinting in program binaries using diverse features
Hadiprakoso et al. Android malware detection using hybrid-based analysis & deep neural network
Banik et al. Android Malware Detection by Correlated Real Permission Couples Using FP Growth Algorithm and Neural Networks

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