CN116611064A - 一种基于门控循环单元的混合模型恶意软件检测方法 - Google Patents
一种基于门控循环单元的混合模型恶意软件检测方法 Download PDFInfo
- Publication number
- CN116611064A CN116611064A CN202310545256.XA CN202310545256A CN116611064A CN 116611064 A CN116611064 A CN 116611064A CN 202310545256 A CN202310545256 A CN 202310545256A CN 116611064 A CN116611064 A CN 116611064A
- Authority
- CN
- China
- Prior art keywords
- feature
- output
- vector
- input
- file
- 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
- 239000013598 vector Substances 0.000 claims abstract description 99
- 230000003068 static effect Effects 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 30
- 238000013528 artificial neural network Methods 0.000 claims abstract description 24
- 230000006399 behavior Effects 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000013507 mapping Methods 0.000 abstract description 3
- 238000013135 deep learning Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 49
- 238000007781 pre-processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F21/563—Static detection by source code analysis
-
- 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/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/047—Probabilistic or stochastic 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- G06F2123/00—Data types
- G06F2123/02—Data types in the time domain, e.g. time-series data
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Virology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于门控循环单元的混合模型恶意软件检测方法,属于软件安全技术领域。该方法采用深度神经网络和门控循环单元两种技术,将移动终端软件的静态特征和动态特征相结合,分别利用两种深度学习技术的优势对软件进行检测与分类。首先,提取静态特征和动态特征,分别输入到DNN网络和GRU神经网络进行训练;最后,分别将输出的特征向量输入到全连接层,作为最后混合模型的输入,最终根据softmax函数,将输出映射到区间(0,1),最后以概率的形式输出分类结果,达到恶意软件检测的目的。本发明解决了单一检测方法准确率较低的问题,有效提高了恶意软件检测的准确率,具有好的实用价值。
Description
技术领域
本发明属于软件安全技术领域,涉及安卓系统的恶意软件检测方法,采用深度神经网络(Deep Neural Networks,DNN)和门控循环单元(Gated Recurrent Unit,GRU)两种神经网络技术,针对软件静态特征和动态特征,提出了一种新的基于门控循环单元的混合模型恶意软件检测方法。
背景技术
随着互联网技术的不断发展,以安卓系统为主的各种移动设备已经越来越普及,与此同时安全问题逐渐增多,如肆意拨打电话、隐私泄露等多种恶意行为,给用户的数据和财产安全造成较大的损失;恶意软件种类的不断增多和攻击方式的不断变化,给以Android为主要系统的移动终端市场带来了巨大的经济损失。因此,开展基于Android系统的恶意软件检测和安全防护研究具有良好的应用价值。然而,传统的静态恶意软件检测方法虽然检测效率较高,但是检测准确率较低。
发明内容
本发明所要解决的技术问题是:
为了避免现有技术的不足之处,本发明提供一种基于门控循环单元的混合模型恶意软件检测方法,该方法采用深度神经网络和门控循环单元两种技术,将移动终端软件的静态特征和动态特征相结合,分别利用两种深度学习技术的优势对软件进行检测与分类。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于门控循环单元的混合模型恶意软件检测方法,其特征在于步骤如下:
步骤1:对APK数据集进行反编译,提取静态特征序列;
步骤2:将提取的静态特征序列根据离散与否进行分类,使用One-hot进行处理,形成静态特征向量;
步骤3:利用Inspeckage工具获取程序动态特征数据;
步骤4:提取属性数据库,构造基于时间序列的特征向量,形成动态特征向量;
步骤5:将步骤2得到的静态特征向量作为深度神经网络DNN的输入,进行训练;
步骤6:将步骤4得到的动态特征向量作为门控循环单元GRU网络的输入,进行训练;
步骤7:将步骤5和步骤6训练得到的特征进行特征融合,利用反向传播算法进行分类;
步骤8:利用softmax函数输出恶意软件检测结果。
1.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:静态特征向量提取具体包括以下步骤:
第一步:原始数据获取:先从APK文件中获得AndroidManifest.xml文件、dex文件以及汇编共享库文件.so文件;
第二步:特征提取:分别从第一步获得的文件中获取所需特征:从文件AndroidManifest.xml中获得权限特征;将dex文件进行反编译,获取字节码操作符以及API调用特征;将.so汇编共享库文件进行反编译获取共享库函数特征;
第三步:特征向量生成:将提取到的特征分为存在型特征向量和离散型特征向量;然后分别使用One-hot热编码技术将特征向量转换成相应的二进制向量。
本发明进一步的技术方案:步骤3中提取动态特征具体步骤如下:
Step1:使用Inspeckage工具,监控APP运行信息;
Step2:通过应用程序的动态日志文件,查看程序XML文件实时读写记录;
Step3:基于检测到的日志行为特征,构建属性数据库;
Step4:将属性数据库映射为特征向量。
本发明进一步的技术方案:所述的深度神经网络DNN包括2个,分别训练静态特征向量中的存在型特征向量和离散型特征向量两种类型特征;每个DNN包括一个输入、一个输出、三个隐藏层,每层只接收来自前一层的连接并且每层都是完全连接的。
本发明进一步的技术方案:门控循环单元GRU训练学习过程如下:
Step1:输入特征向量xt,激活函数σ,权重矩阵W,偏差b;
Step2:计算更新门状态zt=σ(Wzht-1+Wzzt);
Step3:当zt==0时,输出ht和ht-1是非线性函数关系;
Step4:当zt==1时,输出ht和ht-1是线性函数关系;
Step5:计算重置门状态:rt=σ(Wrht-1+Wrrt);
Step6:判断如果rt==0,输出h′只与当前输入xt相关,与历史状态无关;
Step7:判断如果rt==1,输出h′与当前输入xt和历史状态ht-1均相关;
Step8:复位rt,计算h′,h′t-1=ht-1⊙rt,h′=tanh(Wxt+Wh′t-1);
Step9:更新内存,ht=z⊙ht-1+(1-z)⊙h′
Step10:输出ht;
其中,xt是原始输入的矢量,⊙是逐元素乘法,ht是从ht-1中得到的隐藏状态,而时间步骤t中的输入矢量xt是重置门的输出,zt是更新门的输出。
本发明进一步的技术方案:反向传播算法的选择交叉熵损失函数,其定义如下:
其中,ai表示函数输出向量a的第i个值,其中(1,T)代表i的范围,y表示向量1*T,其中里面的T个值,只有一个是1其余都是0,1代表的就是真实的标签对应的位置。
一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
本发明的有益效果在于:
目前越来越多的安卓软件非法窃取用户的隐私和信息,安装大量恶意应用程序等等,给用户带来了严重的安全威胁,其中一些恶意软件通过申请过多与软件自身功能不相干的权限来获得用户信息,实现其搜集用户隐私的目的。传统的静态恶意软件检测方法虽然检测效率较高,但是检测准确率较低,针对这些问题,本发明提出了一种基于门控循环单元的混合模型恶意软件检测方法,该方法采用深度神经网络和门控循环单元两种技术,将移动终端软件的静态特征和动态特征相结合,分别利用两种深度学习技术的优势对软件进行检测与分类。针对静态特征的离散与否,将特征分为离散型特征向量和存在型特征向量,分别输入DNN网络进行训练;针对获取的动态特征的时间序列特性,采用了能更好地处理更长时间的操作序列的GRU神经网络,同时它具有较少的参数以及更快的训练速度,具有良好的泛化效果。最后,分别将输出的特征向量输入到全连接层,作为最后混合模型的输入,最终根据softmax函数,将输出映射到区间(0,1),最后以概率的形式输出分类结果,达到恶意软件检测的目的。本发明解决了单一检测方法准确率较低的问题,有效提高了恶意软件检测的准确率,具有好的实用价值。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1恶意软件检测模型图;
图2动态特征提取流程图;
图3静态特征预处理过程;
图4动态特征预处理;
图5静态训练模型图;
图6三层DNN模型图;
图7DNN网络模型结构图;
图8GRU基本架构图;
图9模型分类。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
深度神经网络主要包含输入输出层以及多个隐藏层三个部分,目前被不断应用于计算机视觉和自然语言处理等人工智能领域;门控循环单元主要使用了更新门和重置门,重置门有助于捕获序列中的短期依赖关系,可以将之前的记忆和新的输入信息进行结合;更新门有助于捕获序列中的长期依赖关系,可以用于软件的动态特征检测。目前传统的静态特征检测速度快但是准确率较低,而动态特征检测虽然准确率较高,但是需要的资源较多,耗费时间长。为了平衡两种检测技术的不足,本发明提出了一种基于深度神经网络和门控循环单元的混合模型恶意软件检测方法。
该方法首先构建了一个全面的特征集,在静态特征提取的基础上,增加了软件运行时的动态特征,根据静态特征和动态特征的特点,分别采用了DNN和GRU两种不同的深度学习技术,分别提取APK文件的静态特征,如字节码操作符特征、权限特征等,作为深度神经网络的输入,在此基础上提取应用程序的动态行为特征作为门控循环神经单元的输入,最后得到软件的分类结果,从而达到良好地恶意软件检测效果。
本发明提出的基于门控循环单元的混合模型恶意软件检测方法,从静态和动态两个角度出发进行检测。具体检测模型图如图1所示。
如图1所示,本检测模型主要流程包括特征提取及预处理阶段、网络模型特征训练阶段、混合检测阶段以及最后的分类阶段。其中特征提取及预处理阶段包括了对静态特征的划分,分为存在型特征向量和离散型特征向量,特征训练阶段又包括两个DNN的训练。具体来讲,基于门控循环单元的混合模型恶意软件检测方法的主要过程为:
(1)对APK数据集进行反编译,提取静态特征序列;
(2)将提取的静态特征序列根据离散与否进行分类,使用One-hot进行处理,形成静态特征向量;
(3)利用Inspeckage工具获取程序动态特征数据;
(4)提取属性数据库,构造基于时间序列的特征向量,形成动态特征向量;
(5)将步骤(2)得到的静态特征向量作为DNN网络的输入,进行训练;
(6)将步骤(4)得到的动态特征向量作为GRU网络的输入,进行训练;
(7)将步骤(5)和步骤(6)训练得到的特征进行特征融合,利用反向传播算法进行分类;
(8)利用softmax函数输出恶意软件检测结果。
基于深度神经网络和门控循环单元的恶意软件检测方法具体步骤如下:
步骤一:基于安卓软件的动态行为特征提取
DroidBox工具是基于TaintDroid提供一个应用沙箱,可以记录应用的各种操作,如文件访问、网络访问等操作,该工具框架采用系统挂钩和动态污点分析,其中TaintDroid是一个动态污点分析系统,可以用来检测Android应用程序中的敏感数据泄漏,在修改了Android虚拟机解释器之后,TaintDroid能够执行系统范围的污点跟踪,并报告应用程序中的信息泄漏,而不会出现任何误报。动态特征具体提取步骤如图2所示。
在DroidBox工具监控环境中,利用Inspeckage工具控制脚本,运行待检测应用程序一段时间,使用strace工具记录与进程io活动相关的系统调用,从而扩展DroidBox的监控环境,在特征提取中,本发明监视了6种应用程序的操作及应用程序的系统调用,具体如表1所示。
表1动态行为特征格式
(1)信息泄露
Android恶意软件通常会主动获取受感染设备上的各种信息,包括IMEI、设备特定标识符、SMS内容、联系人信息、社交网络帐户凭据以及银行信息,然后用这些信息监控用户行为,谋取利益。
(2)发送短信
恶意软件通常会给受感染的用户带来财务费用,包括信息订阅、游戏服务等。这些服务是电信提供商提供的增值服务,向用户收取超出标准通信标准的费用,很多恶意软件在未经用户的同意下发送短信,订阅优质服务等。
(3)拨打电话
Android恶意软件通常在没有用户交互的情况下拨打电话。这些特征可以形成为call_<number>。
(4)密码操作
Android恶意软件通常采用加密操作来加密恶意负载、关键方法标识符、远程恶意服务器的URL等,进行逃避静态检测。一些恶意应用程序将大部分功能移动到一个单独的dex文件中,然后进行加密存储。在这些恶意软件中,会创建一个解密例程来解密dex文件,此外,该文件将通过动态类加载器加载。良性应用程序通常应用加密API来保护密码和个人信息等数据。
(5)dex加载
Android恶意软件通常利用动态代码加载来降低被检测的概率,在运行时从应用程序资产中包含的库、其他应用程序或远程系统加载额外的.dex文件,并执行未作为此应用程序一部分安装的恶意代码。
(6)系统调用
系统调用代表应用程序如何从操作系统内核请求服务的知识。为应用程序提供了有用的功能,如电源管理、设备安全、对硬件资源的访问以及与操作相关的过程。Android恶意软件通常会调用一些系统操作来影响其他应用程序的执行及其进程的成功执行。
本发明提取动态特征具体步骤如下:
Step1:使用Inspeckage工具,监控APP运行信息;
Step2:通过应用程序的动态日志文件,查看程序XML文件实时读写记录;
Step3:基于检测到的日志行为特征,构建属性数据库;
Step4:将属性数据库映射为特征向量。
步骤二:基于安卓软件的静态特征的预处理
本发明提取的静态特征主要包含从原始APK文件中反编译dex文件、反编译汇编共享库,提取字节码操作符特征、API调用特征、共享库函数特征以及权限这四类特征。具体特征处理过程如图3所示。
如图3所示,所需的静态特征提取及预处理主要分为三步,具体如下:
第一步:原始数据获取。先从APK文件中获得AndroidManifest.xml文件、dex文件以及汇编共享库文件.so文件;
第二步:特征提取。分别从第一步获得的文件中获取所需特征:从文件AndroidManifest.xml中获得权限特征;将dex文件进行反编译,获取字节码操作符以及API调用特征;将.so汇编共享库文件进行反编译获取共享库函数特征;
第三步:特征向量生成。将提取到的特征分为存在型特征向量和离散型特征向量。然后分别使用热编码技术将特征向量转换成相应的二进制向量,分别输入到DNN模型中。
由于静态特征,大多数是二进制特征,也有少数离散特征,特征之间没有关联,可解释性不强,输入变量之间的关系也不好判定,因此在第三步中,采用One-hot热编码技术,将离散特征转换为相应的特征向量。对于具有较大值范围的离散特征,如果使用一种热编码,特征向量将是稀疏的。此时可以对值范围进行精细分类,以在一次热编码后降低特征维数。在一次热编码之后,所有静态特征被连接成一个二进制向量,作为DNN的输入。
步骤三:基于安卓软件的动态特征的预处理
动态特征获取选择自动测试工具MonkeyRunner和动态分析工具Inspeckage来提取动态特征。MonkeyRunner是Android SDK提供的测试工具。它支持编写测试脚本来定制数据和事件,并可以同时连接到多个真实终端或模拟器以触发应用软件的操作,它可以更好地执行Android应用程序的功能。动态分析工具Inspeckage是一个用来动态分析安卓app的Xposed模块,整个分析操作可以在友好的界面环境中进行,可以获取软件的基本信息,同时也可以看到软件的实时行为。虽然用户可以在没有Xposed的情况下运行,但是绝大部分功能都是依赖于Xposed框架,所以在测试环境中需要安装Xposed框架。
本发明针对APK文件,提取安卓应用程序运行时的行为特征,例如文件的读取和写入、电话呼叫、短信、地理位置等敏感信息,这些动态特征主要用来监控相关API函数的调用,具体如图4所示。
如图4所示,动态特征提取及预处理主要分为三步,具体如下:
第一步:安装相关组件,运行APK;
第二步:使用Inspeckage进行分析。访问webserver,查看Logcat的输出以及Hook数据,下载自己需要的特征数据;
第三步:数据处理。查看行为日志,得到属性数据库,将其转换为特征向量。
由于提取的行为特征是按照时间形成的,因此后续将提取的动态特征输入到GRU网络中,进行分析。
分析动态行为得到行为日志文件,假设X代表属性数据库的规模,则定义X维向量空间,然后将每一个软件用动态行为日志文件将其映射到X维向量空间来构建一个特征向量,然后,可以通过将每个提取的特征的相应维度设置为1,将所有剩余维度设置为0来构建应用程序的特征向量。由于这样得到的特征向量的维数取决于提取的动态行为特征的计数,如果提取的动态行为过多,将或导致生成高维特征向量,而且这些特征中的一些相互关联,可能包含高度的噪声、不相关或冗余信息,会影响模型的检测效率。因此,特征选择应被应用于降低维数、去除冗余特征以及防止过拟合等方面。除此之外,不同的软件,输入维度不同,也会给模型训练造成很大的困扰。因此,本发明考虑在此基础上,采用实体嵌入的方式进行处理。实体嵌入是一种数据表示方法,在结构化数据上拟合神经网络这一方面已经取得成功。实体嵌入不仅提供有关不同类别之间距离的信息,而且训练好的嵌入可以保存并用于非深度学习模型。其最重要的是嵌入尺寸的选择,它代表每个类别的向量长度,并且可以为每个分类特征设置。在这里的嵌入尺寸选择32。最终生成需要的特征向量,该向量将作为模型GRU的输入。
步骤四:基于深度神经网络的特征处理
本发明在静态特征处理的时候,将APK的静态特征主要分为存在和离散两种类型特征,形成两个特征向量,因此在静态模型训练这部分,采用了两个DNN组成静态特征训练初始网络,静态特征数据预处理中得到的两个特征向量分别输入到这两个DNN网络中。初始网络彼此不连接,并且初始网络的输出,最后和GRU处理的输出一起输出到最后的网络处理中,进行最后的训练分类。初始网络的每个DNN包含:一个输入、一个输出、三个隐藏层,每层只接收来自前一层的连接并且每层都是完全连接的。具体的静态特征训练图如图5所示。
如图5所示,将预处理阶段得到的静态特征向量,分别输入DNN网络中进行训练。
DNN网络其实可以有很多的隐藏层,增强模型的表达能力,但是随着隐藏层的数量增加,复杂度也会相应增加很多,第l层的任意神经元与第l+1层的任意神经元一定连接,而且该模型是一个线性关系,即z=∑wixi+b+σ(z),其中σ(z)表示激活函数,b为偏倚向量,x是输入向量。DNN网络模型有两种算法,分别是前向传播算法和反向传播算法,具体运算过程介绍如下。
(1)前向传播算法
从输入开始逐步向后进行线性和激活运算,直到计算到输出层得到最后结果。
以本发明要用到的三层DNN为例,具体如图6所示,假设隐藏层和输出层的值为y,选择的激活函数是ReLU,则每一层的输出结果都可以由上一层的输出计算得到。
由图6所示,对于第二层的输出可以分别得到它们的计算公式:
对于第三层的输出有:
将上面的一般化,假设l-1层有m个神经元,则对于第l层的第i个神经元的输出可以得到其计算公式如公式(5)所示。
其中,如果l=2,则即为输入层的xk。
由上面可知,使用代数法表示输出相对复杂,但是使用矩阵法表示则相对简单。假设第l-1层共有n神经元,第l层有m神经元,则最终,第l层的输出为:
yl=ReLu(zl)=ReLU(Wlyl-1+bl) (6)
其中,w表示线性系数,Wl是第l层的w组成的m×n矩阵;b是偏倚向量,bl则是第l层的b形成的m×l的向量;l-1层的输出形成的向量则是由yl-1表示;z表示未激活前线性输出,则zl代表第l层z形成的n×l的向量;y表示输出,yl则表示第l层的y形成的一个m×l向量。
设L为总层数,W表示所有隐藏和输出层对应的矩阵,b为偏倚向量,x是输入向量,则输出层的输出分以下两步计算:
1)初始化yl=x;
2)for l=2 to L,计算:
yl=ReLu(zl)=ReLU(Wlyl-1+bl) (7)
最后的输出结果即为:yL
(2)反向传播算法
反向传播算法与前向传播算法计算方向正好相反,算法的核心是数学微积分中的求导链式法则。以从输出层到输入层的顺序,逐步依次计算。在DNN中,分别计算第l层和第l-1层的反向传播,对参数W和b进行更新,以此为例逐步向前进行计算。在此之前,一般采用均方差来度量损失,计算训练样本得到的结果和实际的训练样本得到的结果之间的损失。本发明将采用三层隐藏层的DNN模型,具体结构如图7所示。
由于使用了两个DNN网络,因此,让n∈{1,2}表示每个初始网络,让xn表示对应n网络的输入向量,ln∈{1,2,3}表示n是初始网络中的一个层,是进入ln层的输入向量,是ln层的输出向量,/>是ln的权重,/>是ln层的偏置,f是激活函数ReLU。因此,初始化网络的前向传播算法操作方程式如下:
但是在DNN在模型训练过程中,很容易出现过度拟合的问题。其具体表现是,训练后的模型在训练集中的精度较高,但是在测试集中的精度较低。为了解决这个问题,本发明使用了ReLU激活函数,其表达形式如下:
f(x)=max(0,x) (11)
从表达式中可以看出,ReLU是个取最大值的函数。该函数除了没有包河区,不存在梯度消失之外,同时它也没有复杂度指数运算,计算简单,效率高,实际收敛速度也比较快,因此更适合于DNN模型训练。
步骤五:基于门控循环单元的特征处理
门控循环单元(GRU)其实是标准的递归神经网络RNN的变体,类似于长短期记忆递归神经网络LSTM,但是比LSTM的结构简单一点。其利用组合门控制机制作为短期记忆的解决方案。GRU有一个内部机制被称为“门”,包含重置门reset和更新门update。这两个门控向量决定了哪些信息最终能作为门控循环单元的输出。GRU的架构也比标准的RNN简单,但是性能是高效的,其基本架构如图8所示。
当前状态需要从之前的状态中保存多少信息是需要更新们控制的,同时也可以表示从候选状态中能够收到的新信息有多少,具体公式如下:
zt=σ(Wz[ht-1,xt]) (12)
公式(12)中,xt是当前输入量,ht-1是从先前相邻层计算的值,Wz是更新门的可学习矩阵。此外,GRU还将当前的输入与重置门rt相结合,本质上讲,重置门决定了需要忘掉之前的信息有多少。其表达式如下:
rt=σ(Wr[ht-1,xt]) (13)
ht=tanh(rt[ht-1,xt]) (14)
ht=(1-zt)ht-1+ztht (15)
其中,(-1,1)是tanh的输出范围,该函数是一个双曲正切函数,ht代表当前单位隐藏的状态值。
鉴于GRU的以上优势,本发明将根据GRU的特性,采取单层GRU模型处理Android动态应用特征。在数据预处理阶段,通过Inspeckage得到了应用程序动态运行时的特征向量,现在作为GRU的输入进行模型训练。
根据GRU神经网络结构图,将xt作为特征向量,表示当前时间Android程序的动态行为,GRU通过ht记住输入的xt,由此可以看出,GRU非常适合于具有时间相关性的动态特征。在时间步骤t下,GRU模型训练学习过程如下:
Step1:输入特征向量xt,激活函数σ,权重矩阵W,偏差b;
Step2:计算更新门状态zt=σ(Wzht-1+Wzzt);
Step3:当zt==0时,输出ht和ht-1是非线性函数关系;
Step4:当zt==1时,输出ht和ht-1是线性函数关系;
Step5:计算重置门状态:rt=σ(Wrht-1+Wrrt);
Step6:判断如果rt==0,输出h′只与当前输入xt相关,与历史状态无关;
Step7:判断如果rt==1,输出h′与当前输入xt和历史状态ht-1均相关;
Step8:复位rt,计算h′,h′t-1=ht-1⊙rt,h′=tanh(Wxt+Wh′t-1);
Step9:更新内存,ht=z⊙ht-1+(1-z)⊙h′
Step10:输出ht。
如上述过程所述,xt是原始输入的矢量,⊙是逐元素乘法,ht是从ht-1中得到的隐藏状态,而时间步骤t中的输入矢量xt是重置门的输出,zt是更新门的输出。由于输入向量和隐藏状态表示不同的信息,它们共同控制GRU单元中的信息传递过程。因此复位门和更新门执行类似的计算,使得在GRU结构中尽可能多地记忆成为可能。
步骤六:恶意软件检测
根据不同特征处理流程,对Android的静态特征和动态特征分别进行训练处理之后,会分别得到两个从DNN网络模型中输出的特征向量以及一个从GRU模型中输出的特征向量。接下来,将这两种模型的输出值进行混合,同时进行参数的微调,输出最终的恶意软件检测结果。具体分类模型如图9所示。
如图9所示,将特征向量分别输入模型中进行训练,然后通过BP神经网络和softmax函数得到软件的分类结果。
在混合训练分类中,本发明采用反向传播神经网络,将分类结果与Android程序的标签进行比较,微调混合深度学习模型的参数,同时与softmax分类器结合,将梯度下降算法应用于DNN和GRU网络混合模型的微调。其中,softmax函数是反向传播神经网络的一部分,用于微调DNN和GRU的参数。
本发明利用反向传播神经网络,通过寻找模型损失函数的全局最小值来进行参数的微调,在找到这个最小值之后,相应的权重矩阵的参数也是全局最优的,而对于softmax分类器,本发明选择交叉熵损失函数,其定义如下:
其中,ai表示函数输出向量a的第i个值,其中(1,T)代表i的范围,y表示向量1*T,其中里面的T个值,只有一个是1其余都是0。1代表的就是真实的标签对应的位置。如果分类准确,那么模型输出向量对应于真是类别的那个分量就越接近1,所以L的值就是一个非常小的正数。至此,模型的检测分类流程基本完成。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于门控循环单元的混合模型恶意软件检测方法,其特征在于步骤如下:
步骤1:对APK数据集进行反编译,提取静态特征序列;
步骤2:将提取的静态特征序列根据离散与否进行分类,使用One-hot进行处理,形成静态特征向量;
步骤3:利用Inspeckage工具获取程序动态特征数据;
步骤4:提取属性数据库,构造基于时间序列的特征向量,形成动态特征向量;
步骤5:将步骤2得到的静态特征向量作为深度神经网络DNN的输入,进行训练;
步骤6:将步骤4得到的动态特征向量作为门控循环单元GRU网络的输入,进行训练;
步骤7:将步骤5和步骤6训练得到的特征进行特征融合,利用反向传播算法进行分类;
步骤8:利用softmax函数输出恶意软件检测结果。
2.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:静态特征向量提取具体包括以下步骤:
第一步:原始数据获取:先从APK文件中获得AndroidManifest.xml文件、dex文件以及汇编共享库文件.so文件;
第二步:特征提取:分别从第一步获得的文件中获取所需特征:从文件AndroidManifest.xml中获得权限特征;将dex文件进行反编译,获取字节码操作符以及API调用特征;将.so汇编共享库文件进行反编译获取共享库函数特征;
第三步:特征向量生成:将提取到的特征分为存在型特征向量和离散型特征向量;然后分别使用One-hot热编码技术将特征向量转换成相应的二进制向量。
3.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:步骤3中提取动态特征具体步骤如下:
Step1:使用Inspeckage工具,监控APP运行信息;
Step2:通过应用程序的动态日志文件,查看程序XML文件实时读写记录;
Step3:基于检测到的日志行为特征,构建属性数据库;
Step4:将属性数据库映射为特征向量。
4.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:所述的深度神经网络DNN包括2个,分别训练静态特征向量中的存在型特征向量和离散型特征向量两种类型特征;每个DNN包括一个输入、一个输出、三个隐藏层,每层只接收来自前一层的连接并且每层都是完全连接的。
5.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:门控循环单元GRU训练学习过程如下:
Step1:输入特征向量xt,激活函数σ,权重矩阵W,偏差b;
Step2:计算更新门状态zt=σ(Wzht-1+Wzzt);
Step3:当zt==0时,输出ht和ht-1是非线性函数关系;
Step4:当zt==1时,输出ht和ht-1是线性函数关系;
Step5:计算重置门状态:rt=σ(Wrht-1+Wrrt);
Step6:判断如果rt==0,输出h′只与当前输入xt相关,与历史状态无关;
Step7:判断如果rt==1,输出h′与当前输入xt和历史状态ht-1均相关;
Step8:复位rt,计算h′,h′t-1=ht-1⊙rt,h′=tanh(Wxt+Wh′t-1);
Step9:更新内存,ht=z⊙ht-1+(1-z)⊙h′
Step10:输出ht;
其中,xt是原始输入的矢量,⊙是逐元素乘法,ht是从ht-1中得到的隐藏状态,而时间步骤t中的输入矢量xt是重置门的输出,zt是更新门的输出。
6.根据权利要求1所述基于门控循环单元的混合模型恶意软件检测方法,其特征在于:反向传播算法的选择交叉熵损失函数,其定义如下:
其中,ai表示函数输出向量a的第i个值,其中(1,T)代表i的范围,y表示向量1*T,其中里面的T个值,只有一个是1其余都是0,1代表的就是真实的标签对应的位置。
7.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
8.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310545256.XA CN116611064A (zh) | 2023-05-15 | 2023-05-15 | 一种基于门控循环单元的混合模型恶意软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310545256.XA CN116611064A (zh) | 2023-05-15 | 2023-05-15 | 一种基于门控循环单元的混合模型恶意软件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116611064A true CN116611064A (zh) | 2023-08-18 |
Family
ID=87679317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310545256.XA Pending CN116611064A (zh) | 2023-05-15 | 2023-05-15 | 一种基于门控循环单元的混合模型恶意软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116611064A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972699A (zh) * | 2024-03-01 | 2024-05-03 | 国网江苏省电力有限公司电力科学研究院 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
-
2023
- 2023-05-15 CN CN202310545256.XA patent/CN116611064A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972699A (zh) * | 2024-03-01 | 2024-05-03 | 国网江苏省电力有限公司电力科学研究院 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
CN117972699B (zh) * | 2024-03-01 | 2024-09-13 | 国网江苏省电力有限公司电力科学研究院 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karuppusamy et al. | Chronological salp swarm algorithm based deep belief network for intrusion detection in cloud using fuzzy entropy | |
Vasan et al. | MTHAEL: Cross-architecture IoT malware detection based on neural network advanced ensemble learning | |
Aslan et al. | A comprehensive review on malware detection approaches | |
Ficco | Malware analysis by combining multiple detectors and observation windows | |
Kim et al. | A multimodal deep learning method for android malware detection using various features | |
Xu et al. | Hadm: Hybrid analysis for detection of malware | |
Wei et al. | Machine learning-based malicious application detection of android | |
Wu et al. | A survey of android malware static detection technology based on machine learning | |
Xing et al. | A malware detection approach using autoencoder in deep learning | |
CN110263538B (zh) | 一种基于系统行为序列的恶意代码检测方法 | |
John et al. | Graph convolutional networks for android malware detection with system call graphs | |
Feng et al. | Mobidroid: A performance-sensitive malware detection system on mobile platform | |
Zhao et al. | Structural attack against graph based android malware detection | |
Du et al. | Digital Forensics as Advanced Ransomware Pre‐Attack Detection Algorithm for Endpoint Data Protection | |
Srivastava et al. | An ensemble model for intrusion detection in the internet of softwarized things | |
Tajoddin et al. | RAMD: registry-based anomaly malware detection using one-class ensemble classifiers | |
Su et al. | DroidDeep: using Deep Belief Network to characterize and detect android malware | |
CN116611064A (zh) | 一种基于门控循环单元的混合模型恶意软件检测方法 | |
Wei et al. | Toward identifying APT malware through API system calls | |
CN113225331A (zh) | 基于图神经网络的主机入侵安全检测方法、系统及装置 | |
CN115883261A (zh) | 一种基于att和ck的电力系统apt攻击建模方法 | |
Surendran et al. | Detection of malware applications from centrality measures of syscall graph | |
CN113378167A (zh) | 一种基于改进朴素贝叶斯算法和门控循环单元混合的恶意软件检测方法 | |
CN111506313A (zh) | 一种基于神经网络的程序控制流混淆方法及系统 | |
Khan et al. | Fractal based adaptive boosting algorithm for cognitive detection of computer malware |
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 |