加密流量分类-论文9:DarknetSec: A novel self-attentive deep learning method for darknet traffic classification and application identification
- 0、摘要
- 1、文章核心观点引入
- 2、模型结构
- 2.1 模型总览
- 2.2 预处理层
- 2.4 特征提取层
- 4、实验
- 5、总结与思考
0、摘要
提出了一种新的基于自注意力机制深度学习方法DarknetSec,用于暗网流量分类和应用识别;利用一维卷积神经网络(1D CNN)和双向长短期记忆网络(Bi- LSTM)从报文的有效载荷内容中捕获局部时空特征,集成自注意机制。此外,DarknetSec从有效载荷统计数据中提取侧通道特征,以增强其分类性能。
1、文章核心观点引入
- 关于目前基于深度学习的分类方法的缺陷:没有充分考虑从不同数据位置提取的局部特征之间的全局内在依赖关系和隐藏联系,最终导致分类性能不稳定
- 多头自注意模块的输出和自注意嵌入1D CNN和Bi-LSTM网络提取的局部时空特征同时输入到另一个注意模块中,自动捕获不同注意权重的局部时空特征之间的全局内在依赖关系和隐藏联系
- 用侧通道特征学习模块从有效载荷统计数据中提取特征表示
2、模型结构
感觉文章的创新点就是在模型结构了,三个分支网络提取不同的特征,从全局与局部的角度去提取流量特征。
2.1 模型总览
2.2 预处理层
下面解释一下各个输入的预处理步骤,也就是预处理层(最下一层)干的事情。
-
预处理pcap或者是pcapng文件,将有两个方向相同的五元组的一组数据包作为流(相当于双向流:会话),在提取五元组网络流时,我们去掉包头,只保留每个包的应用层数据。
- 网络层和传输层的协议字段是数据包的基本组成部分,但它们主要是为了网络传输而设计的,而不是为了识别应用程序,故可以剔除
- 应用层以下的协议字段包含的有效信息很少,不能为细粒度流分类提供充分的区分特征。
-
**Content features:**简言之,提取流前N个packet的前M个字节,长则截断,短则填充0
xcontent表示一个样本流的内容特征,所有字节值处于0xff,映射到[0,1]
- **Side-channel features:**由统计(statistical)特征与序列特征(sequential)组成
- 选择流前L个包的长度序列作为序列特征
- 统计特征则有很多,如
- 流持续时间
- 数据包之间的时间间隔(最大值、最小值、平均值、标准差、中位数等等)
- 包长度统计信息(最大值、最小值、平均值、标准差、中位数等等)
- 接受包统计信息(最大值、最小值、平均值、标准差、中位数等等)
- 发送包统计信息(最大值、最小值、平均值、标准差、中位数等等)
- 入包出包数、字节数、每秒出(入)包比
2.4 特征提取层
-
Side-channel features送入MLP进行处理
-
Content feature复制成两份,一份送入多头注意力模块提取全局特征,一份送入局部时空特征学习模块,提取局部的时空关联。由1维卷积与Bi-LSTM组成。最后两个模块的输出进行基于注意力内容的融合(从全局角度获取网络流不同数据位置之间的内在依赖关系,有助于综合内容特征的学习),输出Oacff:
与上面MLP输出的向量进行拼接后送入分类层
4、实验
-
超参数分析:最终敲定N=30,M=256,L=100
-
消融实验:证明各模块有效
5、总结与思考
为什么对侧通道特征提取用MLP,对内容特征提取用attention+CNN+LSTM?可不可以做排列组合,这些部件是否有改进或者说舍弃的必要,使得模型具有轻量性。