CN107392025B - 基于深度学习的恶意安卓应用程序检测方法 - Google Patents
基于深度学习的恶意安卓应用程序检测方法 Download PDFInfo
- Publication number
- CN107392025B CN107392025B CN201710747410.6A CN201710747410A CN107392025B CN 107392025 B CN107392025 B CN 107392025B CN 201710747410 A CN201710747410 A CN 201710747410A CN 107392025 B CN107392025 B CN 107392025B
- Authority
- CN
- China
- Prior art keywords
- application program
- static
- dynamic
- network
- android
- 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
- 238000013135 deep learning Methods 0.000 title claims abstract description 39
- 230000003068 static effect Effects 0.000 claims abstract description 73
- 239000013598 vector Substances 0.000 claims abstract description 62
- 238000001514 detection method Methods 0.000 claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 230000006399 behavior Effects 0.000 claims description 26
- 238000000605 extraction Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 10
- 230000008713 feedback mechanism Effects 0.000 claims description 2
- 238000009434 installation Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 3
- 239000010410 layer Substances 0.000 description 57
- 238000004422 calculation algorithm Methods 0.000 description 33
- 239000008186 active pharmaceutical agent Substances 0.000 description 21
- 238000010801 machine learning Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001960 triggered effect 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
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种基于深度学习的恶意安卓应用程序检测方法,首先获取应用程序特征向量,分别对训练集和测试集中的应用程序进行静态分析和动态分析,提取静态特征和动态特征并整合成为应用程序特征向量;然后利用提取的训练集应用程序的特征向量对DBN网络进行训练;最后将测试集应用程序的特征向量输入到训练好的DBN网络中,进行安全检测。本发明结合静态特征和动态特征来获取完整的应用程序信息,利用深度学习的深层学习机制自动挖掘深层特征,通过这种动静结合的深度学习系统提高对安卓应用检测的正确率。
Description
技术领域:
本发明涉及一种恶意安卓应用程序的检测方法,特别是涉及一种基于深度学习的恶意安卓应用程序检测方法。
背景技术:
恶意应用检测方法的基础是对应用程序的特征提取,本发明先获得应用程序的信息,再从信息中选取敏感的部分作为特征。Android恶意应用检测方法分为静态检测和动态检测,两种检测方法提取的信息分别为静态信息和动态信息。静态信息的提取不需要运行应用程序,只需要解压Android程序包,直接在文件中提取,可以得到程序文件哈希值、反编译后的程序代码等信息。动态信息需要在应用程序执行的过程中提取,对动态信息的提取可以获取应用程序在Android系统各层次的动态行为。
应用程序的安全检测依赖于静态信息和动态信息的提取,当前的应用程序信息提取技术存在很多问题。在静态信息提取方面,由于代码保护技术的发展,基于反编译技术的源代码还原方法愈加困难。Android SDK自带的progugard[代码保护机制可以使反编译后的代码基本失去可读性,除此之外很多商业软件如DexGuard、360加固宝等都会使传统的反编译方法面临失效。动态信息提取方面,由于Android系统的多层架构,对动态信息的提取也需要在多个层面上进行。当前多数动态监控方法只关注单个层面的信息,只监控了API信息或只监控了Dalvik指令,对动态行为监控的不全面导致无法全面的分析软件的行为,如只监控Android API,则后续的检测分析只能发现API特征的恶意行为,对通过底层信息如系统调用、ARM指令等才能发现的恶意行为无法识别。
Android应用程序行为信息可以提取出Android应用的行为特征,根据静态检测和动态检测方法分别得到静态特征和动态特征。通过对应用程序的行为特征进行分析,可以检测出该应用是否存在恶意行为。当前的检测技术大多只对一种特征进行提取和分析,只检测了静态特征或者只检测了动态特征。随着Android恶意代码的不断进化,恶意程序通过多种手段隐藏自身特征,单一的特征检测无法全面的分析应用程序,不易检测到恶意应用程序。
本发明在静态检测方面,着重提取应用程序权限、应用程序包名等信息;在动态检测方面,通过虚拟机技术提取了Android应用程序的API调用和系统调用。根据得到的静态信息和动态信息提取静态特征和动态特征,建立结合静态特征和动态特征的应用程序特征向量,通过分析结合两种特征的特征向量来检测应用程序是否存在恶意行为。
随着Android恶意应用检测技术的发展,在静态检测和动态检测的方法中,很多检测方法都使用了机器学习技术。机器学习算法通过提取特征和构建模型可以让数据集有很高的分类准确率,这种特性可以很好的应用于Android恶意应用检测,机器学习算法对数据特征的学习可以很好的弥补传统恶意应用检测手段在处理未知类型恶意程序能力上的不足。
深度学习是机器学习中一个新兴的分支算法,更准确的说,深度学习来源于机器学习中的人工神经网络,与人工神经网络类似,深度学习通过构建多层网络结构来建立学习模型,依靠大量的样本集进行网络的训练,得到训练好的分类网络,然后对样本进行分类。深度学习算法通过模拟人脑处理数据的方法,通过多层次学习,逐层训练,达到对数据隐藏特征信息的挖掘,通过深层网络中对隐藏特征的学习,深度学习可以更深入的了解所学习的数据,这样就可以更加准确的完成分类算法。
深度学习在训练时与传统神经网络是不同的,深度学习的隐藏层会逐层训练,当上一层已经充分的训练后,才会训练下一层,深度学习每次无监督的训练一层,当逐层训练到最后一层时,使用有监督学习方法反向调整整个网络的权值,最终构建一个分类器,如DBM(Deep BoltzmannMachine,深度玻尔兹曼机)和DBN(Deep Belief Network,深度置信网络)。
深度学习可以对复杂的函数进行逼近,这是深度学习算法的基本结构所带来的优势,深度学习的模型通常含有多层隐藏层,这些隐层使深度学习的模型具有非线性的深层特性。单层结构计算能力有限,深度学习一般采用多层结构单元来提取高维实体的主要映射信息。
基于上述原因,本发明设计并实现了结合动态特征和静态特征,采用深度学习的算法进行安卓代码特征分析的算法DeepDroid。DeepDroid一方面结合静态特征和动态特征来获取完整的应用程序信息,另一方面利用深度学习的深层学习机制自动挖掘深层特征,通过这种动静结合的深度学习系统提高对安卓应用检测的正确率。
发明内容:
本发明要解决的技术问题是:克服现有技术的缺陷,提供一种基于深度学习的恶意安卓应用程序检测方法,该方法能够提取安卓应用程序的行为特征,并通过深度学习的方法对特征进行分类,具有较强的检测准确度。
本发明的技术方案:一种基于深度学习的恶意安卓应用程序检测方法,对安卓应用程序进行静态和动态信息提取,根据静态信息和动态信息获取安卓应用程序的行为特征,并通过深度学习的方法对特征进行分类,从而检测安卓应用程序。
本发明设计了DeepDroid算法,提取并结合了安卓应用的动态特征和静态特征,使用深度学习算法中的DBN算法对安卓应用进行分析。静态特征和动态特征的结合使得特征向量对安卓应用的描述更加全面,同时采用DBN算法可以学习特征的深层结构,使安卓应用的检测更加精确。DeepDroid算法对Android应用程序进行安全检测的过程分为3个步骤:首先获取应用程序特征向量,分别对训练集和测试集中的应用程序进行静态分析和动态分析,提取静态特征和动态特征并整合成为应用程序特征向量;然后利用提取的训练集应用程序的特征向量对DBN网络进行训练;最后将测试集应用程序的特征向量输入到训练好的DBN网络中,进行安全检测。DeepDroid算法的结构图如图1所示。
1.提取特征向量
特征向量由静态特征和动态特征共126种特征组成,其中前41种特征为静态特征,静态特征中包含8个第三方不可用权限和33个典型应用常见权限,后85种特征为动态特征,动态特征包含13个API调用特征和73个系统调用特征。本发明针对每个安卓应用分别检测它是否含有相应的静态特征和动态特征行为,并根据检测结果得到该安卓应用的特征向量。对于特征向量中的每一个特征值,若检测到相应的特征则标记为1,否则标记为0。
1)静态特征提取
静态分析部分,对Android应用程序进行静态分析,将检测到的静态特征结果保存到特征向量中。本发明提取了41种静态特征,这41种特征均为权限特征,Android应用程序的权限保存在AndroidManifest.xml文件中,通过APKTool工具对应用程序进行解包即可获取AndroidManifest.xml文件,分析AndroidManifest.xml文件得到此应用程序申请的所有权限,每当检测到应用程序申请的权限包含在静态特征中时,就改变特征向量中相应的静态特征值,将特征向量中相应的静态特征值从0(未检测到)修改为1(检测到)。
2)动态特征提取
动态分析分为两个部分,API调用和系统调用。
API调用部分,采用DroidBox来进行动态分析,获取应用程序的API调用。本发明Android应用程序特征向量中包含13个API调用特征。DroidBox会动态分析Android应用程序的APK安装包,生成日志文件,分析日志文件中的API调用信息,当检测到应用程序的API调用与特征向量中的API调用特征相同时,改变特征向量中相应的API调用特征值,将特征向量中相应的API调用特征值从0(未检测到)修改为1(检测到)。
系统调用部分,采用VMI技术,利用QEMU虚拟机进行动态分析。应用程序特征向量中包含72种系统调用特征。首先将待检测的应用程序安装到虚拟机中的Android系统上,由于底层对TCG模块进行了插桩,当应用程序调用系统调用时,TCG模块会先返回系统调用的相关信息然后再执行相应的系统调用,这样就可以监控到应用程序的系统调用行为了。但是动态特征通常都是在某些特定的用户行为下触发的,为了触发应用程序的动态行为,本发明使用MonkeyRunner模拟用户行为,MonkeyRunner可以产生随机的事件流,模拟随机的用户行为,在MonkeyRunner运行的同时TCG模块会返回大量的系统调用信息,当检测到特征向量中的高危系统调用时,将特征向量中相应的系统调用特征值从0(未检测到)修改为1(检测到)。
2.深度学习网络训练
DBN由多层RBM组成,最后一层采用BP网络。DBN的训练分为两步:第一步,单独逐层地无监督训练每一层RBM网络,在当前RBM层充分训练后,再训练下一层RBM网络,确保对训练数据有了充分的深层学习;第二步,设置BP网络为末层,其输入特征向量是RBM的输出特征向量,通过BP网络的反馈机制反向调整整个网络的权值。
通过得到的深度置信网络,就可以对安卓应用进行安全检测。将安卓应用的特征向量输入到训练好的DBN网络中就可以对其进行检测。
本发明的有益效果:本发明针对恶意安卓应用程序的问题,设计了DeepDroid算法,分析安卓应用程序的静态信息和动态信息,根据应用程序的信息提取特征向量,使用深度学习算法中的DBN算法对特征进行分类,从而识别安卓应用程序中的恶意应用程序,利用DeepDroid可以非常准确的识别恶意安卓应用程序。
附图说明:
图1为DeepDroid算法结构图;
图2为应用程序特征的静态特征;
图3为应用程序向量中的动态特征;
图4为不同特征向量检测结果;
图5为不同机器学习算法检测结果。
具体实施方式:
DeepDroid算法对Android应用程序进行安全检测的过程分为3个步骤:首先获取应用程序特征向量,分别对训练集和测试集中的应用程序进行静态分析和动态分析,提取静态特征和动态特征并整合成为应用程序特征向量;然后利用提取的训练集应用程序的特征向量对DBN网络进行训练;最后将测试集应用程序的特征向量输入到训练好的DBN网络中,进行安全检测。DeepDroid算法的结构图如图1所示。
特征向量由静态特征和动态特征共126种特征组成,其中前41种特征为静态特征,静态特征中包含8个第三方不可用权限和33个典型应用常见权限,后85种特征为动态特征,动态特征包含13个API调用特征和73个系统调用特征。本发明针对每个安卓应用分别检测它是否含有相应的静态特征和动态特征行为,并根据检测结果得到该安卓应用的特征向量。对于特征向量中的每一个特征值,若检测到相应的特征则标记为1,否则标记为0。
1.静态特征
Android应用程序静态特征提取首先需要获取应用程序的静态信息,在不执行应用程序的情况下,采用逆向手段分析解压后的apk文件获取静态信息。本发明中主要是对AndroidManifest.xml文件的获取和解析,获取静态信息后,再从中提取静态特征。
AndroidManifest.xml声明了应用程序的基本信息、组件、权限,本发明对AndroidManifest.xml文件进行自动化分析,提取各个组件使用情况,包括:permission、activity、service、receiver和provider。
本发明提取的静态特征共41个,其中包括8个第三方不可用权限和33个典型应用常见权限。静态特征如图2所示。
当检测到应用程序申表中的权限时,就将特征向量中相应的静态特征值从0(未检测到)修改为1(检测到)。
2.动态特征
本发明提取了API调用信息和系统调用信息。
为了提取Android API信息,需要对应用框架层进行动态监控。本发明采用DroidBox工具对API调用信息进行提取和分析。
DroidBox的核心技术称作TaintDroid,TaintDroid的主要思想是使用污点追踪,在相应的API调用处对隐私数据进行污染标记。当TaintDroid虚拟机工作时,可以记录API调用的信息。
系统调用是系统内核与应用程序之间的接口,是内核提供的一系列功能强大的函数,每个系统调用都有唯一的编号对其标识。用户态的应用程序如果需要访问系统资源(文件系统、网络连接、进程间通讯等)必须通过系统调用完成,因此通过系统调用信息可以发现隐藏的恶意代码。
本发明在动态信息中提取了85个动态特征,其中API特征为13个,系统调用特征为72个。动态特征提取结果表2所示。
当检测到特征向量中的高危动态行为时,将特征向量中相应的动态特征值从0(未检测到)修改为1(检测到)。
3.深度学习
深度学习算法每层隐层都单独充分训练后再训练下一层。将特征向量作为第一层RBM的输入V0,计算并修改权值W0。当第一层训练完成后,将第一层的输出H0作为第二层的输入V1,同样修改权值W1,以此类推充分训练每层RBM。当所有RBM层都单独充分训练完成后,将最后一层RBM的输出Hn-1(n为RBM隐藏层层数)作为BP层的输入Vn,通过顶层的BP网络算法有监督地训练分类器,并自顶向下反向微调整个DBN网络,根据如下算法对DBN网络进行训练。算法4.4DBN网络训练算法:
对于层数为L(当前层数l),RBM迭代次数为RTurn(当前RBM迭代层数rt),BP网络迭代次数为BTurn(当前BP网络迭代层数bt)的DBN网络。
输入容量为N的训练集,xn为训练集中的一个特征向量(0≤n<N)
1)l=0
2)rt=1
3)n=0
4)若l=0,将xn附给显层Vl,否则l不为0,那么前l层RBM网络已经训练完成,则将xn附给显层V0,i为显层上某一点,j为隐层上某一点,Wlj为l层上的j点与l-1层所有点之间的权值,先通过l层训练好的RBM网络计算出Vl,再根据式(4.3)计算隐藏层H0:
p(hlj=1|Vl)=σ(WljVl)
7)按下式更新权重:
8)若n=N-1,继续;否则n←n+1的值加1,转步骤4)。
9)若rt=RTurn,继续;否则rt的值加1,转步骤3)。
10)若l=L-1,完成对L层RBM的训练,继续利用BP网络对L层RBM的权重反向调整;否则l的值加1,转步骤2)。
11)bt=1
12)n=0
13)将xn附给显层V0,先通过L层训练好的RBM网络计算出VL。
15)计算δ,将δ反向传递自顶向下修正权值,对于输出单元:
16)对于隐藏单元:
修改权值:
η为学习速率。
17)如果l=1,继续;否则l的值减1,转步骤16)。
18)如果n=N,继续;否则n的值加1,转步骤13)。
19)如果bt=BTurn,结束;否则bt的值加1,转步骤12)。
在测试本发明中算法的准确性时,从大量的应用程序中选取了部分程序分别组成训练集和测试集,训练集由1300个非恶意程序以及1300个恶意程序组成,测试集由与训练集不同的1300个非恶意程序以及1300个恶意程序组成。
本发明采用准确率(Precision)、召回率(Recall)、F系数(F-Measure)和正确率(accuracy)来评价对恶意行为检测的结果。
1.准确率Precision:
2.召回率Recall:
3.F-measure:
4.正确率accuracy:
其中,TP(TruePositive)、FN(FalseNegative)、TN(TrueNegative)、FP(FalsePositive)的含义为:
TP:被判定为正样本,事实上也是正样本;
FP:被判定为正样本,但事实上是负样本;
FN:被判定为负样本,但事实上是正样本;
TN:被判定为负样本,事实上也是负样本。
为了验证本发明提出方法的有效性,并与其他传统方法进行比较,本发明设计了2组实验。第1组实验采用不同的特征向量,验证动静态特征结合对恶意程序检测的有效性;第2组实验采用不同的机器学习算法,验证本发明采用的DBN算法比传统的机器学习算法更加有效。
为了验证结合静态特征和动态特征作为特征向量比单独采用某种特征向量有更好的性能,在实验1中,本发明分别使用态静态特征、动态特征、动静态结合特征作为输入特征向量进行恶意行为检测。从图4的结果中可以看出:采用静态特征可以更加准确的检测恶意应用,而非恶意应用的准确率低说明有很多误报;采用动态特征时,恶意应用的准确率较低,非恶意应用的准确率与采用静态特征的结果相比更高;当结合了动态和静态特征时,恶意应用和非恶意应用的准确率都比较高,与单独使用一种特征相比性能有很大提升
在实验2中,本发明比较了与传统的机器学习模型与深度学习模型,结果如图5所示。对于文中的其它机器学习算法(SVM、Naive Bayes、KNN),本发明测试了linear kernel、polynomial kernel、sigmoid kernel等多种核函数,并选取性能最好的作为实验结果。从表中,可以清楚地看到,深度学习的模型明显优于其他恶意软件检测模型。
实验结果表明,深度学习算法与其它传统机器学习算法相比有更好的性能。当深度学习网络结构在当前数据集下达到最高性能时,深度学习算法有很高的准确率。从图5中可以看到,即使深度学习网络没有采用性能最佳的2隐层结构,其最低正确率也达到94.35%。
Claims (3)
1.一种基于深度学习的恶意安卓应用程序检测方法,其特征是:对Android应用程序进行安全检测的过程分为3个步骤:首先获取应用程序特征向量,分别对训练集和测试集中的应用程序进行静态分析和动态分析,提取静态特征和动态特征并整合成为应用程序特征向量;然后利用提取的训练集应用程序的特征向量对DBN网络进行训练;最后将测试集应用程序的特征向量输入到训练好的DBN网络中,进行安全检测;
提取特征向量:针对每个安卓应用分别检测它是否含有相应的静态特征和动态特征行为,并根据检测结果得到该安卓应用的特征向量;对于特征向量中的每一个特征值,若检测到相应的特征则标记为1,否则标记为0;
所述静态特征的提取方法是对Android应用程序进行静态分析,将检测到的静态特征结果保存到特征向量中;Android应用程序的权限保存在AndroidManifest.xml文件中,通过APKTool工具对应用程序进行解包即可获取AndroidManifest.xml文件,分析AndroidManifest.xml文件得到此应用程序申请的所有权限,每当检测到应用程序申请的权限包含在静态特征中时,改变特征向量中相应的静态特征值;
所述动态特征的提取方法是对API调用特征进行提取,采用DroidBox来进行动态分析,获取应用程序的API调用;DroidBox会动态分析Android应用程序的APK安装包,生成日志文件,分析日志文件中的API调用信息,当检测到应用程序的API调用与特征向量中的API调用特征相同时,改变特征向量中相应的API调用特征值;
DBN网络由多层RBM组成,最后一层采用BP网络;DBN网络的训练分为两步:第一步,单独逐层地无监督训练每一层RBM网络,在当前RBM层充分训练后,再训练下一层RBM网络,确保对训练数据有了充分的深层学习;第二步,在网络的最后一层设置BP 网络,BP网络接收RBM 的输出特征向量作为它的输入特征向量,通过BP网络的反馈机制反向调整整个网络的权值;通过得到的深度置信网络,就可以对安卓应用进行安全检测;将安卓应用的特征向量输入到训练好的DBN网络中就可以对其进行检测。
2.根据权利要求1所述的基于深度学习的恶意安卓应用程序检测方法,其特征是:所述API调用特征提取,采用VMI技术,利用QEMU虚拟机进行动态分析;首先将待检测的应用程序安装到虚拟机中的Android系统上,由于底层对TCG模块进行了插桩,当应用程序调用系统调用时,TCG模块会先返回系统调用的相关信息然后再执行相应的系统调用,监控到应用程序的系统调用行为。
3.根据权利要求2所述的基于深度学习的恶意安卓应用程序检测方法,其特征是:为了触发应用程序的动态行为,使用MonkeyRunner模拟用户行为,MonkeyRunner产生随机的事件流,模拟随机的用户行为,在MonkeyRunner运行的同时TCG模块会返回大量的系统调用信息,当检测到特征向量中的高危系统调用时,更改特征向量中相应的系统调用特征值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710747410.6A CN107392025B (zh) | 2017-08-28 | 2017-08-28 | 基于深度学习的恶意安卓应用程序检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710747410.6A CN107392025B (zh) | 2017-08-28 | 2017-08-28 | 基于深度学习的恶意安卓应用程序检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107392025A CN107392025A (zh) | 2017-11-24 |
CN107392025B true CN107392025B (zh) | 2020-06-26 |
Family
ID=60346978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710747410.6A Active CN107392025B (zh) | 2017-08-28 | 2017-08-28 | 基于深度学习的恶意安卓应用程序检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107392025B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873425B (zh) * | 2017-12-01 | 2023-10-20 | 中国电力科学研究院有限公司 | 基于深度学习和用户行为的电力系统调整潮流方法及系统 |
CN107944274A (zh) * | 2017-12-18 | 2018-04-20 | 华中科技大学 | 一种基于宽度学习的Android平台恶意应用离线检测方法 |
CN108108616A (zh) * | 2017-12-19 | 2018-06-01 | 努比亚技术有限公司 | 恶意行为检测方法、移动终端及存储介质 |
CN108200030A (zh) * | 2017-12-27 | 2018-06-22 | 深信服科技股份有限公司 | 恶意流量的检测方法、系统、装置及计算机可读存储介质 |
CN109995601B (zh) * | 2017-12-29 | 2020-12-01 | 中国移动通信集团上海有限公司 | 一种网络流量识别方法及装置 |
CN108804918B (zh) * | 2017-12-31 | 2020-07-31 | 北京安天网络安全技术有限公司 | 安全性防御方法、装置、电子设备及存储介质 |
CN108337255B (zh) * | 2018-01-30 | 2020-08-04 | 华中科技大学 | 一种基于web自动化测试和宽度学习的钓鱼网站检测方法 |
CN108718310B (zh) * | 2018-05-18 | 2021-02-26 | 安徽继远软件有限公司 | 基于深度学习的多层次攻击特征提取及恶意行为识别方法 |
CN108763958A (zh) * | 2018-06-01 | 2018-11-06 | 中国科学院软件研究所 | 基于深度学习的智能移动终端敏感数据授权验证缺陷检测方法 |
CN109241738A (zh) * | 2018-07-09 | 2019-01-18 | 四川大学 | 一种基于深度学习的勒索软件检测技术 |
CN109284370B (zh) * | 2018-08-20 | 2022-05-06 | 中山大学 | 一种基于深度学习的移动应用描述与权限保真性判定方法及装置 |
CN109408947A (zh) * | 2018-10-19 | 2019-03-01 | 杭州刀豆网络科技有限公司 | 一种基于机器学习的侵权网页判断方法 |
CN109492395B (zh) * | 2018-10-31 | 2021-01-12 | 厦门安胜网络科技有限公司 | 一种检测恶意程序的方法、装置及存储介质 |
CN109471668B (zh) * | 2018-11-20 | 2021-11-26 | 南方电网科学研究院有限责任公司 | 跨平台显卡固件翻译执行方法、装置、设备及可读介质 |
US20220147614A1 (en) * | 2019-03-05 | 2022-05-12 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
CN109992968A (zh) * | 2019-03-25 | 2019-07-09 | 北京理工大学 | 基于二进制动态插桩的Android恶意行为动态检测方法 |
CN110795734B (zh) * | 2019-10-12 | 2022-06-10 | 南京信息职业技术学院 | 一种恶意移动应用检测方法 |
CN110851834B (zh) * | 2019-11-18 | 2024-02-27 | 北京工业大学 | 融合多特征分类的安卓恶意应用检测方法 |
CN111460449A (zh) * | 2020-03-10 | 2020-07-28 | 北京邮电大学 | 应用程序识别方法、系统、存储介质以及电子设备 |
CN111881446B (zh) * | 2020-06-19 | 2023-10-27 | 中国科学院信息工程研究所 | 一种工业互联网恶意代码识别方法及装置 |
CN112597498A (zh) * | 2020-12-29 | 2021-04-02 | 天津睿邦安通技术有限公司 | 一种webshell的检测方法、系统、装置及可读存储介质 |
CN113760764A (zh) * | 2021-09-09 | 2021-12-07 | Oppo广东移动通信有限公司 | 应用程序检测方法、装置、电子设备及存储介质 |
CN115146258B (zh) * | 2022-07-27 | 2023-10-31 | 中国电信股份有限公司 | 请求处理方法、装置、存储介质及电子设备 |
CN115249048B (zh) * | 2022-09-16 | 2023-01-10 | 西南民族大学 | 一种对抗样本生成方法 |
CN116484382A (zh) * | 2023-04-07 | 2023-07-25 | 中国人民解放军61660部队 | 一种安卓漏洞动态检测方法、系统、电子设备、存储介质 |
CN117009967B (zh) * | 2023-07-26 | 2024-09-13 | 深圳安巽科技有限公司 | 一种恶意代码检测模型构建方法、系统及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521496A (zh) * | 2011-12-02 | 2012-06-27 | 北京启明星辰信息安全技术有限公司 | 评估指标的重要性级别的获取方法和系统 |
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
CN105426760A (zh) * | 2015-11-05 | 2016-03-23 | 工业和信息化部电信研究院 | 一种安卓恶意应用的检测方法及装置 |
CN106709332A (zh) * | 2016-12-13 | 2017-05-24 | 江苏通付盾科技有限公司 | 应用检测的方法及装置 |
CN106778241A (zh) * | 2016-11-28 | 2017-05-31 | 东软集团股份有限公司 | 恶意文件的识别方法及装置 |
CN106845217A (zh) * | 2017-01-20 | 2017-06-13 | 四川中大云科科技有限公司 | 一种安卓应用恶意行为的检测方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
-
2017
- 2017-08-28 CN CN201710747410.6A patent/CN107392025B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521496A (zh) * | 2011-12-02 | 2012-06-27 | 北京启明星辰信息安全技术有限公司 | 评估指标的重要性级别的获取方法和系统 |
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
CN105426760A (zh) * | 2015-11-05 | 2016-03-23 | 工业和信息化部电信研究院 | 一种安卓恶意应用的检测方法及装置 |
CN106778241A (zh) * | 2016-11-28 | 2017-05-31 | 东软集团股份有限公司 | 恶意文件的识别方法及装置 |
CN106709332A (zh) * | 2016-12-13 | 2017-05-24 | 江苏通付盾科技有限公司 | 应用检测的方法及装置 |
CN106845217A (zh) * | 2017-01-20 | 2017-06-13 | 四川中大云科科技有限公司 | 一种安卓应用恶意行为的检测方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
Non-Patent Citations (2)
Title |
---|
Android平台恶意软件检测与分析方法研究;詹翊;《中国优秀硕士论文库》;20160630;第25-38页 * |
ARM架构全系统动态分析技术研究与应用;叶雁秋;《中国优秀硕士论文库》;20160730;第5-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107392025A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107392025B (zh) | 基于深度学习的恶意安卓应用程序检测方法 | |
CN108304720B (zh) | 一种基于机器学习的安卓恶意程序检测方法 | |
Vinayakumar et al. | Deep android malware detection and classification | |
US20240311700A1 (en) | Machine Learning Model Understanding As-A-Service | |
CN108334781B (zh) | 病毒检测方法、装置、计算机可读存储介质和计算机设备 | |
CN109408389B (zh) | 一种基于深度学习的代码缺陷检测方法及装置 | |
CN110263538B (zh) | 一种基于系统行为序列的恶意代码检测方法 | |
CN111460446B (zh) | 基于模型的恶意文件检测方法及装置 | |
CN109858239B (zh) | 一种动静态结合的容器内cpu漏洞攻击程序检测方法 | |
CN112149124B (zh) | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 | |
CN113780443B (zh) | 一种面向威胁检测的网络安全态势评估方法 | |
CN108712448A (zh) | 一种基于动态污点分析的注入式攻击检测模型 | |
KR20210064619A (ko) | 딥러닝 앙상블 모델을 이용한 이상 상황 탐지 장치 및 그 방법 | |
CN112966714A (zh) | 一种边缘时序数据异常检测和网络可编程控制方法 | |
CN107103237A (zh) | 一种恶意文件的检测方法及装置 | |
US11625483B2 (en) | Fast identification of trustworthy deep neural networks | |
CN111400713B (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
CN113591751A (zh) | 变电站异常情况告警方法、装置、计算机设备及存储介质 | |
Fu et al. | An LSTM-based malware detection using transfer learning | |
Suhuan et al. | Android malware detection based on logistic regression and XGBoost | |
CN111522736A (zh) | 一种软件缺陷预测方法、装置、电子设备及计算机存储介质 | |
Zhao et al. | Suzzer: A vulnerability-guided fuzzer based on deep learning | |
Yuan et al. | Android applications categorization using bayesian classification | |
Albahar | A modified maximal divergence sequential auto-encoder and time delay neural network models for vulnerable binary codes detection | |
CN114968750A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210207 Address after: 450000 Science Avenue 62, Zhengzhou High-tech Zone, Henan Province Patentee after: Information Engineering University of the Chinese People's Liberation Army Strategic Support Force Address before: 450002 Unit 302, Building No. 7, 19, Jinxue Street, Jinshui District, Zhengzhou City, Henan Province Patentee before: Liu Long |