论文部分内容阅读
随着互联网的高速发展,安全性是越来越重要的一个话题。传统的网络安全是针对个人用户和企业用户,其使用的主要技术包括系统入侵检测、防病毒软件和防火墙。但这些安全措施通常并不能减少大规模通信网络(即骨干网络)中的非正常流量。为了从根本上降低网络中的异常流量,减少或消除用户所遭受的各类攻击,大规模通信网络与路由交换设备必须具备异常流量的检测与识别能力。流量的异常操作通常有如下两种判断方式:a)判断是否存在异常流量,这称之为流量监测;b)判断流量异常的类型,这称之为流量识别。目前流量监测按照检测的粒度主要分为三种类型,分别是:基于package、基于flow、基于traffic。本文提出了一种更细粒度的、基于动态session window来聚合IP Flow筛选特征的算法,并结合SVM算法来检测DoS攻击。同时,为了支持筛选特征的计算操作,本文扩展了Spark Stream,使其支持Stream上的SQL查询操作。在论文的研究过程中,对现有特征的选择算法、Spark Stream、Hive工作原理以及SVM核函数的选取进行了充分调研,并深入了解了目前的流量检测。首先,传统的基于熵的特征选取算法,是把不同的IP源聚合在一起来计算熵信息。这样的实现方式存在一定的缺陷,当异常发生的时候,还要再进一步分析才能知道攻击源,被攻击目标。论文根据sessionkey(srcIP,desIP,srcPort,desPort)来聚合不同的flow数据记录,进而获取网络流数据的信息熵作为训练特征来解决该问题。另外目前的研究表明,异常流量占总流量的比率和检测效果存在正相关,即当异常流量占比很低的时候,检测效果一般也很差。本文提出的session window的方式很好的解决了这个问题。最后,面对瞬间产生的大量的数据集,目前缺少主要的底层计算模型的支持,而且在异常检测算法方面也不够高效,因此本文在Spark Stream的基础上进行了扩展,支持Stream上面的SQL操作,并且支持连续查询和窗口操作。最后,本文对提出的特征选取算法进行测试,与传统的ID3和C4.5算法进行性能对比。对于特征选择结果好坏的判断,最直接有效的评估标准是比较算法所选择的特征子集与最优特征子集的相似度。但在实际应用中,最优特征子集没有评估标准。因此,为了验证特征选择算法的有效性,本文使用一种间接的验证方法,即通过所选择的特征子集在One-class SVM分类算法中的AUC指标来衡量特征选择的好坏。另外本文模拟了异常流量所占窗口总流量的不同比例,来说明基于session window的特征选择算法在不同的异常流量比例下都很稳定,同时实验的结果也表明本文基于Spark Stream的SQL扩展,工作良好,能很好的完成计算需求。