郭昊 陈周国 刘智 冷涛 郭先超 张岩峰
摘要: 网络流量加密在增强了通信安全与隐私保护的同时,也为恶意流量检测带来了新的挑战. 近年来随着机器学习在各领域成功应用,其也被应用于加密流量分类中,但传统特征提取方法可能会导致流量中重要信息丢失或无效信息冗余,阻碍了分类精度与效率的进一步提升. 本文提出一种基于低维二阶马尔可夫矩阵的加密流量分类方法LDSM,用以筛选表征能力强的流量特征,从而优化模型分类效果. 首先,提取加密流量中有效负载,根据其十六进制字符空间分布构建二阶马尔可夫矩阵;其次,通过计算状态转移概率矩阵中各特征的基尼增益,迭代删除对模型训练贡献最低的特征,取模型分类准确率最高的特征集合作为低维二阶马尔可夫矩阵特征;最后,通过实验验证低维二阶马尔可夫矩阵特征的模型训练能力. 实验中构建了Scikit-learn 的实验环境,采用两个公开数据集CTU-13 和CIC-IDS2017,实现对加密流量的分类任务,特征降维实验结果表明,LDSM 方法将二阶马尔可夫矩阵特征降维至256 个特征时分类效果最佳,特征降维后仅为原特征数量的6. 25%,保证模型分类精度的同时提升了模型训练效率;与其他方法对比实验结果表明,LDSM 方法流量分类的平均准确率达到98. 51%,与其他方法相比,分类准确率提高3% 以上,所以LDSM 方法对于加密流量分类是可行且有效的.
关键词: 加密流量; 机器学习; 马尔可夫; 基尼增益; 特征降维
中图分类号: TP393. 08 文献标志码: A DOI: 10. 19907/j. 0490-6756. 2024. 030003
1 引言
网络流量分类是网络空间安全和网络管理领域的一项重要任务. 如今,随着加密技术在保护用户隐私方面的广泛应用,网络通信中加密流量的占比日益增多[1]. 不同类型加密流量之间的区别很小,传统基于端口或基于签名的流量分类方法不适用于加密流量识别,因此对不同类型加密流量的区分是一项具有挑战性的任务. 近年来,机器学习在图像分类[2]和文本识别[3]等领域取得了很好的效果,因此其也被广泛应用于恶意流量检测中[3-5].
相较于传统方法,基于机器学习的分类方法可以在使得分类过程更加自动化的同时提高分类精度. 机器学习模型可以针对性的构建学习模型以适应恶意网络流量的独特特征,也可以扩展以处理大量数据,对网络行为和流量环境的变化具有鲁棒性. 将机器学习模型应用于加密流量分类领域需要采取合适的数据转化方式将网络数据包转化为机器学习模型的输入格式[6]. 图像分类领域中样本往往为固定尺寸的图像,文本识别领域中模型通常用于分类明文语句,由于数据流量包不规则且所含信息为密文,故上述领域中的特征工程方法难以直接运用到加密流量领域中.
在早期研究中,一部分研究侧重于提取流量的统计特征,如Meta 特征[7]统计包长度、传输时间间隔等特征,BD(Byte Distribution)特征[8]利用16×16 的矩阵统计不同字符的出现频率,Man 等人[8]直接利用加密流量的196 项统计特征形成灰度图像,这类方法虽然可以将所有原始流量转化为具有相同格式的统计特征,但是却忽略了流量中的数据空间信息,降低了模型的学习效果;一部分研究直接将原始流量中的有效字段转换为向量或矩阵特征,如Tathri 等人[9]将原始流量转化为灰度特征图像,通过切片(当长度大于固定长度时)或填充(当长度小于固定长度时)数据包中的字节流有效负载,以获得固定大小的矩阵,这类方法虽然可以有效地保留流量中的数据空间信息,但是却只能通过截取或填充的方法统一特征格式,可能造成数据信息丢失或冗余. 除此之外Bai 等人[10]借用文本处理的方式作为数据转换的方法,将网络流量字段转换成文本,但随着更多加密协议的使用,有效负载被随机加密,不再具有特定的语义.
2014 年,Korczynski 等人[11]首次提出了一种基于马尔可夫链的加密流量分类方法,使用马尔可夫模型进行流量分类和识别,他们利用给定应用程序的SSL/TLS 标头中的一系列消息类型,以构建一阶齐次马尔可夫链作为该应用程序的统计指纹. 2017 年,Shen 等人[12]改进了Korczynski 等人的方法并提出了基于二阶马尔可夫链可感知属性的加密流量分类方法. 2022 年,Tang 等人[13]基于流量文件中每个字节对应的ASCII 码(0-255),构建一阶马尔科夫链特征用于流量分类;Cao 等人[14]提取流量文件中的二进制比特流,将长度为4 个比特的比特串作为一个基本单位,构建一阶马尔科夫特征图像. 通过研究分析,发现上述文献仍存在不足之处:
(1) 部分文献侧重于提取流量的统计特征,如包长度、传输时间间隔等,这种方法虽然可以将所有原始流量转化为具有相同格式的统计特征,但是却忽略了流量中的数据空间信息,降低了模型的学习效果.
(2) 一阶马尔可夫链特征的当前状态仅由先前状态决定,忽略了当前状态与更早状态的依赖关系,特征表征能力弱,导致模型学习不足.
(3) 二阶马尔可夫链特征数过多,概率转移矩阵为稀疏矩阵,包含大量低区分度特征,模型训练效率差,且有过拟合的风险.
针对以上问题,本文提出一种基于低维二阶马尔可夫矩阵(Low Dimensional Second-orderMarkov Matrix, LDSM)的加密流量分类方法,拼接原始流量中的有效负载,构建具有数据空间信息的二阶马尔可夫矩阵,提升了特征表征能力,根据基尼增益降低特征维度,删除低区分度特征,优化了模型训练开销,降低了过拟合的风险.
2 方案设计
2. 1 整体流程
为了高效地识别网络中的加密流量,本文提出了LDSM 方法,方法流程如图1 所示. LDSM 方法由4 部分组成,第1 步为数据预处理,过滤无用数据包,并根据五元组(源IP 地址、源端口、目的IP地址、目的端口和传输层协议)将流量文件分割为网络流;第2 步为构建特征,按十六进制读取网络流文件中的有效负载(0-F),以相邻字符分布构建二阶马尔可夫矩阵;第3 步为特征降维,利用特征进行交叉验证,迭代删除基尼增益最低的n 项特征,直至剩余特征小于或等于n 项. 取迭代过程中准确率最高的特征集合作为低维二阶马尔可夫特征. 第4 步为评估,是将低维二阶马尔可夫特征随机分为训练集与测试集,由训练集对模型进行训练,将测试集输入到已训练完毕的模型中进行分类效果评估.
2. 2 数据预处理
为了评估LDSM 方法的加密流量分类效果,需要充足的加密流量集作为实验数据集. 实验使用CTU-13 数据集[15]和CICIDS-2017 数据集[16]作为恶意流量样本. CTU-13 是2013 年由捷克理工大学捕获的僵尸网络流量数据集,其中共包含13个不同场景的僵尸网络攻击;CICIDS-2017 于2017 年由加拿大网络安全所构建,其中共包含8 种不同的网络攻击. 正常流量样本使用Wireshark 访问Alexa 排名前列网站进行收集. 由于原始数据集含有较多杂流量,所以对数据集进行数据清洗,过滤杂流量,最后筛选出用于实验的恶意流量共计4. 25 GB,正常流量共计4. 53 GB.
使用SplitCap. exe 工具,根据五元组信息(源IP 地址、源端口、目的IP 地址、目的端口和传输层协议)分割原始流量文件,生成的每个文件为一个单独的网络流,最终统计恶意流量TLS 流数共153 662 条,正常流量TLS 流数共162 362 条. 数据集分布如表1 所示.