基于深度学习的二进制变种协议字段划分方法

2024-04-23 04:34安晓明王忠勇翟慧鹏巩克现
计算机工程与设计 2024年4期
关键词:字段报文标签

安晓明,王忠勇,翟慧鹏,巩克现,王 玮+,孙 鹏

(1.郑州大学 河南先进技术研究院,河南 郑州 450000;2.郑州大学 电气与信息工程学院,河南 郑州 450001;3.国家计算机网络与信息安全管理中心河南分中心 技术保障处,河南 郑州 450000)

0 引 言

随着网络协议种类的增加[1],大量的二进制未知协议被广泛地应用于各种恶意网络行为中,对网络通信安全产生了极大的威胁[2,3]。二进制协议与文本协议相比报文缺少可识别的ASCII码,其逆向分析工作具有较高的研究价值[4]。其中协议字段格式划分是协议逆向分析中一个重要的研究方向[5]。未知协议通常可以分为两类,一类是格式和语法未公开的协议,另一类是对开源协议的部分载荷进行了变化拓展的变种协议。本文主要针对二进制变种协议进行字段格式划分。

现有的协议字段格式划分方法有信息论投票[6,7]、序列对比[8]、概率统计[9,10]、频繁项挖掘[11-13]等方法。分析发现,上述研究的核心是统计高频关键词及其位置以推断协议字段划分点,而关键词与字段域未必等价,且二进制协议字段的关键词和位置没有那么固定,导致字段格式划分的准确率大大降低。近年来,深度学习在数据高层特征提取上表现出了强大的能力[14]。Zhao等[15,16]将长短时记忆全卷积神经网络模型应用到字段格式化分问题上。这类方法不局限于寻找固定的关键词,但由于需要将字段进行严格对齐处理,仅适用于定长的协议,且部分字段无法准确确定其所属类型,从而导致字段格式划分的准确率降低。

基于以上分析,为了充分考虑协议报文数据的连续性,本文搭建了一种神经网络模型PRO-BILSTM-CRF。将提出的一种提取协议报文序列字段列特征数据集方法与双向长短时记忆(bi-directional long short-term memory,BILSTM)神经网络进行融合,解决了BILSTM无法考虑字段变化规律的问题,并通过条件随机场(conditional random field,CRF)的处理解决了预测标签不合理的问题。与前人基于深度学习的方法相比,不再将问题转化为关键字类型分类问题而是将其视为序列标注问题,利用BILSTM神经网络捕获协议报文中字段的局部关键特征、字段上下文特征等,不局限于处理定长协议报文数据,避免了字段分类困难的情况。

1 本文方法

1.1 基本框架

设计了一种二进制变种协议字段格式划分方法,其框架如图1所示,首先将协议报文序列数据集进行列特征提取得到对应的列特征数据集。再将协议报文序列数据集和字段列特征数据集进行标注处理生成训练集,利用其对搭建的PRO-BILSTM-CRF神经网络进行训练,挖掘协议字段格式特征。然后,利用训练好的模型对变种协议的报文序列数据集进行字段格式划分预测,得到变种报文序列每行的字段格式划分,最后,将划分结果进行统计分析即可获得变种协议的字段格式划分方法。

图1 基于深度学习的二进制变种协议字段格式划分方法整体框架

1.2 字段列特征数据集与标记集

将二进制变种协议字段格式划分问题看作序列标注问题,学习输入的报文序列的字段格式特征,但是传统的序列标注问题通常都不会关注元素在垂直方向上的变化规律。在二进制协议字段格式划分任务中,数据字段在帧中的位置信息即垂直方向上的列特征是至关重要的,例如有些字段在帧中的位置较为固定,且有数值取值较为固定或数值递增递减等特点[17]。此类字段在字段格式划分任务中较为特殊,在人工协议字段格式划分和传统未知协议字段格式划分方法中都发挥着至关重要的作用。因此,在传统BILSTM-CRF神经网络的基础上,增加了协议报文数据字段列特征提取的部分,并将其与协议报文数据字段特征进行融合。列特征数据集计算方法如下:

将协议报文序列以1 bit为单位切割成长度为L的数据段,长度不够L的消息在末位补零,假设共有r行数据,则可构成如下协议报文数据集矩阵Ur×L

(1)

对矩阵Ur×L做如下处理

(2)

并将wij组成字段列特征数据集矩阵Wr×L,在Wr×L中可观察到某些列取值或固定或递增递减或随机变化的特点。然后将Ur×L和Wr×L转换成16进制,得到以半字节为单位的协议报文序列数据集Ar×l和字段列特征数据集Dr×l

(3)

其中,l=L/4。

将式(3)中的协议报文序列数据集Ar×l和字段列特征数据集Dr×l按照协议规定进行字段格式划分,并进行如下规则的序列标注:构造4元标注集:T={B,M,E,S}。 若字段长度为1,即由一个单位构成,则此单位标记为S。若字段长度大于1,则将字段开头元素标记为B,将字段结尾元素标记为E,字段中间元素标记为M。例如,有字段“02ebd”则将其对应标注序列为“B M M M E”,字段“7”标注为“S”。通过上述规则对报文序列数据集和字段列特征数据集进行标注,得到神经网络的训练集。

1.3 PRO-BILSTM-CRF神经网络模型

为了充分挖掘协议字段的深层特征,捕捉字段内单元的上下文序列信息,本文搭建了一个神经网络模型PRO-BILSTM-CRF,其结构如图2所示。模型由两大部分组成,一部分负责处理协议报文序列数据集,另一部分负责处理字段列特征数据集,然后将两个部分学习到的特征进行融合,根据得到的特征为每个元素进行标注。其中,词嵌入层对输入的字段进行编码,将输入的单元映射为对应的词向量,作为各个时刻网络的输入。BI-LSTM层提取字段序列的抽象格式特征。全连接层将学习到的协议字段格式特征和字段列特征进行融合并分类。CRF层处理全连接层的输出,结合标签转移特征给出最终合理的识别结果。

图2 PRO-BILSTM-CRF神经网络结构

1.3.1 Word2vec词嵌入层

Word2vec模型可以根据字段间局部上下文语义信息的相关性,将半字节字段元素转换成向量模式,便于神经网络模型对特征进行抽取操作。

(4)

得到下一层两个BILSTM模型的输入α和β。

1.3.2 BILSTM模型

BILSTM是循环神经网络(recurrent neural network,RNN) 中长短时记忆网络(long short-term memory network,LSTM)的一种变体,能够同时利用正向和反向的上下文信息,可以更好地捕捉双向的语义依赖。在协议字段格式划分任务上,BILSTM模型能够充分考虑输入字段单元的上下文元素信息,学习到字段中每个元素之间的联系,不只关注单个输入元素,能够更加充分完整地学习字段特征。

图3 BILSTM细胞单元结构

(5)

(6)

将两个BILSTM模型提取到的字段特征htα和htβ进行拼接,得到融合字段特征矩阵Hr×l×n′, 其中n′=n1+n2,n1和n2分别为两个BILSTM神经网络的特征输出维度。

1.3.3 全连接层

全连接层可将BILSTM层输出的融合特征矩阵Hr×l×n′映射到标签样本空间 T={B,M,E,S}。 得到每个元素对应的各标签的概率矩阵Pr×l×4

(7)

其中,Pij={pB,pM,pE,pS},pz(z∈{B,M,E,S}) 表示此处标签是z的概率。

1.3.4 CRF层

通过对嵌入层、BI-LSTM层和全连接的训练,可得到各单元对应各标签的概率,此时的输出并没有考虑标签间的关系,如标签B的后面不可以直接连接B,标签E的后面只能接B或S等。如果直接输出全连接层的字段格式划分结果,可能会存在标签不合理的情况。为了处理此类问题,在全连接层后加一个CRF层来融合上下文标签间的关系,让模型的输出更加准确合理。具体方式是CRF层对全连接层得到的标签序列概率矩阵Pr×l×4中各标签之间的转移概率进行建模然后在所有标签序列中选取一条最高得分的路径作为最终标签序列。若CRF模型预测序列ai={ai1,ai2,…,ail} 对应的标签序列yi={yi1,yi2,…,yil}, 则分数定义为Score(ai,yi) 表示输入序列ai,对应标签序列为yi的概率分数,计算公式为

(8)

其中,Qyij,yi(j+1)表示标yij到标签yi(j+1)的转移概率,Pi,j,yij表示aij的标签为yij的概率。求出最大的Score(ai,yi) 值,则对应的yi即为序列ai的最佳标签序列。

2 实验数据和结果分析

2.1 数据集来源

本文的研究对象是从122星、KU水平极化、986.034 857 MHZ信号收集到的LINKSTAR数据,其协议格式是基于DVB-RCS协议的变形设计,具有数据量大、数据变化多的特点,可满足本方法训练集所需数据变化多样性的要求。数据集的具体规模见表1。

表1 数据集规模

数据集特点:

(1)以4 bit为最小分割单位,字段格式划分不再以字节为单位,划分结果更为准确;

(2)单条数据过长,最长可达3000多个单位;

(3)单条数据中存在含义相同内容不同的数据段的多次循环情况,且循环次数不固定。

根据LSTM网络的特点,单条数据长度最好在250~500单位之间,并且根据协议数据循环的特点,若对过长的数据进行截短,截取足够长的单位作为样本数据,也可以推断协议的字段格式划分方式。本文将单条数据进行切割,只留单条数据的前400个单位作为训练数据,实验结果表明可以正确推断出协议字段格式划分。

2.2 评估标准

本文研究的问题可看成一个多分类问题,分类结果可以分为4种情况:

TP(true positive):预测字段格式划分位置与真实字段格式划分位置相同的情况。

TN(true negative):没有字段格式划分的位置被预测为没被划分的情况。

FN(false negative):本应被划分的位置没有被划分的情况。

FP(false positive):本不应划分的位置被预测为划分的情况。

采用常用的准确率(ρ)、召回率(γ)、综合评价指标(F1)来对字段格式划分方法的性能进行衡量

(9)

其中,准确率(ρ)代表被正确划分的字段数量占被划分字段总数的比例。召回率(γ)代表被正确划分的字段占实际划分字段总数的比例。F1综合衡量了准确率和召回率,当F1较高时表明实验方法较为理想。

2.3 超参数设置

在实验过程中,本文采用控制变量方法,对模型中的词向量维度、LSTM隐藏层维度、Dropout等参数进行调优,确定了基于本文的数据集下的最优参数,见表2。

表2 超参数设置

(1)词向量维度选取

词向量维度代表了元素单元的特征,维度越大越能准确的将元素区分,但维度太大会弱化元素间的关系。因此在其它参数固定的情况下,设置了不同的词向量维度进行对比实验,对比结果如图4所示。从图4中可以看出,当词向量维度为25时,综合评价指标F1达到了最高值。

图4 词向量维度选取实验结果

(2)LSTM隐藏层神经单元个数选取

LSTM隐藏层神经元的个数与学习到的特征数量有关,如果隐藏层神经单元数量太少学习到的特征不足会导致欠拟合;相反神经单元数太多,数据不足以训练网络中所有的神经元则会发生过拟合,且太多的神经元会导致神经网络复杂度变大,泛化能力降低。因此在其它参数固定的情况下,设置了不同的神经单元个数进行对比实验,对比结果如图5所示,从图5中可以看出,当LSTM隐藏层神经单元个数为64时,综合评价指标F1达到了最高值。

图5 LSTM隐藏层神经元个数选取实验结果

(3)Dropout值的选取

在模型训练过程中让某个神经元的激活值以一定的Dropout概率停止工作,可以减少模型的过拟合现象。因此在其它参数固定的情况下,设置不同的Dropout值进行对比实验,对比结果如图6所示,从图中可以看出当Dropout值为0.5时,综合评价指标F1达到了最高值。

图6 Dropout值选取实验结果

(4)损失函数

模型所用的损失函数是CRF层的损失函数如式(10)所示,基本思想是在训练过程中不断更新神经网络模型,使真实字段序列标签路径得分在所有可能序列标签路径得分和的占比最大

(10)

2.4 实验结果分析

采用本文提出的PRO-BILSTM-CRF神经网络进行二进制变种协议划分,其结果见表3。单行字段格式划分准确率最高可达87.4%。平均行字段格式划分准确率为65.7%。

表3 字段格式划分评估结果

进一步对PRO-BILSTM-CRF模型输出的每条数据的字段格式划分结果进行统计分析,方法如下:首先依次取每条数据的字段格式划分结果,将每条数据中对应字段格式划分位置的计数加一,全部数据都处理完后,对位置的出现次数进行筛选,阈值是总行数的1/10,筛选过后的位置即为最终的变种协议字段格式划分方式。图7是经过统计筛选后的变种协议预测字段格式划分方式与变种协议真实字段格式划分方式的对比图,由于数据过长,此处只显示前90个单位的字段格式划分结果。

图7 字段格式划分总结结果

图7中显示的点即为应字段格式划分的位置。对比预测结果与真实的字段格式划分方式可以发现在预测结果中会出现多划分的情况,其中多划分的情况出现在60单位之后的位置,根据对实验数据的分析,这种情况是由于从60单位向后的字段为循环字段,每条数据的循环段循环次数、循环起始位置可能不同,经过统计后就会出现多划分的情况。若只关注循环前的字段格式划分方式,本实验得到的结果与真实的字段格式划分方式几乎相同,这反映了本方法的结果有较高的参考价值。

(1)对比实验一:不同神经网络模型的实验结果对比

为了验证提出的PRO-BILSTM-CRF神经网络模型在二进制变种协议字段格式划分问题上的有效性,设置几个模型(LSTM、LSTM-CRF、BILSTM-CRF、PRO-BILSTM-CRF)进行对照实验,在使用相同的数据集和超参数的情况下,比较字段格式划分的准确率、召回率、F1值。实验结果见表4。

表4 模型对比结果

从表4中可以分析出,首先LSTM模型与其它3种LSTM+CRF结构相比,反应整体性能的F1值都有所下降,这是由于单LSTM模型忽略了标签结果间的转移关系,出现了不合理的标签组合,导致了最终准确率的下降。LSTM+CRF结构在LSTM层后加入了CRF层,充分考虑了标签间的转移关系,降低了不合理标签组合出现的概率,能够得到较为准确的结果。其次,BILSTM-CRF模型与LSTM-CRF模型相比,F1值也有所提高,这是因为BILSTM充分考虑了正向和反向的上下文信息,而单向的LSTM只能捕捉到正向的信息,对反向的信息并未捕捉到。另外本文提出PRO-BILSTM-CRF模型与BILSTM-CRF模型相比,F1值也有所提高,这是因为在所提方法中考虑字段格式划分特有的字段变化特征即列特征,向模型中加入了列特征数据集特征提取部分,这能够更好地挖掘协议字段格式。由上述分析可知,对于二进制变种协议字段格式划分研究任务而言,本文提出的PRO-BILSTM-CRF模型与BILSTM-CRF、LSTM-CRF、LSTM模型相比更适用、更有效。

(2)对比实验二:与现有协议字段格式划分方法的实验结果对比

将本文方法与现有未知协议字段格式划分方法进行对比,方法一是秦等[11]提出的基于边界投票算法的字段格式划分方法。方法二是王[18]提出的改进的基于数据挖掘的字段格式划分方法。实验结果见表5。

表5 对比实验二结果

从表5中可以发现,方法一的召回率(γ)高于其它两种方法,其原因在于召回率代表被正确划分的字段占实际划分字段总数的比例,方法一将大部分可能的划分点全部提出,牺牲了准确率,从综合评价指标(F1)的值可以看出方法一结果的参考价值较小。表5表明本文方法的准确率和F1值都高于另外两种方法,原因在于方法一和方法二的字段格式划分依据数据中的位置和数值较为固定的关键词或出现概率较大的关键词进行字段格式划分。本文的样本数据,有些字段出现位置较为固定,但每条数据的字段数值都不一样即出现频率不够大;有些字段虽然出现频率够大,但出现位置较为分散;数据中位置相对固定的字段较少。导致方法一和方法二不能得到很好的字段格式划分结果。

3 结束语

目前二进制字段划分方法存在依赖高频关键词或无法处理变长协议报文数据等问题。为此,提出了一种基于深度学习的二进制变种协议字段格式划分方法,将BILSTM-CRF神经网络应用到此问题上,并提出了一种具有针对性的PRO-BILSTM-CRF网络模型。该方法向模型中加入字段格式划分问题特有的字段变化规律即列特征来提高模型的准确率,以半字节为最小单位利用协议字段格式特征对变种协议字段格式划分方式进行推断。最后将本文方法与现有模型和方法进行实验对比,结果验证本文提出的模型在二进制变种协议字段格式划分任务上优于其它模型,并且和现有协议字段格式划分方法相比有更高的参考价值。

猜你喜欢
字段报文标签
基于J1939 协议多包报文的时序研究及应用
图书馆中文图书编目外包数据质量控制分析
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
ATS与列车通信报文分析
标签化伤害了谁
基于多进制查询树的多标签识别方法
CNMARC304字段和314字段责任附注方式解析