1.基于DNN的多态蠕虫特征码自动提取方法,其特征在于,步骤如下:
1)模型结构:
1.1)定义:
输入为a1,a2,…,aM组成M个ASCII码的序列,这些ASCII码组成大小为|V|=V的词典V;
序列b1,b2,…,bN表示特征码;
集合X表示所有的有效载荷数据,集合Y为所有可能出现的特征码;
1.2)将多态蠕虫有效载荷a作为输入,并输出长度为N
2)建立深度神经网络模型:基于标准的前馈神经网络语言模型,构建包含4个隐藏层的深度神经网络模型,对于隐藏层的激活函数,选择使用ReLU;完整的DNN网络模型为:p(bi+1|bc,a;θ)∝exp(Vh””+W*enc(a,bc)) (2)h”=relu(U'h') (5)h”'=relu(U”h”) (6)h””=relu(U”'h”') (7)在上述公式中:
enc表示基于Attention编码器,返回一个大小为H的向量,表示多态蠕虫有效载荷和对应特征码的上下文;
参数θ=(E,U,U',U”,U”',V,W), 是特征码的ASCII码嵌入矩阵;
表示权重矩阵;
D表示ASCII码嵌入的大小;
V表示蠕虫有效载荷组成的字典的大小;
H表示隐藏层中隐藏单元的数量;
C表示特征码中上下文大小;
3)Attention的编码器:
使用Attention的编码器,构造基于多态蠕虫有效载荷和特征码上下文的表示,该编码器中,定义区间[x,y]为特征提取窗口取值范围,从窗口值中反映出模型对蠕虫有效载荷中关键特征信息的关注程度;
4)提取多态蠕虫特征码:
基于DNN的多态蠕虫特征码自动提取算法,找到一个特征码b'∈Y使得:利用多态蠕虫有效载荷的特点,在提取特征码时,采用Signature Beam Search算法,用于求解argmax函数;
4.1)使用Signature Beam Search算法求解argmax函数时,采用全局搜索的方式来提取多态蠕虫特征码,在搜索的过程中通过判断预测的ASCII码和前一个已预测的ASCII码在多态蠕虫有效载荷中的位置是否相邻,来选择合适的ASCII码;
4.2)在提取多态蠕虫特征码时,限制特征码中的每个位置有K个候选项,在输出预测的特征码之前,通过对候选的K个特征码的对数概率值进行排序,从而选择出最优的特征码。
2.根据权利要求1所述的基于DNN的多态蠕虫特征码自动提取方法,其特征在于:所述的步骤3)中:在编码多态蠕虫有效载荷时,Attention选择固定长度的蠕虫有效载荷上下文进行学习,具体的公式描述如下:公式中:
表示特征码上下文嵌入矩阵;
表示权重矩阵;
表示有效载荷的嵌入矩阵;
Q是注意力窗口的大小;
定义区间[x,y]为特征提取窗口的取值范围,当窗口值小于x或者窗口值大于y时,模型无法学习到有效的特征。
3.根据权利要求1所述的基于DNN的多态蠕虫特征码自动提取方法,其特征在于:所述的步骤4)中:Signature beam Search算法描述如下:上述算法中:
b_i1_index表示预测的ASCII码bi+1在有效载荷数据中的索引;
b_i_index表示预测ASCII码bi在有效载荷数据中的索引;
‘257’代表特征之间的分隔符;
bpredict={b1,b2,…,bV}表示在特征码中第i+1处预测的V个ASCII码。