论文题目:Network traffic analysis based on collective anomaly detection
原文地址:https://ieeexplore.ieee.org/document/6931337#deqn6
论文摘要
人们对数据挖掘和网络管理社区越来越感兴趣,以改进现有技术,以便及时分析潜在的流量模式。异常检测是在计算机网络入侵、基因表达分析、金融欺诈检测等多个领域检测异常的一种技术。本文开发了一个框架来发现有趣的流量,这看起来是合法的,但目标是破坏正常的计算环境,如拒绝服务攻击。本文提出了一种基于X均值聚类的群体异常检测框架,它是K均值算法的一个变种。通过与现有技术和基准性能进行比较来验证本文的方法。实验结果基于麻省理工林肯实验室广泛接受的DARPA入侵检测数据集。
介绍
网络流量分析是推断网络通信中的模型的过程,是网络管理源保持其网络流畅的工作中的重要部分。网络专业人员也要理解潜在的流量模型,以便于估算网络能力和网络防护。有效的网络流量分析在网络安全方面有重要的影响。
本文根据Kendall的文章——A database of computer attacks for the evaluation of intrusion detection systems,将网络攻击分为以下主要四类。
1. 拒绝服务(DoS)
这是对网络或主机资源的一种滥用行为,目的是破坏正常的计算环境,使得服务不可用。一个简单的例子当服务被大量的连接请求占用时,合法用户的web服务就会被“拒绝”。
2. 探测
这种攻击用来收集目标网络或主机的信息,也就是具有侦察目的。通常作为实际攻击的第一步,探测攻击本身没有危害,但是在收集到有价值的信息后,攻击者会根据收集的信息发动更严重的攻击。
3. User to Root
是指攻击者获取管理源账户来操纵或者滥用重要资源,为实现这一目的,通常使用社会工程学的方法或者密码嗅探,得到一个普通账户,然后利用漏洞获取超级用户权限。
4. Remote to Local(R2L)
是指攻击者获取目标机器的本地使用权,攻击者有权通过网络向目标主机发送数据包。通常,攻击者会使用自动化脚本,通过暴力破解等方法对密码进行尝试猜解,一些复杂的攻击会安装嗅探工具获得密码。
如何有效的从网络流量中区分是何种攻击从而防止网络遭受巨大破坏是一项研究挑战,异常检测是一种方法。异常检测可以宽泛地分为两类——有监督的和无监督的。有监督学习是一种机器学习方法,即通过有标签的训练数据推断出一个函数。无监督学习试图从无标签的数据中找到隐藏结构,这也是和有监督学习的明显区别。现在,很多网络异常检测技术都是依赖于有监督学习,这需要大量有标签的训练数据,但这些数据是很难获取的。更重要的是,由于网络攻击的疯狂增长和其他的一些漏洞,这些技术不能发现0day攻击。
在这篇文章中,作者注重识别拒绝服务攻击。根据前面所述攻击种类的特点,拒绝服务攻击的流量是远远高于其他攻击的。这也就导致无监督学习在检测拒绝服务攻击时表现不好,有很高的误报率。关键问题是,在大多数的无监督异常检测技术中有一个假设前提,就是正常流量是远远多于异常流量的。然而,在拒绝服务攻击中,这种假设是不成立的。因为拒绝服务攻击的固有特性,以无监督的方式来区分正常和异常流量是一种挑战。
本文的主要贡献就是基于x均值聚类,使用集合异常的概念,准确识别出拒绝服务攻击。
异常检测和聚类
异常是指数据模型不能很好的符合已经被定义好的正常模型。异常可以通过很多不正常的活动产生,例如信用卡欺诈,手机欺诈,网络攻击等。异常可以分为以下几种。
1. 点异常
当一个特定的数据偏离了数据集的正常模型时,就可以认为是一个点异常。以汽车油耗为例,平常油耗为每天5升,如果某一天油耗为50升,显然这就是一个点异常。
2. 上下文异常
当一个数据在上下文中表现异常,但是在其他时间是正常的,就被成为上下文异常。例如,在节假日期间的高消费就是正常的,而如果平时出现了高消费,就可以被认为是一种异常。
3. 集合异常
当一个相似的数据集合关于整个数据集行为反常,那么这个集合就被认为是集合异常。可能单个数据本身并不是异常的,但是它存在于异常集合中,因此被标定为异常数据。例如,在心电图中,低值的长时间存在被认为是与早搏相关,但是一个低值并不认为是异常的。
接下来,介绍在识别正常流量和异常流量中常用的技术——聚类。给定一个模型集合,聚类就是尝试找到X的k部分,