CN110069927A - 恶意apk检测方法、系统、数据存储设备和检测程序 - Google Patents
恶意apk检测方法、系统、数据存储设备和检测程序 Download PDFInfo
- Publication number
- CN110069927A CN110069927A CN201910323544.4A CN201910323544A CN110069927A CN 110069927 A CN110069927 A CN 110069927A CN 201910323544 A CN201910323544 A CN 201910323544A CN 110069927 A CN110069927 A CN 110069927A
- Authority
- CN
- China
- Prior art keywords
- gram
- apk
- dalvik
- feature
- malice
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 74
- 238000013500 data storage Methods 0.000 title claims abstract description 9
- 238000000605 extraction Methods 0.000 claims abstract description 29
- 238000003066 decision tree Methods 0.000 claims abstract description 16
- 239000000203 mixture Substances 0.000 claims abstract description 13
- 239000000284 extract Substances 0.000 claims abstract description 12
- 150000001875 compounds Chemical class 0.000 claims abstract description 11
- 230000000694 effects Effects 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 description 19
- 238000005259 measurement Methods 0.000 description 17
- 238000012795 verification Methods 0.000 description 17
- 230000006399 behavior Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 7
- 230000003542 behavioural effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013401 experimental design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
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
- 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
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种恶意APK检测方法、系统、数据存储设备和检测程序,包括:利用ApkTool对APK文件进行反编译,对Dalvik字节码指令进行n‑gram提取,计算所有恶意APK样本文件的Dalvik字节码n‑gram信息增益,按信息增益由大到小的顺序筛选出N个n‑gram组成Dalvik特征向量;提取.smali中安卓系统本身提供的函数接口调用次数作为API特征,提取AndroidManilest.xml文件中的权限特征和组件特征;将提取的四类特征组成复合特征向量输入到C5.0决策树中进行分类,判断APK文件是否具有恶意性。
Description
技术领域
本发明应用于信息安全中的恶意APK文件的检测领域。特别是涉及一种恶意APK检测方法、系统、数据存储设备和检测程序。
背景技术
安卓系统作为当前相对开放并且应用广泛的系统也成为了越来越多的恶意攻击者进行远程控制和窃取隐私等行为的平台,其最常采用的攻击方式就是在Android应用程序中嵌入一段或几段恶意的代码片段,经过重新打包之后就可以制造出一个全新的恶意Android软件,在目标用户下载这个恶意Android软件安装包即APK文件,并执行APK文件时,其中嵌入的恶意代码就会自动地执行,威胁目标机的安全。
为了解决恶意安卓软件的困扰,最近的研究主要集中在三个方面:
1、利用恶意安卓软件的静态特征,结合分类算法进行检测:静态特征是指已经存在且不会发生变化的特征,如权限、组件和API等。静态特征检测可在安装的同时进行检测,检测延迟较低,但对代码混淆的解决能力较弱。
2、利用动态特征,结合分类算法进行检测:动态特征是指会引起系统状态改变的特征,包括人机交互、系统调用、网络流量和系统组件等。动态特征检测可有效解决代码混淆和多态性攻击问题,但需要在沙箱环境中执行,对设备的资源消耗较大,易导致高检测延迟。
3、利用静态特征和动态特征,结合分类算法进行检测:既提取静态特征又提取动态特征,然后将其组成特征矩阵输入到机器学习算法中分类。虽然这种方法可有效提高检测率,但是仍存在特征提取复杂、资源消耗较高的缺点。
基于以上方法进行恶意APK文件检测,通常存在过度依赖专家知识对特定的特征进行提取,无法有效对未知恶意代码进行检测,造成较高误检率和较低检测率问题,而且动态检测和动静结合检测存在较高检测延迟和较高资源消耗缺点。
发明内容
为了解决上述问题,本发明的目的在于提供一种恶意APK检测方法、系统、数据存储设备和检测程序。该恶意APK检测方法、系统、数据存储设备和检测程序作为一种静态检测技术,减少了对专家知识的依赖,提供较高的检测精度,并且增强了实用性。
为了达到上述目的,本发明的技术方案为:
一种恶意APK检测方法,至少包括如下步骤:
步骤一、利用反编译工具ApkTool对待检APK文件反编译,对得到的所有.smali中的Dalvik字节码指令进行n-gram提取,计算所有恶意APK样本文件的Dalvik字节码n-gram信息增益,按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量,整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值;
步骤二、提取通过步骤一得到的.smali中的API特征和提取通过步骤一得到的AndroidManilest.xml文件中的权限特征、组件特征;
步骤三、将提取的四类特征组成的复合特征向量输入到C5.0决策树中进行分类,判断出正常APK和恶意APK。
进一步:上述步骤一具体为:首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号序列,并对序号序列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值。
进一步:上述步骤二具体为:首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取通过步骤一得到的AndroidManilest.xml文件中的系统定义权限名称作为权限特征,提取组件:Activity、Service、Broadcast receive、ContentProvider的名称作为组件特征。
进一步:上述步骤三具体为:首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
本发明的另一目的为:提供一种恶意APK检测系统,包括:
信息增益计算模块、首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号列,并对序号列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值。
分析模块、首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取AndroidManilest.xml文件中的系统定义权限名称和组件:Activity、Service、Broadcast receive、ContentProvider的名称分别作为权限特征和组件特征。
分类模块、首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
本发明的另一目的为:提供一种数据存储设备,包括指令,当其在计算机上运行时,使得计算机执行上述恶意APK检测方法。
本发明的另一目的为:提供一种实现上述恶意APK检测方法的检测程序。
本发明具有的优点和积极效果为:
本发明直接对Dalvik指令进行n-gram字节码分析,并利用信息增益对Dalvik指令特征进行筛选以降低特征维度,并将Dalvik指令特征和API、权限、组件特征组成复合特征向量输入到C5.0决策树算法进行分类,该技术方案作为一种静态检测技术,减少了对专家知识的依赖,提供较高的检测精度,并且增强了实用性。
附图说明
图1为本发明优选实施例的整体流程图;
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下:
如图1所示,一种恶意APK检测方法:包括下列步骤:
步骤一、利用反编译工具ApkTool对待检APK文件反编译,对得到的所有.smali中的Dalvik字节码指令进行n-gram提取,计算所有恶意APK样本文件的Dalvik字节码n-gram信息增益,按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量。
具体步骤如下:
(1)用反编译工具ApkTool将待检APK文件反编译,得到.smali和AndroidManilest.xml文件。
(2)提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号列。表1列出了部分安卓Dalvik指令序号集,如操作码序列{invoke-virtual,invoker-super,move-object,new-instance,input-object,return-void}根据指令序号集得到其对应序号列{6e,6f,07,22,5b,0e}。
表1部分Android-Dalvik指令序号集
(3)对序号列进行n-gram提取,获得样本的n-gram集合,n可以取值1、2、3、4、5,如当n=4时,上述序列得到4-gram集为{6e6f0722,6f07225b,07225b0e}。n的取值对检测率、检测时间等性能有很大的影响,要综合考量,取能够有相对最佳性能时的n值。
(4)对所有的恶意APK样本文件的n-gram计算信息增益,按信息增益由大到小筛选N个n-gram作为Dalvik特征向量,在对样本特征进行向量化时,如果样本具有对应的n-gram,则相应位置设定1,否则设0。N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,N的取值过小会降低检测率,过大会增加检测时间,要综合考量,取能够有相对最佳性能时的N值。
步骤二、提取.smali中的API特征和AndroidManilest.xml文件中的权限特征、组件特征。
具体步骤如下:
(1)本步骤所提取的API特征是安卓系统本身提供的函数接口调用次数,由于恶意应用的一些API调用次数远远大于普通应用,因此把API函数接口的调用次数作为特征,用于识别恶意应用行为。根据Android官网上公布的API信息和常见的恶意扣费和敏感信息窃恶意行为,提取如表2所列的10个常见高危API。
表2提取的10个高危API
(2)遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值。
(3)由于自定义权限与API以及系统资源的保护无关,故只关注应用申请的系统定义权限。遍历AndroidManilest.xml文件,提取系统定义权限名。表3列出了部分权限说明:
表3部分权限说明
(4)遍历AndroidManilest.xml文件,提取Activity、Service、Broadcastreceive、ContentProvider名称作为组件特征。
步骤三、将提取的四类特征组成的复合特征向量输入到C5.0决策树中进行分类,判断出正常APK和恶意APK;
具体步骤如下:
(1)APK文件样本集合S={S1,S2,…,Sn}(n为样本总数),共分为两类C={C1,C2}(C1代表良性APK文件,C2代表恶意APK文件),每个APK文件将由一个向量表示,该向量由Dalvik特征集Si1、权限特征集Si2、组件特征集Si3和API特征集Si4组成,即Sij={Si1,Si2,Si3,Si4,},(i=1,2,…,n;j=1,2,3,4);其中:
Dalvik字节码特征集Si1:根据步骤一所得的全部恶意APK样本中Dalvik字节码前N个信息增益最大的n-gram组成,按由大到小排列。在对样本特征进行向量化时,如果样本具有对应的n-gram,则相应位置设定为1,否则设定为0。
权限特征集Si2:根据步骤二所得的权限名称。
组件特征及Si3:根据步骤二所得的Activity名称、Service名称、Receiver名称和Provider名称。
API特征集Si4:根据步骤二所得的10个API对应的调用次数。
(2)定义p(Ci,S)表示样本属于类别Ci(i=1,2;C1代表良性APK文件,C2代表恶意APK文件)的概率,按照公式1计算样本集合S的信息熵Info(S):
(3)定义n为样本总数,fre(Ci,S)是样本集合中类别是Ci的样本个数,按照公式2计算样本属于类别Ci的概率p(Ci,S):
(4)定义样本的特征属性为T,每个属性变量有N类,按照公式3计算属性T的条件熵Info(T):
(5)按照公式4计算引入特征属性变量T后的信息增益Gain(T):
Gain(T)=Info(S)-Info(T) (公式4)
(6)定义A为假设情况,Gain(A)表示A下所生的结点产生的信息增益,按照公式5计算信息增益率Gainration(A):
Gainration(A)=Gain(A)/Info(A) (公式5)
(7)在决策树生成后,采用基于树规则的方法实现剪枝。
一种恶意APK检测系统,包括:
信息增益计算模块、首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号列,并对序号列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值。
分析模块、首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取AndroidManilest.xml文件中的系统定义权限名称和组件:Activity、Service、Broadcast receive、ContentProvider的名称分别作为权限特征和组件特征。
分类模块、首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
一种数据存储设备,包括指令,当其在计算机上运行时,使得计算机执行下面的恶意APK检测方法;
步骤一、利用反编译工具ApkTool对待检APK文件反编译,对得到的所有.smali中的Dalvik字节码指令进行n-gram提取,计算所有恶意APK样本文件的Dalvik字节码n-gram信息增益,按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量,整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值;
步骤二、提取通过步骤一得到的.smali中的API特征和提取通过步骤一得到的AndroidManilest.xml文件中的权限特征、组件特征;
步骤三、将提取的四类特征组成的复合特征向量输入到C5.0决策树中进行分类,判断出正常APK和恶意APK。
作为优选:上述步骤一具体为:首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号序列,并对序号序列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值。
作为优选:上述步骤二具体为:首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取通过步骤一得到的AndroidManilest.xml文件中的系统定义权限名称作为权限特征,提取组件:Activity、Service、Broadcast receive、ContentProvider的名称作为组件特征。
作为优选:上述步骤三具体为:首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
一种实现下面恶意APK检测方法的检测程序;
步骤一、利用反编译工具ApkTool对待检APK文件反编译,对得到的所有.smali中的Dalvik字节码指令进行n-gram提取,计算所有恶意APK样本文件的Dalvik字节码n-gram信息增益,按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量,整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值;
步骤二、提取通过步骤一得到的.smali中的API特征和提取通过步骤一得到的AndroidManilest.xml文件中的权限特征、组件特征;
步骤三、将提取的四类特征组成的复合特征向量输入到C5.0决策树中进行分类,判断出正常APK和恶意APK。
作为优选:上述步骤一具体为:首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号序列,并对序号序列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍,n和N的取值对检测率和检测时间有很大影响,取能够达到相对较好的检测性能时的n和N值。
作为优选:上述步骤二具体为:首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取通过步骤一得到的AndroidManilest.xml文件中的系统定义权限名称作为权限特征,提取组件:Activity、Service、Broadcast receive、ContentProvider的名称作为组件特征。
作为优选:上述步骤三具体为:首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
实施例:
为了验证本方法的效果,本发明人设计了相应的实施例,一方面实验设计了不同参数对模型检测效果的影响,另一方面与以下两种恶意安卓软件检测方法进行比较:
方法1:基于权限&API&网络地址特征的检测方法DREBIN;
方法2:基于权限和API特征结合的恶意检测方法;
测数据集由从Contagiodump中收集的2107个涉及隐私窃取、远程控制和恶意扣费的恶意APK文件和从Google Play Store中收集的1845个涉及多媒体、社交和系统工具领域的正常APK文件组成。恶意样本集种类包括672个多媒体播放工具、1122个系统工具、313个社交通信工具,正常样本集包括614个多媒体播放工具、932个系统工具、299个社交通信工具,样本信息如表4所列。
表4样本信息
正式检测通过5折交叉验证重复5次,当N=500,n=3时,检测率达到97.43%,误检率达到5.8%,时间消耗为2716s。
对比一:为验证本发明的检测率,借此来评价基于复合特征的恶意APK检测方法是否有利于提高恶意检测的检测率。实验结果如表5所示,由表5可知,本发明所提方法的检测率为97.43%,时间消耗为2716s,虽然检测时间比方法1多904s,但检测率比其高3.59%;虽然检测时间比方法2多1301s,但检测率比其高5.79%;由此可知,本发明所提方法合理有效,并且在检测时间相对较合理的情况下提高了检测率。
表5三种方法检测精度与检测时间比较
对比二:为验证本发明的误检率,借此来评价基于复合特征的恶意APK检测方法是否有利于降低恶意检测的误测率。实验结果如表5所示,由表5可知,本发明所提方法的误检率为5.8%,时间消耗为2716s。虽然检测时间比方法1多904s,但误检率比其低1.3%;虽然检测时间比方法2多1301s,但误检率比其低2.3%。由此可知,本发明所提方法合理有效,并且在检测时间相对较合理的情况下降低了误检率。
本发明提供的基于复合特征的恶意APK检测方法。基本原理如下:为减少对专家知识的依赖,应对未知恶意代码,提高检测率,直接对Dalvik指令进行n-gram分析,按信息增益由大到小筛选N个n-gram组成Dalvik特征向量,并且在提取Dalvik指令特征的基础上增加通过静态分析提取出的权限、组件和API特征,最后将四类特征组成复合特征向量输入到C5.0决策树算法中进行恶意检测。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (7)
1.一种恶意APK检测方法,其特征在于:至少包括如下步骤:
步骤一、利用反编译工具ApkTool对待检APK文件反编译,对得到的所有.smali中的Dalvik字节码指令进行n-gram提取,计算所有恶意APK样本文件的Dalvik字节码n-gram信息增益,按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量,整数n的取值范围是[1,5],整数N的取值范围是所有恶意文件的n-gram数量的0.1倍到0.5倍;
步骤二、提取通过步骤一得到的.smali中的API特征和通过步骤一得到的AndroidManilest.xml文件中的权限特征、组件特征;
步骤三、将提取的四类特征组成的复合特征向量输入到C5.0决策树中进行分类,判断出正常APK和恶意APK。
2.根据权利要求1所述的恶意APK检测方法,其特征在于:上述步骤一具体为:
首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;
然后提取.smali中Dalvik字节码指令中的操作码序列,并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号列,并对序号列进行n-gram提取,获得样本的n-gram集合;
最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍。
3.根据权利要求1所述的恶意APK检测方法,其特征在于:上述步骤二具体为:
首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取通过步骤一得到的AndroidManilest.xml文件中的系统定义权限名称作为权限特征,提取组件Activity、Service、Broadcast receive、ContentProvider的名称作为组件特征。
4.根据权利要求1所述的恶意APK检测方法,其特征在于:上述步骤三具体为:首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
5.一种恶意APK检测系统,其特征在于:包括:
信息增益计算模块、首先用反编译工具ApkTool将待检APK文件反编译,得到的.smali和AndroidManilest.xml文件;然后提取.smali中Dalvik字节码指令中的操作码序列并按照转换规则即Android-Dalvik指令序号集得到对应的序号,依此得到每条指令对应的序号列,并对序号列进行n-gram提取,获得样本的n-gram集合;最后计算所有恶意APK样本文件的Dalvik字节码的n-gram信息增益,并按信息增益由大到小的顺序筛选出N个n-gram组成Dalvik特征向量;整数n的取值范围是[1,5],整数N的取值范围通常是所有恶意文件的n-gram数量的0.1倍到0.5倍;
分析模块、首先根据Android官网上公布的API信息和常见的恶意扣费、敏感信息窃取和网络流量恶意应用行为,选取其中10个常见的高危API;然后遍历所有的.smali,统计每个API的调用次数,组成API特征向量的值;最后提取AndroidManilest.xml文件中的系统定义权限名称和组件Activity、Service、Broadcast receive、ContentProvider的名称分别作为权限特征和组件特征;
分类模块、首先把每个APK文件用一个向量表示,该向量由Dalvik字节码指令特征、API特征、组件特征和权限特征组成;然后将向量、类别输入到C5.0决策树进行分类。
6.一种数据存储设备,其特征在于:包括指令,当其在计算机上运行时,使得计算机执行权利要求1-4任一项的恶意APK检测方法。
7.一种实现权利要求1-4任一项的恶意APK检测方法的检测程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910323544.4A CN110069927A (zh) | 2019-04-22 | 2019-04-22 | 恶意apk检测方法、系统、数据存储设备和检测程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910323544.4A CN110069927A (zh) | 2019-04-22 | 2019-04-22 | 恶意apk检测方法、系统、数据存储设备和检测程序 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110069927A true CN110069927A (zh) | 2019-07-30 |
Family
ID=67368385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910323544.4A Pending CN110069927A (zh) | 2019-04-22 | 2019-04-22 | 恶意apk检测方法、系统、数据存储设备和检测程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069927A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795736A (zh) * | 2019-10-31 | 2020-02-14 | 四川大学 | 一种基于svm决策树的恶意安卓软件检测方法 |
CN111459822A (zh) * | 2020-04-01 | 2020-07-28 | 北京字节跳动网络技术有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN112149124A (zh) * | 2020-11-02 | 2020-12-29 | 电子科技大学 | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 |
CN115221516A (zh) * | 2022-07-13 | 2022-10-21 | 中国电信股份有限公司 | 恶意应用程序识别方法及装置、存储介质、电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN107729754A (zh) * | 2017-09-25 | 2018-02-23 | 暨南大学 | 基于API特征的Android恶意软件检测方法 |
CN107832610A (zh) * | 2017-09-25 | 2018-03-23 | 暨南大学 | 基于组合特征模式的Android恶意软件检测方法 |
CN108959930A (zh) * | 2018-07-26 | 2018-12-07 | 中国民航大学 | 恶意pdf检测方法、系统、数据存储设备和检测程序 |
CN109271788A (zh) * | 2018-08-23 | 2019-01-25 | 北京理工大学 | 一种基于深度学习的Android恶意软件检测方法 |
-
2019
- 2019-04-22 CN CN201910323544.4A patent/CN110069927A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN107729754A (zh) * | 2017-09-25 | 2018-02-23 | 暨南大学 | 基于API特征的Android恶意软件检测方法 |
CN107832610A (zh) * | 2017-09-25 | 2018-03-23 | 暨南大学 | 基于组合特征模式的Android恶意软件检测方法 |
CN108959930A (zh) * | 2018-07-26 | 2018-12-07 | 中国民航大学 | 恶意pdf检测方法、系统、数据存储设备和检测程序 |
CN109271788A (zh) * | 2018-08-23 | 2019-01-25 | 北京理工大学 | 一种基于深度学习的Android恶意软件检测方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795736A (zh) * | 2019-10-31 | 2020-02-14 | 四川大学 | 一种基于svm决策树的恶意安卓软件检测方法 |
CN110795736B (zh) * | 2019-10-31 | 2021-07-23 | 四川大学 | 一种基于svm决策树的恶意安卓软件检测方法 |
CN111459822A (zh) * | 2020-04-01 | 2020-07-28 | 北京字节跳动网络技术有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN111459822B (zh) * | 2020-04-01 | 2023-10-03 | 抖音视界有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN112149124A (zh) * | 2020-11-02 | 2020-12-29 | 电子科技大学 | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 |
CN115221516A (zh) * | 2022-07-13 | 2022-10-21 | 中国电信股份有限公司 | 恶意应用程序识别方法及装置、存储介质、电子设备 |
CN115221516B (zh) * | 2022-07-13 | 2024-04-26 | 中国电信股份有限公司 | 恶意应用程序识别方法及装置、存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hussain et al. | IMIAD: intelligent malware identification for android platform | |
ES2945836T3 (es) | Sistemas y métodos para la detección de amenazas de comportamiento | |
Alsaheel et al. | {ATLAS}: A sequence-based learning approach for attack investigation | |
US11277423B2 (en) | Anomaly-based malicious-behavior detection | |
CN110069927A (zh) | 恶意apk检测方法、系统、数据存储设备和检测程序 | |
Pirscoveanu et al. | Analysis of malware behavior: Type classification using machine learning | |
CN103473346B (zh) | 一种基于应用程序编程接口的安卓重打包应用检测方法 | |
US10122742B1 (en) | Classifying software modules based on comparisons using a neighborhood distance metric | |
CN103336737B (zh) | 信息操纵系统及其实施的方法 | |
AU2019400060B2 (en) | Systems and methods for behavioral threat detection | |
WO2013164821A2 (en) | Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention | |
Huang et al. | Deep android malware classification with API-based feature graph | |
CN109614795B (zh) | 一种事件感知的安卓恶意软件检测方法 | |
Yang et al. | Detection of malicious behavior in android apps through API calls and permission uses analysis | |
Downing et al. | {DeepReflect}: Discovering malicious functionality through binary reconstruction | |
Jiang et al. | Android malware family classification based on sensitive opcode sequence | |
Wolfe et al. | Comprehensive behavior profiling for proactive Android malware detection | |
Li et al. | Novel Android Malware Detection Method Based on Multi-dimensional Hybrid Features Extraction and Analysis. | |
CN106528805A (zh) | 基于用户的移动互联网恶意程序url智能分析挖掘方法 | |
KR101988747B1 (ko) | 하이브리드 분석을 통한 머신러닝 기반의 랜섬웨어 탐지 방법 및 장치 | |
Jiang et al. | Aomdroid: detecting obfuscation variants of android malware using transfer learning | |
AU2019398651B2 (en) | Systems and methods for behavioral threat detection | |
Ahmad et al. | Android mobile malware classification using a tokenization approach | |
Kumar et al. | A review: malware analysis work at IIT Kanpur | |
Zhao et al. | HFA-MD: An efficient hybrid features analysis based Android malware detection method |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190730 |