CN114722391B - 一种对安卓恶意程序进行检测的方法 - Google Patents
一种对安卓恶意程序进行检测的方法 Download PDFInfo
- Publication number
- CN114722391B CN114722391B CN202210363073.1A CN202210363073A CN114722391B CN 114722391 B CN114722391 B CN 114722391B CN 202210363073 A CN202210363073 A CN 202210363073A CN 114722391 B CN114722391 B CN 114722391B
- Authority
- CN
- China
- Prior art keywords
- api
- android
- apk
- relationship
- authority
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims abstract description 14
- 238000012549 training Methods 0.000 claims abstract description 8
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 34
- 239000013598 vector Substances 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 9
- 238000010801 machine learning Methods 0.000 description 5
- GXCLVBGFBYZDAG-UHFFFAOYSA-N N-[2-(1H-indol-3-yl)ethyl]-N-methylprop-2-en-1-amine Chemical compound CN(CCC1=CNC2=C1C=CC=C2)CC=C GXCLVBGFBYZDAG-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种对安卓恶意程序进行检测的方法,属于软件安全检测领域,解决现有基于异构信息网络的安卓恶意程序检测方法由于只使用一种类型特征而容易被特定类型恶意程序绕过,从而导致检测准确率低等问题。本发明对安卓应用程序进行反编译后获得清单文件和smali文件;分别从清单文件和smali文件中提取出应用程序申请的权限和调用的API;构建起包含APK、API和权限三种实体类型以及它们之间五种关系类型的异构信息网络,这五种关系分别为API与权限的映射关系、权限的同组关系、API的共现关系、APK对API的包含关系和APK对权限的包含关系;使用Metapath2vec算法基于多种元路径对异构网络中的APK节点进行嵌入;将基于不同元路径获得的APK特征矩阵作为不同的内核输入到多核学习模型中进行训练和分类。
Description
技术领域
本发明属于软件安全检测领域,公开了一种对安卓恶意程序进行检测的方法,用于恶意安卓应用程序的检测及分类。
背景技术
如今,诸如智能手机之类的移动设备已广泛应用于我们的日常生活中。安卓系统开源的特性让更多的开发者投身到安卓应用开发和生态建设中,同时也带来了更多的恶意程序。安卓恶意软件的泛滥给其庞大的用户群体带来不可估量的损失,不仅会造成用户的隐私泄露和财产损失,甚至会威胁到用户的生命安全。因此,检测安卓恶意程序是当今网络安全的一个种重要研究方向。
随着机器学习算法的快速发展和硬件性能的提升,基于机器学习的安卓恶意程序检测方法成为了热门的研究方法。基于机器学习的安卓恶意软件检测方法首先需要提取特征,随后使用特征选择、特征降维或者特征抽象等特征分析技术对特征进行处理。经过特征工程处理后,每个应用程序会被表述为特定维度的特征向量,这也是机器学习模型的输入信息。基于机器学习的安卓恶意软件检测方法的性能取决于提取的特征代表不同类型的恶意程序与良性程序之间的差异的程度。现有Android恶意软件检测方法使用的特征通常过于简单,特征之间相互孤立,没有考虑这些特征之间的丰富关系,因此限制了检测的准确性。异构信息网络的应用可以应对这一问题。但现有基于异构信息网络的安卓恶意软件检测方法中往往只包含APK和另外一种特征实体,丢失了很多其他类型信息,而且容易被特定类型的恶意软件绕过。
部分技术术语说明如下:
1.异构信息网络
信息网络是一个带有对象类型映射函数τ:V→A和链接类型映射函数φ:ε→R的有向图G=(V,ε),其中每个对象v∈V属于一个特定的对象类型τ(v)∈A,每个链接e∈ε属于一个特定的关系φ(e)∈R。如果对象类型满足|A|>1或者关系类型满足|R|>1时,那么该信息网络则被称为异构信息网络。
2.元路径
发明内容
针对上述现有技术问题,本发明的目的在于提供一种对安卓恶意程序进行检测的方法,用于解决现有基于异构信息网络的安卓恶意程序检测方法由于只使用一种类型特征而容易被特定类型恶意程序绕过,从而导致检测准确率低等问题。
为了达到上述目的,本发明采用如下技术方案:
一种对安卓恶意程序进行检测的方法,包括以下步骤:
步骤1:使用反编译工具对安卓应用程序进行反编译处理,获得的反编译文件,反编译文件包括安卓清单文件和smali代码文件;
步骤2:对于每个安卓应用程序,分别从清单文件和smali代码文件中提取出声明的权限和调用的API;
步骤3:提取APK、API和权限这三种实体间的五种类型的关系,用得到的实体和关系构建安卓异构信息网络,其中APK是指安卓应用程序包;
步骤4:通过Metapath2vec算法基于安卓异构信息网络中的多种元路径对异构网络进行图嵌入处理,获得同一安卓应用程序基于不同元路径时的嵌入向量,通过嵌入向量构成特征矩阵Mi;
步骤5:将特征矩阵Mi作为多核学习模型中的不同内核,训练APK分类器,并使用训练好的分类器对安卓程序进行检测和分类。
进一步,所述步骤3中的五种关系类型分别为API与权限的映射关系、权限的同组关系、API的共现关系、APK对API的包含关系和APK对权限的包含关系:
所述API与权限的映射关系,记为关系类型R0,是一组API调用与安卓应用程序可能请求的权限集合之间的一组映射;
所述权限的同组关系,记为关系类型R1,用于实现同一类功能的权限被归为一组;
所述API的共现关系,记为关系类型R2,在smali代码文件内的一个方法定义中调用到的API之间具有共现关系;
所述APK对API的包含关系,记为关系类型R3,用于表明安卓程序中调用到的API;
所述APK对权限的包含关系,记为关系类型R4,用于表明安卓程序中声明的权限。
进一步,所述的五种关系类型的提取方法为:
根据PScout权限映射工具中提取的权限使用规范,提取出关系类型R0,其中保留的API为权限映射规范中的API集合与步骤2中提取的API的交集,记为VI;保留的权限为权限映射规范中的权限集合与步骤2中提取的权限的交集,记为VP;
收集安卓源码文件中的AndroidManifest.xml文件,该文件中对所有权限的用途进行了注释,被注释为用于同一类功能的权限两两之间属于一组,由此提取出关系类型R1,所述权限属于集合VP;
遍历步骤1中的所有smali代码文件,对于在同一个方法定义中出现的API,两两之间建立起共现关系,其中,smali代码文件中方法定义的具体表现形式为“.method”到最近的“.end method”之间的内容,由此提取出关系类型R2,所述API属于集合VI;
根据APK对API的包含关系提取关系类型R3,如果APK包含某API,则建立该APK与该API的包含关系,所述API属于集合VI;
根据APK对权限的包含关系提取关系类型R4,如果APK包含某权限,则建立该APK与该权限的包含关系,所述权限属于集合VP。
进一步,步骤3中的安卓异构信息网络中的节点包括所有的安卓程序样本VA、集合VI中的API和集合VP中的权限。
进一步,步骤3中的安卓异构信息网络中的边包括:
根据关系类型R0构建的API与权限节点之间的边的集合E0;
根据关系类型R1构建的权限与权限节点之间的边的集合E1;
根据关系类型R2构建的API与API节点之间的边的集合E2;
根据关系类型R3构建的APK与API节点之间的边的集合E3;
根据关系类型R4构建的APK与权限节点之间的边的集合E4;
进一步,步骤3中的安卓异构信息网络根据节点集合VA、VI和VP以及边的集合E0、E1、E2、E3和E4即可构建。
进一步,步骤4的具体步骤为:
步骤4.1:选择安卓异构网络中的多种元路径,记为Path={P1,P2,...,Pn},其中Pi表示第i种元路径;
步骤4.2:从集合Path中依次选择一种元路径Pi,使用Metapath2vec算法基于该元路径对安卓异构网络进行嵌入,获得的APK节点的嵌入向量构成特征矩阵Mi。
进一步,步骤5中的具体步骤为:
步骤5.1:分别将特征矩阵M1,M2,...,Mn进行标准化处理;
步骤5.2:将标准化处理后的特征矩阵作为多核学习模型中的不同内核,训练分类器,并使用训练好的分类器对安卓程序进行检测和分类。
本发明同现有技术相比,其有益效果表现在:
一、本发明提出的安卓异构信息网络模型中包含APK、API和权限这三种实体类型,以及API与权限的映射关系、权限的同组关系、API的共现关系、APK对API的包含关系和APK对权限的包含关系这五种关系类型。不仅使用两种重要特征捕获安卓应用程序多个角度的特征,还充分利用特征间的联系挖掘特征间的多种语义信息。多核学习算法的利用,使得基于多种语义信息构造的特征空间能够被同时利用,提高了安卓恶意程序检测的准确率;
二、由于安卓开发者文档中只对危险权限进行了分组,本发明为了对所有权限进行分组,创新性地根据安卓源码中对权限用途的描述来对权限进行分组,丰富了异构信息网络中的链接,有利于进一步提高安卓恶意软件检测效果;
三、本发明提高了某些类型恶意软件绕过检测的难度。
附图说明
图1是本发明的系统结构框图;
图2是本发明提取出安卓恶意程序检测分类模型的流程示意图。
具体实施方式
以下通过具体实施例对本发明做进一步解释说明。
一种对安卓恶意程序进行检测的方法,包括以下步骤:
步骤1:使用反编译工具对安卓应用程序进行反编译处理,获得的反编译文件,反编译文件包括安卓清单文件和smali代码文件;
步骤2:对于每个安卓应用程序,分别从清单文件和smali代码文件中提取出声明的权限和调用的API;
步骤3:提取APK、API和权限这三种实体间的五种类型的关系,用得到的实体和关系构建安卓异构信息网络,其中APK是指安卓应用程序包;
步骤4:通过Metapath2vec算法基于安卓异构信息网络中的多种元路径对异构网络进行图嵌入处理,获得同一安卓应用程序基于不同元路径时的嵌入向量,通过嵌入向量构成特征矩阵Mi;
步骤5:将特征矩阵Mi作为多核学习模型中的不同内核,训练APK分类器,并使用训练好的分类器对安卓程序进行检测和分类。
实施实例中的数据集CICMalDroid2020数据集,共包括五种样本类别,分别是Benign、Adware、Banking malware、Riskware和SMS malware,每一类样本选择了1300个,并将其按照7∶3的比例随机划分为训练集和测试集。
进一步,在步骤1中,使用Apktool工具对安卓程序样本进行反编译,为每个样本保留反编译后获得的清单文件和smali文件。在步骤2中,为每个安卓应用程序样本统计其清单文件中声明的权限,并遍历所有的smali文件提取出API调用,API的记录格式可以区分不同的方法定义。
进一步,所述步骤3中的五种关系类型分别为API与权限的映射关系、权限的同组关系、API的共现关系、APK对API的包含关系和APK对权限的包含关系:
所述API与权限的映射关系,记为关系类型R0,是一组API调用与安卓应用程序可能请求的权限集合之间的一组映射;
所述权限的同组关系,记为关系类型R1,用于实现同一类功能的权限被归为一组;
所述API的共现关系,记为关系类型R2,在smali代码文件内的一个方法定义中调用到的API之间具有共现关系;
所述APK对API的包含关系,记为关系类型R3,用于表明安卓程序中调用到的API;
所述APK对权限的包含关系,记为关系类型R4,用于表明安卓程序中声明的权限。
进一步,所述的五种关系类型的提取方法为:
根据PScout权限映射工具中提取的权限使用规范,提取出关系类型R0。PScout中的API数量有六万之余,其中保留的API为权限映射规范中的API集合与步骤2中提取的API的交集,记为VI,|VI|=5731;保留的权限为权限映射规范中的权限集合与步骤2中提取的权限的交集,记为VP,|VP|=124;
收集安卓源码文件中的AndroidManifest.xml文件,该文件中对所有权限的用途进行了注释,被注释为用于同一类功能的权限两两之间属于一组,由此提取出关系类型R1。虽然从安卓源码文件中共提取出717种权限,但所述权限应属于集合VP;
遍历步骤1中的所有smali代码文件,对于在同一个方法定义中出现的API,两两之间建立起共现关系。其中,smali代码中方法定义的具体表现形式为“.method”到最近的“.end method”之间的内容。由此提取出关系类型R2,所述API属于集合VI;
根据APK对API的包含关系提取关系类型R3,如果APK包含某API,则建立该APK与该API的包含关系,所述API属于集合VI;
根据APK对权限的包含关系提取关系类型R4,如果APK包含某权限,则建立该APK与该权限的包含关系,所述权限属于集合VP。
进一步,步骤3中的安卓异构信息网络中的节点包括所有的安卓程序样本VA、集合VI中的API和集合VP中的权限。
进一步,步骤3中的安卓异构信息网络中的边包括:
根据关系类型R0构建的API与权限节点之间的边的集合E0;
根据关系类型R1构建的权限与权限节点之间的边的集合E1;
根据关系类型R2构建的API与API节点之间的边的集合E2;
根据关系类型R3构建的APK与API节点之间的边的集合E3;
根据关系类型R4构建的APK与权限节点之间的边的集合E4;
进一步,步骤3中的安卓异构信息网络根据节点集合VA、VI和VP以及边的集合E0、E1、E2、E3和E4即可构建。
进一步,步骤4的具体步骤为:
步骤4.1:选则安卓异构网络中的多种元路径,记为Path={P1,P2,P3,P4,P5,P6},其中Pi表示第i种元路径。如果分别用A、P和I表示APK、权限和API这三种实体,使用的六种元路径表示如下:
步骤4.2:从集合Path中依次选择一种元路径Pi,使用Metapath2vec算法基于该元路径对安卓异构网络进行嵌入,获得的APK节点的嵌入向量构成特征矩阵Mi。
进一步,步骤5中的具体步骤为:
步骤5.1:分别将特征矩阵M1,M2,...,M6进行标准化处理;
步骤5.2:将标准化处理后的特征矩阵作为多核学习模型中的不同内核,训练分类器,并使用训练好的分类器对安卓程序进行检测和分类。
进一步,实施实例最终对于测试样本的检测结果如下表所示,整体达到98.05%的准确率。
应将实施实例看作是示范性的,并不是限制性,本发明的范围由所附权利要求而不是上述说明限定。凡采用变换或者是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (6)
1.一种对安卓恶意程序进行检测的方法,其特征在于,包括以下步骤:
步骤1:使用反编译工具对安卓应用程序进行反编译处理,获得的反编译文件,反编译文件包括安卓清单文件和smali代码文件;
步骤2:对于每个安卓应用程序,分别从清单文件和smali代码文件中提取出声明的权限和调用的API;
步骤3:提取APK、API和权限这三种实体间的五种类型的关系,用得到的实体和关系构建安卓异构信息网络,其中APK是指安卓应用程序包;
所述步骤3中的五种关系类型分别为API与权限的映射关系、权限的同组关系、API的共现关系、APK对API的包含关系和APK对权限的包含关系:
所述的五种关系类型的提取方法为:
根据PScout权限映射工具中提取的权限使用规范,提取出关系类型,其中保留的API为权限映射规范中的API集合与步骤2中提取的API的交集,记为;保留的权限为权限映射规范中的权限集合与步骤2中提取的权限的交集,记为;
遍历步骤1中的所有smali代码文件,对于在同一个方法定义中出现的API,两两之间建立起共现关系,其中,smali代码文件中方法定义的具体表现形式为“.method”到最近的“.end method”之间的内容,由此提取出关系类型,所述API属于集合;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210363073.1A CN114722391B (zh) | 2022-04-07 | 2022-04-07 | 一种对安卓恶意程序进行检测的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210363073.1A CN114722391B (zh) | 2022-04-07 | 2022-04-07 | 一种对安卓恶意程序进行检测的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114722391A CN114722391A (zh) | 2022-07-08 |
CN114722391B true CN114722391B (zh) | 2023-03-28 |
Family
ID=82242291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210363073.1A Active CN114722391B (zh) | 2022-04-07 | 2022-04-07 | 一种对安卓恶意程序进行检测的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114722391B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN111259388A (zh) * | 2020-01-09 | 2020-06-09 | 中山大学 | 一种基于图卷积的恶意软件api调用序列检测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10079876B1 (en) * | 2014-09-30 | 2018-09-18 | Palo Alto Networks, Inc. | Mobile URL categorization |
CN108959924A (zh) * | 2018-06-12 | 2018-12-07 | 浙江工业大学 | 一种基于词向量和深度神经网络的Android恶意代码检测方法 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
CN112149124B (zh) * | 2020-11-02 | 2022-04-29 | 电子科技大学 | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 |
CN113761529B (zh) * | 2020-12-01 | 2024-04-26 | 北京卫达信息技术有限公司 | 一种基于异构图学习的安卓恶意软件检测系统和方法 |
-
2022
- 2022-04-07 CN CN202210363073.1A patent/CN114722391B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN111259388A (zh) * | 2020-01-09 | 2020-06-09 | 中山大学 | 一种基于图卷积的恶意软件api调用序列检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114722391A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Android malware clustering through malicious payload mining | |
Jeon et al. | Hybrid malware detection based on Bi-LSTM and SPP-Net for smart IoT | |
CN106572117B (zh) | 一种WebShell文件的检测方法和装置 | |
CN108985064B (zh) | 一种识别恶意文档的方法及装置 | |
CN112149124B (zh) | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 | |
US20200193031A1 (en) | System and Method for an Automated Analysis of Operating System Samples, Crashes and Vulnerability Reproduction | |
CN107273746A (zh) | 一种基于apk字符串特征的变种恶意软件检测方法 | |
CN113901465A (zh) | 一种基于异质网络的Android恶意软件检测方法 | |
Sun et al. | Android malware detection based on feature selection and weight measurement | |
Dubey et al. | Digital forensics techniques and trends: a review. | |
CN114722391B (zh) | 一种对安卓恶意程序进行检测的方法 | |
CN116975865B (zh) | 恶意Office文档检测方法、装置、设备及存储介质 | |
Hindarto et al. | Android-manifest extraction and labeling method for malware compilation and dataset creation. | |
CN114817925B (zh) | 基于多模态图特征的安卓恶意软件检测方法及系统 | |
Gao et al. | Quorum chain-based malware detection in android smart devices | |
KR102518394B1 (ko) | 설명 가능한 딥러닝 분석을 활용한 멀웨어 패밀리 분류 네트워크 시스템 | |
Robinette et al. | Benchmark: neural network malware classification | |
Wang et al. | Deep learning-based multi-classification for malware detection in IoT | |
CN112100621B (zh) | 一种基于敏感权限和api的安卓恶意应用检测方法 | |
CN115545091A (zh) | 基于集成学习器的恶意程序api调用序列检测方法 | |
CN108427882A (zh) | 基于行为特征抽取的安卓软件动态分析检测法 | |
Santos et al. | Generating Features of Windows Portable Executable Files for Static Analysis using Portable Executable Reader Module (PEFile) | |
Han et al. | Malicious code detection model based on behavior association | |
Qi et al. | A Malware Variant Detection Method Based on Byte Randomness Test. | |
CN111079145B (zh) | 基于图处理的恶意程序检测方法 |
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 |