HAST-IDS-基于时空特征和深度学习的恶意流量检测-论文解析

论文基于HAST-IDS:Learning Hierarchical Spatial-Temporal Features Using Deep Neural Networks to Improve Intrusion Detection
原文链接:https://ieeexplore.ieee.org/abstract/document/8171733

基于异常的恶意流量检测。采用深度学习的方法,来完成恶意流量检测的技术。其中采用了CNN和RNN模型来学习流量的时空特征来完成识别恶意流量。其中论文主要拆解为了两部分,一部分是单纯采用CNN来学习流量的空间特征,另一种是从数据流当中提取出数据包,通过CNN和RNN来学习时空特征。
想法的来源在于难以设计流量的手工特征,所以通过深度模型这个黑箱子来学习恶意流量的特征。其重要的思想在于将数据流和数据包的每一字节用独热向量来表示,这样当选取前面的n个字节作为输入时,便形成了一张图片的形式。对于多条流和多条包便形成了多张图片。因为对于CNN而言,其输入的图片的shape必须是一致的,这时就必须固定数据流或者数据包的输入字节的长度。图片的另一维等于独热向量的维度,因为字节数据为0-255,所以图片的另一个维度为256维,是确定的。

实验中使用的数据集主要包括两部分,因为HAST-IDS要基于原始的网络流数据,所以要使用包含原有流数据的数据集。因此使用了DARPA1998ISCX2012两个数据集。其中DARPA1998和ISCX2012均用于HAST-I,而仅有ISCX2012应用于HAST-II。原因是因为DARPA1998数据集当中的流长度太短了,特别是如果流当中只有一个包的时候,那么使用RNN则没有意义。所以仅将ISCX2012应用到HAST-II。具体两个数据集的细节可见原文。
HAST-IDS-基于时空特征和深度学习的恶意流量检测-论文解析_第1张图片

因为论文的实验分为了HAST-I和HAST-II两个部分。所以首先我们来介绍第一部分,仅通过CNN来学习空间特征。当选取了独热向量的维度为256时,此时使用一条流的n个字节来表示图像,图像的shape为256×n。这里流的长度将在之后的实验中选取最合适的长度。当单纯使用CNN来学习流的空间特征时,需要考虑的是流的长度对训练效果带来的影响。因为在数据集当中每条流的长度是不同的,但是CNN需要固定大小的输入,所以需要将每条流规整为同一流长度。此时通过使用不同长度的输入进行训练,最终得出了对于DARPA1998数据集而言,最好的流长度为800或者1000-1300。但是由于训练时间的影响,则选择了800字节作为流的输入长度。对于ISCX2012而言,最好的长度为600字节。但通过两个数据集的数据分布发现,原先流平均长度为5000+和50000+,但是最终选择的输入长度却远小于平均长度。原因在于流的前部信息比较重要。而且可以发现尽管两者的平均长度差距较大,但是最终选择的适应长度却均在600-800范围之内,根据之前应用于MNIST数据集当中的实验效果表明,该结构能够很好的适应该大小的输入。

接下来是HAST-II。实验2仅仅使用了ISCX2012这个数据集,原因也在前面给出了,在这一部分中,不仅仅使用了CNN来学习空间特征,同时包含了时间特征的学习。此处在CNN之后使用了LSTM来学习时间特征。因此需要考虑的包括流中包括的包的多少以及流中包的长度。首先研究了包的长度,选取了数据集中流中包的个数的中值作为输入的流中包的个数,然后通过不同的包的大小作为输入,最终得出最佳的包的大小为100-200个字节。由于训练时间的考量,最终选择了100字节作为包的大小。可见包大小的平均值为742,但是最终作为输入的包的大小为100,则说明100字节主要包含了报的头部,对于恶意流量检测十分重要。这个问题可以跟NLP当中的情感分析相比,其中选取了512个字符来表示一个句子。但是512个字符可以表示大多数句子但是100字节不能概括一个包。之后根据设计包的大小为100字节,然后探究流当中包的个数的影响,最终合适的包个数为6,8,14。最终选择了6为流中包的个数。得出最佳的包大小为100个字节,最佳的包个数为6个。
HAST-IDS-基于时空特征和深度学习的恶意流量检测-论文解析_第2张图片

最终得出HAST-II得到了最佳的效果。

你可能感兴趣的:(流量分类)