1.概述目前,机器学习广泛应用于网络流量分析任务。特征提取、模型选择、参数调优等诸多因素决定了模型的性能。每当面对不同的网络流量或新任务时,都需要研究人员重新开发模型,而这种迭代过程往往耗时耗力。因此,有必要为不同的网络流创建一个通用的表示,可以用于各种不同的模型,跨越广泛的问题类别,并自动化整个建模过程。本文主要关注自动化网络流量分析的一般问题,旨在让研究人员将更多的精力花在优化模型和特征上,将更多的时间用于解释和部署实践中的最佳模型。2.自动化网络流量分析传统的基于机器学习的网络流量分析严重依赖人工。在实践中,获得特征、模型和参数的最佳组合通常是一个迭代过程,这有一些缺点。首先,适当的数据表示和特征选择对于流量分析任务很重要,但即使具有领域专业知识,特征工程仍然是一个脆弱和不完善的过程,人工分析可能会忽略不太明显或复杂的关系其次,网络环境复杂且多变的,流量模式的变化带来特征的失效;最后,对于每一个新的流量检测或分类任务,都需要重新设计新的特征,选择合适的模型,重新调整参数。为了避免这些问题,本节介绍一种适用于不同网络流量分析任务的自动化方法[1]。通过对网络流量的统一表示,结合自动机器学习(AutoML)方法,可以实现对不同网络流量问题的分析。.上的简单快速的自动化迭代和部署。2.1数据表示对于很多分类问题,数据表示与模型选择一样重要,因此在应用机器学习方法时如何表示和编码数据非常重要。网络流量数据的编码需要满足以下三个要求:(1)完整表示。我们的目标不是选择特定的特征,而是统一的数据编码,避免依赖专家知识,因此需要保留包括包头在内的所有包信息;(2)固定尺寸。许多机器学习模型的输入始终保持相同大小,因此每个数据包表示必须具有恒定大小;(3)固有归一化。当特征被归一化时,机器学习模型通常表现更好,同时减少了训练时间并增加了模型的稳定性,因此如果数据本身的初始表示被归一化将非常方便;(4)一致的表示。datarepresentation的每个位置都应该对应所有数据包头部的相同部分,即即使协议和数据包长度不同,特定的特征在数据包中总是会有相同的偏移量,对齐的数据它有可能让模型基于这样的前提来学习特征表示。如图1所示,网络流量表示的主要方式包括语义表示和朴素二进制表示。(1)语义表示:每个头部都有自己的语义字段,但不保留可选字段的顺序有区别,同时需要领域专业知识来解析每个协议的语义结构,即使有这样的知识,在后续繁琐的特征工程还是不可避免的;(2)Naivebinaryrepresentation:使用数据包的原始位图表示来保持顺序,但忽略了不同的大小和协议,导致两个数据包的相同特征向量的特征具有不同的含义,这种错位可以降低通过在重要特征所在的位置引入噪声来建模性能,并且由于无法将每一位映射到语义而导致无法解释。图1语义表示和朴素二进制表示以上两种表示方法不能满足统一数据表示的需要,如图2所示,研究人员将语义表示和朴素二进制表示相结合,提出了一种统一的网络数据包表示方法nPrint。首先,它保证了任何数据包都可以完整表示而不会丢失任何信息;然后,使用内部填充来确保每个数据包都用相同数量的特征表示,并且每个特征在位级别上具有相同的含义。可解释的表示使我们能够更好地理解模型;其次,直接使用数据包的位,区分某位设置为0,用-1填充不存在的包头;最后,每个数据包使用相同数量的特征意味着,对于给定的网络流量分析任务,将有效负载设置为可选数量的字节。此外,nPrint是模块化和可扩展的,不仅可以将其他协议添加到表示中,还可以将一组数据包表示串联起来构建多数据包nPrint指纹。图2nPrint2.2nPrintML专家经常花费数周甚至数年的时间从??原始数据包中提取特征,在他们认为最好的一个或一组模型上进行训练,最后通过手动或结构化搜索对模型进行微调。为了使整个过程标准化,在nPrint的基础上结合AutoML工具,提出了nPrintML,如图3所示,实现了机器学习过程的自动化。图3nPrintMLnPrint标准化了不同流量分析作业的特征提取过程,而AutoML旨在自动化特征选择、模型选择和超参数调整,以便为给定的一组特征和标记数据找到最佳模型。最终,nPrint为每个网络流量分析任务提取最佳特征,并使用AutoML确定最佳模型和超参数。由于AutoGluon集成了多个具有良好性能的单一模型,优于许多其他AutoML工具,因此我们选择AutoGluon作为AutoML工具。在这里,AutoGluon-Tabular是处理表格数据的功能子集,用于通过搜索一组基础模型来执行特征选择、模型选择和超参数优化,包括深度神经网络、基于树的方法(如随机森林)、非参数方法(例如k最近邻)和梯度提升树方法。此外,AutoGluon-Tabular还可以从基础模型创建加权集成模型,以更少的训练时间实现比其他AutoML工具更高的性能。研究人员将nPrint与AutoGluon相结合,在Python中实现了nPrintML[2],允许用户在一次调用中运行整个目录。以被动操作系统检测为例,用例如下:nprintml-Los_labels.txt-aindex-Ptraffic.pcap-4–t2.3实验结果针对8种网络流量分析场景,图4展示了使用nPrintML作为案例研究的分析结果,实验结果表明nPrintML不仅可以解决不同场景下的网络流量分析问题,而且比传统方法具有更好的性能。图4nPrintML案例研究结果III。总结将机器学习应用于网络流量分析任务的性能不仅取决于模型本身,还取决于数据的适当表示和特征的选择。本文介绍了一种自动网络流量分析的新思路。通过对数据包进行统一表示,并将其转化为适合表示学习和模型训练的格式,再结合现有的自动机器学习,使整个网络流量分析过程完全自动化。这种方法不仅适用于常见的网络流量分析任务,而且表现出比现有模型更好的性能。参考文献[1]HollandJ,SchmittP,FeamsterN,etal.自动流量分析的新方向。2021ACM计算机与通信安全会议[C].2021.[2]https://nprint.github.io/
