来源:Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection,以色列本-古里安大学,2018年,NDSS ’18, 18-21 February 2018, San Diego, CA, USA
摘要:神经网络已经成为网络入侵检测系统(NIDS)的一种日益流行的解决方案。他们学习复杂模式和行为的能力使他们成为区分正常流量和网络攻击的合适解决方案。然而,神经网络的一个缺点是需要大量的资源来训练它们。许多网络网关和路由器设备(它们可能承载NIDS)根本没有内存或处理能力来训练甚至执行这样的模型。更重要的是,对已有的神经网络解进行监督训练。这意味着专家必须标记网络流量,并不时手动更新模型。在本文中,我们介绍了Kitsune:一种即插即用的NIDS,它可以在没有监督的情况下,以高效的在线方式检测对本地网络的攻击。Kitsune的核心算法(KitNET)使用了一组名为autoencoders的神经网络,以集成方式区分正常和异常的流量模式。KitNET由一个特征提取框架支持,该框架可以有效地跟踪每个网络通道(every network channel)的模式。我们的评估显示,Kitsune能够检测到各种各样的攻击,其性能堪比离线异常检测器,甚至在树莓派(Raspberry PI)上也是如此。这表明Kitsune可以是一个实用和经济的NIDS。
一、背景
对计算机网络的攻击数年来一直在增加。网络入侵检测系统(NIDS)是一种常用的网络安全系统。NIDS是一种设备或软件,用于监视通过某个策略点进行恶意活动的所有流量。当检测到此类活动时,将生成警报并发送给管理员。传统上,NIDS部署在一个点上,例如在Internet网关上。此点部署策略可以检测进入和离开网络的恶意流量,但不能检测通过网络本身的恶意流量。要解决这个问题,可以使用分布式部署策略,其中许多NIDSs连接到网络中的一组战略路由器和网关。
在过去的十年中,许多机器学习技术已经被提出来提高检测性能[2],[3],[4]。一种常用的方法是使用人工神经网络(ANN)进行网络流量检测。使用ANN的好处是ANNs善于学习输入数据中的复杂非线性概念。这使得ANNs相对于其他机器学习算法[5],[2]在检测性能上有了很大的优势。
使用ANN作为NIDS的普遍方法是训练它将网络流量分类为正常的或某种类型的攻击[6]、[7]、[8]。以下是在点部署策略(point deployment)中使用基于ANN的分类器的典型方法:
1)请专家收集包含正常流量和网络攻击的数据集。
2)训练ANN使用一个强大的CPU或GPU来区分正常流量和攻击流量。
3)将经过训练的模型副本传输到网络/组织的NIDS。
4)让NIDS对观察到的网络流量执行训练好的模型。
一般来说,分布式部署策略只有在NIDSs的数量能够根据网络的大小经济地进行扩展时才是实用的。实现这一目标的一种方法是将NIDSs直接嵌入到便宜的路由器(即,使用简单的硬件)。我们认为,使用这种方法使用基于ANN的分类器是不切实际的,原因如下:
(1)离线处理。为了训练监督模型,所有标记的实例必须在本地可用。这在一个简单的网络网关上是不可行的,因为一个小时的流量可能包含数百万个数据包。一些工作建议将数据卸载到远程服务器以进行模型训练[9][3]。但是,这种解决方案可能会导致大量的网络开销,而且不会进行扩展。
(2)监督学习。标签过程耗时且昂贵。更重要的是,什么被认为是正常的取决于NIDS观察到的本地流量。此外,在攻击中,随着时间的推移,新的攻击会不断被发现,因此恶意攻击流量存储库的持续可维护性可能不切实际。最后,分类是一种封闭的概念识别方法。换句话说,训练分类器来识别训练集中提供的类。但是,假设所有可能的恶意流量都可以被收集并放置在训练数据中是不合理的。
高复杂性。神经网络的计算复杂度随神经元数目[11]呈指数增长。这意味着部署在一个简单的网络网关上的ANN,在它的体系结构和它可以使用的输入特征的数量方面受到限制。这在处理高速通信的网关上尤其成问题。
鉴于上述挑战,我们建议开发一种基于ANN的网络入侵检测器,该检测器将以分布式方式部署到路由器上并进行训练,应遵守以下限制:
(1)在线处理。在训练或使用实例执行模型之后,实例立即被丢弃。实际上,在任何给定时间都可以存储少量实例,就像在流集群[12]中所做的那样。
(2)无监督学习。在训练过程中,没有使用标签,这些标签明确地显示了数据包是恶意的还是良性的。只要获取的信息不延迟处理,就可以使用其他元信息。
(3)低复杂性。包处理速率必须超过预期的最大包到达速率。换句话说,我们必须确保没有等待模型处理的数据包队列。
在本文中,我们介绍了Kitsune:一个新的基于ANN的NIDS,它是在线的,无监督的,高效的。在日本的民间传说中,Kitsune是一种神话中的类似狐狸的生物,它有许多尾巴,可以模仿不同的形态,而且随着经验的增加,它的力量也会增加。类似地,Kitsune有一个小型神经网络(autoencoders)的集成,这些神经网络被训练用来模拟(重建)网络流量模式,其性能随着时间的推移逐渐提高。
Kitsune的异常检测算法(KitNET)的体系结构如图1所示。首先,将实例的特征映射到集合的可见神经元。接下来,每个autoencoder尝试重构实例的特性,并根据均方根错误(RMSE)计算重构错误。最后,将rmse转发到输出自动编码器,该编码器作为集成的非线性投票机制。我们注意到,在训练Kitsune时,每次内存中存储的实例不超过一个。KitNET有一个主参数,它是集成中任何给定的自动编码器的最大输入数。该参数用于提高算法的速度,同时在检测性能上进行适当的权衡。
我们之所以使用autoencoders,是因为(1)它们可以在无人监督的情况下进行训练,(2)它们可以在重建失败的情况下用于异常检测。我们建议使用一组小型自动编码器的原因是,在相同的功能空间中,它们比单个自动编码器更高效,噪音更小。从我们的实验中,我们发现Kitsune可以将包处理速率提高5倍,并且提供一种可以与离线(批量)异常检测器竞争的检测性能。
综上所述,本文的贡献如下:
(1)一种基于自动编码器的简单网络设备NIDS (Kitsune),它是轻量级的,即插即用的。据我们所知,我们是第一个提议使用带有或不带有集成的自动编码器来在线检测计算机网络中的异常。我们还提出了核心算法(KitNET)作为一种通用的在线无监督异常检测算法,并提供了下载的源代码。
(2)一个动态维护和从网络流量中提取隐含上下文特征的特征提取框架。由于统计数据是在有阻尼的窗口上递增更新的,因此框架的内存占用很小。
(3)一种用于在无监督的情况下自动构建集成自动编码器的在线技术。该方法涉及到特征空间的增量层次聚类,簇大小的边界。
(4)实验在一种可操作的IP摄像头视频监控网络,物联网网络,以及各种各样的攻击的条件下进行测试。我们还通过在树莓PI上执行基准测试,演示了算法的效率和在简单路由器上运行的能力。