CN111723368B - 基于Bi-LSTM和自注意力的恶意代码检测方法及系统 - Google Patents

基于Bi-LSTM和自注意力的恶意代码检测方法及系统 Download PDF

Info

Publication number
CN111723368B
CN111723368B CN202010470523.8A CN202010470523A CN111723368B CN 111723368 B CN111723368 B CN 111723368B CN 202010470523 A CN202010470523 A CN 202010470523A CN 111723368 B CN111723368 B CN 111723368B
Authority
CN
China
Prior art keywords
lstm
sequence
attention
self
malicious
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
CN202010470523.8A
Other languages
English (en)
Other versions
CN111723368A (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.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
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 Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202010470523.8A priority Critical patent/CN111723368B/zh
Publication of CN111723368A publication Critical patent/CN111723368A/zh
Application granted granted Critical
Publication of CN111723368B publication Critical patent/CN111723368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/048Activation functions
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Virology (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于信息安全技术领域,特别涉及一种基于Bi‑LSTM和自注意力的恶意代码检测方法及系统,将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;采用双向长短时记忆Bi‑LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。本发明自动重点关注恶意代码中表现恶意行为的字节,通过Bi‑LSTM和自注意力机制结合获取深层特征表示,尽量避免代码检测中的人工处理分析,能够提高恶意代码检测准确率,降低其误报率,在信息安全等数据检测处理领域具有较好地应用前景。

Description

基于Bi-LSTM和自注意力的恶意代码检测方法及系统
技术领域
本发明属于信息安全技术领域,特别涉及一种基于Bi-LSTM和自注意力的恶意代码检测方法及系统。
背景技术
恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒、特洛伊木马、计算机蠕虫、后门、逻辑炸弹等。恶意代码随着互联网的蓬勃发展而不断发展,现在呈现出变种数量多、传播速度快、影响范围广的特点。根据Symantec公司的报告每天有将近百万的变种病毒在互联网中横行,己经成为威胁互联网安全的关键因素之一。传统的主流恶意代码检测技术可分为两类:基于签名特征码和基于启发式规则的检测方法。基于启发式规则的检测方法通过专业的研究人员分析恶意代码进行规则制定,并依照制定的规则对代码样本进行检测,但该方法的规则严重依赖人工选取,容易引起高误报率。另外,面对日益庞大的恶意代码数量,仅依赖人工进行恶意代码分析变得愈发困难。基于签名特征码的检测方法根据恶意代码二进制文件的特征码,在恶意代码库中通过模式匹配的方式检测恶意代码,该方法具有速度快、效率高、误报率低等优点,是当前网络安全公司广泛采用的方法。然而,该方法没有利用恶意代码样本的深层特征进行分类,恶意代码经过简单变形或者混淆即可躲避该方法的检测。
恶意代码检测的本质是一个分类问题,即把待检测样本区分成恶意或合法的程序。从早期的机器学习算法如K近邻算法(K-Nearest Neighbors,K-NN),决策树(DecisionTree,DT),支持向量机(Support Vector Machines,SVM),随机森林(Random Forest,RF)等,到深度学习模型如卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、生成式对抗神经网络(Generative AdversarialNets,GANs)等多数应用于分类问题。例如抽取恶意代码的元数据特征、编译的特征、DLL特征和引入函数特征,生成28维的特征向量,利用K近邻,决策树,支持向量机,随机森林等实现恶意代码分类。CNN多被应用于计算机视觉领域,对图像、视频等数据进行识别分类;RNN多被应用于自然语言处理领域,擅长处理序列数据分类问题。鉴于深度学习自动提取数据深层特征的优点,深度学习算法下的恶意代码检测思想被提出,目前是业内研究的热点。将Android app所需权限,敏感API和某些动态行为相结合提取200维的特征向量,通过深度置信网络训练Android恶意app的分类器。结合Android app的动态特征(文件操作、网络行为等)和静态特征(app名字,app结构,权限需求等),提取特征向量后训练Android app分类器。从恶意代码上下文比特、PE端口号和PE元数据中提取1024维特征向量,利用3层的神经网络模型和分数校准模型训练恶意代码分类器。但,在实际环境中,一些恶意代码具有很强的反沙箱技术,一旦恶意代码发现自身正在被分析,它会切换运行流程,避免被查杀,动态特征难以提取。另外,这些方法在提取特征时还是建立在人工分析、制定规则的前提下,并没有实现真正的智能化,而且人工分析时并没有通过分析整个恶意代码获取恶意代码的深层特征,这样会丢失一些存在于代码本身的逻辑关联特征,如果恶意代码改变格式约定,隐藏恶意代码片段的区域,以上方法就无法正确区分恶意代码。RNN虽可以挖掘恶意代码字节序列数据中的逻辑关系特征,以RNN最后一个时刻的隐状态或者各时刻隐状态的拼接作为提取的关联特征。但是,该特征无法突出表现恶意行为的端口、函数等之间的调用关系特征。
发明内容
为此,本发明提供一种基于Bi-LSTM和自注意力的恶意代码检测方法及系统,针对当前恶意代码检测方法严重依赖人工提取特征和无法提取恶意代码深层特征等问题,通过将Bi-LSTM和自注意力机制结合来提取代码深层特征,能够大大提高恶意代码检测效果。
按照本发明所提供的设计方案,一种基于Bi-LSTM和自注意力的恶意代码检测方法,包含如下内容:
将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;
采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;
利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;
对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,Bi-LSTM模型利用字节序列当前位置上下文隐状态信息自动学习序列特征,输出各时间步的隐状态。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,针对字节流序列,构建用于恶意代码检测的神经网络模型,其中,该神经网络模型包含:用于输出各时间步隐状态的Bi-LSTM层、用于输出深层特征表示的自注意力层、及用于对深层特征表示进行学习分类的全连接和分类层。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,Bi-LSTM包含前向LSTM和后向LSTM,当前时刻的隐状态输出由前向LSTM和后向LSTM输出拼接而成,利用LSTM的隐状态线性加权求和将不同长度的序列编码为固定长度的嵌入表示,字节流序列自动学习结束后,根据输出得到隐状态集合。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,自注意力机制将隐状态集合作为输入,通过在softmax函数中设置权重矩阵和参数向量,输出注意力权重分配向量;按照该注意力权重分配向量将隐状态集合线性加权求和,得到作为样本序列深层特征表示的状态测量序列嵌入表示。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,自注意力机制表示为:a=softmax(ws2 tanh(Ws1HT)),其中,H为作为输入的隐状态集合,a为作为输出的注意力权重分配向量,Ws1是维数为da×2u的权重矩阵,ws2是维数为da的参数向量,da为一个超参数,u为前向和后向的LSTM隐藏节点个数。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,针对字节流序列S,依据序列特征通过扩展参数向量维度来扩展注意力权重分配向量,以通过增强注意力来获取代表不同维度特征的嵌入表示,将该不同维度特征的嵌入表示作为样本序列深层特征表示。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,注意力权重分配向量的扩展表示为:A=softmax(Ws2tanh(Ws1HT)),其中,依据序列r个方面特征设定ws2的维度扩展为r×da并记作Ws2,向量a扩展为注意力权重分配矩阵A;则不同维度特征的嵌入表示M=AH,M为r×2u的矩阵。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,将样本序列深层特征表示输入全连接和分类进行神经网络学习和分类,输出样本预测概率,其中,学习分类过程表示为:Y=softmax(WfM+b),其中,Wf是全连接层的权重矩阵,b为偏置,Y为分类层输出概率结果,M为样本序列深层特征表示。
进一步地,本发明还提供一种基于Bi-LSTM和自注意力的恶意代码检测系统,包含:代码转换模块、序列学习模块、权重分配模块和分类学习模块,其中,
代码转换模块,用于将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;
序列学习模块,用于采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;
权重分配模块,用于利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;
分类学习模块,用于对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。
本发明的有益效果:
本发明自动重点关注恶意代码中表现恶意行为的字节,以这些字节隐状态的注意力加权和作为样本的特征表示,通过注意力机制提升样本的深层特征表示计算的准确性,尽量避免代码检测中的人工处理分析,能够提高恶意代码检测准确率,降低其误报率,在信息安全等数据检测处理领域具有较好地应用前景。
附图说明:
图1为实施例中恶意代码检测方法流程示意图;
图2为实施例中RNN模型结构示意;
图3为实施例中LSTM的单元结构示意;
图4为实施例中恶意代码检测模型示意;
图5为实施例中自注意力机制流程示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
针对当前恶意代码检测方法严重依赖人工提取特征和无法提取恶意代码深层特征的问题,本发明实施例,参见图1所示,提供一种基于Bi-LSTM和自注意力的恶意代码检测方法,包含如下内容:
S101、将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;
S102、采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;
S103、利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;
S104、对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。
RNN可以挖掘恶意代码字节序列数据中的逻辑关系特征,以RNN最后一个时刻的隐状态或者各时刻隐状态的拼接作为提取的关联特征。但是,该特征无法突出表现恶意行为的端口、函数等之间的调用关系特征。自注意力机制,可用于挖掘与当前预测词关系紧密的上下文词语,通过自注意力机制关注字节序列中表现恶意行为的元素,从而在提取恶意代码字节序列特征时对这些位置的隐状态给予更高的权重。本发明实施例中,通过采用Bi-LSTM自动学习恶意代码样本字节流序列并输出各时间步的隐状态;然后,利用自注意力机制计算各时间步隐状态的线性加权和作为序列的深层特征;最后,通过全连接神经网络和softmax输出深层特征的预测概率,以完成恶意代码检测的概率评估,通过将Bi-LSTM和自注意力机制结合来提取代码深层特征,能够大大提高恶意代码检测效果。
作为本发明实施例中基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,Bi-LSTM模型利用字节序列当前位置上下文隐状态信息自动学习序列特征,输出各时间步的隐状态。进一步地,Bi-LSTM包含前向LSTM和后向LSTM,当前时刻的隐状态输出由前向LSTM和后向LSTM输出拼接而成,利用LSTM的隐状态线性加权求和将不同长度的序列编码为固定长度的嵌入表示,字节流序列自动学习结束后,根据输出得到隐状态集合。
RNN模型通过隐含层的不断循环,可以对恶意代码字节序列数据进行学习,实现恶意代码样本的分类。RNN的模型结构如图2所示,模型由输入层、隐藏层、输出层及相应的权重组成。将恶意代码文件转换为长度统一的字节流序列,每个字节元素(范围为[0x00,0xff])可用31维的独热(One-hot)编码表示。恶意代码序列中每个字节元素采用One-hot编码方式表示,作为输入向量w(t),维数为31。输出向量y(t)代表在给定当前整型数据向量w(t)和上下文整形数据向量h(t-1)的情况下,整个恶意代码序列的概率分布。输入层、隐藏层和输出层的计算公式如下:
x(t)=w(t)+h(t-1) (1)
其中,x(t)=[x1(t),x2(t),...,x|V|(t)],uji和vkj分别为权重矩阵U和V的元素,激活函数g(z)为softmax激活函数/>i、j、k为各层神经元的序号。采用矩阵形式表示,式(2)(3)可改写为:
h(t)=f(Uw(t)+Wh(t-1)) (1)
y(t)=g(Vh(t)) (5)
其中,U为输入层和隐含层之间的权值矩阵,W为隐含层的自连接权值矩阵,V为隐含层与输出层之间的权值矩阵。神经元之间的影响程度取决于连接权重,且权重在网络神经元中共享。网络采用通过时间的反向传播算法训练参数,会造成梯度消失问题,限制网络对无限长距离历史信息的学习能力。
采用LSTM单元替代RNN的隐含层单元,避免RNN训练时出现梯度消失的情况。LSTM的单元结构如图3所示,一个LSTM单元由三个门控单元和中心结点组成,三个门控单元分别为输入门、忘记门和输出门。输入门决定了上一时刻的单元状态有多少保留到当前时刻,遗忘门决定了当前时刻网络的输入有多少保存到单元状态,输出门控制单元状态有多少输出到当前输出值。图3仅是一个LSTM单元的结构图,而实际中一个隐含层包含多个LSTM单元。下标分别表示记忆块中的输入门、忘记门和输出门,下标c是指C个记忆单元中的一个。从单元c到输入门、忘记门和输出门的窥孔权重分别表示为/> 表示t时刻细胞的状态。函数f(·)为门激活函数,一般采用sigmoid函数,g(·)和h(·)分别为细胞输入和输出激活函数,一般采用tanh函数。
LSTM模型的门控工作原理如下:设I为输入节点的数目,K为输出节点的数目,H为隐含层细胞单元数目。定义G是隐含层输入的总个数,包括细胞和门,在不区分输入类型时,可以利用标号g表示这些输入。输入门的输入信号包括三个部分,分别是所有的输入节点i的信号所有隐含层LSTM单元的前一时刻信号/>以及所有细胞单元的前一时刻状态信号/>
输入门:
经过激活函数后,输出为:
其中,和/>分别为输入门单元中xt、ht-1和st-1对应的权重矩阵,/>为相应的偏置,f(·)为sigmoid函数,且/>
忘记门:
经过激活函数后,输出为:
其中,和/>分别为忘记门xt、ht-1和st-1对应的权重矩阵,/>为相应的偏置。忘记门决定从细胞状态中丢弃何种信息,如果输出为1表示“完全保留”,0表示“完全舍弃”。
输出门:
输出门确定要输出的信息,并由细胞状态决定。经过激活函数后,输出为:
其中,和/>分别为忘记门xt、ht-1和st对应的权重矩阵,/>为相应的偏置,此时已经得到新的细胞状态st
细胞输出:
其中,h(·)为tanh激活函数。LSTM的这种门控机制是一种让信息选择性通过的方法,使中心节点能够保存长期依赖信息,并且在训练时保持内部梯度不受外界干扰。每个中心结点有一个自循环连接线性单元,称为恒定误差传送带(Constant Error Carousel,CEC)。误差以恒定的值在内部进行传播,从而避免了梯度消失问题。本发明实施例中采用双向LSTM同时利用当前位置的上下文信息进行训练,较单向LSTM提取特征能力更强。
作为本发明实施例中基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,针对字节流序列,构建用于恶意代码检测的神经网络模型,其中,该神经网络模型包含:用于输出各时间步隐状态的Bi-LSTM层、用于输出深层特征表示的自注意力层、及用于对深层特征表示进行学习分类的全连接和分类层。参见图4所示,模型主要分为Bi-LSTM层,自注意力层以及全连接和softmax层三大部分。
作为本发明基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,自注意力机制将隐状态集合作为输入,通过在softmax函数中设置权重矩阵和参数向量,输出注意力权重分配向量;按照该注意力权重分配向量将隐状态集合线性加权求和,得到作为样本序列深层特征表示的状态测量序列嵌入表示。
Bi-LSTM由前向的LSTM与后向的LSTM结合而成,假设给定一个包含n个元素的恶意代码字节序列数据S=(w1,w2,...,wn),wi是序列中第i个元素的d维嵌入,S是由序列中所有元素的嵌入表示拼接而成的维n×d矩阵。S输入Bi-LSTM模型后,在t时刻前向LSTM的隐状态输出为后向的LSTM隐状态输出为/>如下所示:
Bi-LSTM在t时刻的隐状态输出由和/>拼接而成,即/>则序列训练结束后得到隐状态集合H=(h1,h2,...,hn),假设前向和后向的LSTM隐藏节点个数为u,则H的维数为n×2u。模型目标是利用LSTM的n个隐状态线性加权求和将不同长度的序列编码为固定长度的嵌入表示,权重分配计算则需要利用自注意力机制。
作为本发明实施例中基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,在隐状态集合上施加注意力,如图5所示,自注意力层将Bi-LSTM的隐状态集合H作为输入,输出注意力向量a,如下所示:
a=softmax(ws2tanh(Ws1HT)) (15)
其中,Ws1是维数为da×2u的权重矩阵,ws2是维数为da的参数向量,da为一个超参数,a的维数是n,softmax函数保证输出的注意力向量的每个元素代表一个概率,且所有元素和为1。按照注意力权重分配向量a将H线性加权求和即可得到状态测量序列的嵌入表示m。
然而,一个m通常只关注了序列S某些维度的特征,恶意代码字节序列特征组合较多,因此一个m并不能代表序列S的所有特征,因此需要增强注意力。
作为本发明实施例中的基于Bi-LSTM和自注意力的恶意代码检测方法,进一步地,针对字节流序列S,依据序列特征通过扩展参数向量维度来扩展注意力权重分配向量,以通过增强注意力来获取代表不同维度特征的嵌入表示,将该不同维度特征的嵌入表示作为样本序列深层特征表示。
计算多个代表不同维度特征的m作为序列S的嵌入表示。假设需要计算序列r个方面的特征,则ws2的维度扩展为r×da并记作Ws2,向量a扩展为注意力权重分配矩阵A,如下所示:
A=softmax(Ws2tanh(Ws1HT)) (16)
序列S的特征表示由m向量扩展为维数是r×2u的M矩阵,如下所示:
M=AH (17)
随后将M输入全连接层和softmax层,输出识别概率,具体如下所示:
Y=softmax(WfM+b) (18)
其中,Wf是全连接层的权重矩阵,b为偏置,Y是softmax层计算的概率结果。
进一步地,基于上述的方法,本发明还提供一种基于Bi-LSTM和自注意力的恶意代码检测系统,包含:代码转换模块、序列学习模块、权重分配模块和分类学习模块,其中,
代码转换模块,用于将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;
序列学习模块,用于采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;
权重分配模块,用于利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;
分类学习模块,用于对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。
为进一步验证本发明实施例中各技术方案有效性,下面通过具体实验数据做进一步解释说明:
实验所用数据均来自于VXHeaven,该数据集包括27万个恶意代码样本,按卡巴斯基命名规则命名。抽取worm、backdoor、virus和trojan这4个种类,共10400个恶意代码样本。同时从win7系统,Ninite.com和各种应用中选取1100个正常文件,如表1所示:
表1.实验样本介绍
为了充分评估本案实施例中方案,按照不同的方法构造两种不同的训练数据集和测试集。第一种方法将各族恶意代码的名称(Virus,Backdoor,Worm和Trojan)分别作为各自的标签,正常样本标签为正常,该数据集记为5-class-data。第二种方法将恶意代码样本的标签统一标为恶意代码,正常样本标签为正常,该数据集记为2-class-data。采用10层的交叉检验方法,所有实验数据随机分为10个部分,依次选择1个部分作为测试集,剩余的9个部分作为训练集,重复做10次实验,将实验结果取平均值。
选用恶意代码检测领域的通用评测标准误报率(False Positive Rate,FPR)和准确率(Accuracy Rate,AR)评测本案实施例方案效果,如式19和式20所示。
选取四种基于机器学习的恶意代码检测方法作为对比方法,这些方法均从恶意代码样本的部分代码中提取28维特征作为机器学习的输入。四种机器学习算法分别为K近邻算法,决策树,支持向量机,随机森林,在测试集上的评测结果分别用K-NN,DT,SVM,RF表示。
将恶意代码文件转换为长度统一的字节流序列,每个字节元素(范围为[0x00,0xff])用31维的One-hot编码表示,使用TensorFlow深度学习框架编写基于Bi-LSTM和自注意力的恶意代码检测模型。根据训练模型的经验,采用一个输入层、3个Bi-LSTM和自注意力机制组合层,一个全连接层和一个softmax层的结构,每个单向LSTM层有1024个LSTM单元,LSTM单元的隐藏节点数为300,各单元之间共享训练参数,训练时间步长为1024,优化算法选取Adam,epochs设置为100,每批数据batch_size大小为256,学习速率为0.01,全连接层的隐藏节点为3000,使用dropout技术,避免过拟合问题,dropout设置为0.7,在测试集的评测结果记为Bi-LSTM-SA。
实验硬件配置为Intel Xeon E5-2650,128G内存的服务器、配备12G的双GTX1080Ti独立显卡进行加速训练。
上述五种方法在5-class-data数据集下,经过10次交叉实验,FPR和AR作为评价指标,结果如表2-3所示:
表2.AR评测结果
表3.FPR评测结果
以上两组实验结果表明,本案实施例提出的方案切实可行,而且准确率最高,误报率最低,均取得了最优结果。在对比方法中,支持向量机在28维的训练数据中得到的超平面分类效果最差。随机森林是一个用随机方式建立,包含多个决策树的分类器,输出类别由各树输出类别的众数而定。树上的每个节点随机选取所有特征的一个子集计算最佳分割方式,该特点使得随机森林擅长处理高维度特征,因此其评测效果相比于K近邻和单决策树方法的评测效果较好。
本案实施例方案的评测结果同时实现了较高的准确率和较低的误报率,相较于RF的检测方法,AR值提高了12.25%,FPR值降低了66.42%。另外,通过分析Bi-LSTM-SA检测到而RF没有检测到的恶意代码样本发现,这些样本中关键函数和输入端口等特征有简单变形或者混淆的现象,这些都说明通过本案实施例中提出的模型可以重点关注表现恶意行为的字节元素,可以获取更能代表恶意代码序列的深层特征表示。
上述五种方法在2-class-data数据集下的评测结果如表4所示:
表4. 2-class-data数据集下AR和FPR值
由表4可以看出,本案实施例方案在训练数据噪声比较大的情况下准确率依然最高,误报率最低。五种方法在2-class-data下的AR值相较于在5-class-data下AR的值依次分别降低了17.87%,16.7%,5.91%,12.44%,3.20%。FPR值依次分别增加了156.61%,140.80%,54.34%,83.20%,32.60%。四种对比方法的AR和FPR变化率明显大于本案实施例方案的变化率,这是因为同样的数据集,2-class-data比5-class-data的类别少,特征相对变多,使得对比方法无法准确的提取恶意代码的特征,本案实施例方案可以准确关注恶意特征位置,全面的提取恶意代码的特征表示。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
基于上述的系统,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的系统。
基于上述的系统,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的系统。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述系统实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述系统实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述系统实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、系统和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和系统,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述系统的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (5)

1.一种基于Bi-LSTM和自注意力的恶意代码检测方法,其特征在于,包含如下内容:
将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;设定字节流序列为包含n个元素的恶意代码字节流序列数据,并表示为S=(w1,w2,...,wn),其中,wi是序列中第i个元素的d维嵌入,S由序列中所有元素的嵌入表示拼接而成的n×d维矩阵组成;
采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征并关注恶意代码中表现恶意行为的字节,输出各时间步的隐状态,隐状态集合表示为H=(h1,h2,...,hn);其中,Bi-LSTM包含前向LSTM和后向LSTM,当前时刻的隐状态输出由前向LSTM和后向LSTM输出拼接而成,利用LSTM的隐状态线性加权求和将不同长度的序列编码为固定长度的嵌入表示,字节流序列自动学习结束后,根据输出得到隐状态集合;
利用自注意力机制对各时间步隐状态分配权重,将恶意代码中表现恶意行为字节的隐状态注意力线性加权和作为恶意代码样本序列的深层特征表示;其中,自注意力机制将隐状态集合作为输入,通过在softmax函数中设置权重矩阵和参数向量,输出注意力权重分配向量;按照该注意力权重分配向量将隐状态集合线性加权求和,得到作为样本序列深层特征表示的状态测量序列嵌入表示;自注意力机制表示为:a=softmax(ws2tanh(Ws1HT)),其中,H为作为输入的隐状态集合,a为作为输出的注意力权重分配向量,Ws1是维数为da×2u的权重矩阵,ws2是维数为da的参数向量,da为一个超参数,u为前向和后向的LSTM隐藏节点个数;针对字节流序列S,依据序列特征通过扩展参数向量维度来扩展注意力权重分配向量,以通过增强注意力来获取代表不同维度特征的嵌入表示,将该不同维度特征的嵌入表示作为样本序列深层特征表示;按照注意力权重分配向量a将H线性加权求和得到状态测量序列的嵌入表示m,将多个代表不同维度特征的状态测量序列的嵌入表示m作为字节流序列S的嵌入表示,计算字节流序列S的r个方面的特征时,注意力权重分配向量a扩展为注意力权重分配矩阵A,其扩展过程表示为:A=softmax(Ws2tanh(Ws1HT)),其中,依据序列r个方面特征设定ws2的维度扩展为r×da并记作Ws2,向量a扩展为注意力权重分配矩阵A;并将字节流序列S不同维度特征的嵌入表示M作为深层特征表示,且M=AH,M为r×2u的矩阵;
利用深层特征表示进行全连接神经网络学习和分类,输出恶意代码序列的样本预测概率。
2.根据权利要求1所述的基于Bi-LSTM和自注意力的恶意代码检测方法,其特征在于,Bi-LSTM模型利用字节序列当前位置上下文隐状态信息自动学习序列特征,输出各时间步的隐状态。
3.根据权利要求1所述的基于Bi-LSTM和自注意力的恶意代码检测方法,其特征在于,针对字节流序列,构建用于恶意代码检测的神经网络模型,其中,该神经网络模型包含:用于输出各时间步隐状态的Bi-LSTM层、用于输出深层特征表示的自注意力层、及用于对深层特征表示进行学习分类的全连接和分类层。
4.根据权利要求1所述的基于Bi-LSTM和自注意力的恶意代码检测方法,其特征在于,将样本序列深层特征表示输入全连接和分类进行神经网络学习和分类,输出样本预测概率,其中,学习分类过程表示为:Y=softmax(WfM+b),其中,Wf是全连接层的权重矩阵,b为偏置,Y为分类层输出概率结果,M为样本序列深层特征表示。
5.一种基于Bi-LSTM和自注意力的恶意代码检测系统,其特征在于,基于权利要求1所述的方法实现,包含:代码转换模块、序列学习模块、权重分配模块和分类学习模块,其中,
代码转换模块,用于将恶意代码转换为长度统一的字节流序列,每个字节元素利用多维独热编码表示;
序列学习模块,用于采用双向长短时记忆Bi-LSTM模型自动学习字节流序列特征,并输出各时间步的隐状态;
权重分配模块,用于利用自注意力机制对各时间步隐状态分配权重,将各隐状态的线性加权和作为样本序列的深层特征表示;
分类学习模块,用于对该深层特征表示进行全连接神经网络学习和分类,输出样本预测概率。
CN202010470523.8A 2020-05-28 2020-05-28 基于Bi-LSTM和自注意力的恶意代码检测方法及系统 Active CN111723368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010470523.8A CN111723368B (zh) 2020-05-28 2020-05-28 基于Bi-LSTM和自注意力的恶意代码检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010470523.8A CN111723368B (zh) 2020-05-28 2020-05-28 基于Bi-LSTM和自注意力的恶意代码检测方法及系统

Publications (2)

Publication Number Publication Date
CN111723368A CN111723368A (zh) 2020-09-29
CN111723368B true CN111723368B (zh) 2023-12-15

Family

ID=72565289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010470523.8A Active CN111723368B (zh) 2020-05-28 2020-05-28 基于Bi-LSTM和自注意力的恶意代码检测方法及系统

Country Status (1)

Country Link
CN (1) CN111723368B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328479A (zh) * 2020-11-03 2021-02-05 北京理工大学 一种基于深度特征交互网络的上帝类代码味道检测方法
CN112417447B (zh) * 2020-11-11 2021-07-20 北京京航计算通讯研究所 一种恶意代码分类结果的精确度验证方法及装置
CN113407938A (zh) * 2020-11-13 2021-09-17 厦门熙重电子科技有限公司 一种基于注意力机制的恶意代码分类方法
CN112632533A (zh) * 2020-11-13 2021-04-09 厦门熙重电子科技有限公司 一种基于滑动局部注意力机制的恶意代码检测方法
CN112487368B (zh) * 2020-12-21 2023-05-05 中国人民解放军陆军炮兵防空兵学院 一种基于图卷积网络的函数级混淆检测方法
CN112685739B (zh) * 2020-12-31 2022-11-04 卓尔智联(武汉)研究院有限公司 恶意代码检测方法、数据交互方法及相关设备
CN113535229B (zh) * 2021-06-30 2022-12-02 中国人民解放军战略支援部队信息工程大学 基于软件基因的抗混淆二进制代码克隆检测方法
CN113630384B (zh) * 2021-07-09 2022-10-14 中国科学院信息工程研究所 一种基于NetFlow数据的特定加密流量识别方法及系统
CN113961922B (zh) * 2021-10-27 2023-03-24 浙江网安信创电子技术有限公司 一种基于深度学习的恶意软件行为检测与分类系统
CN117093996B (zh) * 2023-10-18 2024-02-06 湖南惟储信息技术有限公司 嵌入式操作系统的安全防护方法及系统
CN117421733A (zh) * 2023-12-19 2024-01-19 浪潮电子信息产业股份有限公司 勒索病毒检测方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109389091A (zh) * 2018-10-22 2019-02-26 重庆邮电大学 基于神经网络和注意力机制结合的文字识别系统及方法
CN110166484A (zh) * 2019-06-06 2019-08-23 中国石油大学(华东) 一种基于LSTM-Attention网络的工业控制系统入侵检测方法
CN110941716A (zh) * 2019-11-05 2020-03-31 北京航空航天大学 一种基于深度学习的信息安全知识图谱的自动构建方法
CN111046673A (zh) * 2019-12-17 2020-04-21 湖南大学 一种用于防御文本恶意样本的对抗生成网络及其训练方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3058010A1 (en) * 2017-04-03 2018-10-11 Royal Bank Of Canada Systems and methods for malicious code detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109389091A (zh) * 2018-10-22 2019-02-26 重庆邮电大学 基于神经网络和注意力机制结合的文字识别系统及方法
CN110166484A (zh) * 2019-06-06 2019-08-23 中国石油大学(华东) 一种基于LSTM-Attention网络的工业控制系统入侵检测方法
CN110941716A (zh) * 2019-11-05 2020-03-31 北京航空航天大学 一种基于深度学习的信息安全知识图谱的自动构建方法
CN111046673A (zh) * 2019-12-17 2020-04-21 湖南大学 一种用于防御文本恶意样本的对抗生成网络及其训练方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《一种基于注意力机制的中文短文本关键词提取模型》;杨丹浩等;《计算机科学》;20200131;第47卷(第1期);第193-198页 *
《基于注意力机制Bi-LSTM算法的双语文本情感分析》;翟社平等;《计算机应用与软件》;20191231;第36卷(第12期);第251-255页 *
基于BiLSTM和Attention的命令序列检测方法;牟宸洲;薛质;施勇;;通信技术(12);全文 *
基于特征提取的恶意软件行为及能力分析方法研究;冯胥睿瑞;刘嘉勇;程芃森;;信息网络安全(12);全文 *

Also Published As

Publication number Publication date
CN111723368A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN111723368B (zh) 基于Bi-LSTM和自注意力的恶意代码检测方法及系统
Vasan et al. IMCFN: Image-based malware classification using fine-tuned convolutional neural network architecture
Yuan et al. Adversarial examples: Attacks and defenses for deep learning
Bi et al. APDC-Net: Attention pooling-based convolutional network for aerial scene classification
Huang et al. Supervised feature selection through deep neural networks with pairwise connected structure
Liu et al. Malware classification using gray-scale images and ensemble learning
Li et al. I-mad: Interpretable malware detector using galaxy transformer
Deore et al. Hybrid optimization enabled robust CNN-LSTM technique for network intrusion detection
Ra et al. DeepAnti-PhishNet: Applying deep neural networks for phishing email detection
Wang et al. Malicious code classification based on opcode sequences and textCNN network
Preethi et al. Sparse auto encoder driven support vector regression based deep learning model for predicting network intrusions
Hosseini et al. Network intrusion detection based on deep learning method in internet of thing
Nicheporuk et al. An Android Malware Detection Method Based on CNN Mixed-Data Model.
Adu et al. The influence of the activation function in a capsule network for brain tumor type classification
Jain et al. CNN vs ELM for image-based malware classification
Maulana et al. Malware classification based on system call sequences using deep learning
Bashar et al. Intrusion detection for cyber‐physical security system using long short‐term memory model
CN113179276A (zh) 基于显式和隐含特征学习的智能入侵检测方法和系统
Gopaldinne et al. Overview of pdf malware classifiers
Zhao et al. Research on data imbalance in intrusion detection using CGAN
CN114499944A (zh) 一种检测WebShell的方法、装置和设备
Waqas et al. Simultaneous instance pooling and bag representation selection approach for multiple-instance learning (MIL) using vision transformer
Vrejoiu Neural networks and deep learning in cyber security
Reddy et al. Evaluation of Recurrent Neural Networks for Detecting Injections in API Requests
Zhou et al. Intrusion detection based on convolutional neural network in complex network environment

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