论恶意网络流量分类的机器学习模型设计

来源:https://arxiv.org/pdf/1907.04846.pdf

摘要

机器学习(ML)开始广泛应用于网络安全设置中,以缩短网络攻击的检测周期。到目前为止,大多数基于ml的系统要么是私有的,要么对特性表示和机器学习模型做出特定的选择。由于目前还没有公开的基准数据集,很难评估这些技术是否成功。在本文中,我们为在网络安全中使用监督ML提供了具体的指导和建议。作为一个案例研究,我们考虑了僵尸网络检测的网络流量数据。在我们的发现中,我们强调:(1)特征表示应该考虑攻击特征;(2)集成模型非常适合处理类不平衡问题;(3) ground truth的粒度是这些方法成功的重要因素。

1介绍

从投机取巧的恶意活动到复杂的国家资助的运动,各种各样的威胁威胁着工业、学术界和政府的组织。这些攻击通常会导致重要信息的丢失,并影响消费者和企业。值得注意的例子有:2017年的Equifax数据泄露事件,以及2015年的Anthem医保运动,导致数百万美国公民的个人财务和医疗记录遭到泄露。

迄今为止,大多数企业在其环境中部署了许多安全控制,并应用最佳实践(如修补脆弱的系统、使用威胁情报服务和端点扫描)来防范网络威胁。在大多数组织中,监控工具要么部署在网络上(例如,网络入侵检测系统、web代理、防火墙),要么部署在终端主机上(例如,杀毒软件、端点代理)。随着大型企业收集的安全日志的可用性,机器学习(ML)开始成为面对日益复杂的网络攻击的重要防御工具。用于网络数据的ML技术包括检测恶意域的系统(如[1,5,2]),检测恶意软件传递的方法(如[9])或命令控制通信的方法(如4,11,8,12),检测恶意网页的技术(如[15]),以及企业威胁检测的各种工业产品(如[13,6,10,7,16])。

在缩短恶意软件检测周期方面,ML有很大的潜力,但这些算法往往有一些缺点。特别是,Sommer和Paxson[14]强调了在网络安全的操作设置中使用ML的困难。他们发现的主要限制是:(1)ML通过学习带标记的示例擅长监督任务,而在网络安全中大多数数据是无标记的。(2) ML错误(特别是误报)的代价很高,因为警报需要由安全分析人员进行调查。(3)正常运行条件下,网络流量多样性较高。(4)由于缺乏标准的基准数据集,执行可靠的评估通常很有挑战性。

本文介绍了在网络安全中使用有监督的ML的一些具体的指导和建议。作为一个案例研究,我们考虑了僵尸网络检测的网络流量数据。我们利用一个公共数据集(CTU-13),其中包括从大学校园收集的网络流量和对大学网络发起的攻击。在我们的研究结果中,我们强调以下几点:

•特性表示应该考虑攻击的细节。在标准的特征表示中,我们将连接级别的特征(直接从Bro日志中提取)与聚合的流量统计和时间特征(使用固定时间窗口)进行比较。

•类不平衡是一个主要的问题,阻碍了逻辑回归等简单的线性模型的性能。

•像梯度增强这样的集成方法具有能够很好地处理类不平衡的内置技术。与线性模型相比,它们在区分恶意连接和良性连接方面取得了更好的性能。

•数据标记的粒度(ground truth)会对分类指标产生实质性的影响。如果可用,在单个网络连接级别获得的ground truth可以提高监督ML模型的性能。

2背景与威胁模型

2.1机器学习用于网络流量分类

网络入侵检测是一个非常活跃的研究领域。Snort等传统系统基于人工生成的规则来检测已知的恶意软件变体。

最近,ML在扩展基于规则的系统方面被证明是有价值的。ML有可能检测出更高级的恶意活动,从而避开基于规则的系统。ML成功应用于各类网络数据的恶意软件检测包括:

•使用被动DNS数据的域名信誉系统,如Notos[1]和EXPOSURE[5]。

•基于NetFlow数据的命令控制检测,如DISCLOSURE[4]和BotFinder[17]。

•使用ExecScent[11]、BAYWATCH[8]、MADE[12]等web代理日志进行恶意通信检测。

Bro是一个开源的网络监控代理,它收集大量的网络日志。这里我们利用Bro连接日志,它记录了图1中包含的字段。这些参数包括TCP连接时间戳、持续时间、源IP和端口、目标IP和端口、发送和接收的数据包数量、发送和接收的字节数以及连接状态。对于UDP,每个UDP包都会生成一个条目(因为不存在UDP连接)。

论恶意网络流量分类的机器学习模型设计_第1张图片


2.2问题陈述和威胁模型

ML算法在检测僵尸网络或恶意域的网络流量分类任务中取得了成功。但是,大多数ML方法都是用一种特别的方式设计的,并且目前还没有关于这个领域的原则方法的指南。我们有兴趣填补这一空白,并就几个一般原则提供建议,应该指导ML设计僵尸网络和恶意软件检测。我们专门解决从网络日志(由Bro日志生成)检测僵尸网络的问题,但是我们的方法可以与其他网络数据类型(如NetFlow、pcap、防火墙)一起使用。我们想回答的一些研究问题如下:

•原始网络数据能在ML算法中有效使用吗?

•哪种特征表示最适合应用ML分类算法?

•哪种分类器在处理大量不平衡的网络安全数据集时性能最好?

•标记数据对ground truth生成有什么影响?

我们假设收集网络数据的监视代理不在攻击者的控制之下。我们还假设攻击者不能篡改收集到的网络日志。因此,攻击者无法访问记录数据的存储设备。

3 用于僵尸网络检测的ML案例研究

3.1数据集

我们利用了一个僵尸网络流量的数据集,该数据集是2011年在捷克共和国的反恐组大学捕获的。数据集包括13个场景,每个场景都包括合法的流量,以及各种攻击,如垃圾邮件、端口扫描、DDOS和点击欺诈。数据集还包括一个僵尸网络ip列表,可用于标记流量。

由于ML分类需要使用类似的攻击数据进行训练和测试,所以我们决定使用6个场景的子集。其中,3个场景由僵尸网络Neris生成(执行垃圾邮件和点击欺诈活动),3个场景由僵尸网络Rbot生成(执行DDoS活动)。统计数据见表1。对于其他僵尸网络,只有一种可能的情况,这就排除了监督ML的使用。

在传统的ML中,交叉验证是评估模型泛化程度的一种著名方法。k-fold交叉验证将数据随机分成k个分区,在其中的k−1上训练一个模型,并在第k个分区上求值。随机分割日志可以在训练集和测试集之间产生高度相关的数据。相反,我们在两个场景上进行训练,并在第三个(独立的)场景上进行测试,对两个僵尸网络中的每一个重复实验3次。因此,我们保证测试数据独立于训练。这种将数据分解为训练和测试的方法(基于独立的攻击场景)更适合这种设置。在其他上下文中,需要考虑环境的细节。

3.2概述

我们的系统架构如图2所示。我们的系统处理在组织(校园或企业网络)边界收集的网络日志。数据采集完成后,利用特征提取层对数据进行ML训练。许多分类算法用于训练分类器并优化标准指标,如精度、召回率、F1分数和AUC。将分类器应用于新的测试场景,以评估其通用性并预测可疑的网络活动。我们相信这个框架足够通用,可以适用于其他环境。

论恶意网络流量分类的机器学习模型设计_第2张图片

3.3特征提取

我们对不同的特征表示进行了实验,如下所述。

连接级表示。这种表示直接从原始连接日志中提取特性。我们考虑所有的连接,其中ip要么是id:origh或id:desth,我们直接使用Bro连接日志中的字段作为特性:

论恶意网络流量分类的机器学习模型设计_第3张图片

对于分类特性(例如proto),我们使用标准onehot编码。在这个表示中,我们在一次热编码后获得了26个特征。

聚合流量统计数据。接下来,我们将探讨时间聚合获得的特性是否比原始特性更强大。我们考虑一个长度为T的时间间隔,在这个时间间隔上,我们定义了所有连接上的聚合特性,其中ip要么是id:orig h,要么是id:dest h。

在定义我们的特性时,一个重要的考虑是生成固定数量的特性,与特定主机上的流量无关。我们的第一次尝试,我们考虑IP与之通信的所有目的IP地址的集合:SIP = {IP1;:::;;IPn}。根据这些定义,我们可以定义ip与之通信的/24目的子网:Ssubnet = {Sub1;:::;;Subm}如果我们定义每个目的地或子网的聚合特性,当主机访问新的ip或新的目的地时,我们将遇到一个问题。在这种情况下,我们需要向表示添加新特性,这在实践中是不可取的。

为了缓解这个问题,我们通过目标端口(对应于应用程序或网络服务)来定义聚合的特性。具体来说,我们定义了一组17个流行的应用程序端口(例如,HTTP - 80、HTTPS - 443、SSH - 22、DNS -53)。然后我们采用模块化方法。我们选择了少量的操作符(Distinct、Sum、Min、Max),并将它们应用于每个目的端口的connect .log中的字段。表2描述了这些特性。我们分别为传出和传入连接生成这些特性。此外,我们还添加了一些功能来捕获与外部IP目的地的通信模式(例如,每个传输协议的连接数、源和目标端口的数量、目标IP的数量等)。在这个表示中,我们获得了756个聚合的流量特征。

论恶意网络流量分类的机器学习模型设计_第4张图片

时间特性。将节点间到达特征定义为节点间通信时间分布的平均值、标准差、中位数、最小值和最大值,并考虑时间间隔T与节点间连接级特征的集合。每个内部节点都有两组这样的特性:一组用于节点作为通信源的事件(传出),另一组用于节点作为目标的事件(传入)。这些通信通过公共端口进行聚合。因此,在每个时间间隔T,我将有一个节点在表3中列出的inter-arrival特性。在这个表示中,我们获得了180个特征。

论恶意网络流量分类的机器学习模型设计_第5张图片

3.4ML分类和标记

地面真相标签CTU-13数据集提供僵尸网络IP地址列表。我们的主要观察之一是,攻击在整个数据收集期间不是活动的。我们发现标记数据的粒度在结果中起着很大的作用。我们尝试了两个层次的粒度:

粗粒度标记:在整个场景期间,我们将僵尸网络ip生成的所有连接日志标记为恶意

细粒度标记:对于Rbot攻击(DDoS的一个实例),我们获得受害机器的IP地址。我们使用它来识别连接到受害IP的攻击流。对于所有的特性表示,如果时间窗口中至少有一个攻击日志事件,则将时间窗口标记为恶意。

细粒度标记通常很难获得,因为它是一个手动过程,但当它可用时,它大大提高了ML在僵尸网络检测中的性能。

我们考虑了几个著名的ML分类模型,包括逻辑回归、随机森林和梯度增强。我们使用几个指标来评估ML算法的性能(精度、召回率、F1分数和AUC)。由于该数据集的不平衡程度相当大(恶意样本与合法样本的比例低至Neris为1:134,Rbot为1:401,特征以30秒的间隔聚合),因此准确性总是相当高(在我们所有的实验中都高于0.96)。我们对少数(恶意)类的结果感兴趣,因此精确度、召回率、F1分数和AUC是更好的指示器,可以用来指示分类器在检测僵尸网络时的表现。

对于ML分类器,我们对几个超参数执行网格搜索,以选择在我们的设置中表现最好的模型。对于随机森林,我们选择{10;50;100;200}中的树的数量,发现100棵树的效果最好。对于梯度增强,我们在{50;100;200}中改变估计量的数量,在{3;5;7}中改变每棵树的最大深度,在{0:01;0:05;0:1}中改变学习率。我们选择了100个最大深度为3的估计量,学习率为0.05。对于逻辑回归,我们使用L1或Lasso正则化来减少空间维度。

4实验评价

在我们的实验评估期间,我们想回答几个研究问题,我们将在下面详细说明。哪个特性表现最好?我们比较了不同的特性表示(连接级表示、聚合的流量统计和时间特性)。在这个实验中,我们使用100棵树的随机森林分类器和一个30秒的时间窗口进行聚集。

Neris的结果如表4所示,它们显示在所有感兴趣的指标上,聚合的特性(流量统计和时间)的性能显著优于直接从Bro日志中提取的原始特性。例如,在场景2和场景9上进行训练并在场景1上进行测试时,连接特性的F1得分为0.65,而聚合特性的F1得分为0.98。当我们同时考虑流量和时间特性时,与只使用聚合的流量特性相比,我们没有发现重大的区别。

细粒度标记的Rbot结果见表5。在这里,基于连接的特性执行得非常好。原因是这是一种DDoS攻击,所有发送给受害者的包都是相同的。然而,流量统计和时间特征也表现良好。例外情况是场景4和场景11的训练和场景10的测试。在这种情况下,使用30秒聚合进行训练的僵尸网络样本数量非常少(142),而原始数据中的僵尸网络样本数量要多得多(378,252)。

论恶意网络流量分类的机器学习模型设计_第6张图片

改变时间窗口的影响是什么?在这里,我们验证聚合时间窗口的选择。表6和图3显示了将时间窗口从1秒更改为600秒的结果。30秒和60秒时间窗口显示了类似的结果,并且它们在大多数情况下表现良好。除了在场景1上测试之外,窗口大小10的性能也很好。当时间窗口超过120秒时,结果开始变差。怀疑这是因为在较大的聚集窗口的攻击流量的小样本,以及合法流量中的附加噪声。通常,选择聚合的最佳时间窗口与攻击有关。我们建议使用交叉验证来选择时间窗口的最佳值。根据这些结果,我们为剩下的实验选择了一个30秒的时间窗口。


论恶意网络流量分类的机器学习模型设计_第7张图片


论恶意网络流量分类的机器学习模型设计_第8张图片

不同ML模型的影响是什么?一个重要的观察是,网络安全的不平衡数量非常大(正如之前的工作所观察到的[3,12])。众所周知,集成分类器,如随机森林和提高处理不平衡比简单的模型要好得多。我们通过使用三个不同的分类器来测试这个假设:逻辑回归,随机森林,梯度增强。我们将聚合时间窗口固定为30秒,并使用流量统计和时间特性。

Neris的三个分类器结果如表7所示,精度召回曲线如图4所示。我们实验的三种模型都表现得相对较好。两种集成方法都比logistic回归模型有更好的表现,在所有场景下F1得分都在0.94到0.98之间。随机森林和梯度增强的区别是难以察觉的,它们都是强有力的分类模型。

论恶意网络流量分类的机器学习模型设计_第9张图片

这些模型是可解释的吗?为了理解ML模型学习到的内容,我们计算了Neris和Rbot的随机森林分类器的特征重要性(使用聚合的流量统计和30秒窗口的定时特性)。结果见表8。有趣的是,我们观察到分类器识别与攻击相关的特征。Neris是一个垃圾邮件僵尸网络,它的大部分活动都使用端口25,这使得诸如不同的源端口和端口25上的中间到达包时间这样的特性变得非常重要。相比之下,Rbot是一个使用不同端口进行攻击的DDoS僵尸网络。例如UDP flood使用的是端口161,分类器正确判断出端口161上的inter-arrival packet timing的标准差是最重要的特征。


论恶意网络流量分类的机器学习模型设计_第10张图片

这些结果显示了我们的框架的灵活性和泛化不同攻击模式的能力。我们定义了一组936个通用特性,可用于各种僵尸网络攻击。对于我们实验的两个不同的僵尸网络,ML模型识别出与攻击相关的最相关特征,而不需要人类专家来明确定位这些特征。随机森林等模型为特征重要性提供了标准的度量标准,与缺乏可解释性的深度学习和神经网络相比,它们在模型可解释性方面具有明显的优势。在网络安全中,可解释性非常重要,因为大多数时候,人类专家都会分析ML系统的警报。

标记流准确的影响是什么?我们做了一个实验来测试数据标记的粒度如何影响分类结果。对于Rbot DDoS僵尸网络,我们可以访问受害机器的IP地址,因此我们可以确定哪些连接是僵尸网络相关的。我们将细粒度标记称为仅将僵尸网络连接标记为恶意IP的过程。我们将粗粒度标记称为将僵尸网络IP发起的所有连接标记为恶意连接的过程。

表9显示了随机森林细粒度标记和粗粒度标记的结果,以及每30秒聚合一次的特征梯度增强分类器的结果。结果表明,细粒度标记比粗粒度标记具有更好的分类性能。例如,在场景10和11上进行训练,并在场景4上进行测试时,粗粒度标记的F1分数为0.44,而细粒度标记的F1分数为完美。这两个分类器在这里对细粒度标记执行类似的操作。

论恶意网络流量分类的机器学习模型设计_第11张图片

5教训和一般建议

基于我们对来自Bro日志的僵尸网络分类的案例研究,我们强调了几个我们认为适用于ML用于网络安全的其他环境的指导原则。需要评估多个特性表示。直接从原始数据(如Bro连接日志)提取的特征并不总是得到最优的表示。在我们对内部IP地址进行分类的设置中,有一种表现很好,那就是按时间窗口和端口号进行特性聚合。我们还观察到,特征表示取决于可用的训练数据量。由于恶意类和良性类之间存在很大的不平衡,因此更小的时间窗口更适合聚合。然而,正确的特征表示和选择特征聚合的时间窗口取决于攻击类型。我们建议评估多个特性表示。

模型的可解释性。提供可解释性的模型是网络安全的首选,因为安全分析师需要调查ML系统发出的警报。理解为什么流被标记为恶意流可以显著加快调查速度。我们展示了如何通过识别最相关的特征来解释随机森林分类器,这些特征清楚地提供了关于僵尸网络活动的见解。

数据不平衡对监督学习提出了挑战。数据的不平衡给网络安全分类带来了巨大的挑战。简单的模型如线性模型不能很好地处理阶级不平衡。结果表明,即使在高度不平衡的情况下,随机森林和梯度增强等集成模型也能取得较好的效果。例如,在1:134的不平衡情况下(对Neris场景2进行测试时),我们通过梯度增强获得了0.97的精确度和0.95的召回率。

另一种分类方法是使用异常检测模型,该模型从合法的类中学习,并将攻击识别为异常。然而,Sommer和Paxson广泛地讨论了在网络安全中使用异常检测的困难。我们计划在未来的工作中研究异常探测器的性能。

细粒度的地面真值标记可能是监督学习成功的一个主要因素。正如我们所证明的,用于生成ground truth的数据标记是衡量监督学习算法成功与否的一个主要因素。如果可以获得攻击的详细信息(例如攻击者所接触的目标ip),那么分类器的性能就可以大大提高。然而,在大多数情况下,即使在运行受控的攻击模拟时,也很难准确地识别攻击流。恶意软件可以使用不同的协议联系各种IP地址,但受感染的机器也会生成相当数量的合法连接(例如,到窗口更新的连接)。

你可能感兴趣的:(论恶意网络流量分类的机器学习模型设计)