神经网络方法被广泛的应用到网络入侵检测系统。然而,神经网络的训练需要耗费极大的计算资源和时间。现有的基于神经网络的网络入侵检测方案大多是有监督的,这意味着需要领域专家来标注网络流量,并且随着时间的推移需要人工更新模型来适应网络环境的变化。
该论文提出了一种高效无监督的在线网络入侵检测框架Kitsune,Kitsune的核心算法KitNET利用集成AutoEncoder来学习区分正常和异常网络流量。
(图1. AutoEncoder网络结构示意图)
图1是一个最简单的AutoEncoder示意图。AutoEncoder是一种无监督的神经网络算法,通过训练这个网络,从而使输出尽可能接近输入,即尽可能重构输入样本。通过AutoEncoder可以学习出样本的抽象表达,同时达到降维的效果,从而捕获样本的本质特性。
(图.2Kitsune的基本框架)
本文所提算法的Kitsune的基本框架如图2所示,首先需要抓取二进制网络数据包并传给数据包解析器,数据包解析器解析数据包的基本信息,例如,包到达时间,包大小,网络地址,并将这些信息传递给特征提取模块。特征提取模块提取网络数据包的统计信息(共计115维特征)来表示网络数据包,接下来对特征进行分组,每一组特征反映了网络数据包的一类特性,并为每一组特征训练一个单独的AutoEncoder。再将每一个AutoEncoder的输出结果集成,作为新的输入,再训练一个AutoEncoder作为最终的异常检测器。
图3给出了Kitsune的核心算法KitNET的集成AutoEncoder框架。
(图3.KitNET算法框架)
在异常检测过程中,训练过程和测试过程如下所示:训练数据只包含正常网络数据包,训练的目标是输入和输出的均方根误差小于设定的阈值。在测试过程中,对于新的样本,如果均方根误差大于设定的阈值则为异常样本,系统发出警告。
实验证明,与传统的离线入侵检测方法相比,本文提出的无监督在线网络入侵检测方法Kitsune取得了更优的效果,能高效的检测各种类型的攻击,可以部署在网络入侵检测系统里。
本文所提到的代码,和文章如下:
开源代码
https://github.com/ymirsky/KitNET-py
所发表的论文:
Yisroel Mirsky, Tomer Doitshman, Yuval Elovici and Asaf Shabtai, “Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection” NDSS, 2018.
领取专属 10元无门槛券
私享最新 技术干货