文献标识码:A
文章编号: 0258-7998(2015)05-0116-03
0 引言
随着移动设备的普及,Internet网络的数据量呈爆炸式增长,服务端的数据流量随之增加。为了成功和有效地利用流量数据,需要对数据进行处理与分析。目前许多攻击(如DDoS、PDoS)可对云端及网络造成毁灭性打击[1],因此对此类攻击的检测与阻止极为重要,通过异常流量检测来检测此类攻击是一个重要方法[2]。
Hadoop是一种应用极为广泛的大规模分布式数据处理系统[3],其可有效地扩展数据存储空间,采用平行化计算提高了数据的计算处理能力,并实现了MapReduce的云计算编程模型[4]。尽管已有较多的异常流量分析方案,但极少有基于云计算云端的异常流量检查方案。
本文基于Hadoop平台设计并构建了云端流量监控平台,采用HDFS存储大量的流量信息与异常流量信息,使用MapReduce进行分布式处理,提高了处理能力,较好地实现了对云端异常流量的监控,从而可防止对云端的攻击行为,提高了云端的安全性。
1 相关技术
基于随机自相似过程[5]的异常流量检测主要包括Hadoop、异常流量检测以及自相似随机过程三个部分。
1.1 Hadoop
Hadoop是一个开源的软件平台,支持分布式数据存储应用[6]。Hadoop主要由分布式存储(HDF:Hadoop分布式文件系统)和分布式处理(MapReduce)两部分组成。Hadoop框架分为MapReduce层和HDFS层[7]。
MapReduce是一种将大规模数据集并行运算的编程模型。指定一个Map(映射)函数,将一组键值对映射成一组新的键值对;指定并发的Reduce(归约)函数,以保证所有映射的键值对共享相同的键组。
1.2 异常流量检测(IDS)
IDS通过监控网络与目标系统(检测异常流量)来提高系统的安全性。异常流量检测主要分为两种类型:基于签名的异常流量检测系统(ST-IDS)[8]和基于异常的异常信息检测系统(AT-IDS)[9]。ST-IDS利用已知的攻击模型来检测攻击,通过预建立已知攻击的签名库寻找相应攻击;AT-ID通过检测超过预设阈值的不正常数据行为检测异常流量。ST-IDS仅对已有攻击有效,对一些新的攻击效果欠佳,因此本文采用AT-IDS方案。
1.3 自相似随机过程
许多自然与人造系统中均有LRD(Long-Range Dependence)的自相似过程,其中Internet网络中的数据流量即为一种自相似随机过程[10]。
目前,网络流量已被严格定义为离散时间上的二阶或近似二阶统计的自相似过程。设{X1,X2,…}表示广义平稳时间序列,其离散时间设为i=1,2,3…。设E[Xi]=EX,Var[Xi]=VarX,ρk=E[(Xi-EX)(Xi+k-EX)]/VarX分别表示该序列的均值、方差和滞后k偏自相关系数。
2 现有问题与本文方案
2.1 现有问题与本平台方案
(1)大数据存储:流量的实时监控将产生大量的流量数据,本方案采用HDFS和HBase将流量数据进行分布式存储。
(2)处理能力:需要极强的处理能力。本方案采用平行架构MapReduce。
(3)数据的变化性:需要存储结构化的数据、非结构化的数据以及不同形式(文本、图像、视频等)的数据。本方案采用非关系数据库来存储各种数据,如NoSQL。
2.2 本异常流量检测与分析平台
2.2.1 本平台总体结构与程序设计
图1所示为LAN环境下的本监控平台总体框架图,主要模块包括:数据收集模块、存储模块、分析模块和GUI模块。本平台基于Java语言实现。
(1)数据收集模块:利用SNS(如微博)公开的API或分布式文件收集工具来收集网页数据、微博数据以及系统日志信息。
(2)存储模块:对流量数据进行管理,并将数据以文件形式或裸数据格式进行存储。
(3)分析模块:将分布式的数据进行分簇与聚类,对数据进行摘要提取、预测分析、自然语言处理、文本处理等,基于MapReduce实现AT-IDS来检测异常流量。
(4)GUI:将流量变化的实时状态、统计结果以及控制界面友好地向用户展示。
图2为本平台的详细结构图,其主要功能是检测与分析异常流量,同时也提供一些相关的附加功能,如网络攻击工具(可产生伪随机数量的异常流量)。使用Jpcap分析网络数据包,由于本平台基于Java语言开发,因此本平台是系统不相关的,可运行于Linux与Windows系统(只要安装JVM即可)。Jpcap将网络数据包的细节隐藏,将许多网络数据包的类型和协议等信息提取成Java的类。Jpcap内部实现了LibPcap系统库的API,本平台通过JNI来调用Jpcap,从而提高了JAVA的运行速度。目前广泛使用的AWT(窗口提取工具)和Swing的运行速度较慢,因此采用SWT(Standard Widget Toolkit)建立GUI控制界面,提高了系统的运行速度。
图3为本平台检测、分析、传输、显示异常流量的程序框图。
2.2.2 Map/Reduce设计
图4为本平台的Map/Reducer程序,其功能是利用Map/Reduce将每天的流量信息以文件形式存储于HDFS中。首先,使用Mapper周期性地从所有存储流量信息的文件中提取流量的部分信息(目录、数据包协议、数据包数量、数据包大小等);然后通过Reducer提取异常流量并保存(可通过数据包大小来判断异常流量)。
3 试验与分析
3.1 流量变化界面展示
图5为软件实时流量监控的流量变化界面,图中所示曲线图是监控端口每秒钟流量的变化。通过协议获得每个数据包的大小与数据包总数量,然后进行统计计算获得每秒的总流量。将每秒的流量分为3种类型(正常流量、异常流量、混合流量)进行存储,将每天的统计结果存储于HDFS中。
3.2 对异常流量的监控性能量
将DDoS攻击注入局域网,用来测试本平台的异常流量检测性能。使用2个本监控平台对同一个局域网中的同一个端口进行监控(共监控10 h),对其中一个监控平台的输入接口注入一段时间的DDoS攻击。
图6所示为10 h受攻击的端口流量变化统计结果。图中可明显看出受攻击端口的流量变化剧烈,可见本平台可实时反应出流量的状态,并可检测出异常流量。
4 结束语
本文基于Hadoop设计并建立了云端流量监控平台,采用HDFS存储大量的流量信息与异常流量信息,使用MapReduce进行分布式处理,提高了处理能力,较好地实现了云端的异常流量的监控,从而可防止对云端的攻击行为,提高了云端的安全性。通过对流量数据存储、检测与分析可成功检测出有威胁的攻击,保障了云端的安全。本平台基于开源的Hadoop实现,成本较低,并且基于Java语言实现,可成功移植于各种主流操作系统,因此具有广泛适用性。
参考文献
[1] 张永铮,肖军,云晓春,等.DDoS攻击检测和控制方法[J].软件学报,2012,23(8):2058-2072.
[2] 陈鸿昶,程国振,伊鹏.基于多尺度特征融合的异常流量检测方法[J].计算机科学,2012,39(2):42-46.
[3] 赵晓永,杨扬,孙莉莉,等.基于Hadoop的海量MP3文件存储架构研究[J].计算机应用,2012,32(6):1724-1726.
[4] 李玉林,董晶.基于Hadoop的MapReduce模型的研究与改进[J].计算机工程与设计,2012,33(8):3110-3116.
[5] 高茜,冯琦,李广侠.基于组合模型的自相似业务流量预测[J].计算机科学,2012,39(4):123-126.
[6] 凃云杰,白杨.基于Hadoop和双密钥的云计算数据安全存储策略设计[J].计算机测量与控制,2014,22(8):2629-2631.
[7] 廖彬,于炯,张陶,等.基于分布式文件系统HDFS的节能算法[J].计算机学报,2013,36(5):1047-1064.
[8] 方莹.基于应用层签名特征的 P2P 流量识别[J].Computer Engineering and Applications,2012,48(3).
[9] 冶晓隆,兰巨龙,郭通.基于主成分分析禁忌搜索和决策树分类的异常流量检测方法[J].计算机应用,2013,33(10):2846-2850.
[10] 王建荣.基于自相似特性的片上网络流量分析与建模[D].成都:电子科技大学,2011.