CN113239354A - 一种基于循环神经网络的恶意代码检测方法及系统 - Google Patents
一种基于循环神经网络的恶意代码检测方法及系统 Download PDFInfo
- Publication number
- CN113239354A CN113239354A CN202110482305.0A CN202110482305A CN113239354A CN 113239354 A CN113239354 A CN 113239354A CN 202110482305 A CN202110482305 A CN 202110482305A CN 113239354 A CN113239354 A CN 113239354A
- Authority
- CN
- China
- Prior art keywords
- code
- sequence
- neural network
- lstm
- target code
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 96
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 35
- 230000000306 recurrent effect Effects 0.000 title claims abstract description 31
- 239000013598 vector Substances 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 34
- 239000010410 layer Substances 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 239000002356 single layer Substances 0.000 claims description 11
- 238000003062 neural network model Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000001537 neural effect Effects 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 abstract description 9
- 238000004422 calculation algorithm Methods 0.000 abstract description 5
- 210000004027 cell Anatomy 0.000 description 33
- 230000000694 effects Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000011160 research Methods 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
- G06F21/563—Static detection by source code analysis
-
- 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
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于循环神经网络的恶意代码检测方法及系统,通过获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;将所述目标代码操作码序列进行向量化处理后,对应得到目标代码的词向量;将目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行目标检测,检测出所述目标代码中是否存在恶意代码。该方法与传统的机器学习算法相比,有效提高了准确率,降低了丢失率,减少了人工的操作,对未知Webshell的检测能力也得到了有效加强。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于循环神经网络的恶意代码检测方法及系统。
背景技术
Webshell是一种网络页面后门程序,也被称为木马,是一种Web管理工具,可以对web服务器进行操作。黑客往往利用各种漏洞上传自己编写的Webshell到Web服务器,从而对文件、数据库等进行管理。黑客可以对被植入Webshell的网站进行文件的上传和下载,调用相关系统命令等一系列恶意操作,更有甚者可以通过各种混淆的手段绕过WAF。Webshell极具隐蔽性,很难被发现,并且随着时间的推移,其种类得到了大量的扩充。根据脚本类型可以分为PHP木马、ASP木马、JSP木马和CGI木马;按照功能则可以将其分成大马、小马及一句话木马。各种Webshell的破坏性、隐藏性等都不容小觑,严重威胁着一个网站的安全,甚至在一些领域威胁到了国家安全。但目前大多数对于Webshell的检测都是基于规则集的检测方法,通过人工核定特征码、危险函数等来识别一种特定的Webshell,虽然这种方法查找起来速度较快,但是存在很高的出错率和遗漏率,在网站规模日益庞大的信息化时代,人工设定规则集的方式显然不能满足日益变化的Webshell种类,传统简单的通过人工定义规则集的检测方法逐渐被淘汰掉。
机器无法直接处理现实中的语言文字,故需要将他们数学化,而词向量就是语言文本数学化后的数据。简单地说,通过某种方法,将语言文本中的一个个文字单位转化成一个个向量,这些向量就称为词向量。最简单的向量化方法。基于频率的词向量表示方法主要有CountVector、TF-IDFVector、Co-OccurenceVector。CountVector是对句子中出现的单词进行计数,从而生成一张二维表来表示向量化后的结果。这一方法只是简单的计数,对于一些特殊的词汇,例如“is”“and”等在日常使用中经常出现,使用高频,但显然不表示重要意义。对这些词计数实质上加大了它们的重要性,这并不合理。基于频率的词向量表示方法主要有连续词袋模型、跳字模型。之前介绍的三种词向量都有一个共同的缺点,即一旦单词数目非常多后,矩阵会变得庞大而稀疏,造成资源浪费,处理也更加麻烦。CBOW和Skip-Gram与上述模型有相似之处,都可以包含上下文信息;不同的是,它们通过构建神经网络的方式对向量降维,达到了压缩词向量的效果,使词向量的表示更加紧密。
对于机器学习系统而言,特征提取是尤为关键的,将对整个模型的架构和最终的结果产生相当大的影响。但是传统的机器学习又往往需要人工调整规则集,误差较大的同时可迁移性也很差,还浪费了大量的人力物力。因此基于深度学习来研究Webshell检测是近些年来一个得到持续关注的热点课题。
发明内容
为解决上述现有技术问题,本发明提供一种基于循环神经网络的恶意代码检测方法,包括以下步骤,
S1,获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;
S2,将所述目标代码操作码序列进行向量化处理,得到所述目标代码的词向量;
S3,将所述目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行检测,得到所述目标代码中的恶意代码。
本发明的有益效果是:利用深度学习的卷积神经网络对Webshell进行了检测,利用词向量转换算法word2vec将经过预编译处理得到的中间代码进行转换,得到特征向量。最后,利用多层神经网络进行检测。该方法与传统的机器学习算法相比,有效提高了准确率,降低了丢失率,减少了人工的操作,对未知Webshell的检测能力也得到了有效加强,解决了传统的机器学习往往需要人工调整规则集,误差较大的同时可迁移性也很差,还浪费了大量的人力物力的问题。
在上述技术方案的基础上,本发明还可以做出如下改进。
优选地,S1中将所述目标代码进行预处理具体为,将所述目标代码编译成有限指令集,并通过内存泄露检测工具对所述有限指令集进行扩展,得到所述目标代码操作码序列。
优选地,在所述S2中,将所述目标代码操作码序列进行向量化处理具体为,将所述目标代码操作码序列输入至word2vec神经网络模型中,并经过所述word2vec神经网络模型训练,得到所述目标代码的词向量。
上述进一步方案的有益效果是:将高级语言编写的恶意代码编译成操作码,使原本变化繁多的标识符被限制在一个有限的指令集合中,解决了传统的机器学习往往需要人工调整规则集,误差较大的同时可迁移性也很差,还浪费了大量的人力物力的问题。
优选地,所述S3之前,还包括训练LSTM恶意代码检测模型的步骤,
所述训练LSTM恶意代码检测模型,具体包括如下步骤,
获取样本目标代码,将所述样本目标代码编译成有限指令集,并通过内存泄露检测工具对所述有限指令集进行扩展,得到所述样本目标代码操作码序列,将所述样本目标代码操作码序列输入至word2vec神经网络模型中,并经过所述word2vec神经网络模型训练,得到样本目标代码的词向量,将所述样本目标代码的词向量构成训练集;
基于循环神经LSTM网络模型构建初始LSTM恶意代码检测模型;
利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练,得到训练好的LSTM恶意代码检测模型。
优选地,在利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练过程中,根据设定第一参数值来进行每次所述初始LSTM恶意代码检测模型训练完成后随机丢失权重的操作,并通过设定第二参数值对初始LSTM恶意代码检测模型迭代训练进行次数的限定。
优选地,所述LSTM恶意代码检测模型的输入数据包括t-1序列的细胞状态Ct-1、t-1序列的隐层状态ht-1和输入向量Xt,所述LSTM恶意代码检测模型的输出数据包括t序列的细胞状态Ct和t序列的隐层状态ht,述所LSTM恶意代码检测模型内设置有门结构,所述门结构包括遗忘门、更新门、输出门。
优选地,所述t-1序列的细胞状态Ct-1通过所述遗忘门和所述更新门进行细胞状态更新,得到所述t序列的细胞状态Ct;所述t-1序列的隐层状态ht-1通过所述遗忘门选择性遗忘后,与所述输入向量Xt一起通过所述更新门对所述t序列的细胞状态Ct进行更新;所述t-1序列的隐层状态ht-1和所述输入向量Xt通过所述输出门进行细胞状态更新,得到所述t序列的隐层状态ht。
上述进一步方案的有益效果是:当使用单层LSTM时,模型恶意代码检测效果最好,采用单层的网络层数时,模型在反复学习过程中可以找到最佳权值以获取最佳输出,梯度的反向传播使得权值的连乘效应加强,梯度效应消失,降低网络层数加深导致的过拟合化。当使用单层LSTM时,检测效果最好,
优选地,所述LSTM恶意代码检测模型为单层的循环神经网络。
在上述一种基于循环神经网络的恶意代码检测方法的基础上,本发明还提供一种基于循环神经网络的恶意代码检测系统,包括,
目标代码获取模块,其用于获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;
目标代码转化模块,其用于将所述目标代码操作码序列进行向量化处理,得到所述目标代码的词向量;
恶意代码检测模块,其用于将目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行目标检测,得到所述目标代码的恶意代码。
在上述一种基于循环神经网络的恶意代码检测方法的基础上本发明还提供一种计算机可读存储介质,包括存储器,所述存储器内存储有计算机程序,所述计算机程序被处理器执行时,实现上述的一种基于循环神经网络的恶意代码检测方法。
附图说明
图1为本发明一种基于循环神经网络的恶意代码检测方法的流程图;
图2为本发明目标代码预处理的流程图;
图3为本发明训练LSTM恶意代码检测模型的流程图;
图4为本发明LSTM恶意代码检测模型的结构示意图;
图5为本发明LSTM恶意代码检测模型中遗忘门子结构的结构示意图;
图6为本发明LSTM恶意代码检测模型中更新门子结构的结构示意图;
图7为本发明LSTM恶意代码检测模型中细胞状态更新原理示意图;
图8为本发明LSTM恶意代码检测模型中输出门子结构的结构示意图;
图9为本发明LSTM恶意代码检测模型中学习率与与丢失率的函数关系图;
图10为本发明基于循环神经网络的恶意代码检测系统的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明提供一种基于循环神经网络的恶意代码检测方法,包括以下步骤,获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;将所述目标代码操作码序列进行向量化处理,得到所述目标代码的词向量;将所述目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行检测,得到所述目标代码中的恶意代码。
本发明利用深度学习的卷积神经网络对Webshell进行了检测,利用词向量转换算法word2vec将经过预编译处理得到的中间代码进行转换,得到特征向量。最后,利用多层神经网络进行检测。该方法与传统的机器学习算法相比,有效提高了准确率,降低了丢失率,减少了人工的操作,对未知Webshell的检测能力也得到了有效加强,解决了传统的机器学习往往需要人工调整规则集,误差较大的同时可迁移性也很差,还浪费了大量的人力物力的问题。
在本实施例中具体地,如图2所示,将所述目标代码进行预处理具体为,将所述目标代码编译成有限指令集,并通过内存泄露检测工具扩展得到目标代码操作码序列,目标代码即PHP操作码,执行PHP高级语言的代码时大致会经过如下几个步骤,首先对所述PHP操作码进行词法分析,去掉语句中的注释、空格等等字符,识别出语句具有意义的单词,然后进行语法分析,将上述单词组合成符合文法的语句,将语句编译成一条条opcode指令,Zend虚拟机执行opcode指令,运行PHP脚本。本发明的训练样本是由PHP高级语言写成的,其中包含了各类关键字、标识符,单词类别繁杂,若是直接对其进行向量化处理,将会得到一个非常大的稀疏矩阵,从而造成资源浪费,为了克服上述问题本发明将PHP高级语言写成的代码转换为一个较小的有限指令集,即PHP操作码,然后再对操作码进行向量化处理,目标代码操作码序列可以通过VLD内存泄露检测工具扩展获得。例如,cmd里运行命令“php-dvld.active=1-dvld.execute=0./phpinfo.php”,可得到phpinfo.php的操作码其中,“-dvld.active=1”表示启用扩展,“-dvld.execute=0”表示不执行该程序脚本。
在本实施例中具体地,机器无法直接处理现实中的语言文字,故需要将他们数学化,而词向量就是语言文本数学化后的数据。简单地说,通过某种方法,将语言文本中的一个个文字单位转化成一个个向量,这些向量就称为词向量,基于频率的词向量表示方法主要有连续词袋模型、跳字模型。上述三种词向量都有一个共同的缺点,即一旦单词数目非常多后,矩阵会变得庞大而稀疏,造成资源浪费,处理也更加麻烦。CBOW和Skip-Gram与上述模型有相似之处,都可以包含上下文信息;不同的是,它们通过构建神经网络的方式对向量降维,达到了压缩词向量的效果,使词向量的表示更加紧密。
第一个参数是训练语料,第二个参数用于限制当出现小于该数的单词会被剔除,第三个参数是神经网络的隐藏层单元数,该参数默认值为100。将所述目标代码操作码序列输入word2vec神经网络模型,输出得到目标代码的词向量,将高级语言编写的恶意代码编译成操作码,使原本变化繁多的标识符被限制在一个有限的指令集合中,解决了传统的机器学习往往需要人工调整规则集,误差较大的同时可迁移性也很差,还浪费了大量的人力物力的问题。
在本实施例中具体地,如图3所示,所述训练LSTM恶意代码检测模型,具体包括如下步骤,获取样本目标代码,将所述样本目标代码编译成有限指令集,并通过内存泄露检测工具扩展得到样本目标代码操作码序列,将所述样本目标代码操作码序列输入word2vec神经网络模型,得到样本目标代码的词向量,使样本目标代码的词向量构成训练集;基于循环神经LSTM网络模型构建初始LSTM恶意代码检测模型;利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练,得到训练好的LSTM恶意代码检测模型。
在本实施例中具体地,在利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练过程中,根据设定参数值dropou来进行每次所述初始LSTM恶意代码检测模型训练完成后随机丢失权重的操作,并通过设定参数epochs对初始LSTM恶意代码检测模型迭代训练进行次数的限定。
在本实施例中具体地,如图4所示LSTM的输入有三个,t-1序列的细胞状态Ct-1、t-1序列的隐层状态ht-1、输入向量Xt;输出有两个,t序列的细胞状态Ct、t序列的隐层状态ht。细胞状态的信息会一直在上面的一条线上传递,隐层状态的信息一直在下面的一条线上传递,它们之间会有一些交互,即隐层状态的信息会通过门结构传递到上层,从而对细胞状态施加影响,中间框部分即为门结构。σ代表sigmoid函数,它的输出在0到1之间;tanh是双曲正切函数,它的输出在-1到1之间。优选地,所述LSTM恶意代码检测模型内设置有细胞状态层、隐层状态层、输入向量Xt以及门结构;所述细胞状态层包括t-1序列的细胞状态Ct-1和t序列的细胞状态Ct;所述隐层状态层包括t-1序列的隐层状态ht-1和t序列的隐层状态ht;所述门结构包括遗忘门、更新门、输出门;所述t-1序列的细胞状态Ct-1通过所述遗忘门和所述更新门进行细胞状态更新,得到所述细胞状态Ct;所述t-1序列的隐层状态ht-1和所述输入向量Xt通过所述输出门进行细胞状态更新,得到所述t序列的隐层状态ht。所述遗忘门用于对t-1序列的隐层状态ht-1进行选择性遗忘;所述更新门用于获得t序列的输入为所述输入向量Xt或所述t-1序列的隐层状态ht-1和所述输入向量Xt;所述输出门用于决定哪些数据将作为t序列的输出。
在本实施例中具体地,遗忘门子结构如图5所示,在LSTM中即以一定的概率控制是否遗忘t-1序列的隐藏细胞状态。图中t-1序列的隐层状态ht-1、输入向量Xt,通过一个激活函数,一般是sigmoid,得到遗忘门的输出ft。由于sigmoid的输出ft在[0,1]之间,因此这里的输出ft代表了遗忘上一层隐藏细胞状态的概率。当决定要从细胞状态中丢弃什么信息时,该决定由遗忘门的Sigmoid层实现。它查看所述t-1序列的隐层状态ht-1和所述输入向量Xt,并为t-1序列的细胞状态Ct-1中的每个数字输出0和1之间的数字。1代表完全保留,而0代表彻底删除。例如,在计算机语言编译过程中,当我们试图根据以前的计算机语言来预测下一个单词。在这样的问题中,细胞状态可能通过当前主题的相关信息,从而决定使用正确的代词,当我们看到一个新主题时,我们想要忘记旧主题的相关信息,则将t序列的输入数据通过所述遗忘门选择性遗忘后。更新门负责处理当前序列位置的输入,它的子结构如图6所示,从图中可以看到更新门由两部分组成,第一部分使用了sigmoid激活函数,输出为it第二部分使用了tanh激活函数,输出为at,两者的结果后面会相乘再去更新细胞状态。
在本实施例中具体地,LSTM中的细胞状态更新,所述遗忘门和输入门的结果都会作用于细胞状态Ct,从t-1序列的细胞状态Ct-1进行细胞状态更新后得到t序列的Ct。如图7所示,细胞状态Ct由两部分组成,第一部分是t-1序列的细胞状态Ct-1和遗忘门的输出ft的乘积,第二部分是输入门的it和at的乘积,更新完成后有了新的t序列的细胞状态Ct,所述输出门子结构如图8所示下:t序列的隐藏状态ht的更新由两部分组成,第一部分是ot,它由t-1序列的隐藏状态ht-1和本序列输入数据Xt,以及激活函数sigmoid得到,第二部分由t序列的细胞状态Ct和tanh激活函数组成此输出将基于我们的细胞状态,运行一个sigmoid层,它决定了我们要输出的细胞状态的哪些部分。然后,我们将单元格状态通过tanh(将值规范化到-1和1之间),并将其乘以Sigmoid函数的输出,至此我们只输出了我们决定的那些部分。Sigmoid层决定了我们将更新哪些值。接下来一个tanh层创建候选t序列的细胞状态Ct该向量将会被加到细胞的状态中。例如,关于上述语言模型的例子,由于只看到一个主题,考虑到后面可能出现的词,它可能需要输出与动词相关的信息,它可能会输出主题是单数还是复数,以便我们知道动词应该如何组合在一起,只有当需要输入某些信息的时候,我们才会忘记这个位置的历史信息。只有当我们忘记一些历史信息的时候,我们才在状态中添加新的信息。LSTM的一个稍微更显着的变化是介绍的门控循环单元它将忘记和输入门组合成一个单一的更新门。它还将单元格状态和隐藏状态合并,并进行了一些其他更改。所得到的模型比标准LSTM模型更简单。
在本实施例中具体地,增加模型层数,使用两层和三层的LSTM模型进行训练和测试时,
结果如上表所示,从上述结果中可以发现,并不是LSTM模型的层数越多越好,两层、三层模型的测试准确率都不如单层模型理想,三层LSTM的准确率不到0.90,相比单层低了约0.5。导致这一现象的原因可能是梯度消失,当网络层数加深时,程序在反复学习过程中找到最佳权值以获取最佳输出,梯度的反向传播导致权值的连乘效应加强,梯度效应消失,对结果造成影响。也可能是网络层数加深导致的过拟合。结果显示,当使用单层LSTM时,检测效果最好,此时准确率为0.95161。不难看出当使用单层LSTM时,模型恶意代码检测效果最好,采用单层的网络层数时,模型在反复学习过程中可以找到最佳权值以获取最佳输出,梯度的反向传播使得权值的连乘效应加强,梯度效应消失,降低网络层数加深导致的过拟合化。如图9所示,随着模型理论学习的开展,不断降低学习率的同时,丢失率在一定程度上处于一种下降趋势。这也就证明了在一定程度上,丢失率可以在降低学习率的情况下得到降低,通过改变LSTM模型的层数大小,创建了一个单层的LSTM模型,其中包含128个神经元。dropou=0.2规定了每次训练随机丢失20%的权重,用于防止过拟合,从而增加模型的泛化能力。
在本实施例中具体地,sigmoid函数用作神经网络的激活函数,常用于二分类问题,它能将任何一个实数映射到(0,1)的区间里,可以用于将数据变成一个0-1分布。compile用于配置训练时使用的损失函数、优化器、准确率评测标准。开始训练,预设参数epochs=100,即把所有训练数据完整地迭代100遍,最终得到了0.95的准确率,在训练回归模型的过程中,通过不断调整学习速率,可以改变LSTM模型的损失率。在理论学习过程中,学习速率逐渐降低,一般设置在0.1-0.001之间。在改变学习速率的情况下,通过降低学习速率可以在一定程度上降低损失率。即将LSTM模型层数限定为1层,可以适当降低学习率以达到降低丢失率的功效。
在上述一种基于循环神经网络的恶意代码检测方法的基础上,本实施例还提供一种基于循环神经网络的恶意代码检测系统,如图10所示包括,目标代码获取模块,其用于获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;目标代码转化模块,其用于将所述目标代码操作码序列进行向量化处理后,对应得到目标代码的词向量;恶意代码检测模块,其用于将目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行目标检测,得到目标代码中恶意代码。
在上述一种基于循环神经网络的恶意代码检测方法的基础上本实施例还提供一种计算机可读存储介质,包括存储器,所述存储器内存储有计算机程序,所述计算机程序被处理器执行时,实现上述的一种基于循环神经网络的恶意代码检测方法。
在本发明中:
PHP操作码:是一种底层的代码,类似于汇编指令,只不过该指令在PHP的Zend虚拟机中运行。
LSTM(Longshort-termmemory):长短期记忆模型是一种特殊的循环神经网络。它能够在较长序列数据中起作用,使数据有更长距离的依赖性,解决长序列的梯度消失和梯度爆炸问题。
Word2vec:是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于循环神经网络的恶意代码检测方法,其特征在于:包括以下步骤,
S1,获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;
S2,将所述目标代码操作码序列进行向量化处理,得到所述目标代码的词向量;
S3,将所述目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行检测,检测出所述目标代码中是否存在恶意代码。
2.根据权利要求1所述的一种基于循环神经网络的恶意代码检测方法,其特征在于:在所述S1中,将所述目标代码进行预处理具体为,将所述目标代码编译成有限指令集,并通过内存泄露检测工具对所述有限指令集进行扩展,得到所述目标代码操作码序列。
3.根据权利要求1所述的一种基于循环神经网络的恶意代码检测方法,其特征在于:在所述S2中,将所述目标代码操作码序列进行向量化处理具体为,将所述目标代码操作码序列输入至word2vec神经网络模型中,并经过所述word2vec神经网络模型训练,得到所述目标代码的词向量。
4.根据权利要求1至3任一项所述的一种基于循环神经网络的恶意代码检测方法,其特征在于:在所述S3之前,还包括训练所述LSTM恶意代码检测模型的步骤,
训练所述LSTM恶意代码检测模型具体包括如下步骤,
获取样本目标代码,将所述样本目标代码编译成有限指令集,并通过内存泄露检测工具对所述有限指令集进行扩展,得到所述样本目标代码操作码序列,将所述样本目标代码操作码序列输入至word2vec神经网络模型中,并经过所述word2vec神经网络模型训练,得到样本目标代码的词向量,将所述样本目标代码的词向量构成训练集;
基于循环神经LSTM网络模型构建初始LSTM恶意代码检测模型;
利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练,得到训练好的LSTM恶意代码检测模型。
5.根据权利要求4所述的一种基于循环神经网络的恶意代码检测方法,其特征在于:在利用所述训练集对所述初始LSTM恶意代码检测模型进行多次迭代训练过程中,根据设定第一参数值来进行每次所述初始LSTM恶意代码检测模型训练完成后随机丢失权重的操作,并通过设定第二参数值对初始LSTM恶意代码检测模型迭代训练进行次数的限定。
6.根据权利要求5所述的一种基于循环神经网络的恶意代码检测方法,其特征在于:所述LSTM恶意代码检测模型的输入数据包括t-1序列的细胞状态Ct-1、t-1序列的隐层状态ht-1和输入向量Xt,所述LSTM恶意代码检测模型的输出数据包括t序列的细胞状态Ct和t序列的隐层状态ht,述所LSTM恶意代码检测模型内设置有门结构,所述门结构包括遗忘门、更新门、输出门。
7.根据权利要求6所述一种基于循环神经网络的恶意代码检测方法,其特征在于,所述t-1序列的细胞状态Ct-1通过所述遗忘门和所述更新门进行细胞状态更新,得到所述t序列的细胞状态Ct;
所述t-1序列的隐层状态ht-1通过所述遗忘门选择性遗忘后,与所述输入向量Xt一起通过所述更新门对所述t序列的细胞状态Ct进行更新;
所述t-1序列的隐层状态ht-1和所述输入向量Xt通过所述输出门进行细胞状态更新,得到所述t序列的隐层状态ht。
8.根据权利要求6所述的基于双阶段卷积神经网络的目标跟踪方法,其特征在于:所述LSTM恶意代码检测模型为单层的循环神经网络。
9.一种基于循环神经网络的恶意代码检测系统,其特征在于:包括以下模块,
目标代码获取模块,其用于获取待检测的目标代码,并将所述目标代码进行预处理,得到目标代码操作码序列;
目标代码转化模块,其用于将所述目标代码操作码序列进行向量化处理,得到所述目标代码的词向量;
恶意代码检测模块,其用于将所述目标代码的词向量输入至预先训练好的LSTM恶意代码检测模型中进行目标检测,检测出所述目标代码是否存在恶意代码。
10.一种计算机可读存储介质,其特征在于:包括存储器,所述存储器内存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至8任一项所述的基于循环神经网络的恶意代码检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110482305.0A CN113239354A (zh) | 2021-04-30 | 2021-04-30 | 一种基于循环神经网络的恶意代码检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110482305.0A CN113239354A (zh) | 2021-04-30 | 2021-04-30 | 一种基于循环神经网络的恶意代码检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113239354A true CN113239354A (zh) | 2021-08-10 |
Family
ID=77131757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110482305.0A Pending CN113239354A (zh) | 2021-04-30 | 2021-04-30 | 一种基于循环神经网络的恶意代码检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239354A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742730A (zh) * | 2021-11-04 | 2021-12-03 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、系统及计算机可读存储介质 |
CN114860616A (zh) * | 2022-06-07 | 2022-08-05 | 慕思健康睡眠股份有限公司 | 一种代码检测方法、装置、设备和存储介质 |
CN114896598A (zh) * | 2022-05-11 | 2022-08-12 | 武汉科技大学 | 一种基于卷积神经网络的恶意代码检测方法 |
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
WO2024051196A1 (zh) * | 2022-09-09 | 2024-03-14 | 上海派拉软件股份有限公司 | 恶意代码检测方法、装置、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358948A (zh) * | 2017-06-27 | 2017-11-17 | 上海交通大学 | 基于注意力模型的语言输入关联性检测方法 |
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
CN109190372A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 一种基于字节码的JavaScript恶意代码检测模型 |
CN109409200A (zh) * | 2018-09-01 | 2019-03-01 | 哈尔滨工程大学 | 一种基于sgru神经网络的uuv集群行为识别技术 |
CN109561084A (zh) * | 2018-11-20 | 2019-04-02 | 四川长虹电器股份有限公司 | 基于lstm自编码网络的url参数异常值检测方法 |
CN109886021A (zh) * | 2019-02-19 | 2019-06-14 | 北京工业大学 | 一种基于api全局词向量和分层循环神经网络的恶意代码检测方法 |
CN110443448A (zh) * | 2019-07-01 | 2019-11-12 | 华中科技大学 | 一种基于双向lstm的飞机机位分类预测方法和系统 |
CN111651593A (zh) * | 2020-05-08 | 2020-09-11 | 河南理工大学 | 基于词向量和字向量混合模型的文本情感分析方法 |
CN111915059A (zh) * | 2020-06-29 | 2020-11-10 | 西安理工大学 | 基于注意力机制的Seq2seq泊位占有率预测方法 |
CN112307473A (zh) * | 2019-08-01 | 2021-02-02 | 四川大学 | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 |
CN112507337A (zh) * | 2020-12-18 | 2021-03-16 | 四川长虹电器股份有限公司 | 基于语义分析的恶意JavaScript代码检测模型的实现方法 |
CN112632549A (zh) * | 2021-01-06 | 2021-04-09 | 四川大学 | 一种基于语境分析的Web攻击检测方法 |
-
2021
- 2021-04-30 CN CN202110482305.0A patent/CN113239354A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358948A (zh) * | 2017-06-27 | 2017-11-17 | 上海交通大学 | 基于注意力模型的语言输入关联性检测方法 |
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
CN109190372A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 一种基于字节码的JavaScript恶意代码检测模型 |
CN109409200A (zh) * | 2018-09-01 | 2019-03-01 | 哈尔滨工程大学 | 一种基于sgru神经网络的uuv集群行为识别技术 |
CN109561084A (zh) * | 2018-11-20 | 2019-04-02 | 四川长虹电器股份有限公司 | 基于lstm自编码网络的url参数异常值检测方法 |
CN109886021A (zh) * | 2019-02-19 | 2019-06-14 | 北京工业大学 | 一种基于api全局词向量和分层循环神经网络的恶意代码检测方法 |
CN110443448A (zh) * | 2019-07-01 | 2019-11-12 | 华中科技大学 | 一种基于双向lstm的飞机机位分类预测方法和系统 |
CN112307473A (zh) * | 2019-08-01 | 2021-02-02 | 四川大学 | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 |
CN111651593A (zh) * | 2020-05-08 | 2020-09-11 | 河南理工大学 | 基于词向量和字向量混合模型的文本情感分析方法 |
CN111915059A (zh) * | 2020-06-29 | 2020-11-10 | 西安理工大学 | 基于注意力机制的Seq2seq泊位占有率预测方法 |
CN112507337A (zh) * | 2020-12-18 | 2021-03-16 | 四川长虹电器股份有限公司 | 基于语义分析的恶意JavaScript代码检测模型的实现方法 |
CN112632549A (zh) * | 2021-01-06 | 2021-04-09 | 四川大学 | 一种基于语境分析的Web攻击检测方法 |
Non-Patent Citations (7)
Title |
---|
ER, MENG JOO等: "Attention pooling-based convolutional neural network for sentence modelling", 《INFORMATION SCIENCES》 * |
周子恒: "基于深度学习的Webshell恶意代码检测方法研究", 《电脑知识与技术》 * |
张冲: "基于 Attention-Based LSTM模型的文本分类技术的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
杨频等: "基于汇编指令词向量特征的恶意软件检测研究", 《信息安全研究》 * |
詹静等: "SEMBeF:一种基于分片循环神经网络的敏感高效的恶意代码行为检测框架", 《信息安全学报》 * |
邱瑶瑶等: "基于语义分析的恶意JavaScript代码检测方法", 《四川大学学报(自然科学版)》 * |
郭宏宇等: "基于改进型循环神经网络的恶意代码分类检测", 《信息技术》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742730A (zh) * | 2021-11-04 | 2021-12-03 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、系统及计算机可读存储介质 |
CN113742730B (zh) * | 2021-11-04 | 2022-02-22 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、系统及计算机可读存储介质 |
CN114896598A (zh) * | 2022-05-11 | 2022-08-12 | 武汉科技大学 | 一种基于卷积神经网络的恶意代码检测方法 |
CN114896598B (zh) * | 2022-05-11 | 2024-05-21 | 武汉科技大学 | 一种基于卷积神经网络的恶意代码检测方法 |
CN114860616A (zh) * | 2022-06-07 | 2022-08-05 | 慕思健康睡眠股份有限公司 | 一种代码检测方法、装置、设备和存储介质 |
WO2024051196A1 (zh) * | 2022-09-09 | 2024-03-14 | 上海派拉软件股份有限公司 | 恶意代码检测方法、装置、电子设备及存储介质 |
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
CN116028936B (zh) * | 2023-02-24 | 2023-05-30 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chawla et al. | Host based intrusion detection system with combined CNN/RNN model | |
CN112487203B (zh) | 一种融入动态词向量的关系抽取系统 | |
CN113239354A (zh) | 一种基于循环神经网络的恶意代码检测方法及系统 | |
Yang et al. | Detecting malicious URLs via a keyword-based convolutional gated-recurrent-unit neural network | |
Semberecki et al. | Deep learning methods for subject text classification of articles | |
CN113360915B (zh) | 基于源代码图表示学习的智能合约多漏洞检测方法及系统 | |
Viegas et al. | Cluhtm-semantic hierarchical topic modeling based on cluwords | |
Peng et al. | Semantics aware adversarial malware examples generation for black-box attacks | |
CN112417153A (zh) | 文本分类方法、装置、终端设备和可读存储介质 | |
Mathew et al. | API call based malware detection approach using recurrent neural network—LSTM | |
Chen et al. | A comparison of machine learning algorithms for detecting XSS attacks | |
CN112580331A (zh) | 政策文本的知识图谱构建方法及系统 | |
Xu et al. | BERT gated multi-window attention network for relation extraction | |
Hu et al. | Cross-site scripting detection with two-channel feature fusion embedded in self-attention mechanism | |
Lee et al. | Detecting suicidality with a contextual graph neural network | |
Su et al. | A survey based on knowledge graph in fault diagnosis, analysis and prediction: key technologies and challenges | |
CN110941828B (zh) | 基于AndroGRU的安卓恶意软件静态检测方法 | |
Yang et al. | Generation-based parallel particle swarm optimization for adversarial text attacks | |
Teufl et al. | From NLP (natural language processing) to MLP (machine language processing) | |
CN109977194B (zh) | 基于无监督学习的文本相似度计算方法、系统、设备及介质 | |
Liang et al. | A lightweight method for face expression recognition based on improved MobileNetV3 | |
Zhang et al. | Chinese relation classification using long short term memory networks | |
Zhou et al. | Webshell detection technology based on deep learning | |
CN110162615A (zh) | 一种智能问答方法、装置、电子设备和存储介质 | |
CN115455945A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210810 |