论文部分内容阅读
网络安全一直是全世界最受关注的问题之一,随着互联网技术的飞速发展,网络安全环境也急剧恶化。针对当前网络环境,设计一个网络异常流量检测系统是急需解决且有意义的事情。本文设计了基于spark异常流量检测系统,针对主机的数据包特征进行采集,然后预测并显示结果,告知用户是否具有异常流量。系统是一个准实时的流式系统,主要分成五个模块:采集模块,后台收集模块,预测模块,报表模块,模型训练模块。(1)采集模块基于JnetPcap技术分析采集IP包的31维特征,该技术具有跨平台的优点,在Windows和Linux系统下均能采集。采集的特征分为三类,分别是TCP连接的基本特征12维,基于时间的数据包的统计量8维,基于主机的数据包统计量11维(具体见附表)。采集的特征发送至后台收集模块。(2)后台收集模块负责集中特征信息,初步过滤后发送至Kafka topic;预测模块将消费该topic,然后对流量进行预测。(3)预测模块包含两个模型。KMeans RandomForestModel是监督学习模型,其优势在于预测准确度高,同时,该模型还是级联模型,包含算法K-Means和Random Forest。StreamingKMeansModel使用无监督学习算法Streaming K-Means实现,该模型的优势在于不需要标签数据,在对流量预测的同时也会训练模型,让模型一直学习;该模型具有参数衰减值a,可以使距离当前时间越近的数据对模型影响越大;其中两个模型的实现都基于本文引出的新特征。(4)报表模块对预测结果进行展示;显示内容包括全部流量的报表、异常流量的报表、StreamingKMeansModel模型中各个类的实时权重的直方图,以及各分类流量的饼图。5训练模块与其他模块不同,该模块不在流水线上工作,该模块使用有标签样本数据集对模型进行训练,从而给预测模块提供支持。最后,本文采用IDS2017(Intrusion Detection Evaluation Dataset)数据集中部分数据,验证两个模型KMeansRandomForestModel、StreamingKMeansModel有效性,其中KMeansRandomForestModel模型达到97.4%的准确度,无监督模型StreamingKMeans Model达到70.2%的准确度。此外、本文搭建基于三台虚拟机的hadoop,spark系统,并在此基础上进行实验,实验结果表明:(1)各模块相互协调工作,系统可用。(2)随着使用虚拟机数量的增加,预测处理速度有所提升。