Machine Learning for Encrypted Malicious Traffic Detection: Approaches, Datasets and Comparative Study
@article{wang2022machine,
title={Machine learning for encrypted malicious traffic detection: Approaches, datasets and comparative study},
author={Wang, Zihao and Fok, Kar Wai and Thing, Vrizlynn LL},
journal={Computers \& Security},
volume={113},
pages={102542},
year={2022},
publisher={Elsevier}
}
摘要
随着人们对个人隐私和数据安全的需求日益突出,加密流量已成为网络世界的主流。然而,流量加密也可以防止对手引入的恶意和非法流量被检测到。特别是在新冠肺炎疫情后,恶意流量加密迅速增长的环境下。依赖普通负载内容分析(如深度包检查)的常见安全解决方案是无用的。因此,基于机器学习的方法已经成为加密恶意流量检测的一个重要方向。
本文提出了一种基于机器学习的加密恶意流量检测技术的通用框架,并对其进行了系统的综述。此外,由于缺乏公认的数据集和特征集,目前的研究采用不同的数据集来训练模型。因此,它们的模型性能无法进行可靠的比较和分析。
因此,在本文中,
- 我们分析、处理和组合了来自5个不同来源的数据集,以生成一个全面和公平的数据集,以帮助未来该领域的研究。
- 在此基础上,我们还实现并比较了10种加密恶意流量检测算法。然后讨论挑战并提出未来的研究方向。
存在的问题
- 虽然大多数个人和企业享受加密流量提供的流量隐私和数据保护,但攻击者也在利用加密来逃避其恶意活动的检测。
- 目前的基于机器学习的加密恶意流量检测方法研究采用不同的数据集来训练模型,因此它们的模型性能无法进行可靠的比较和分析。
- 流量加密目前有多种机制,如SSL、TLS (Transport Layer Security)、VPN (Virtual Private Network)、SSH (Secure Shell Protocol)和P2P。这些加密算法的工作原理不同;一些在传输层,而另一些在应用层,这使得加密流分类成为一项具有挑战性的任务。
- 即使使用相同的加密机制,由于原始流量的分布和利用率不同,加密后的流量也会呈现不同的数据分布特征。因此,大部分的研究都集中在加密流量的二分类上,即区分正常流量和恶意流量。
- 基于流的机器学习方法被认为是加密流分类最常用的方法。然而,值得注意的是,训练数据集的收集和加密流量检测特征的选择仍然是一个充满活力的研究领域。
论文贡献
- 对于我们提出的机器学习框架,回顾和讨论了它的优势、局限性,并且比较不同的技术。
- 对目前可用的流量数据集进行相对全面的整理和分析,分析其特点、局限性和适用性。这样的分析使数据集能够更好地服务于这种基于机器学习的方法。
- 对机器学习模型的特点进行分类,并讨论它们的优势、限制、适用场景和可能的优化方向。
- 基于相同的训练数据集,使用不同的算法和特征集进行对比实验,以找到更可靠和一致的结果。据我们所知,我们构建的数据集是最全面的训练数据集,完全由开放的公共数据源组成。
1. 基于机器学习的加密流量检测模型的总体框架
框架流程介绍:
- Feature Selection/Feature extraction:特征选择/特征提取。
- Algorithms Selection:算法选择。
- Experiment Evaluation:实验评估。
1.1 Research Target(研究目标)
加密流量分类一般可分为两大类:
- 加密和非加密流量分类。
- 加密恶意流量检测:
目前还没有覆盖所有类型的流量和恶意软件家族的工作。多分类的性能也普遍比二分类方法差。
目前研究概况:
-
不考虑加密协议的二分类问题(该二分类包含两种:加密与不加密、恶意加密和正常加密)。
-
明确加密协议下的二分类问题(该二分类包含两种:加密与不加密、恶意加密和正常加密)。
-
不考虑加密协议的恶意软件族的多分类。
-
明确加密协议下恶意软件族的多分类。
最后,在设定研究目标的过程中,我们还需要考虑检测模型的运行环境。也就是说,检测模型是在线运行还是离线运行,因为不同的操作环境对效率、鲁棒性和准确性有不同的要求。有时,我们需要妥协一个要求,以更好地满足其他要求。
总结:
1.2 Traffic Dataset Collection(流量数据集收集)
数据采集方法一般可分为两种:
- 真实流量采集:在实际运行的网络环境中,通过常用的流量采集软件(如Wireshark)采集流量数据。然后对收集到的数据进行分析和标记以供使用。
- 模拟流量生成:通常通过构建模拟网络或使用脚本模拟器生成目标流量数据集。
一个优秀的加密恶意流量数据集需要具有以下特征:
-
足够多的加密流量。
-
多种加密恶意攻击。
-
类平衡。
-
基本事实得到证实。
-
无冗余数据。
数据集:
下表中显示了编译后的数据集列表。通过分析,发现大多数公共数据集要么包含少量加密流量,要么根本不包含加密流量。包含加密恶意流量的数据集更加罕见。
总结:
可用于加密流量检测的公开数据集有以下几个:UNSW_NS2019、CIC-AndMal2017、CICIDS2017、UNSW_NS2015、Malware Capture Facility Project、Malware traffic analysis net
1.3 Traffic and Feature Extraction(流量和特征提取)
流程主要分2步:
-
Traffic data pre-processing(流量数据预处理):
一般公开数据集有以下两种:pcap和csv文件(2)事先进行清理、过滤和特征提取的csv格式的数据集
-
Feature extraction(特征提取):
本文将流量特征分为两类:协议无关的数值特征 和 协议特定的特征。
(2)协议特定的特征:从加密协议信息中提取特征,目前HTTPs作为加密流量类型占主导地位。
-
对于协议特定的特征,一个重要的限制是这些特性只适用于它们相关的加密协议。因此,如果数据集包含其他加密协议,特定于协议的特性将不再适用。
-
另一方面,协议无关的数值特征的提取不依赖于流量通信和协议的任何具体内容或信息。因此,无论使用何种加密机制,都可以提取出与协议无关的数值特征。然而,由于有大量的协议无关的数值特征和不同的提取逻辑,提取过程是复杂的,耗时的,并需要先验知识。
-
1.4 Feature Set Selection(特征选择)
常用的特征选择方法可分为两类
-
基于领域专家的选择:
领域专家根据他们的经验和知识选择一组他们认为最合适的特征。之后,这些建议的特征将直接从数据集中提取,并用作模型输入。有一些常用的自动提取特征的工具(如CICFlowMeter)
-
基于机器学习和一些算法的自选择:
它需要人类提取所有可能的特征,选择的算法将排名和选择最合适的特征作为最终的特征集,或者直接处理原始数据,自己学习和提取所需的特征。
1.5 Algorithms Selection(算法选择)
许多成熟的传统流量检测方法,如DPI,已不再适用于加密流量。目前,传统的机器学习方法和深度学习方法是该领域的两个主流研究方向。
- 传统机器学习方法:对于传统的机器学习,算法和特征集优化是主要关注的焦点。
- 深度学习方法:基于深度学习的加密流量检测有很多明显的优势,比如能够通过自身的特征学习自动提取所需的数据特征。它也更容易发现交通特征之间的非直观联系,这是人类无法做到的。然而,将深度学习应用于加密恶意流量检测和分类的研究有限。
2. 比较实验
在本节中,我们执行两个实验来评估我们的实验目标。
2.1 数据集的收集
组合的数据集基于三个标准组成:
2.2 特征提取与选择
(2)协议特定的特征
2.3 实验
实验一:使用组合数据集的不同统计数值特征集和算法的性能分析
实验二:比较不确定协议的数值特征集和TLS/SSL特征集的性能
总结
学到的知识点
- 加密流量检测整体流程:
- Feature Selection/Feature extraction:特征选择/特征提取。
- Algorithms Selection:算法选择。
- Experiment Evaluation:实验评估。
-
数据集:文中提到的组合数据集的下载链接
-
提取特征:
-
机器学习方法中,RF和XGBoost的性能比较好。RF性能最好。
-
未来在不确定协议的数值特征上进行特征选择和优化的研究可能比协议特定的特征更有意义。