CN112464233B - 一种云平台上基于rnn的恶意软件检测方法 - Google Patents

一种云平台上基于rnn的恶意软件检测方法 Download PDF

Info

Publication number
CN112464233B
CN112464233B CN202011315600.9A CN202011315600A CN112464233B CN 112464233 B CN112464233 B CN 112464233B CN 202011315600 A CN202011315600 A CN 202011315600A CN 112464233 B CN112464233 B CN 112464233B
Authority
CN
China
Prior art keywords
api
sequence
training
embedding
model
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
Application number
CN202011315600.9A
Other languages
English (en)
Other versions
CN112464233A (zh
Inventor
姚烨
贾耀
钱亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN202011315600.9A priority Critical patent/CN112464233B/zh
Publication of CN112464233A publication Critical patent/CN112464233A/zh
Application granted granted Critical
Publication of CN112464233B publication Critical patent/CN112464233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种云平台上基于RNN的恶意软件检测方法,属于信息安全领域。依次包括以下步骤:基于时序的API调用序列的提取、API序列数据预处理、构建基于RNN的恶意软件检测模型、基于RNN的检测模型的训练。本发明选择的特征向量为软件的API调用序列,考虑到了API语义上的属性,对软件的API调用序列的语义识别更加准确,将这样的特征输入到双向LSTM神经网络模型中,不但有效提升检测效率,检测准确率也得到大幅提升,并且本发明设计的网络模型深度适当,模型中需要训练的参数适中,因此检测模型的泛化能力有了一定的提高。

Description

一种云平台上基于RNN的恶意软件检测方法
技术领域
本发明涉及信息安全领域,具体为一种运行于云平台上的恶意软件检测方法。
背景技术
当今社会,人们对于智能手机的依赖越来越强,智能手机中潜藏的个人隐私信息也越来越多,这些信息关系着人们的生命财产安全,也因此遭到恶意软件的攻击。在传统恶意软件检测领域,基于固定特征的检测变得越来越困难,因此近年来,研究人员利用人工智能技术对恶意软件进行检测,取得了一定的成果。但在恶意软件检测研究发展初期,较常用的方法都是基于主机的,而随着互联网的发展,恶意软件数量及变种技术不断增加,基于主机的系统为了存储各种恶意软件的特征而变得十分臃肿复杂,所消耗的存储和计算资源不断增加,整体性能不断下降,难以满足实际安全需求。因此考虑设计一种运行于云平台上的恶意软件检测系统以实现检测的准确高效。
发明内容
要解决的技术问题
针对传统检测方法准确率低下以及常规检测系统低效等问题,本发明提出一种运行于云平台之上的恶意软件检测方法,在保证检测准确率的前提下提高检测效率。以解决恶意软件种类剧增所造成的检测效率低下以及检测准确率不足等问题,保护用户的个人隐私和财产安全。
技术方案
一种云平台上基于RNN的恶意软件检测方法,其特征在于步骤如下:
步骤1:基于时序的API调用序列的提取
为APK文件创建一个dex对象,通过对dex对象的分析,提取出该APK文件的函数调用图,通过对函数调用图中边信息的分析,获得各类内的函数调用关系;在此调用关系的基础上使用深度优先遍历算法完善每条调用序列;此时获得多条完整的类内调用序列,依据序列头节点在内存中的地址信息进行排序;最后按照地址递增的顺序将所有类内调用序列拼接在一起,构建成一条完整的API调用序列;
步骤2:API序列数据预处理
提取出API调用序列后,接下来对提取出来的API序列进行预处理:
(1)首先对API序列进行子序列提取,采用n-gram算法来执行此步骤,并将滑动窗口大小设置为4;
(2)上一步中提取出来的子序列数量很大,通过信息增益算法确认划分出来的子序列的有效性,依据信息增益算法得出来每个子序列的信息增益值,按照值大小将序列排序,然后选择信息量较高的子序列作为有效特征子序列;
(3)按照原始API序列中API调用顺序将提取出来的有效子序列连接起来;
(4)最后利用连续相同模式API去除法对得到的API序列进一步处理;
表1中给出了连续相同模式API去除的方法。
表1连续相同模式API去除示意表
连续相同模式连序列 去除后
<![CDATA[S<sub>1</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>]]> <![CDATA[S<sub>1</sub>S<sub>2</sub>]]>
<![CDATA[S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>S<sub>2</sub>]]> <![CDATA[S<sub>2</sub>S<sub>2</sub>]]>
至此,对API序列的预处理完成,为了输入神经网络,还需将API序列转换为向量,具体方法如下:
(1)首先对每个API函数用特定的整数表示,每个API序列构建成为一个one-hot向量;
(2)然后利用构建的one-hot向量来训练skip-gram网络模型,该模型通过寻找与输入API属于同一类型的若干个API这样一个伪任务来获得能够记录API属性的API向量,图2给出了模型架构。
(3)当训练次数达到一定程度,取出模型中的Embedding矩阵,用API序列的one-hot向量与Embedding权重矩阵的乘积来表示该序列的Embedding向量;
具体解释如下:假设Embedding的权重矩阵为[VocabSize,EmbeddingSize]的稠密矩阵W,其中VocabSize为需要Embedding的所有项目的个数,EmbeddingSize为经过Embedding映射后的向量连度;那么对于函数Embedding(W,var),其中的var是向量的one-hot向量,大小为[1,VocabSize],此one-hot向量与矩阵W[VocabSize,EmbeddingSize]相乘,结果是一个[1,EmbeddingSize]向量,该向量就是此API序列对应的Embedding向量;权重矩阵W的值会在训练开始前进行随机初始化,在训练过程利用反向传播,实现值的更新;
步骤3:构建基于RNN的恶意软件检测模型
构建了双向LSTM网络,同时训练一个正向和一个反向的两个LSTM网络,使得API序列对于自己的上下文信息均有覆盖,并且将两个网络输出的最终状态h_n组合起来,作为该样本的训练结果,再将该训练结果经过一个sigmoid函数即可进行判断;
在基本架构如上所述的前提下,本发明在每个单向的网络中添加了15个隐藏层,每个隐藏层中包含16个隐藏层节点;并且分别在Embedding层和隐藏层后面使用了dropout技术,在防止过拟合的前提下提高训练效率;
本发明还对网络的Embedding层进行了预处理:将之前API向量化时训练好的Embedding矩阵直接放入双向LSTM网络的Embedding层,这样在保留输入属性的同时加快了模型收敛速度;
步骤4:基于RNN的检测模型的训练
网络的训练采用BackPropagation算法,算法流程如下:
(1)迭代性地来处理训练集中的实例;
(2)初始权重和偏向一般随机初始化到-1到1或者-0.5到0.5之间;
(3)信号正向传导过程:输入层信号值通过隐藏层,经过非线性变换,作用于输出节点,获得预测值;
(4)对比经过神经网络后输出层预测值与真实值之间的误差;
(5)误差反向传到过程:将输出层误差反方向传导以更新每个连接的权重和每个节点的偏向;即:输出层->隐藏层->输入层;
(6)经过反复训练,当训练次数达到最大时,停止对分类器的训练;
本发明将模型构建在云平台上,将模型的训练建立在Spark内核之上,加速模型的训练,Spark集群由Driver,Cluster Manager,Standalone,Yarn或Mesos,以及Worker Node组成;对于每个Spark应用程序,Worker Node上存在一个Executor进程,Executor进程中包括多个Task线程;Spark上的任务启动后,Driver向Cluster Manager申请资源;ClusterManager向某些Work Node发送征召信号;被征召的Work Node启动Executor进程响应征召,并向Driver申请任务;Driver将任务的程序代码和不同的数据分片分发给Word Node;每个Work Node根据拿到的数据进行完整逻辑的任务,完成训练后将任务参数汇总发送给Driver程序;最后再将各参数进行平均化处理。
有益效果
本发明提出的一种云平台上基于RNN的恶意软件检测方法,所设计的恶意软件检测方法构建于云平台之上,解决了困扰很多基于主机的系统的诸如存储空间不足、计算能力受限以及检测效率低下等问题。构建于云平台上的检测方法可以适用于恶意软件数量和种类剧增的当今互联网环境,可以更加快速有效地对数据进行存储和处理;同时本发明选择的特征向量为软件的API调用序列,考虑到了API语义上的属性,对软件的API调用序列的语义识别更加准确,将这样的特征输入到双向LSTM神经网络模型中,不但有效提升检测效率,检测准确率也得到大幅提升,并且本发明设计的网络模型深度适当,模型中需要训练的参数适中,因此检测模型的泛化能力有了一定的提高。
附图说明
图1提取API调用序列流程
图2 Skip-gram模型架构
图3双向循环神经网络基本架构
图4模型基于Spark并行训练原理图
图5不同窗口大小评估指标对比
图6不同隐藏层数评估指标对比
图7不同检测模型评估指标对比
具体实施方式
现结合实施例、附图对本发明作进一步描述:
一种恶意软件检测系统,该系统包括分布式云平台数据存储子系统、分布式云平台计算子系统以及分布式云平台分析子系统。分布式云平台数据存储子系统的主要功能是文件的并行传输和文件分布式存储,要求容错性能好,对大数据易扩张,易于实现海量数据访问,主要是基于Hadoop常用存储组件进行整合,分布式文件系统HDFS能够检测和应对硬件故障,用于在低成本的通用硬件上运行,它通过流式数据访问,提供高吞吐量应用程序数据访问功能;HBase是一个针对非结构化数据的可伸缩、高可用、高性能、分布式和面向列的动态模式数据库;Hive是建立在Hadoop基础上的数据仓库架构,提供数据存储管理和大型数据集的查询和分析能力;分布式云平台计算子系统的主要目的是支持计算,通过并行化技术,加速数据处理以及模型训练等过程,使得检测系统在面对较多数据时,仍表现出良好的检测效率,主要组成为Hadoop中的MapReduce和Spark,其中的MapReduce是一种编程模型、软件架构,用于大规模数据集的并行计算,Spark是一种基于内存进行计算的计算引擎,可以一站式地完成大数据领域的离线批处理、交互式查询、流式计算、机器学习、图计算等任务;分布式云平台分析子系统是整个系统的核心,采用了深度学习算法,该子系统建立于计算子系统之上,用来保证系统的检测准确率。主要实现API调用序列提取、样本预处理、模型训练以及文件检测等功能。
步骤一:基于时序的API调用序列的提取技术
要对一个APK文件进行检测,首先需要从APK中提取选定的特征信息。通过对部分恶意软件的源代码进行分析后发现,恶意软件在执行恶意行为时,必然是通过一系列的API调用来完成目标行为的,而不是使用单个的API调用。因此本发明选取软件运行时API的调用序列作为检测特征。
为APK文件创建一个dex对象,通过对dex对象的分析,提取出该APK文件的函数调用图,通过对函数调用图中边信息的分析,获得各类内的函数调用关系;在此调用关系的基础上使用深度优先遍历算法完善每条调用序列;此时获得多条完整的类内调用序列,依据序列头节点在内存中的地址信息进行排序;最后按照地址递增的顺序将所有类内调用序列拼接在一起,构建成一条完整的API调用序列。具体的操作流程图如图1所示。
步骤二:API序列数据预处理技术
提取出API调用序列后,接下来对提取出来的API序列进行预处理:
(5)首先对API序列进行子序列提取,采用n-gram算法来执行此步骤,并将滑动窗口大小设置为4;
(6)上一步中提取出来的子序列数量很大,通过信息增益算法确认划分出来的子序列的有效性,依据信息增益算法得出来每个子序列的信息增益值,按照值大小将序列排序,然后选择信息量较高的子序列作为有效特征子序列;
(7)按照原始API序列中API调用顺序将提取出来的有效子序列连接起来;
(8)最后利用连续相同模式API去除法对得到的API序列进一步处理。表1中给出了连续相同模式API去除的方法:
表1连续相同模式API去除
Figure BDA0002791268480000071
至此,对API序列的预处理完成,为了输入神经网络,还需将API序列转换为向量:
(2)基于one-hot的API向量编码。对每个API函数用特定的整数表示,每个API序列构建成为一个one-hot向量,如表2所示;
表2 API one-hot编码举例
Figure BDA0002791268480000072
(3)基于Skip-gram网络模型的API向量化。Skip-gram模型的训练目标是找到可用于预测句子或文档中周围单词的单词表示形式,图2为Skip-gram的模型架构。模型的输入为构建的one-hot向量;隐藏层没有使用任何激活函数;输出层是一个softmax回归分类器。模型中还需要定义skip_windows的参数,它表示从当前input word的一侧(左边或右边)选取词的数量,另一个参数叫num_skips,它表示从整个窗口中选取多少个不同的词作为output word;隐藏层的权值矩阵是最终的学习目标,因此权重矩阵每行的维度需要根据具体的训练情况进行设置;输出层的每个节点将会输出一个0-1之间的值,表示当前词是输入样本中output word的概率大小,这些所有输出层神经元节点的概率之和为1。(在Python的gensim包中封装的Word2Vec接口默认的词向量大小为100,window_size为5,参数num_skips可以根据具体场景进行设置,越大产生的训练示例越多,准确性也会越高,但训练时间也会增加)
(4)训练完成后,取出模型中的Embedding矩阵,用API序列的one-hot向量与Embedding权重矩阵的乘积来表示该序列的Embedding向量。
具体解释如下:假设Embedding的权重矩阵为[VocabSize,EmbeddingSize]的稠密矩阵W,其中VocabSize为需要Embedding的所有项目的个数,EmbeddingSize为经过Embedding映射后的向量连度。那么对于函数Embedding(W,var),其中的var是向量的one-hot向量,大小为[1,VocabSize],此one-hot向量与矩阵W[VocabSize,EmbeddingSize]相乘,结果是一个[1,EmbeddingSize]向量,该向量就是此API序列对应的Embedding向量。权重矩阵W的值会在训练开始前进行随机初始化,在训练过程利用反向传播,实现值的更新。
步骤三:构建基于RNN的恶意软件检测模型
API序列向量化完成后,即可输入到深度学习模型中。本发明采用了双向LSTM网络,同时训练一个正向和一个反向的两个LSTM网络,使得API序列对于自己的上下文信息均有覆盖,并且将两个网络输出的最终状态h_n组合起来,作为该样本的训练结果,再将该训练结果经过一个sigmoid函数即可进行判断。图3给出了双向循环神经网络的基本架构:
在基本架构如上所述的前提下,本发明在每个单向的网络中添加了15个隐藏层,每个隐藏层中包含16个隐藏层节点;并且分别在Embedding层和隐藏层后面使用了dropout技术,在防止过拟合的前提下提高训练效率。
本发明还对网络的Embedding层进行了预处理:将之前API向量化时训练好的Embedding矩阵直接放入双向LSTM网络的Embedding层,这样在保留输入属性的同时加快了模型收敛速度。
步骤四:基于RNN的检测模型的训练
网络的训练采用BackPropagation算法,算法流程如下:
(7)迭代性地来处理训练集中的实例;
(8)初始权重和偏向一般随机初始化到-1到1或者-0.5到0.5之间;
(9)信号正向传导过程:输入层信号值通过隐藏层,经过非线性变换,作用于输出节点,获得预测值;
(10)对比经过神经网络后输出层预测值与真实值之间的误差;
(11)误差反向传到过程:将输出层误差反方向(输出层->隐藏层->输入层)传导以更新每个连接的权重和每个节点的偏向;
(12)经过反复训练,当训练次数达到最大时,停止对分类器的训练。
本发明将整个模型构建在云平台上,将模型的训练建立在Spark内核之上,加速模型的训练,Spark集群由Driver,Cluster Manager(Standalone,Yarn或Mesos),以及WorkerNode组成。对于每个Spark应用程序,Worker Node上存在一个Executor进程,Executor进程中包括多个Task线程。Spark上的任务启动后,Driver向Cluster Manager申请资源;Cluster Manager向某些Work Node发送征召信号;被征召的Work Node启动Executor进程响应征召,并向Driver申请任务;Driver将任务的程序代码和不同的数据分片分发给WordNode;每个Work Node根据拿到的数据进行完整逻辑的任务,完成训练后将任务参数汇总发送给Driver程序;最后再将各参数进行平均化处理。模型基于Spark并行训练原理图如图4所示。
实验及结果分析:
为了进行各项实验来验证本发明的有效性,本发明用于实验的APK来自于Drebin数据集以及加拿大网络安全研究所提供的CICInvesAndMal2019数据集,最终得到一个包含5986个恶意软件和5065个良性软件的数据集。本发明所进行的实验是在三台内存为32G,主频为3.5GHz的至强Xeon-E5,显卡为NVIDIA 1060Ti,系统为CentOS 7的服务器上进行。
本发明所述的恶意软件检测系统在评估过程中,评估指标主要有分类的正确率、准确率和召回率三项。为了更好地衡量不同条件下的检测结果,尽量降低由于测试集和训练集分割不平衡所引入的误差,实验中利用了交叉验证的方法。实验中进行了10次10折交叉验证,以10次10折交叉验证所得到结果的平均值作为最终结果。
实验一:
为了验证API序列数据预处理技术的有效性,在同等实验环境下进行了以下几个对比实验。
针对n-gram算法中滑动窗口的大小展开实验。在其他实验步骤均相同的情况下,改变滑动窗口的大小,对比评估指标。
从实验结果图中可以看出,正确率、准确率、召回率这三个评估指标均随着滑动窗口的减小而增大,当滑动窗口大小为4时达到顶峰,随后开始下降。因此滑动窗口的大小选择4最为合适。
实验二:
为了验证在不同隐含层数下模型的效果差异,在相同实验环境下,对模型在隐含层数分别为5、10、15、20、25、30的情况进行了统计,下图展示了不同隐含层的模型之间效果的差异。
实验结果表明,在一定范围内随着隐含层数的不断增多,模型的评估指标在不断提高,当隐含层数为15时达到最高;之后隐含层数继续增加,模型的评估指标产生波动。
实验三:
为了验证本发明提出的检测模型(Mod1)的有效性,选取了北京邮电大学的徐昊所构建的基于API序列的循环神经网络检测模型(Mod2)、北京邮电大学的王天奇所构建的基于API特征的逻辑回归检测模型(Mod3)进行了对比。
实验结果表明,Mod1(本发明所设计的检测模型)在正确率和准确率上均高于其他两个模型,但在召回率上明显低于Mod2。主要原因可能是模型迭代次数较少,考虑到过拟合的问题,本发明限制了模型的迭代次数,没有训练出更加复杂的网络模型,对部分恶意软件的识别还存在遗漏。

Claims (1)

1.一种云平台上基于RNN的恶意软件检测方法,其特征在于步骤如下:
步骤1:基于时序的API调用序列的提取
为APK文件创建一个dex对象,通过对dex对象的分析,提取出该APK文件的函数调用图,通过对函数调用图中边信息的分析,获得各类内的函数调用关系;在此调用关系的基础上使用深度优先遍历算法完善每条调用序列;此时获得多条完整的类内调用序列,依据序列头节点在内存中的地址信息进行排序;最后按照地址递增的顺序将所有类内调用序列拼接在一起,构建成一条完整的API调用序列;
步骤2:API序列数据预处理
提取出API调用序列后,接下来对提取出来的API序列进行预处理:
(1)首先对API序列进行子序列提取,采用n-gram算法来执行此步骤,并将滑动窗口大小设置为4;
(2)上一步中提取出来的子序列数量很大,通过信息增益算法确认划分出来的子序列的有效性,依据信息增益算法得出来每个子序列的信息增益值,按照值大小将序列排序,然后选择信息量较高的子序列作为有效特征子序列;
(3)按照原始API序列中API调用顺序将提取出来的有效子序列连接起来;
(4)最后利用连续相同模式API去除法对得到的API序列进一步处理;
所述的连续相同模式API去除的方法;当连续相同模式长序列为S1S2S2S2S2S2S2S2,去除后为S1S2;当连续相同模式长序列为S2S2S2S2S2S2S2S2,去除后为S2S2
至此,对API序列的预处理完成,为了输入神经网络,还需将API序列转换为向量,具体方法如下:
(1)首先对每个API函数用特定的整数表示,每个API序列构建成为一个one-hot向量;
(2)然后利用构建的one-hot向量来训练skip-gram网络模型,该模型通过寻找与输入API属于同一类型的若干个API这样一个伪任务来获得能够记录API属性的API向量;
(3)当训练次数达到一定程度,取出模型中的Embedding矩阵,用API序列的one-hot向量与Embedding权重矩阵的乘积来表示该序列的Embedding向量;
具体解释如下:假设Embedding的权重矩阵为[VocabSize,EmbeddingSize]的稠密矩阵W,其中VocabSize为需要Embedding的所有项目的个数,EmbeddingSize为经过Embedding映射后的向量长度;那么对于函数Embedding(W,var),其中的var是向量的one-hot向量,大小为[1,VocabSize],此one-hot向量与矩阵W[VocabSize,EmbeddingSize]相乘,结果是一个[1,EmbeddingSize]向量,该向量就是此API序列对应的Embedding向量;权重矩阵W的值会在训练开始前进行随机初始化,在训练过程利用反向传播,实现值的更新;
步骤3:构建基于RNN的恶意软件检测模型
构建了双向LSTM网络,同时训练一个正向和一个反向的两个LSTM网络,使得API序列对于自己的上下文信息均有覆盖,并且将两个网络输出的最终状态h_n组合起来,作为样本的训练结果,再将该训练结果经过一个sigmoid函数即可进行判断;
在双向LSTM网络基本架构如上所述的前提下,在每个单向的网络中添加了15个隐藏层,每个隐藏层中包含16个隐藏层节点;并且分别在Embedding层和隐藏层后面使用了dropout技术,在防止过拟合的前提下提高训练效率;
还对网络的Embedding层进行了预处理:将之前API向量化时训练好的Embedding矩阵直接放入双向LSTM网络的Embedding层,这样在保留输入属性的同时加快了模型收敛速度;
步骤4:基于RNN的检测模型的训练
网络的训练采用BackPropagation算法,算法流程如下:
(1)迭代性地来处理训练集中的实例;
(2)初始权重和偏向一般随机初始化到-1到1或者-0.5到0.5之间;
(3)信号正向传导过程:输入层信号值通过隐藏层,经过非线性变换,作用于输出节点,获得预测值;
(4)对比经过神经网络后输出层预测值与真实值之间的误差;
(5)误差反向传到过程:将输出层误差反方向传导以更新每个连接的权重和每个节点的偏向;即:输出层->隐藏层->输入层;
(6)经过反复训练,当训练次数达到最大时,停止对分类器的训练;
将模型构建在云平台上,将模型的训练建立在Spark内核之上,加速模型的训练,Spark集群由Driver,Cluster Manager,Standalone,Yarn或Mesos,以及Worker Node组成;对于每个Spark应用程序,Worker Node上存在一个Executor进程,Executor进程中包括多个Task线程;Spark上的任务启动后,Driver向Cluster Manager申请资源;Cluster Manager向某些Work Node发送征召信号;被征召的Work Node启动Executor进程响应征召,并向Driver申请任务;Driver将任务的程序代码和不同的数据分片分发给Word Node;每个WorkNode根据拿到的数据进行完整逻辑的任务,完成训练后将任务参数汇总发送给Driver程序;最后再将各参数进行平均化处理。
CN202011315600.9A 2020-11-21 2020-11-21 一种云平台上基于rnn的恶意软件检测方法 Active CN112464233B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011315600.9A CN112464233B (zh) 2020-11-21 2020-11-21 一种云平台上基于rnn的恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011315600.9A CN112464233B (zh) 2020-11-21 2020-11-21 一种云平台上基于rnn的恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN112464233A CN112464233A (zh) 2021-03-09
CN112464233B true CN112464233B (zh) 2023-04-07

Family

ID=74799028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011315600.9A Active CN112464233B (zh) 2020-11-21 2020-11-21 一种云平台上基于rnn的恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN112464233B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076545A (zh) * 2021-04-20 2021-07-06 湖南大学 一种基于深度学习的内核模糊测试序列生成方法
CN113139187B (zh) * 2021-04-22 2023-12-19 北京启明星辰信息安全技术有限公司 一种预训练语言模型的生成、检测方法及装置
CN114338188B (zh) * 2021-12-30 2024-01-30 杭州电子科技大学 一种基于进程行为序列分片的恶意软件智能云检测系统
CN114707151B (zh) * 2022-05-16 2024-03-19 桂林电子科技大学 一种基于api调用和网络行为的僵尸软件检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测系统及方法
CN110489968A (zh) * 2019-08-15 2019-11-22 东北大学秦皇岛分校 基于RNN和CNN的Android恶意软件检测方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301563B2 (en) * 2019-03-13 2022-04-12 International Business Machines Corporation Recurrent neural network based anomaly detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测系统及方法
CN110489968A (zh) * 2019-08-15 2019-11-22 东北大学秦皇岛分校 基于RNN和CNN的Android恶意软件检测方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Malware Detection with Malware Images using Deep Learning Techniques;Ke He etc.;《IEEE》;20191031;全文 *
基于CNN的恶意Web请求检测技术;崔艳鹏等;《计算机科学》;20200215(第02期);全文 *
基于机器学习的恶意软件检测方法研究;赵凌园;《硕士电子期刊》;20200115;全文 *
基于渗透测试的跨站脚本漏洞检测方法研究;姚烨;《计算机技术与发展》;20130331;全文 *

Also Published As

Publication number Publication date
CN112464233A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464233B (zh) 一种云平台上基于rnn的恶意软件检测方法
Hong et al. The feature selection method based on genetic algorithm for efficient of text clustering and text classification
CN113596007B (zh) 一种基于深度学习的漏洞攻击检测方法和设备
CN111259397B (zh) 一种基于马尔科夫图和深度学习的恶意软件分类方法
CN112464234B (zh) 一种云平台上基于svm的恶意软件检测方法
CN111143838B (zh) 数据库用户异常行为检测方法
CN116361801B (zh) 基于应用程序接口语义信息的恶意软件检测方法及系统
Zhu et al. Pre-train and learn: Preserving global information for graph neural networks
CN115688024A (zh) 基于用户内容特征和行为特征的网络异常用户预测方法
CN111858878A (zh) 从自然语言文本中自动提取答案的方法、系统及存储介质
CN112100377A (zh) 文本分类方法、装置、计算机设备和存储介质
Liu et al. FewM-HGCL: Few-shot malware variants detection via heterogeneous graph contrastive learning
Al Duhayyim et al. Optimized stacked autoencoder for IoT enabled financial crisis prediction model
Hao et al. A novel method using LSTM-RNN to generate smart contracts code templates for improved usability
CN113726730A (zh) 基于深度学习算法的dga域名检测方法及系统
CN113762294B (zh) 一种特征向量维度压缩方法、装置、设备、介质
CN112487406A (zh) 一种基于机器学习的网络行为分析方法
CN112131199A (zh) 一种日志处理方法、装置、设备及介质
CN109508544B (zh) 一种基于mlp的入侵检测方法
CN116383707A (zh) 恶意代码检测方法、装置、设备和介质
Lighari Hybrid model of rule based and clustering analysis for big data security
CN113657443B (zh) 一种基于soinn网络的在线物联网设备识别方法
Bova et al. Modified approach to problems of associative rules processing based on genetic search
Li et al. A Malware Detection Method Based on Machine Learning and Ensemble of Regression Trees
Liang et al. SCGRU: A Model for Ethereum Smart Contract Vulnerability Detection Combining CNN and BiGRU-Attention

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