CN112883378A - 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 - Google Patents
图嵌入与深度神经网络相融合的安卓恶意软件检测方法 Download PDFInfo
- Publication number
- CN112883378A CN112883378A CN202110344786.9A CN202110344786A CN112883378A CN 112883378 A CN112883378 A CN 112883378A CN 202110344786 A CN202110344786 A CN 202110344786A CN 112883378 A CN112883378 A CN 112883378A
- Authority
- CN
- China
- Prior art keywords
- graph
- neural network
- class
- deep neural
- software
- 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.)
- Granted
Links
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
-
- 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
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法,属于人工智能与恶意软件检测技术领域。本发明从Android程序中提取出类调用图作为特征,通过图嵌入方法与深度神经网络结合的方式,建立了一个包含4万余App的大规模数据集,将调用图转换为特征向量,训练深度神经网络进行预测分类。实验结果显示,本发明提出的图嵌入与深度神经网络相融合的安卓恶意软件检测方法的准确率达到97.7%,查准率达到96.6%,查全率达到96.8%,F1分数达到96.4%,优于现有的MaMaDroid检测模型及图嵌入模型。
Description
技术领域
本发明涉及一种恶意软件检测方法,特别涉及一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法,属于人工智能与恶意软件检测技术领域。
背景技术
根据IDC的报道,由于COVID-19的影响,世界各地的消费者正将他们外出旅行、聚餐和其他休闲活动的经费转移到电子消费上,2021年5G智能手机的出货量预计增长36%[1]。手机早已不仅仅只有打电话、发短信等基本功能,聊天、购物、转账、刷公交卡、打游戏、看视频、看文档资料、收发邮件等各种各样的功能都可以通过智能手机完成。由于智能手机便携性这一得天独厚的优势,人们将原来只能用PC完成的事务逐渐转移到智能手机上完成,人们在手机上花费的时间也越来越长。Android操作系统以其良好的用户体验和较高的开源性得到了众多使用者、手机生产商、软件开发者的青睐,成为市场中主流的智能手机操作系统之一。
Android操作系统因为其流行性和开源性,使得恶意软件开发人员将目光聚集于此。随着Android恶意软件数量的迅猛增长,越来越多的学者们将注意力转移到Android恶意软件的检测上。传统的恶意软件检测出方法需要维护规模庞大的特征匹配库,而且无法有效的检测零日攻击。为了解决这些问题,基于机器学习与深度学习的检测方法被逐渐应用到恶意软件的检测当中,取得了很好的检测防范效果,但仍不理想。
发明内容
本发明的目的是为了克服已有技术的缺陷,为了解决安卓恶意软件检测的问题,提出一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法。
本发明的目的是通过以下技术方案实现的。
一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法,包括以下步骤:
步骤一、获取待检测软件;
步骤二、从所述软件中提取类调用图、控制流图或数据流图;
步骤三、使用图嵌入算法将所述图转换为低维向量;
步骤四、将低维向量输入经训练的深度神经网络进行二分类得到所述软件是恶意或良性检测结果。
作为优选,所述图嵌入算法为整图嵌入。
作为优选,所述图嵌入算法采用Graph2Vec方法。
作为优选,所述图嵌入算法输出的向量维度为128维。
作为优选,所述经训练的深度神经网络的训练过程如下:
一、从多源收集大量所述软件样本;
二、对所述样本去重得到无重复的软件样本集;
三、从所述软件中提取类调用图、构建类编码词典;
四、使用图嵌入算法将所述类调用图转换为低维向量,所述类编码作为图嵌入算法节点特征之一;
五、将低维向量作为输入,样本真实的恶意或良性类别作为结果对比对所述深度神经网络进行训练。
作为优选,所述去重通过校验所述样本的MD5码实现。
作为优选,所述类编码词典构建过程为:统计所述软件样本集中所有类被调用的频率,根据频率特征从大到小对每个类进行编号,出现次数越多的类编号越小。
作为优选,所述神经网络采用4层结构,1层输入层,2层隐藏层,1层输出层。
作为优选,所述输入层神经元个数与所述低维向量维度相同,所述输出层神经元个数为2,2层隐藏层节点神经元个数分别为102和58。
有益效果
与现有技术相比,本发明具有以下有益效果:
(1)利用类调用图简化API调用图,降低了提取调用图的规模;通过图嵌入算法将高维的图数据结构转换为低维的嵌入向量,方便深度神经网络模型的计算;
(2)使用类调用图特征作为恶意检测的特征,在一定程度上能够抵抗源码级别的修改;
(3)使用整图嵌入降低了后续神经网络需要处理的数据规模,提高了检测效率;
(4)与现有检测模型MaMaDroid模型以及基于节点图嵌入检测模型相比,准确率更高。
附图说明
图1为本发明方法流程示意图;
图2为提取的类调用图的规模分布示意图;
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限于本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。且在附图中,实施例以简化或是方便标示。再者,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然实施例可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。
本发明提供了一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法,通过提取APK的类调用图,使用图嵌入算法将调用图压缩为嵌入向量。嵌入向量作为深度神经网络的特征向量训练神经网络检测模型,最后根据检测模型的结果判断输入的样本是恶意软件还是良性软件。本方法在四万余样本的数据集上取得了较好的检测结果。
实施例:
如图1所示,本发明提出的检测方法包括五个主要阶段:
第一阶段是收集样本。本发明有多处数据来源,为了防止出现重复样本干扰检测结果,需要去除样本中的重复文件。计算每个样本的MD5码,如果有两个文件的MD5码相同,说明这是两个相同的应用程序,需要去除重复样本。过滤后能够得到无重复的实验数据集。
第二阶段是生成类调用图。本发明基于Soot实现了提取应用程序类调用图的工具,每个样本都对应一个类调用图。在提取类调用图的同时,统计样本中所有类被调用的频率,根据频率特征从大到小对每个类进行编号,出现次数越多的类编号越小。类被调用的频率可以代表类的重要程度,所以本发明将此编号作为类调用图的图嵌入算法节点特征之一。为了简化处理,将类调用图转换为无向图以供进一步分析。类调用图中含大量的重复调用关系,这对于接下来的图嵌入过程没有帮助,去除每个类调用图中重复的调用关系。此外,考虑到结构简单的类调用图信息量较少,不必通过图嵌入的方式压缩信息,需设置一个阈值,调用关系数量低于此阈值的样本被舍弃。本发明中选取的阈值为160。
第三阶段是生成嵌入向量。图数据结构无法直接作用于深度神经网络模型中,需要通过图嵌入算法将图转换为低维向量,即将每个样本的类调用图映射成为低维向量。本发明选取Graph2Vec算法作为嵌入类调用图的算法。通过Graph2Vec算法将过滤后的调用图转换为嵌入向量,从嵌入向量集合中随机选取90%作为训练集,用于训练第四阶段提出的深度神经网络模型,剩下的10%作为测试集,用于评估本发明的模型的检测性能。
第四阶段是搭建深度神经网络模型并使用训练集训练检测模型。本发明选取四层神经网络结构,其中一层输入层,两层隐藏层,一层输出层,隐藏层的激活函数采用ReLU函数,其表达式为:
输出层的激活函数采用Sigmoid函数,其表达式为:
为了防止实验过程中出现过拟合现象,训练过程中引入了0.5的dropout率。BCELoss损失函数在二分类问题中表现良好,所以本发明选择该函数作为检测模型的损失函数,其表达式为:
第五阶段是验证本发明的检测模型。本发明统计了类调用图的规模,评估了不同神经网络结构、不同嵌入向量维度对检测模型性能的影响,同时与方法类似的MaMaDroid检测模型以及图嵌入检测模型做准确性方面的对比。
众所周知,在机器学习与深度学习的模型中,首先需要选取合适的特征向量作为模型的输入,特征向量的选取直接决定了检测模型的准确性。对于Android应用程序来说,权限申请信息、操作码序列、API调用频率、敏感函数调用、源码的文本信息等都可以被提取为特征。尽管有研究结果显示这些特征能够在一定程度上区分Android软件的恶意性或是良性,但这些特征太过单一,容易被修改,缺乏程序的结构信息。API调用图是一种表示程序的有效方法,它能够清晰的表示应用程序的功能。在API调用图中,每个节点表示一种API,节点与节点之间的边表示调用关系。但是API种类繁多,如果将所有API节点都表示出来,那么调用图的节点数量会十分庞大,难以分析。同一个类中的不同API具有相似的功能或紧密的联系,为了控制提取的特征图的规模,本发明选取类调用图作为安卓软件的特征。
与图像、自然语言序列不同,图作为一种非欧式空间数据,其相邻的节点之间没有必然的联系。传统的基于卷积神经网络或者循环神经网络构造的检测模型无法直接作用于图中。近年来,图神经网络相关模型被学者们大量提出,其中图嵌入算法能够将图数据嵌入成低维向量以进行下游任务。我们将从样本中提取的类调用图经过图嵌入算法的处理生成低维的嵌入向量,然后构建深度神经网络对嵌入向量进行分类,从而达到恶意性检测的目的。图嵌入方法主要分为两类:节点式嵌入方法和整图嵌入方法。节点式嵌入方法是对图中每个节点进行嵌入计算,嵌入结果为由每个节点的嵌入向量组成的嵌入矩阵。例如一个图中有N个节点,嵌入算法的嵌入维度是D维,则最终生成一个RN*D的矩阵。对于由APK样本数据集生成的类调用图来说,每个图的节点数量是由APK中类的数量决定的,每个类调用图节点数量可能不同。若使用节点式嵌入方法,则每个样本生成的嵌入矩阵维度不同,需要进一步对嵌入矩阵处理得到统一维度的嵌入向量才能将嵌入结果作用于深度神经网络中。整图嵌入方法是直接将每个图嵌入成维度固定的嵌入向量,无论图的规模如何都会生成维度固定的嵌入向量。选择这种方法可以直接得到无需再处理的嵌入向量,直接交给深度神经网络模型做分类任务。因此,本发明采取整图嵌入方法中的Graph2Vec嵌入算法作为类调用图的嵌入算法。Graph2Vec算法将每个图视作一个文件,将图中每个节点周围的根子图视作文件中的单词,进而通过文档嵌入的方法对图数据结构进行嵌入。根据我们的结果显示,检测的准确率能够达到97.8%,查准率达到96.6%,查全率达到96.8%,F1分数达到96.4%。
实验结果
在进行实验之前,先介绍对样本的处理原理:APK是Android操作系统能够识别的应用程序包,用户安装的app都是通过下载APK文件来安装的,其本质是ZIP文件。APK一般包含res文件夹、META_INF文件夹、AndroidManifest.xml文件、classes.dex文件和resources.arsc文件。AndroidManifest.xml文件包含了应用程序的配置信息,如版本号、所需组件、申请的权限等。每个APK文件有且仅有一个AndroidManifest.xml文件。classes.dex文件是可以直接运行在Dalvik虚拟机上的文件,其中包含了应用程序中所有类的信息。要获取APK的源码信息,需要对已经编译好的APK做逆向处理。首先通过apktool对已经编译好的APK文件进行反编译,然后使用dex2jar工具将classes.dex文件转换为jar包,再用jd-gui工具将jar包转换为.java文件,从.java文件中可以获取原始APK的源码信息。
实验环境设置如下:
本实施例的实验环境为64位win10操作系统,Intel(R)Core(TM)i7-490CPU@3.60GHz,内存RAM为24GB。以下是本实施例中用到的工具。
Soot:Soot是一个Java优化框架,它可以用来分析、可视化Java程序或者Android程序。在本实验中Soot用来生成应用程序的类调用图。
Pytorch:Pytorch是由Facebook开源的神经网络框架,支持大量机器学习算法,应用于自然语言处理技术领域。在本实验中Pythorch用于实现Graph2Vec算法和搭建深度神经网络。
NetworkX:NetworkX是一个用于创建、操作和研究复杂网络的结构、动态和功能的Python库。在本实验中NetworkX用于对提取的类调用图进行处理。
Gensim:Gensim是一款强大的自然语言处理相关的开源Python工具包。它能够训练大规模语义模型、将文本表示为语义向量、快速寻找语义相关文档等。在本实验中Gensim用于生成经过GetWlSubgraph算法处理后的每个样本对应的嵌入向量。
实验过程如下:
步骤1,样本收集:本发明从N.Viennot等人的工作(Viennot N,Garcia E,NiehJ.A measurement study of google play[J].Acm Sigmetrics Performance EvaluationReview,2014,42(1):221-233.),CICAAGM(Android Adware and General MalwareDataset(CIC-AAGM2017).[EB/OL].),Drebin,360,virusShare中收集大量的恶意与良性的应用程序样本。由于有多处数据来源,为了防止出现重复样本干扰检测结果,需要去除样本中的重复文件。计算每个样本的MD5码,如果有两个文件的MD5码相同,说明这是两个相同的应用程序,需要去除重复样本。过滤后能够得到无重复的实验数据集。最终得到了45,666个样本,其中良性样本25,308个,恶意样本20,358个。数据集组成情况如表1所示。
表1.数据集划分情况
步骤2,提取类调用图:
(1)提取类调用图首先需要对收集到的APK样本进行逆向分析。使用工具dex2jar可以将APK文件中的classes.dex文件转换为jar包,可以通过jd-jui进一步分析jar包提取程序的源码信息。同时使用apktool直接对APK反编译获取程序的samli文件,在smali文件中可以得到程序完整的调用信息。然后使用Soot工具生成类调用图,如果smali文件中类A中的函数调用了类B中的函数,那么我们将边类A->类B添加到类调用图中。
(2)在提取的类调用图中,含有大量的重复调用关系,可以视作冗余信息。为了简化分析,我们将类调用图转换为无权图,即在得到的调用关系中,去掉重复边的记录。
(3)在类调用图中,每个节点表示一种类,节点之间的边表示类的调用关系。在提取完所有样本的类调用图后,统计图中的节点出现的频率,频率越高的节点说明该节点所代表的类在应用程序中的重要程度越高。根据频率从大到小排序,对每个节点标号,将标号作为图嵌入算法中的节点特征。
(4)图嵌入算法的目的是将高纬度复杂的图转换为低纬度简单的嵌入向量,对于结构简单,调用关系少的类调用图,无需经过图嵌入算法的处理。故设置一个阈值,调用关系小于阈值的类调用图被舍弃。在本实施例中,我们选取的阈值为160。
(5)经过上述步骤处理后,最终剩余43,185个样本,其中恶意样本19,794个,良性样本23,391个。在提取的类调用图中,共有43,865种不同的节点,类调用图中平均的调用关系数量为854个,调用关系数量的占比分布如图2所示。其中调用关系数量在500以内的类调用图占比最高,达到总样本数量的63.9%。
步骤3,生成嵌入向量:将步骤2得到的类调用图通过Graph2Vec算法处理得到嵌入向量。在本实施例中,选取步骤2当中得到的频率标号作为节点特征,设置嵌入向量的维度是128维,学习率设置为0.025,循环次数设置为10次,根子视图的最大潜入深度为2。通过Graph2Vec算法将调用图转换为128维嵌入向量。在每一个嵌入向量的末尾新添2维元素,[1,0]表示恶意样本,[0,1]表示良性样本。从嵌入向量集中随机选取90%作为训练集,用于训练深度神经网络模型,剩下的10%作为测试集,用于评估模型的检测性能。
步骤4,搭建深度神经网络检测模型:本实施例选取128维的嵌入向量作为深度神经网络分类器的输入向量。分类器由一层输入层,两层隐藏层,一层输出层组成,其神经元个数分别为(128,102,58,2)。其中隐藏层的dropout率设置为0.5以防止过拟合,学习率设置为1e-4,优化函数采取Adam优化算法,激活函数采取ReLU激活函数,输出层的激活函数采取Sigmoid激活函数,由于是二分类问题,损失函数选取BCELoss。
步骤5,训练模型并评估实验结果:本发明采用Accuracy、Precession、Recall、F1-Score四个指标来评价检测模型的性能。其公式如下:
其中,TP表示被检测出是恶意样本的恶意样本数量;FP表示被检测出是良性样本的恶意样本数量;TN表示被检测出是良性样本的良性样本数量;FN表示被检测出是恶意样本的良性样本数量。
使用训练集中的数据训练深度神经网络模型,经过神经网络的计算最终会得到2维向量[S1,S2],若S1不小于S2,则说明神经网络的检测结果为恶意软件,反之则说明检测结果为良性软件。根据模型的检测结果以及样本实际标签的分类,可以把检测结果分为TP、FP、TN、FN四类,使用上述4种评价指标对训练集的检测结果进行评估。当神经网络收敛时停止迭代并计算在此权重下测试集的评估指标,得到试验结果。
本试验从5个方面对本发明的模型进行测评,分别为:节点特征不同,优化算法与学习率不同,神经网络结构不同,嵌入向量维度不同以及与本发明相似的两种检测模型的对比。
(1)本实施例对比了两种节点特征对检测结果的影响:一方面,在图中,一个节点的度表示与该节点相连的节点数量,节点的度越大表示与其相关联的节点数量越多,意味着这个节点在图中具有更重要的地位。另一方面,通过对大量样本的类调用情况进行分析,对所有样本中类的调用频率做出统计并排序,排名越靠前的类被调用的频率越高。本实施例分别将节点的度数与节点的频率排名作为图的节点特征。表2显示了在这两种节点特征下得到的嵌入向量经过分类器检测的结果。可以看出以调用频率排名作为节点特征可以得到更准确的检测结果。
表2.不同节点特征的检测结果
(2)本实施例对比了不同优化算法与学习率对检测结果的影响:在选取调用频率排名作为节点特征时,不同的优化算法与学习率对检测结果的影响被研究,表3列出了Adam、AdamW、Rprop和Adagrade四种优化算法以及每一种优化算法合适的学习率的检测指标情况,结果表明Adam优化算法在学习率为1e-4时的检测效果最好,F1-Score达到了97.4%。
表3.不同优化算法与学习率的检测结果
(3)本实施例对比了不同深度神经网络结构对检测结果的影响:使用了不同的神经网络结构对嵌入向量做检测,其中输入层固定为128因为嵌入向量是128维向量,输出层固定为2因为要对样本是良性还是恶意做出二分类判断。表4表明当隐藏层神经元个数分别为(102,58)时能够得到更准确的分类结果。隐藏层结构为(64,32)与(64,64)时检测能力相当但是低于(102,58)。隐藏层结构为(32,8)时检测能力下降较为严重,说明隐藏层损失了较多的特征信息。
表4.不同神经网络结构的检测结果
(4)本实施例对比了不同维度的嵌入向量对检测结果的影响:嵌入向量作为深度神经网络模型的输入向量,其维度对检测结果有着至关重要的作用。32维、64维、128维、256维嵌入向量被分别应用到检测模型中。结果如表5所示,其中64维向量与32维向量其携带的信息量不足,检测准确率较低;256维与128维向量在性能上表现相近但F1-SCORE略微低于128维向量。
表5.不同维度嵌入向量的检测结果
(5)与其他检测模型对比:MaMaDroid检测模型(Mariconti E,Onwuzurike L,Andriotis P,et al.MaMaDroid:Detecting Android Malware by Building MarkovChains of Behavioral Models(Extended Version)[C]//Network and DistributedSystem Security Symposium.2017.)与Abdurrahman等人提出的方法(Abdurrahman,Pekta,Tankut,et al.Deep learning for effective Android malware detectionusing API call graph embeddings[J].Soft Computing,2020,24(2):1027-1043.)被用于与本发明做对比。MaMaDroid从调用图中分析API调用序列构建马尔科夫链,使用机器学习算法对特征向量进行恶意检测。Abdurrahman等人通过DeepWalk、Node2Vec、SDNE、HOPE图嵌入方法嵌入API调用图,利用深度神经网络进行恶意性检测。但他们使用的嵌入方法为节点嵌入,即嵌入结果为每个节点对应一个嵌入向量,图中节点的嵌入向量共同组成一个嵌入矩阵,与本发明采用的整图嵌入不同。对比结果如表6所示,结果表明在本实施例的数据集中,本发明能够取得最好的检测结果。
表6.与其他研究的比较
需要说明的是,上述对方法中的特征或结构选取不仅限于实施方式中提到的各种具体形式,本领域的技术人员可对其进行简单地熟知地替换,例如:
(1)对APK的类调用图的提取可以替换为控制流图或者数据流图等相似调用图的提取;
(2)图嵌入算法可以不局限于Graph2Vec方法,也可以选择SDNE、DeepWalk等图嵌入方法,此处不再详细描述。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种图嵌入与深度神经网络相融合的安卓恶意软件检测方法,其特征在于:包括以下步骤:
步骤一、获取待检测软件;
步骤二、从所述软件中提取类调用图、控制流图或数据流图;
步骤三、使用图嵌入算法将所述图转换为低维向量;
步骤四、将低维向量输入经训练的深度神经网络进行二分类得到所述软件是恶意或良性检测结果。
2.根据权利要求1所述的方法,其特征在于,所述图嵌入算法为整图嵌入。
3.根据权利要求2所述的方法,其特征在于,所述图嵌入算法采用Graph2Vec方法。
4.根据权利要求3所述的方法,其特征在于,所述图嵌入算法输出的向量维度为128维。
5.根据权利要求1所述的方法,其特征在于,所述经训练的深度神经网络的训练过程如下:
一、从多源收集大量所述软件样本;
二、对所述样本去重得到无重复的软件样本集;
三、从所述软件中提取类调用图、构建类编码词典;
四、使用图嵌入算法将所述类调用图转换为低维向量,所述类编码作为图嵌入算法节点特征之一;
五、将低维向量作为输入,样本真实的恶意或良性类别作为结果对比对所述深度神经网络进行训练。
6.根据权利要求5所述的方法,其特征在于,所述去重通过校验所述样本的MD5码实现。
7.根据权利要求5所述的方法,其特征在于,所述类编码词典构建过程为:统计所述软件样本集中所有类被调用的频率,根据频率特征从大到小对每个类进行编号,出现次数越多的类编号越小。
8.根据权利要求1-7任一所述的方法,其特征在于,所述神经网络采用4层结构,1层输入层,2层隐藏层,1层输出层。
9.根据权利要求8所述的方法,其特征在于,所述输入层神经元个数与所述低维向量维度相同,所述输出层神经元个数为2,2层隐藏层节点神经元个数分别为102和58。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110344786.9A CN112883378B (zh) | 2021-03-30 | 2021-03-30 | 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110344786.9A CN112883378B (zh) | 2021-03-30 | 2021-03-30 | 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112883378A true CN112883378A (zh) | 2021-06-01 |
CN112883378B CN112883378B (zh) | 2023-02-10 |
Family
ID=76040424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110344786.9A Active CN112883378B (zh) | 2021-03-30 | 2021-03-30 | 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112883378B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124565A (zh) * | 2021-12-04 | 2022-03-01 | 东南大学 | 一种基于图嵌入的网络入侵检测方法 |
CN114491530A (zh) * | 2021-12-20 | 2022-05-13 | 西安电子科技大学 | 基于抽象流图和图神经网络的安卓应用程序分类方法 |
CN114817925A (zh) * | 2022-05-19 | 2022-07-29 | 电子科技大学 | 基于多模态图特征的安卓恶意软件检测方法及系统 |
CN115617694A (zh) * | 2022-11-30 | 2023-01-17 | 中南大学 | 基于信息融合的软件缺陷预测方法、系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170068816A1 (en) * | 2015-09-04 | 2017-03-09 | University Of Delaware | Malware analysis and detection using graph-based characterization and machine learning |
CN110011986A (zh) * | 2019-03-20 | 2019-07-12 | 中山大学 | 一种基于深度学习的源代码漏洞检测方法 |
CN110135157A (zh) * | 2019-04-04 | 2019-08-16 | 国家计算机网络与信息安全管理中心 | 恶意软件同源性分析方法、系统、电子设备及存储介质 |
CN110223106A (zh) * | 2019-05-20 | 2019-09-10 | 华南理工大学 | 一种基于深度学习的欺诈应用检测方法 |
CN112395466A (zh) * | 2020-11-27 | 2021-02-23 | 上海交通大学 | 一种基于图嵌入表示和循环神经网络的欺诈节点识别方法 |
US20210064751A1 (en) * | 2019-08-27 | 2021-03-04 | Nec Laboratories America, Inc. | Provenance-based threat detection tools and stealthy malware detection |
-
2021
- 2021-03-30 CN CN202110344786.9A patent/CN112883378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170068816A1 (en) * | 2015-09-04 | 2017-03-09 | University Of Delaware | Malware analysis and detection using graph-based characterization and machine learning |
CN110011986A (zh) * | 2019-03-20 | 2019-07-12 | 中山大学 | 一种基于深度学习的源代码漏洞检测方法 |
CN110135157A (zh) * | 2019-04-04 | 2019-08-16 | 国家计算机网络与信息安全管理中心 | 恶意软件同源性分析方法、系统、电子设备及存储介质 |
CN110223106A (zh) * | 2019-05-20 | 2019-09-10 | 华南理工大学 | 一种基于深度学习的欺诈应用检测方法 |
US20210064751A1 (en) * | 2019-08-27 | 2021-03-04 | Nec Laboratories America, Inc. | Provenance-based threat detection tools and stealthy malware detection |
CN112395466A (zh) * | 2020-11-27 | 2021-02-23 | 上海交通大学 | 一种基于图嵌入表示和循环神经网络的欺诈节点识别方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124565A (zh) * | 2021-12-04 | 2022-03-01 | 东南大学 | 一种基于图嵌入的网络入侵检测方法 |
CN114124565B (zh) * | 2021-12-04 | 2024-04-05 | 东南大学 | 一种基于图嵌入的网络入侵检测方法 |
CN114491530A (zh) * | 2021-12-20 | 2022-05-13 | 西安电子科技大学 | 基于抽象流图和图神经网络的安卓应用程序分类方法 |
CN114491530B (zh) * | 2021-12-20 | 2024-05-17 | 西安电子科技大学 | 基于抽象流图和图神经网络的安卓应用程序分类方法 |
CN114817925A (zh) * | 2022-05-19 | 2022-07-29 | 电子科技大学 | 基于多模态图特征的安卓恶意软件检测方法及系统 |
CN114817925B (zh) * | 2022-05-19 | 2023-04-07 | 电子科技大学 | 基于多模态图特征的安卓恶意软件检测方法及系统 |
CN115617694A (zh) * | 2022-11-30 | 2023-01-17 | 中南大学 | 基于信息融合的软件缺陷预测方法、系统、设备及介质 |
CN115617694B (zh) * | 2022-11-30 | 2023-03-10 | 中南大学 | 基于信息融合的软件缺陷预测方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112883378B (zh) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112883378B (zh) | 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 | |
Saini et al. | Oreo: Detection of clones in the twilight zone | |
Jindal et al. | Neurlux: dynamic malware analysis without feature engineering | |
Jian et al. | A novel framework for image-based malware detection with a deep neural network | |
Alasmary et al. | Soteria: Detecting adversarial examples in control flow graph-based malware classifiers | |
CN109684840A (zh) | 基于敏感调用路径的Android恶意软件检测方法 | |
CN116361801B (zh) | 基于应用程序接口语义信息的恶意软件检测方法及系统 | |
CN106096413B (zh) | 一种基于多特征融合的恶意代码检测方法及系统 | |
CN113420294A (zh) | 基于多尺度卷积神经网络的恶意代码检测方法 | |
Xu et al. | Vulnerability detection for source code using contextual LSTM | |
CN103870754A (zh) | 恶意程序识别及训练模型生成方法和装置 | |
CN114238100A (zh) | 基于GGNN和分层注意力网络的Java漏洞检测定位方法 | |
CN112035345A (zh) | 一种基于代码片段分析的混合深度缺陷预测方法 | |
CN117195220A (zh) | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 | |
CN115292674A (zh) | 一种基于用户评论数据的欺诈应用检测方法及系统 | |
Assefa et al. | Intelligent phishing website detection using deep learning | |
Sotgiu et al. | Explainability-based debugging of machine learning for vulnerability discovery | |
Saaudi et al. | Insider threats detection using CNN-LSTM model | |
CN111737694A (zh) | 一种基于行为树的恶意软件同源性分析方法 | |
Alam et al. | DeepMalware: a deep learning based malware images classification | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
Lee et al. | Trend of malware detection using deep learning | |
Kang et al. | Android malware family classification using images from dex files | |
Cho | Dynamic RNN-CNN based malware classifier for deep learning algorithm | |
Waghmare et al. | A review on malware detection methods |
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 |