CN108280350B - 一种面向Android的移动网络终端恶意软件多特征检测方法 - Google Patents

一种面向Android的移动网络终端恶意软件多特征检测方法 Download PDF

Info

Publication number
CN108280350B
CN108280350B CN201810109044.6A CN201810109044A CN108280350B CN 108280350 B CN108280350 B CN 108280350B CN 201810109044 A CN201810109044 A CN 201810109044A CN 108280350 B CN108280350 B CN 108280350B
Authority
CN
China
Prior art keywords
software
malicious
sensitive
malware
family
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
Application number
CN201810109044.6A
Other languages
English (en)
Other versions
CN108280350A (zh
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 Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201810109044.6A priority Critical patent/CN108280350B/zh
Publication of CN108280350A publication Critical patent/CN108280350A/zh
Application granted granted Critical
Publication of CN108280350B publication Critical patent/CN108280350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F21/563Static detection by source code analysis
    • 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
    • G06F18/2411Classification 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种面向Android的移动网络终端恶意软件多特征检测方法。包括以下步骤:步骤1,获取Android软件数据集,包括恶意样本和非恶意样本;步骤2,分析恶意软件的安装包,提取软件的安装包特征,构造安装包特征向量;步骤3,获取软件申请的权限,构建权限列表;步骤4,反编译恶意软件的安装包,构建软件的敏感行为图,提取软件的敏感行为集;步骤5,对恶意样本中属于同一恶意软件家族的软件特征进行统计分析,构建恶意软件家族特征库;步骤6,提取软件特征,并进行恶意性判定及恶意家族分类。本发明选取软件包特征、权限特征和软件敏感行为调用特征作为恶意软件判定的依据,可提高软件恶意行为检测的准确性,同时具有恶意软件家族分类的能力。

Description

一种面向Android的移动网络终端恶意软件多特征检测方法
技术领域
本发明属于移动软件分析及信息安全领域,具体涉及一种面向Android的移动网络终端恶意软件多特征检测方法。
背景技术
Android恶意代码多标签检测问题,是在学术界和工业界中具有挑战性的难题。在判定软件恶意性的同时还应给出其所属家族。当前智能手机的应用已经涉及到人们生活的各个方面,而Android***在智能手机中占有大量的份额,因此准确的检测Android恶意代码,对于保护Android用户隐私和财产安全具有重要的意义和应用价值。
现有的Android恶意软件检测技术主要分为2类:分别为基于静态分析和基于动态分析的检测技术。动态分析方法模拟软件的执行,能够绕过静态方法遇到的代码混淆和加密等问题;但是动态测试代码覆盖率低,并且有些恶意程序可以防止自身在模拟器下运行。静态分析方法主要研究使用反编译技术或者在smali中间代码上进行控制流和数据流分析技术,能够对软件进行自动化分析,具有较高的检测效率,代码覆盖率高,适用于对大量软件样本进行分析;缺点是需要解决静态方法难以检测的代码混淆、加密以及在动态执行中才解码恶意代码的问题。为了应对该问题,已有研究者在恶意软件检测中考虑了加密、代码动态加载、Native代码动态加载等技术,如Riskranker和DroidRanger等。
目前已有许多学者针对Android恶意软件的多标签检测方法进行了相关研究。如Daniel Arp等人提出了基于静态分析方法的Android恶意代码多标签检测方法,在软件安装包中提取了大量的静态特征,并使用支持向量机进行分类,实现了高效检测;Yu Feng等人提出了描述Android恶意家族的特征描述语言,并使用特征匹配算法对待测软件进行分类,实现了基于语义的Android恶意软件检测;Chao Yang等人使用两级行为图表示方法描述软件的逻辑行为,结合静态污点分析和组件间的行为图,通过恶意行为模式分析判断软件的恶意性,并实现了对恶意家族的分类。
然而,现有的Android恶意软件多标签检测技术的研究,多选取恶意软件的所有样本进行分析,提取恶意软件所具有的特征,并以此作为待测软件恶意性判定的依据。而属于不同家族的恶意软件具有不同的恶意行为,其恶意性所表现出来的特征也具有较大差异。同一恶意软件家族的恶意软件,具有相似的恶意行为。但是,现有的恶意软件检测工具对于恶意软件的多标签检测能力较弱,如McAfee对于Genome数据集中的恶意样本进行检测时,将其中超过90%的样本检测为Trojan或Downloader,而实际上属于多个不同的恶意软件家族(如DroidDream等)。因此,速度和准确性均有待进一步提升,需要研究高效的恶意软件多标签检测方法。
发明内容
本发明的目的在于提供一种面向Android的移动网络终端恶意软件多特征检测方法,从而有效的提取Android恶意软件的特征,提高Android恶意软件检测的精度,并具有Android恶意家族分类的能力。
实现本发明的技术解决方案为:一种面向Android的移动网络终端恶意软件多特征检测方法,具体包括以下步骤:
步骤1、获取Android恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建恶意和非恶意软件样本数据集;
步骤2、提取软件的安装包特征,包括:是否存在.so文件、是否存在用于root***的文件、是否存在异常文件,以及是否存在子程序,从而构造安装包特征向量F;
步骤3、使用反编译工具处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表P;
步骤4、反编译安装包,构建软件函数调用图,定位其中的安全敏感方法,构建软件的敏感行为图SBG,然后采用数据流分析方法获得安全敏感方法的上下文信息,将被直接或间接调用的安全敏感方法构成软件的敏感行为集SBS;
步骤5、对恶意样本中属于同一恶意软件家族的软件特征进行统计分析,获取各特征分量出现的概率,构建Android恶意软件家族多特征模型M,从而构建恶意软件家族特征库;
步骤6、使用步骤2~4的方法提取待测软件的特征,将待测软件的特征与恶意软件家族特征库进行特征匹配,得到与之相似度最高的恶意软件家族名称,若相似度超过阈值则输出该软件为恶意软件,并输出其所属的恶意软件家族,否则输出该软件为良性软件。
本发明与现有技术相比,其显著优点为:1)本发明提出了一种面向Android的移动网络终端恶意软件多特征检测方法,针对不同的恶意软件家族,基于静态分析方法,从软件包特征、申请权限特征和软件的行为调用特征三个方面对软件进行分析;2)本发明采用统计分析方法,提取恶意软件家族的特征,构造恶意软件家族特征库,基于该特征库提出了恶意软件多标签检测方法,能够达到较好的恶意性判定精度和恶意家族分类精度。
下面结合附图对本发明作进一步详细阐述。
附图说明
图1为本发明的一种面向Android的移动网络终端恶意软件多特征检测方法的流程图。
图2为运用本发明的恶意软件检测精度及恶意家族分类精度与VirusTotal中部分引擎的对比结果。
具体实施方式
结合附图,本发明的一种面向Android的移动网络终端恶意软件多特征检测方法,包括以下步骤:
步骤1、获取Android恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建恶意和非恶意软件样本数据集;
步骤2、提取软件的安装包特征,包括:是否存在.so文件、是否存在用于root***的文件、是否存在异常文件、以及是否存在子程序,从而构造安装包特征向量F;
所述异常文件指文件的后缀与文件内容本身指定的类型不匹配的文件;判断文件是否存在.so文件,并通过MD5值判断库文件是否为root exploit文件;判断jar文件、dex文件和apk文件是否存在子程序。
步骤3、使用反编译工具处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表P;
步骤4、反编译安装包,构建软件函数调用图,定位其中的安全敏感方法,构建软件的敏感行为图SBG,然后采用数据流分析方法获得安全敏感方法的上下文信息,将被直接或间接调用的安全敏感方法构成软件的敏感行为集SBS;
所述安全敏感方法包括:权限保护的方法、信息流Source/Sink方法和其他可疑方法;权限保护方法指Android***中需要申请权限才能使用的API,信息流Source/Sink方法指可能产生或发送敏感信息的方法,其他可疑方法包括动态加载函数、反射函数、加解密函数、Native代码执行及调用函数。
构建的软件函数调用图为下列四元组:
SBG=(VD,VN,E,μ)
其中,VD为软件敏感行为调用图中点集的子集,其中的任一节点vd∈VD为安全敏感方法的一种;VN为软件敏感行为调用图中点集的子集,其中的任一节点vn∈VN为非安全敏感方法,但是直接或间接的调用了安全敏感方法;E∈VN×VD为软件敏感行为调用图边的集合,表示方法之间具有调用关系,其中任一条边e=(vn,vd)∈E表示软件中的非安全敏感方法vn∈VN直接或间接的调用了安全敏感方法vd∈VD,或组件Cs中的方法vn通过ICC直接或间接触发了组件Ct中的方法vd;标记函数μ:Vd→<ID,EntryType,Para>用于标记图中结点包含的内容,即该方法的上下文信息,包括方法ID、入口点类型EntryType和参数Para;
敏感行为集为如下所示的集合:
SBS={S1,…,Si,…,Sm}
其中,Si={v|(vi,v)∈E∧vi∈VN∧v∈VD}为安全敏感方法集,表示敏感行为调用图SBG=(VD,VN,E,μ)中,VN集合的第i个非敏感安全方法直接或间接调用的所有安全敏感方法构成的集合;m=|VN|为集合SBS的长度。
步骤5、对恶意样本中属于同一恶意软件家族的软件特征进行统计分析,获取各特征分量出现的概率,构建Android恶意软件家族多特征模型M,从而构建恶意软件家族特征库;
所述构建的Android恶意软件家族多特征模型为下列六元组:
M=(SBSc,α,Fc,β,Pc,γ)
其中,
Figure BDA0001568599290000041
为恶意软件家族共有的敏感行为集,通过统计分析同一恶意软件家族样本的敏感行为集SBS获得;标记函数
Figure BDA0001568599290000042
用于标记SBSc中敏感方法集在恶意软件家族样本中出现的概率;Fc为通过分析同一恶意软件家族样本的安装包特征向量F,统计得到的恶意软件家族样本具有的共有软件安装包特征;标记函数β:f∈Fc→[0,1]用于标记Fc中各种特征在恶意软件家族样本中出现的概率;Pc为通过分析同一恶意软件家族样本的权限列表P,统计得到的恶意软件家族样本频繁申请的权限列表;标记函数γ:p∈Pc→[0,1]用于标记Pc中各权限在恶意软件家族样本中出现的概率。
步骤6、使用步骤2~4的方法提取待测软件的特征,将待测软件的特征与恶意软件家族特征库进行特征匹配,得到与之相似度最高的恶意软件家族名称,若相似度超过阈值则输出该软件为恶意软件,并输出其所属的恶意软件家族,否则输出该软件为良性软件。
所述待测软件与恶意软件家族的相似度表示为:
Figure BDA0001568599290000043
其中Sf为软件特征向量的相似度,Sp为权限列表的相似度,Ssbs为敏感行为集的相似度,μi为各相似度在计算时的权重值;
软件特征向量相似度Sf的计算方法为:给定待测软件的特征向量F={f1,f2,f3,...,fm},待匹配的恶意软件家族多特征模型中的特征向量
Figure BDA0001568599290000044
以及对应的标记函数β,则:
Figure BDA0001568599290000051
按照各特征出现的概率计算相似度,若恶意家族多特征模型中的特征向量中的值均为0,则相似度为0;其中修正因子ωf的计算方法为:向量F中所有使fifi c=1的特征数量除以向量Fc中值为1的特征数量;
软件的权限列表相似度Sp的计算方法为:给定待测软件的权限列表P,待匹配的恶意软件家族多特征模型中的权限列表Pc={p1 c,p2 c,...,pn c},以及对应的标记函数γ,则:
Figure BDA0001568599290000052
Figure BDA0001568599290000053
其中修正因子ωp的计算方法为:权限集合P中属于Pc的权限数量除以集合Pc的长度;当权限列表Pc中的元素
Figure BDA0001568599290000054
包含在待测软件的权限列表P中时,
Figure BDA0001568599290000055
值为1,否则为0;
敏感行为集相似度Ssbs的计算方法为:给定软件的敏感行为集SBS,待匹配的恶意软件家族多特征中的敏感行为集
Figure BDA0001568599290000056
以及对应的标记函数α,则:
Figure BDA0001568599290000057
Figure BDA0001568599290000058
式中,ωsbs为修正因子,其计算方法为:SBS中所有使
Figure BDA0001568599290000059
的集合Si c的数量除以集合SBSc的长度;其中,函数
Figure BDA00015685992900000510
表示:在SBS中存在某一集合S,与集合
Figure BDA00015685992900000511
中的相似元素占两个集合所有元素的比例大于θ(0<θ≤1)。
由上可知,本发明采用统计分析方法,提取恶意软件家族的特征,构造恶意软件家族特征库,基于该特征库提出了恶意软件多标签检测方法,能够达到较好的恶意性判定精度和恶意家族分类精度。
为了使本领域技术人员更好地理解本发明中的技术问题、技术方案和技术效果,下面结合附图和具体实施例对本发明作进一步详细说明。
实施例
一种面向Android的移动网络终端恶意软件多特征检测方法,使用Drebin数据集和Google Play中获取的非恶意软件样本,构成数据集,恶意代码检测和家族分类具体包括以下步骤:
步骤1:将Drebin中的样本按照其所属的恶意家族进行分割,使用网络爬虫方法,在Google Play上获取非恶意软件,并使用VirusTotal在线检测服务进行验证,从而构建样本数据集,包括24个恶意软件家族的4486个恶意软件样本,和2140个良性软件样本;
步骤2:使用Zip解压缩工具将待分析的软件安装包解压缩,提取软件的安装包特征,包括:是否存在.so文件、是否存在用于root***的文件、是否存在异常文件,以及是否存在子程序,从而构造安装包特征向量F;判断是否存在用于root***的文件时,通过将现有的root exploit库文件的MD5值与软件安装包中的文件进行对比;判断是否存在异常文件,通过Apache Tika工具分析文件内容,获得文件类型,并与文件后缀进行对比;判断是否存在子程序,通过查看程序中是否存在jar文件、dex文件及apk文件实现;
步骤3:使用APKParser处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表P;
步骤4:使用Soot工具反编译安装包,构建软件函数调用图,定位其中的安全敏感方法,构建软件的敏感行为图SBG,然后采用数据流分析方法获得安全敏感方法的上下文信息,将被直接或间接调用的安全敏感方法构成软件的敏感行为集SBS;
关注的安全敏感方法包括:权限保护的方法、信息流Source/Sink方法和其他可疑方法;权限保护的方法指Android***中需要申请权限才能使用的API,信息流Source/Sink方法指可能产生或发送敏感信息的方法,其他可疑方法包括动态加载函数、反射函数、加解密函数、Native代码执行及调用函数。
构建的敏感行为调用图为下列四元组:
SBG=(VD,VN,E,μ)
其中,VD为软件敏感行为调用图中点集的子集,其中的任一节点vd∈VD为安全敏感方法的一种;VN为软件函数调用图中点集的子集,其中的任一节点vn∈VN为非安全敏感方法,但是直接或间接的调用了安全敏感方法;E∈VN×VD为敏感行为调用图边的集合,表示方法之间具有调用关系。其中任一条边e=(vn,vd)∈E表示软件中的非安全敏感方法vn∈VN直接或间接的调用了安全敏感方法vd∈VD,或组件Cs中的方法vn通过ICC直接或间接触发了组件Ct中的方法vd;标记函数μ:Vd→<ID,EntryType,Para>用于标记图中顶点包含的内容,包括方法ID、入口点类型EntryType和参数Para。
敏感行为集为如下所示的集合:
SBS={S1,S2,…,Sm}
其中,Si={v|(vi,v)∈E∧vi∈VN∧v∈VD}为安全敏感方法集,表示敏感行为调用图SBG=(VD,VN,E,μ)中,Vn集合的第i个非敏感安全方法直接或间接调用的所有安全敏感方法构成的集合;m=|VN|为集合SBS的长度;
步骤5、选取24个恶意软件家族样本中的75%(3341个样本)作为特征提取的样本,构建恶意软件家族特征库。对恶意样本中属于同一恶意软件家族的软件特征进行统计分析,获取各特征分量出现的概率,构建Android恶意软件家族多特征模型M,从而构建恶意软件家族特征库;
构建的Android恶意软件家族多特征模型为下列六元组:
M=(SBSc,α,Fc,β,Pc,γ)
其中,
Figure BDA0001568599290000071
为恶意软件家族共有的敏感行为集,通过统计分析同一恶意软件家族样本的敏感行为集SBS获得;标记函数
Figure BDA0001568599290000072
用于标记SBSc中敏感方法集在恶意软件家族样本中出现的概率;Fc为通过分析同一恶意软件家族样本的安装包特征F,统计得到的恶意软件家族样本具有的共有软件安装包特征;标记函数β:f∈Fc→[0,1]用于标记Fc中各个特征在恶意软件家族样本中出现的概率;Pc为通过分析同一恶意软件家族样本的权限列表P,统计得到的恶意软件家族样本频繁申请的权限列表;标记函数γ:p∈Pc→[0,1]用于标记Pc中各权限在恶意软件家族样本中出现的概率;
步骤6、使用步骤2~4的方法提取待测软件的特征,将待测软件的特征与恶意软件家族特征库进行特征匹配,得到与之相似度最高的恶意软件家族名称,若相似度超过0.7则输出该软件为恶意软件,并输出其所属的恶意软件家族,否则输出该软件为良性软件;
待测软件与恶意软件家族的相似度表示为:
Figure BDA0001568599290000073
其中Sf为特征向量的相似度,Sp为权限列表的相似度,Ssbs为敏感行为集的相似度,μi为各相似度在计算时的权重值,实验中三个权重值均取
Figure BDA0001568599290000074
软件特征向量的相似度计算方法为,给定待测软件的特征向量F={f1,f2,f3,...,fm},待匹配的恶意软件家族多特征模型中的特征向量Fc={f1 c,f2 c,f3 c,...,fm c},以及对应的标记函数β,其相似度的计算方法如下式所示:
Figure BDA0001568599290000081
按照各特征出现的概率计算相似度,若恶意家族多特征模型中的特征向量的值均为0,则相似度为0。其中修正因子ωf的计算方法为:向量F中所有使fifi c=1的特征数量除以向量Fc中值为1的特征数量。
软件权限列表相似度的计算方法为,给定待测软件的权限列表P,待匹配的恶意软件家族多特征模型中的权限列表Pc={p1 c,p2 c,...,pn c},以及对应的标记函数γ,其相似度的计算方法如下式所示:
Figure BDA0001568599290000082
Figure BDA0001568599290000083
其中修正因子ωp的计算方法为:权限集合P中属于Pc的权限数量除以集合Pc的长度。
敏感行为集相似度的计算方法为,给定软件的敏感行为集SBS,待匹配的恶意软件家族多特征中的敏感行为集
Figure BDA0001568599290000084
以及对应的标记函数α,其相似度的计算方法如下式所示:
Figure BDA0001568599290000085
Figure BDA0001568599290000086
为了防止特征较多的恶意软件家族覆盖特征较少的家族,引入修正因子ωsbs,其计算方法为:SBS中所有使
Figure BDA0001568599290000087
的集合
Figure BDA0001568599290000088
的数量除以集合SBSc的长度。其中,函数
Figure BDA0001568599290000089
表示:在SBS中存在某一集合S,与集合
Figure BDA00015685992900000810
中的相似元素占两个集合所有元素的比例大于80%。
使用上述方法对剩余25%(1145个)的恶意软件样本以及2140个良性软件样本进行测试实验,软件恶意性判定及恶意家族分类的结果,与VirusTotal中常见的8个反病毒引擎的检测结果的对比如图2所示。
由上可知,本发明选取软件包特征、权限特征和软件敏感行为调用特征作为恶意软件判定的依据,可提高软件恶意行为检测的准确性,同时具有恶意软件家族分类的能力。

Claims (5)

1.一种面向Android的移动网络终端恶意软件多特征检测方法,其特征在于,包括以下步骤:
步骤1、获取Android恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建恶意和非恶意软件样本数据集;
步骤2、提取软件的安装包特征,包括:是否存在.so文件、是否存在用于root***的文件、是否存在异常文件、以及是否存在子程序,从而构造安装包特征向量F;
步骤3、使用反编译工具处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表P;
步骤4、反编译安装包,构建软件函数调用图,定位其中的安全敏感方法,构建软件的敏感行为图SBG,然后采用数据流分析方法获得安全敏感方法的上下文信息,将被直接或间接调用的安全敏感方法构成软件的敏感行为集SBS;构建的软件函数调用图为下列四元组:
SBG=(VD,VN,E,μ)
其中,VD为软件敏感行为调用图中点集的子集,其中的任一节点vd∈VD为安全敏感方法的一种;VN为软件敏感行为调用图中点集的子集,其中的任一节点vn∈VN为非安全敏感方法,但是直接或间接的调用了安全敏感方法;E∈VN×VD为软件敏感行为调用图边的集合,表示方法之间具有调用关系,其中任一条边e=(vn,vd)∈E表示软件中的非安全敏感方法vn∈VN直接或间接的调用了安全敏感方法vd∈VD,或组件Cs中的方法vn通过ICC直接或间接触发了组件Ct中的方法vd;标记函数μ:Vd→<ID,EntryType,Para>用于标记图中结点包含的内容,即VD及VN中方法的上下文信息,包括方法ID、入口点类型EntryType和参数Para;
敏感行为集为如下所示的集合:
SBS={S1,…,Si,…,Sm}
其中,Si={v|(vi,v)∈E∧vi∈VN∧v∈VD}为安全敏感方法集,表示敏感行为调用图SBG=(VD,VN,E,μ)中,VN集合的第i个非敏感安全方法直接或间接调用的所有安全敏感方法构成的集合;m=|VN|为集合SBS的长度;
步骤5、对恶意样本中属于同一恶意软件家族的软件特征进行统计分析,获取各特征分量出现的概率,构建Android恶意软件家族多特征模型M,从而构建恶意软件家族特征库;
步骤6、使用步骤2~4的方法提取待测软件的特征,将待测软件的特征与恶意软件家族特征库进行特征匹配,得到与之相似度最高的恶意软件家族名称,若相似度超过阈值则输出该待测软件为恶意软件,并输出其所属的恶意软件家族,否则输出该待测软件为良性软件。
2.根据权利要求1所述的面向Android的移动网络终端恶意软件多特征检测方法,其特征在于,步骤2中的异常文件指文件的后缀与文件内容本身指定的类型不匹配的文件;判断文件是否存在.so文件,并通过MD5值判断库文件是否为rootexploit文件;判断jar文件、dex文件和apk文件是否存在子程序。
3.根据权利要求1所述的面向Android的移动网络终端恶意软件多特征检测方法,其特征在于,步骤4中的安全敏感方法包括:权限保护的方法、信息流Source/Sink方法和其他可疑方法;权限保护方法指Android***中需要申请权限才能使用的API,信息流Source/Sink方法指可能产生或发送敏感信息的方法,其他可疑方法包括动态加载函数、反射函数、加解密函数、Native代码执行及调用函数。
4.根据权利要求1所述的面向Android的移动网络终端恶意软件多特征检测方法,其特征在于,步骤5中构建的Android恶意软件家族多特征模型为下列六元组:
M=(SBSc,α,Fc,β,Pc,γ)
其中,
Figure FDA0003152045520000021
为恶意软件家族共有的敏感行为集,通过统计分析同一恶意软件家族样本的敏感行为集SBS获得;标记函数
Figure FDA0003152045520000022
用于标记SBSc中敏感方法集在恶意软件家族样本中出现的概率;Fc为通过分析同一恶意软件家族样本的安装包特征向量F,统计得到的恶意软件家族样本具有的共有软件安装包特征;标记函数β:f∈Fc→[0,1]用于标记Fc中各种特征在恶意软件家族样本中出现的概率;Pc为通过分析同一恶意软件家族样本的权限列表P,统计得到的恶意软件家族样本频繁申请的权限列表;标记函数γ:p∈Pc→[0,1]用于标记Pc中各权限在恶意软件家族样本中出现的概率。
5.根据权利要求1所述的面向Android的移动网络终端恶意软件多特征检测方法,其特征在于,步骤6中待测软件与恶意软件家族的相似度表示为:
Figure FDA0003152045520000031
其中Sf为软件特征向量的相似度,Sp为权限列表的相似度,Ssbs为敏感行为集的相似度,μi为各相似度在计算时的权重值;
软件特征向量相似度Sf的计算方法为:给定待测软件的特征向量F={f1,f2,f3,...,fm},待匹配的恶意软件家族多特征模型中的特征向量Fc={f1 c,f2 c,f3 c,...,fm c}以及对应的标记函数β,则:
Figure FDA0003152045520000032
按照各特征出现的概率计算相似度,若恶意家族多特征模型中的特征向量中的值均为0,则相似度为0;其中修正因子ωf的计算方法为:向量F中所有使fifi c=1的特征数量除以向量Fc中值为1的特征数量;
软件的权限列表相似度Sp的计算方法为:给定待测软件的权限列表P,待匹配的恶意软件家族多特征模型中的权限列表Pc={p1 c,p2 c,...,pn c},以及对应的标记函数γ,则:
Figure FDA0003152045520000033
Figure FDA0003152045520000034
其中修正因子ωp的计算方法为:权限集合P中属于Pc的权限数量除以集合Pc的长度;当权限列表Pc中的元素
Figure FDA0003152045520000035
包含在待测软件的权限列表P中时,
Figure FDA0003152045520000036
值为1,否则为0;
敏感行为集相似度Ssbs的计算方法为:给定软件的敏感行为集SBS,待匹配的恶意软件家族多特征中的敏感行为集
Figure FDA0003152045520000037
以及对应的标记函数α,则:
Figure FDA0003152045520000038
Figure FDA0003152045520000039
式中,ωsbs为修正因子,其计算方法为:SBS中所有使
Figure FDA0003152045520000041
的集合
Figure FDA0003152045520000042
的数量除以集合SBSc的长度;其中,函数
Figure FDA0003152045520000043
表示:在SBS中存在某一集合S,与集合
Figure FDA0003152045520000044
中的相似元素占两个集合所有元素的比例大于θ(0<θ≤1)。
CN201810109044.6A 2018-02-05 2018-02-05 一种面向Android的移动网络终端恶意软件多特征检测方法 Active CN108280350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810109044.6A CN108280350B (zh) 2018-02-05 2018-02-05 一种面向Android的移动网络终端恶意软件多特征检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810109044.6A CN108280350B (zh) 2018-02-05 2018-02-05 一种面向Android的移动网络终端恶意软件多特征检测方法

Publications (2)

Publication Number Publication Date
CN108280350A CN108280350A (zh) 2018-07-13
CN108280350B true CN108280350B (zh) 2021-09-28

Family

ID=62807459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810109044.6A Active CN108280350B (zh) 2018-02-05 2018-02-05 一种面向Android的移动网络终端恶意软件多特征检测方法

Country Status (1)

Country Link
CN (1) CN108280350B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109167753A (zh) * 2018-07-23 2019-01-08 中国科学院计算机网络信息中心 一种网络入侵流量的检测方法及装置
CN110414234A (zh) * 2019-06-28 2019-11-05 奇安信科技集团股份有限公司 恶意代码家族识别方法及装置
CN110457009B (zh) * 2019-07-06 2023-04-14 天津大学 基于数据分析的软件安全需求推荐模型的实现方法
CN110392056A (zh) * 2019-07-24 2019-10-29 成都积微物联集团股份有限公司 一种轻量级的物联网恶意软件检测***及方法
CN110516446A (zh) * 2019-08-26 2019-11-29 南京信息职业技术学院 一种恶意软件家族归属判定方法、***及存储介质
CN110795732A (zh) * 2019-10-10 2020-02-14 南京航空航天大学 基于SVM的Android移动网络终端恶意代码的动静结合检测方法
WO2021106173A1 (ja) * 2019-11-28 2021-06-03 日本電信電話株式会社 ラベル付与装置およびラベル付与プログラム
CN111368297B (zh) * 2020-02-02 2023-02-28 西安电子科技大学 隐私保护移动恶意软件检测方法、***、存储介质及应用
CN111460448B (zh) * 2020-03-09 2022-12-02 北京邮电大学 一种恶意软件家族检测方法及装置
CN116383819A (zh) * 2020-03-10 2023-07-04 四川大学 一种Android恶意软件家族分类方法
CN113591079B (zh) * 2020-04-30 2023-08-15 中移互联网有限公司 获取异常应用安装包的方法、装置及电子设备
CN112287345B (zh) * 2020-10-29 2024-04-16 中南大学 基于智能风险检测的可信边缘计算***
CN112632539B (zh) * 2020-12-28 2024-04-09 西北工业大学 一种Android***恶意软件检测中动静混合特征提取方法
KR102491451B1 (ko) * 2020-12-31 2023-01-27 주식회사 이스트시큐리티 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN112887328A (zh) * 2021-02-24 2021-06-01 深信服科技股份有限公司 一种样本检测方法、装置、设备及计算机可读存储介质
CN113468532B (zh) * 2021-07-20 2022-09-23 国网湖南省电力有限公司 恶意软件家族推断方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440459A (zh) * 2013-09-25 2013-12-11 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN104794051A (zh) * 2014-01-21 2015-07-22 中国科学院声学研究所 一种Android平台恶意软件自动化检测方法
CN105447388A (zh) * 2015-12-17 2016-03-30 福建六壬网安股份有限公司 一种基于权重的安卓恶意代码检测***及方法
CN107169351A (zh) * 2017-05-11 2017-09-15 北京理工大学 结合动态行为特征的Android未知恶意软件检测方法
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和***
CN107392021A (zh) * 2017-07-20 2017-11-24 中南大学 一种基于多类特征的Android恶意应用检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI461952B (zh) * 2012-12-26 2014-11-21 Univ Nat Taiwan Science Tech 惡意程式偵測方法與系統

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440459A (zh) * 2013-09-25 2013-12-11 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN104794051A (zh) * 2014-01-21 2015-07-22 中国科学院声学研究所 一种Android平台恶意软件自动化检测方法
CN105447388A (zh) * 2015-12-17 2016-03-30 福建六壬网安股份有限公司 一种基于权重的安卓恶意代码检测***及方法
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和***
CN107169351A (zh) * 2017-05-11 2017-09-15 北京理工大学 结合动态行为特征的Android未知恶意软件检测方法
CN107392021A (zh) * 2017-07-20 2017-11-24 中南大学 一种基于多类特征的Android恶意应用检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"AppContext: Differentiating Malicious and Benign Mobile App Behaviors Using Context",;"AppContext: Differentiating Malicious and Benign Mobile App Beh;《2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Florence》;20150531;第303-313页 *
"FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps";Steven Arzt等;《ACM SIGPLAN Notices》;20140630;第259-269页 *
"一种Android恶意软件多标签检测方法";王军 等;《小型微型计算机***》;20171031;第38卷(第10期);第2307-2311页,正文第1-6节、图1 *
"基于敏感路径识别的安卓应用安全性分析方法";缪小川;《中国优秀硕士学位论文全文数据库 信息科技辑》;20161015(第2016-10期);第I138-10页,正文第2-3章 *

Also Published As

Publication number Publication date
CN108280350A (zh) 2018-07-13

Similar Documents

Publication Publication Date Title
CN108280350B (zh) 一种面向Android的移动网络终端恶意软件多特征检测方法
Park et al. Deriving common malware behavior through graph clustering
Park et al. Fast malware classification by automated behavioral graph matching
US8806641B1 (en) Systems and methods for detecting malware variants
US8627478B2 (en) Method and apparatus for inspecting non-portable executable files
Iwamoto et al. Malware classification based on extracted API sequences using static analysis
Shhadat et al. The use of machine learning techniques to advance the detection and classification of unknown malware
US20200193031A1 (en) System and Method for an Automated Analysis of Operating System Samples, Crashes and Vulnerability Reproduction
US8108931B1 (en) Method and apparatus for identifying invariants to detect software tampering
CN109586282B (zh) 一种电网未知威胁检测***及方法
US9798981B2 (en) Determining malware based on signal tokens
Ugarte-Pedrero et al. Countering entropy measure attacks on packed software detection
US20200012793A1 (en) System and Method for An Automated Analysis of Operating System Samples
CN109255241B (zh) 基于机器学习的Android权限提升漏洞检测方法及***
Lee et al. Screening smartphone applications using malware family signatures
Zakeri et al. A static heuristic approach to detecting malware targets
KR20120073018A (ko) 악성 코드 탐지를 위한 시스템 및 방법
Martinelli et al. I find your behavior disturbing: Static and dynamic app behavioral analysis for detection of android malware
El Boujnouni et al. New malware detection framework based on N-grams and support vector domain description
US11068595B1 (en) Generation of file digests for cybersecurity applications
US9177146B1 (en) Layout scanner for application classification
KR20110087826A (ko) 가상머신을 이용한 악성소프트웨어 탐지 방법
Ugarte-Pedrero et al. Semi-supervised learning for packed executable detection
Ban et al. A cross-platform study on emerging malicious programs targeting iot devices
CN114143074B (zh) webshell攻击识别装置及方法

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