当前位置:首页 期刊杂志

一种关于Hadoop的流量异常分布式检测系统架构与设计

时间:2024-08-31

钟唐强

(漳州职业技术学院,福建漳州,363000)

0 引言

Hadoop是一种分布式系统基础架构,用户能够在完全不了解分布式的底层细节的情况下开发分布式程序。Hadoop非常适合用于处理大量数据,具有高效、可靠和容错高的优点,弥补了传统检测的不足。基于此,本文对流量异常分布式检测系统架构进行分析与设计。总体来说,其技术核心设计在于HDFS和MapReduce。HDFS为数据提供存储,而MapReduce则为数据提供计算。在该检测系统的设计过程中主要运用Hadoop技术的MapReduce分布式并行计算模型,能够可靠高效的并行大规模数据集。该系统有效地解决了数据收集、存储于异常分析等问题,融合了Hadoop与数据挖掘的特色,发挥了分布式计算框架的高扩展性与高吞吐性优势,利用数据挖掘算法深入检测网络异常信息,监控攻击行为,提高安全性,形成了一套较为完整且准确度较高的收集、存储、分析与特征创建过程。

1 检测系统应用技术

1.1 Hadoop

Hadoop系统架构分为HDFS层与MapReduce层。Map Reduce能够并行运算大规模数据集,指定一个Map函数,将键值映射成新的键值对,指定并发的Reduce函数,从而保证其他映射的键值对实现键组共享。

1.2 IDS

IDS对异常流量检测进行监控来强化系统安全系数,一般分为ST-IDS和AT-ID两类。ST-IDS利用已知攻击模型来检测,采用预创建已知攻击签名库发现攻击;AT-ID对超过预设阈值的非正常数据行为进行检测[1]。目前可知,ST-IDS对已知攻击具有良好的实效,但对新的攻击形式缺乏效果,所以一般采用AT-ID方法。

2 检测系统设计意义

(1)利于提高分析速度。信息技术快速发展,数据量与网络流量爆炸式正常,面对海量数据,传统单机处理模式已无法在合理时间内处理完数据并得到结果,数据处理速度成为入侵检测过程的难点,计算时间与复杂度也随着样本数量增加而递增,无论对于信息收集、数据存储以及分析处理而言,都存在时间与效率的问题。分布式检测为数据处理的时间与效率问题带来福音,实现了信息的分布式收集、存储与处理,这样既可实现多数据源收集,也可获取足量信息提高检测准确性。

(2)利于融合分析结果。随着攻击方式变体为可持续攻击,传统异常检测与误用检测方式难以发现新出的攻击方式,利用机器学习算法可通过自主学习不断提高已知样本训练度及时发现新的攻击方式[2]。通过融合多源数据,将来自传统检测代理器与不同收集源的数据信息进行数据挖掘,从而发现潜在异常流量。

(3)利于提高系统伸缩性。根据系统规模与流量情况,部署相应的分布式检测系统,随着网络规模与数据量的增大,可充分利用分布式计算的伸缩特性,通过添加计算节点来扩展异常流量系统的性能。

3 检测系统架构与设计

如图1所示,构建基于Hadoop的流量异常分布式检测系统,该系统具体包含NetFlow数据收集服务器、Hadoop平台与NetFlow数据分析服务器三部分。

图1 基于Hadoop的流量异常分布式检测系统设计

3.1 数据收集

实验数据主要来源于模拟网中的真实数据与网络攻击数据。NetFlow收集到的流量信息包含了源/目的主机(端口)的IP地址与协议服务类型,均体现流量异常检测的特征。为了使流量选择具有代表性,在数据收集时选择3时、9时、15时、21时这4个整时时间段。对于网络攻击数据,Lakhina对流量当口中的异常情况进行分析,选取其包数据的头部特性合成手动加工成的异常流量。基于此经验,可通过工具手段合成出部分攻击流量[3]。分布式拒绝攻击一般呈现源主机IP地址分散、目的主机IP地址集中的特点,而蠕虫病毒则会呈现放大扩散的特点。根据这些特点可进行手动加工模拟合成类似攻击流量。

3.2 数据预处理

对所得数据包数分割后得到包单元,根据数据包中的流量特点分割(应根据流量异常检测指标进行分割),随后根据所得数据包量便可得到包单元DFN值。

3.3 流量异常分布式检测系统

Hadoop流量异常分布式检测系统包括HDFS、HBase、MapReduce等系统模型[4]。NetFlow在对数据收集进行预处理后,将数据上传至HDFS中并删除期满数据。Hadoop流量异常分布式检测平台的功能包括:(1)对预处理之后的数据进行上传存储;(2)把存储数据代入进MapReduce模型中,并将所得数据输入进NetFlow分析服务器中。

3.3.1 NetFlow数据存储

如图2所示,HDFS是分布式文件存储系统,因其高吞吐与高容错的特性,所以能支持较多的设备并适用于具有海量数据集的程序。目前HDFS所支持的接口较多,除JAVA以外,还有C、FUSE等接口。根据HDFS整体结构,未有特殊说明的情况下均默认系统中的“块”个体所占为64M。当存储文件大小小于64M时,一般也只占用一个“块”的量[5]。因“块”大小可更好地定位文件,所以64M最为合适。HDFS构成主要包括Namenode(管理HDFS存储文件)与 Datanode(向 Namenode反馈存储信息)两大部分。

图2 HDFS系统架构

Sqoop能够使数据传输导入更加便捷。将预处理后的数据保存在NetFlow服务器上,随后将数据上传至HDFS系统内。(1)HDFS对 Namenode开启远程调用;(2)Namenode反馈“块”信息;(3)在选取的“块”信息读取完后,关闭与Datanode的连接;(5)读取“块”信息时系统会验证,出现问题会报错并从下个Datanode继续读取。HDFS的数据传输分配管理特性良好,NetFlow服务器收集完数据后,根据特定时间会将数据上传到HFDS进行后续分析。HDFD能够实现良好的交互性,通过DFSShell来处理数据,例如更改权限、上传复制等。应将NetFlow收集到的数据存储至HDFS系统中,将分类后不同特性的集成于一个子文件放于NetFlow文件之下。

3.3.2 NetFlow数据分析

MapReduce可提供有关MapReduce模型的API接口,常用接口包括Mapper与Reduce两类。Mapper处理输入数据,将输入初始值映射出新的对应特性数值,一般用于对输入数据键值进行调用;Reducer主要负责合并分割后的数据,其过程为:借助互联网合并Mapper调用之后的数据,合并同特性的值后通过Reducer进一步处理数据,Reducer中较为常用的方法是对每个特性值都进行调用,随后以“继承”来重写方法。

3.4 导出结果

NetFlow对数据收集与预处理后,通过运用MapReduce算法,将数据导入到MapReduce中,得到结果后将数据上传并存储进HDFS内,前两步操作中的数据存储始终以文件形式存储,但并不能服务器中的数据进行有效的结果分析。

3.4.1 Sqoop工具

Sqoop工具能够将数据提取到Hadoop内,这些数据既能被MapReduce分析也能被其他程序应用。Sqoop的操作流程为:(1)Sqoop会在MapReduce工作时将表导入MapReduce中对其进行记录,同时也会将数据传输进HDFS内;(2)java包含有对关系数据库访问的API接口。

3.4.2 NetFlow数据导出

将数据从HDFS中导出时,应在关系数据库中创建存储表。由于存储类型具有限定性,因此要事先分析数据,界定那些数据可以存储。(1)在导出处理后的数据之前,Sqoop会根据导出目标生成与其相对的“类”,该“类”的作用是解析并转移导出数据;(2)当开始启动MapReduce任务时,Sqoop会自动解析读取后的数据,这样就可提取导出Hadoop系统中处理的数据结果;(3)将数据导出后再将其导入到MySql关系数据库之中,由此能够对实验结果数据有所直观感受,以便更好地分析数据。

4 结果分析

如图3所示,能够直观看到网络正常/异常时两类熵值的分布情况。当网络处于正常时,源IP地址的特征熵值分布处于平稳,基准线处于4~5左右;当网络异常被端口扫描时可观察到源IP地址的特征熵值出现了剧烈波动,熵值分布处于较低状态。

图3 正常/异常源IP地址熵值分布与端口扫描下源IP地址分布

如图4所示,能够直观看到网络正常时两类DFN熵值都较为平稳。网络流量的特征熵值与特征DFN熵值也都维持在平稳阈值之内,流量分布的起伏变化较小。

图4 正常流量特征熵值分布

如图5所示,能够直观看到网络异常时两类DFN熵值均处于剧烈波动状态,表明当网络异常时熵值与特征DFN值都出现了稳定性破坏,数据分布超出正常基础阈值。实践表明,正常状态下各种特征熵值与特征DFN值都存在一个分布范围,而网络受到攻击时,流量特征熵值与特征DFN值的稳定性均会受到影响。

图5 异常流量特征熵值分布

5 结论与展望

本文基于Hadoop设计了流量异常分布式检测系统,采用HDFS存储异常流量信息,通过MapReduce进行分布式处理,使处理能力得到显著提高,实现了异常流量监控,能够有效防止攻击行为,提高了安全系数。在网络正常时,可知流量特征熵值与流量特征DFN值的分布变化小,基本处于基础阈值之内,稳定性较好;在网络异常时,可发现流量特征熵值与流量特征DFN值的分布会剧烈变化,面对攻击会出现各种变化,显著超出基础阈值,稳定性被破坏。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!