一种集成AutoEncoder的在线网络入侵检测方法

神经网络方法被广泛的应用到网络入侵检测系统。然而,神经网络的训练需要耗费极大的计算资源和时间。现有的基于神经网络的网络入侵检测方案大多是有监督的,这意味着需要领域专家来标注网络流量,并且随着时间的推移需要人工更新模型来适应网络环境的变化。

该论文提出了一种高效无监督的在线网络入侵检测框架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.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105G0H1RF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券