一种基于策略梯度降维的恶意软件检测方法及装置制造方法及图纸

技术编号:30231026 阅读:26 留言:0更新日期:2021-09-29 10:04
本发明专利技术公开了一种基于策略梯度降维的恶意软件检测方法及装置,该方法包括:获取待检程序的程序行为数据;对获取的程序行为数据进行独热编码,得到由独热向量组成的行为序列数据;采用预设的基于策略梯度的词向量降维模型对由独热向量组成的行为序列数据进行降维处理,得到降维后的行为序列数据;将降维后的行为序列数据输入预设的深度学习模型,利用深度学习模型对降维后的行为序列数据进行特征分类,判断当前待检程序是否为恶意程序。本发明专利技术面向恶意软件检测领域,在经典的文本词嵌入方法中引入了策略梯度技术,提高了恶意软件中API特征的表达能力,增强了深度学习模型的分类性能。类性能。类性能。

【技术实现步骤摘要】
一种基于策略梯度降维的恶意软件检测方法及装置


[0001]本专利技术涉及恶意软件检测
,特别涉及一种基于策略梯度降维的恶意软件检测方法及装置。

技术介绍

[0002]传统的恶意软件识别通常采用基于签名的检测算法,基本思想是从已有的恶意程序中抽取出代表该恶意程序的签名(即样本特征)组成恶意软件签名数据库,然后通过签名(模式)匹配算法计算待检程序和签名库中的恶意签名特征的匹配程度以识别和报告恶意软件。基于签名的检测算法虽然能够高效检测已知的恶意软件,但攻击者能够通过代码混淆、程序加壳和插入花指令等技术手段来逃避签名检测。目前随着大数据与各类信息技术的兴起,越来越多的智能设备接入到网络中,各类新型的恶意软件层出不穷,基于签名的传统检测算法已难以适应恶意软件更新迭代的速度。
[0003]为了克服传统签名算法的短板,恶意软件识别领域开始探索深度学习技术的应用。与传统的基于签名的算法相比,启发式深度学习方法能够充分利用大数据优势,从实际恶意软件行为数据中提取出抽象的高层次行为特征,因此深度学习模型具有很好的泛化能力,能够有效识别新型的恶意软件变种。
[0004]深度学习模型的训练需要足量的程序行为数据的支撑,因此基于深度学习模型的恶意软件识别首要任务是程序行为数据的采集。而采集的初始程序行为数据是以文本的形式呈现的,因此程序行为数据向量化是实现恶意软件分析的先行任务。实践应用中常用的向量化方法为独热编码,但独热编码存在数值表示过于稀疏,容易导致维数灾难的缺点。例如,在Windows平台存在上千种不同的API调用和操作码,独热编码产生的独热向量表征维度达到上千维,独热向量的稀疏性不利于深度学习模型的训练。因此,对独热向量基于词嵌入算法降维处理是文本型恶意软件分析的通用策略。连续词袋模型(Continuous Bag of Words,CBOW)是一种经典的词嵌入算法,该方法首先设置一个窗口大小,然后利用窗口内其余API函数的词向量来预测位于窗口中间的API函数的词向量表征。该方法降低了深度学习模型需要学习的参数规模,提升了模型的训练和识别效率,但是存在未考虑API函数(操作码)次序信息的缺点。

技术实现思路

[0005]本专利技术提供了一种基于策略梯度降维的恶意软件检测方法及装置,以解决现有技术中所采用的词嵌入算法,由于未考虑API函数(操作码)的次序信息,从而造成后续的深度学习模型对恶意程序的识别不够精确的技术问题。
[0006]为解决上述技术问题,本专利技术提供了如下技术方案:
[0007]一方面,本专利技术提供了一种基于策略梯度降维的恶意软件检测方法,该基于策略梯度降维的恶意软件检测方法包括:
[0008]获取待检程序对应的程序行为数据;
[0009]对所述程序行为数据进行独热编码,得到由独热向量组成的行为序列数据;
[0010]采用预设的基于策略梯度的词向量降维模型对由独热向量组成的行为序列数据进行降维处理,得到降维后的行为序列数据;
[0011]将降维后的行为序列数据输入预设的深度学习模型,利用所述深度学习模型对降维后的行为序列数据进行特征分类,判断所述待检程序是否为恶意程序。
[0012]进一步地,所述程序行为数据是由程序运行期间调用的API函数和操作码组成的序列。
[0013]进一步地,对所述程序行为数据进行独热编码,包括:
[0014]对所述程序行为数据中的每一元素分别生成一个维数与预设的word2index字典大小相同,且所有元素值均为0的零向量;
[0015]其中,所述word2index字典中包括程序在运行期间所有可能调用的API函数及操作码,以及每一API函数及操作码对应的唯一的索引值,所述word2index字典大小指的是所述word2index字典中存在的API函数及操作码的总数;
[0016]将每一零向量中与其所对应的API函数/操作码的索引值处的元素值分别更改为1,从而得到所述程序行为数据中每一元素对应的独热向量。
[0017]进一步地,所述基于策略梯度的词向量降维模型包含编码层、解码层以及策略网络;所述基于策略梯度的词向量降维模型的训练过程如下:
[0018]设窗口大小为2k+1,每个待降维的行为序列数据的前k个元素的独热向量为(w1,w2,,w
k
),后k个元素的独热向量为(w
k+1
,w
k+2
,,w
2k
),位于窗口中间的元素的独热向量记为w;策略网络按顺序依次为w
i
赋予相应的权重z
i
,其中,1≤i≤2k;然后将独热向量加权求和,并对权重归一化处理;将求和后的结果依次输入编码层和解码层,得到用于预测w的概率分布p,计算公式如下:
[0019][0020]其中,是归一化因子,z
i
是根据策略网络得到的权重因子,E和D分别表示编码层矩阵和解码层矩阵;
[0021]其中,为了获得第i个位置的权重z
i
,需要为策略网络定义第i个时刻的状态s
i
,计算公式如下:
[0022]s
i
=concat(h
i
‑1,Ew
i
)
[0023]其中,concat表示向量的拼接操作,h
i
‑1是第i

1时刻的隐层状态向量;
[0024]隐层状态向量由下式计算得到:
[0025]h
i
=h
i
‑1+z
i
Ew
i
[0026]在初始时刻,将h0初始化为零向量;在第i时刻,策略网络读取状态s
i
,输出一个具有三个分量的概率分布,其中每个分量都与一个权重值对应,实际训练过程中使用随机策略进行权重选择;
[0027]为了更新编码层和解码层的网络参数,采用交叉熵损失函数计算参数梯度;其中,交叉熵损失函数计算公式如下:
[0028]L=

w
T
logp
[0029]为了更新策略网络的参数,奖励值计算如下:
[0030][0031]其中,C表示word2index字典的大小;λ是需要预先设置的超参数;
[0032]根据得到的概率分布计算交叉熵损失和奖励值,然后使用随机梯度下降算法更新编码层、解码层和策略网络的参数值;
[0033]训练完成后,将最后得到的编码层矩阵E进行保存;
[0034]所述采用预设的基于策略梯度的词向量降维模型对由独热向量组成的行为序列数据进行降维处理,得到降维后的行为序列数据,具体为:将待降维的由独热向量组成的行为序列数据与E相乘,得到降维后的行为序列数据。
[0035]进一步地,所述深度学习模型为LSTM或GRU模型。
[0036]另一方面,本专利技术还提供了一种基于策略梯度降维的恶意软件检测装置,该基于策略梯度降维的恶意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于策略梯度降维的恶意软件检测方法,其特征在于,包括:获取待检程序对应的程序行为数据;对所述程序行为数据进行独热编码,得到由独热向量组成的行为序列数据;采用预设的基于策略梯度的词向量降维模型对由独热向量组成的行为序列数据进行降维处理,得到降维后的行为序列数据;将降维后的行为序列数据输入预设的深度学习模型,利用所述深度学习模型对降维后的行为序列数据进行特征分类,判断所述待检程序是否为恶意程序。2.如权利要求1所述的基于策略梯度降维的恶意软件检测方法,其特征在于,所述程序行为数据是由程序运行期间调用的API函数和操作码组成的序列。3.如权利要求2所述的基于策略梯度降维的恶意软件检测方法,其特征在于,对所述程序行为数据进行独热编码,包括:对所述程序行为数据中的每一元素分别生成一个维数与预设的word2index字典大小相同,且所有元素值均为0的零向量;其中,所述word2index字典中包括程序在运行期间所有可能调用的API函数及操作码,以及每一API函数及操作码对应的唯一的索引值,所述word2index字典大小指的是所述word2index字典中存在的API函数及操作码的总数;将每一零向量中与其所对应的API函数/操作码的索引值处的元素值分别更改为1,从而得到所述程序行为数据中每一元素对应的独热向量。4.如权利要求3所述的基于策略梯度降维的恶意软件检测方法,其特征在于,所述基于策略梯度的词向量降维模型包含编码层、解码层以及策略网络;所述基于策略梯度的词向量降维模型的训练过程如下:设窗口大小为2k+1,每个待降维的行为序列数据的前k个元素的独热向量为(w1,w2,

,w
k
),后k个元素的独热向量为(w
k+1
,w
k+2
,

,w
2k
),位于窗口中间的元素的独热向量记为w;策略网络按顺序依次为w
i
赋予相应的权重z
i
,其中,1≤i≤2k;然后将独热向量加权求和,并对权重归一化处理;将求和后的结果依次输入编码层和解码层,得到用于预测w的概率分布p,计算公式如下:其中,是归一化因子,z
i
是根据策略网络得到的权重因子,E和D分别表示编码层矩阵和解码层矩阵;其中,为了获得第i个位置的权重z
i
,需要为策略网络定义第i个时刻的状态s
i
,计算公式如下:s
i
=concat(h
i
‑1,Ew
i
)其中,concat表示向量的拼接操作,h
i
‑1是第i

1时刻的隐层状态向量;隐层状态向量由下式计算得到:h
i
=h
i
‑1+z
i
Ew
i
在初始时刻,将h0初始化为零向量;在第i时刻,策略网络读取状态s
i
,输出一个具有三个分量的概率分布,其中每个分量都与一个权重值对应,实际训练过程中使用随机策略进
行权重选择;为了更新编码层和解码层的网络参数,采用交叉熵损失函数计算参数梯度;其中,交叉熵损失函数计算公式如下:L=

w
T
logp为了更新策略网络的参数,奖励值计算如下:其中,C表示word2index字典的大小;λ是需要预先设置的超参数;根据得到的概率分布计算交叉熵损失和奖励值,然后使用随机梯度下降算法更新编码层、解码层和策略网络的参数值;训练完成后,将最后得到的编码层矩阵E进行保存;所述采用预设的基于策略梯度的词向量降维模型对由独热向量组成的行为序列数据进行降维处理,得到降维后的行为序列数据,具体为:将待降维的由独热向量组成的行为序列数据与E相乘,得到降维后的行为序列数据。5.如权利要求1~4任一项所述的基于策略梯度降维的恶意软件检测方法,其特征在于,所述深度学习模型为LSTM或GRU模型。6.一种基于策略梯度降维的恶意软件检测装置,其特征在于,...

【专利技术属性】
技术研发人员:罗熊王礼伟孙建鹍
申请(专利权)人:北京科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1