大数据分析的漏洞检测方案设计*
2020-03-24郑俊华武娟红
郑俊华,武娟红
(山西职业技术学院,山西 太原 030006)
0 引言
随着信息化的发展,信息安全问题已经引起了人们的关注。安全漏洞是人们在软件、硬件等具体工作产生的错误,黑客等不法分子能够通过这些漏洞在未授权的情况下破坏系统,从而对信息的安全产生了很大的威胁[1-5]。漏洞检测就是利用一定的方法在漏洞被不法分子利用之前能够发现漏洞并进行修补。目前,按照检测方法的不同可以将检测方法分为:静态检测方法、动态检测方法、混合检测方法。其中静态检测方法具有方便快捷的优点,但存在检测不全面,有较高的误报率和漏报率。动态检测方法具有保密性强的优点,但其无法检测未发生攻击的漏洞。混合检测相对于静态和动态检测技术具有较高的检测准确度,但是需要人工确认是否存在漏洞,检测效率较低[6,7]。当前网络与信息安全领域,正在面临多种挑战。我们已经切实地迎来了一个海量数据的时代,急剧膨胀的网络流量数据,各种类型的安全数据越来越多,传统的安全分析能力越来越力不从心。随着数据量越来越大,数据种类越来越多,处理速度越来越快,传统的数据安全分析技术已经不能适应现在的网络环境,大数据分析技术,在运算成本、执行力度、存储容量等各个方面具有绝对的优势,应用大数据分析技术已经成为国内外研究的热点之一[8]。
本文提出了一种基于大数据分析的漏洞检测技术,通过对网络的实时数据流进行分析,并利用漏洞的攻击特征从而提高漏洞检测效率。
1 漏洞检测方案设计
传统的漏洞检测技术,存在很强的盲目性,难以获取所有测试接口,且针对如今网络中海量数据的情况,要提高安全设备的检测能力,势必要增加足够数量或容量的检测设备,增加网络部署的成本。为解决传统漏洞检测技术中存在的问题,设计了一个新的基于大数据分析的漏洞检测方案,如图1所示。主要包括特征提取、大数据分析平台与设备处理模块。
图1 基于大数据分析的漏洞检测方案
1.1 特征提取
攻击特征是网络攻击数据的一些特殊字符,能够准确地描述一种攻击的形式。针对于每种网络攻击,都需要通过对其攻击行为和方式进行分析从而提取其攻击特征。纯字符型的攻击特征由字符串组成,而混合型的攻击特征则包括字符信息、主机状态等信息。在网络环境中,纯字符型的特征更容易实现对恶意攻击的检测。
本文将根据漏洞利用的过程有针对地对一些利用漏洞的攻击行为进行分析,提取其攻击特征,主要检测了TCP数据包和UDP数据包的主要参数。对TCP数据包和UDP数据包涉及的任意一次固定时间段内收集的所有数据包信息进行预处理,将其特征向量化,为大数据分析平台的数据简化和整理奠定了基础。
1.2 大数据分析平台
大数据分析平台是本方案的核心部分,通过本平台分析后,将不同的流量检测结果转发给安全设备处理模块。通过决策树分类算法的应用对数据流量进行分析,采用机器学习算法对数据进行分类,建立异常行为的预测模型,对攻击异常行为进行筛选。大数据分析平台架构主要由采集层、整理层和计算层三部分组成。
采集层,主要负责将网络中的多种数据(本地日志数据、流量数据、用户行为模式数据等)进行抽样、整理及提取有特征的信息。通过数据包嗅探和Flume模块完成,其中数据包嗅探模块将各个服务器端口上抓取的无用信息过滤掉,留下有效的特征信息;Flume模块对收集的海量数据进行简单的处理后发送到整理层。
整理层,主要采用分布式存储设备Kafka接收收集层的数据,一方面将接收的数据整理成消息队列,以备计算层调用;另一方面用作存储缓存区,待计算层有计算能力时将数据发送给处理层,防止大量的数据流传入计算层超出计算层的处理能力使计算层崩溃。
计算层,主要采用Spark-streaming平台来达到流式处理的需求。通过机器学习训练和使用分类算法,将大批量数据进行计算实现对漏洞的高效检测。本文选择CART决策树算法,Spark-streaming将由Kafka传送到计算层的连续数据流转化为Dstreaming分片,并把作业分成多个Stage。采用将Stage编辑成任务集的方式传给TaskScheduler,通过TaskScheduler将任务发送到计算节点上得到分类结果。
1.3 安全设备处理模块
该模块主要对大数据分析平台检测出的正常数据和有安全威胁的数据分别路由,从而对送至的数据进行拒绝、转发或丢弃。主要由安全资源池和安全设备路由两部分组成。随着云计算的发展,安全资源池可以是网络中物理安全设备、安全中间件和虚拟化安全设备的集合。安全设备路由策略是基于SDN网络,采用了神经网络最短路由算法、安全设备最短路由算法、旁路式最短路由算法,实现个性化调用网络安全设备的一种高效策略。
2 结果与讨论
2.1 实验环境
通过试验的方式对本文方案的性能进行检测,网络拓扑结构如图2所示。试验平台中一共部署5台安装了Ubuntu16.04系统的服务器,2台服务器装有Flume-1.6.0数据采集模块作为被访问服务器,1台作为数据处理模块部署Kafka-0.11;2台作为数据计算模块并安装Spark-2.4.0系统。使用5台虚拟机对被访问服务器的正常下载、上传、访问等操作;2台安装攻击软件的计算机对被访问服务器分别实行IP扫描攻击、FIN扫描攻击、端口扫描攻击、Land攻击、WinNuke攻击和DNS Query Flood这6种方式的攻击。
图2 实验网络拓扑结构
2.2 实验数据和结果
为了获取不同信息量的网络事件,通过Kafka将时间窗口大小分别设置为20 s、40 s、80 s。通过由2000次为异常事件和4000次已知的正常事件随机组成的机器学习训练集,训练Spark平台上的CART决策树算法,并使用200次正常事件和100次异常事件进行校验,分类预测模型的准确率达99%。本实验中使用合法流量负载在5 Mb/s到 6 Mb/s的5台虚拟主机访问目标服务器,2台攻击PC进行上述6种攻击行为。为了对实验的准确性进行验证,分别对时间窗口为20 s、40 s和80 s的2000次事件集的系统的运行时间、漏报率、误报率进行记录,结果分别如表1、表2、表3所示。
表1 20 s的测试结果
表2 40 s的测试结果
表3 80 s的测试结果
由表1、表2和表3可以看出,本系统对WinNuke攻击、Land攻击和DNS Query Flood的漏报率为0%,IP扫描误报率小于0.8%,端口扫描的误报率不高于1.5%,对FIN扫描攻击的误报率不高于2.2%,对DNS Query Flood的误报率不高于2.5%。
3 结论
设计了一种基于大数据分析的漏洞检测技术,通过对网络的实时数据流进行分析来检测异常流量。实验过程中,首先对数据进行简化、采集和缓存后,利用大数据处理平台Spark-streaming对大批量数据进行计算。通过试验发现,该平台对这IP扫描攻击、FIN扫描攻击、端口扫描攻击、Land攻击、WinNuke攻击和DNS Query Flood这6种方式的攻击的误报率和漏报率小,具有较高的应用价值。