APP下载

Spark技术在高校网络安全管理中的应用

2019-09-19殷红花

电脑知识与技术 2019年20期
关键词:聚类算法大数据

殷红花

摘要:在某高校的网络安全管理中,引入Spark技术,提出一种属性相异度聚类算法,结合二者,完成多源安全日志分析系统的设计架构和开发应用,并通过测试分析,Spark技术完全可以满足某高校的安全管理工作需要,适合应用于多源安全设备的大数据量级的日志ETL和分析。

关键词:Spark;聚类算法;大数据

中图分类号:TP393      文献标识码:A

文章编号:1009-3044(2019)20-0291-03

开放科学(资源服务)标识码(OSID):

Abstract: In a college network security management, the introduction of the Spark technology, an attribute phase dissimilarity clustering algorithm is put forward, combining the two, to complete the multi-source security log analysis system design, architecture and application development, and through the test and analysis, the Spark technology can meet the needs of the safety management of a college, is suitable for the large data applied in multi-source security equipment level of ETL and log analysis.

Key words: Spark; clustering algorithm; big data

1 背景

隨着互联网的普及,人们的一切活动都依托着互联网技术。互联网开放、交互及分散的特性,使得人们可以快速地共享交流信息,但同时也加剧了网络安全威胁。每年由于安全事件造成的各种损失呈指数级增长,尤其是“棱镜门”事件的发生,国家越来越重视信息化安全问题,从2014年开始,中央网络安全和信息化领导小组宣布成立,再到2017年,我国网络安全法颁布实施,在国家层面上,已将网络信息安全上升至一定的高度,这些举措也使得社会各界更加重视网络安全。

高校作为国家网络的重要阵地,提升网络安全也是责无旁贷和刻不容缓。现实的高校网络环境中部署了防火墙、IPS、WAF等安全设备,学校内外网络均由这些设备构成一层层防护圈[7]。这些网络安全设备可以记录运行状态数据和异常事件数据,这些数据均使用日志的形式加以保存,通过日志可以分析出诸如攻击源、攻击目的、网络状况、安全解决方案等等信息,以供网络管理人员参考。但对于网络安全员而言,分析这些日志会遇到数据量大、分析烦琐、准确度难把控及无法整体掌控网络实时状况等问题。针对这些问题,许多研究人员也提出了各种解决方案[1][2][3],但这些方案大多缺乏统一处理多种安全设备日志,聚合效果不足,利用大数据技术多采用Hadoop的框架,不同业务需求需要不同模块配合解决,造成资源浪费。本文在某高校的校园网的改造中,采用Spark技术,结合日志聚类算法,构建一套多源安全日志分析系统,具备对多种安全设备日志进行分析,并通过功能性能测试,说明Spark技术完全满足于高校的网络安全管理的实际需求,可以有效地解决多源安全设备及大数据日志带来的诸多问题。

2 Spark技术概述

Apache顶级开源项目中的Spark属于一种通用的计算引擎,其主要为了快速地对大数据进行处理。Spark由加州大学伯克利分校AMP设计开发和贡献的类Hadoop MapReduce的并行框架,除了具备Hadoop技术中的MapReduce的优点,相较于Hadoop MapReduce,其Job的中间输出值直接被保存在内存里,因此不需要频繁的Read/Write HDFS,十分适宜用于不断迭代的MapReduce算法。从宣传上看,Spark具有的内存计算比MapReduce快了近100倍,硬盘计算快了10倍以上的速度,许多实际环境测试虽然达不到以上倍数,但也是比MapReduce快很多的,而且Spark支持R、Java、Scala、Python等高级编程语言编写程序,支持流计算,完全可以应用于要求大量的、低延迟的数据分析应用场景。如图1所示,Spark技术主要由Spark(Spark Core)、Spark SQL、Spark Streaming、MLBase、MLlib、GraphX等构成。

Spark Core是整个Spark技术栈的核心层,其主要是通过RDD(弹性分布式数据集),包含丰富的算子(例如Map函数和Reduce函数等),可将数据在内存中计算,实现了RPC、压缩、序列化及任务调度等。

Spark技术栈中专门用于处理结构化数据的一个模块,支持JDBC/ODBC访问接口和传统的SQL查询功能[5],使得Spark SQL可以实现智能计算和分布式数据仓库。Spark SQL提供数据结构抽象框架,通过API结合Spark的外源接口,可以进行大数据的ETL,并且,通过UDF函数,Spark SQL可以最大化RDD的重复使用,提高运行速度和效率。

Spark技术栈中实现实时的流数据计算功能框架,支持Flume、Kafka等多源输入,内部采用RDD序列进行存储。

3 安全日志的聚类算法

恶意攻击一般会在各类安全设备中留下日志记录,日志将不同事件按照预先定义的级别进行分类存储,多个安全设备对于相同的攻击事件的定义也不同,包括事件的描述及表示,如此一来直接导致重复的报警在不同设备的日志中按不同的定义而存储着,这些日志中的事件却是指向相同的攻击事件,譬如嗅探,在主机上表现为检到ICMP Ping扫描,在网络中为多个ICMP Ping数据包,在防火墙中却是很多异常Ping报文。为了提高关联分析攻击事件日志的精准性,前期需要对这些不同定义的但元含义一致的报警日志进行聚合操作。因为同一事件在安全设备中的日志属性具有相似点,所以本文系统通过选取计算日志属性的相似度,设置相似度的阈值,当小于这一阈值,即为一个HyperAlertLog(超级警报日志),这样的设置可以提升分析效率,同时精简了日志的数量。经过详细的分析,本文选择防火墙和IPS设备,将二者的源IP地址、目的IP地址、源端口、目的端口及日志记录时间等五元素进行属性相异度计算,此外IPS还选择事件类型作为第六元素进行计算。属性相异度计算见公式1。

公式1中的n是对象x、y的属性总数,m是属性标号,是一种对象属性m的权值(相异度计算),其取值范围0-1之间。是对象x、y在m的相异度,不相同日志属性相异度计算方法如下:

1)源IP/目的IP相异度计算见公式2。

公式2中z是IP最高位一致的位数,主要选择相同网段的IP的前缀划分的相同性,计算相似度距离比较短。

2)源/目的端口相异度计算见公式3。

公式3只需要比较两条日志的端口号是否一致,不同则相异度取1,反之取0。

3)时间相异度计算方式

日志聚类时,所有的相异度计算必须首先执行时间计算,当两条日志的时间间隔大于阈值τ时,时间相异度取1,反之取0。

4)事件类型相异度计算方式

将IPS日志同防火墙日志的报警类型进行异或非运算,值为1时相异,值为0时相同。

根据公式可知,相异度的计算结果直接受到日志属性权值的影响,不同的攻击对应的权值亦非相同,譬如端口扫描攻击中的源或目的IP均相同,而其源或目的端口属性却可能不同,又如分布式拒绝攻击(DDOS)是针对同一个目标,其目的IP相同。故若想得到比较好的日志聚合结果,需要结合不断地实验测试,对不同的攻击模式设置合适的属性权重值。常见的网络攻击属性权值的默认值如表1所示。

4 多源安全日志分析系统体系结构

结合Spark技术和日志的属性相异度聚类算法,多源安全日志分析系统设计如图2所示。

系统底层原始日志数据采用HDFS存储,日志经过日志处理层分析处理之后存储在MariaDB和HBase中,以供安全信息展示层调用和用户实时在线查询。MariaDB和HBase之间通过Sqoop相互导入导出数据。本文重点论述日志处理层中的Spark作业,包括Spark SQL作业、Spark Streaming作业和Spark Core作业,其主要对日志数据进行统计计算、聚合、关联分析,最终将有效日志信息存储入日志存储层。

原始多源安全设备的日志中包含大量无用和冗余数据,所以需要对数据首先进行ETL,即在日志处理层中,使用Spark技术栈和聚类算法,将日志数据进行实时的过滤、规范和聚合,并将ETL之后的数据进行关联分析,得到可用安全信息,存入底层数据库中。

日志ETL主要包括:(1)将HDFS或HBase中的数据读入日志处理层;(2)将原始数据转换成Spark SQL编程抽象,生成Spark DataFrame,进行字段的增加、修改、轉变、重组等。结合Spark SQL的UDF函数完成字段的拆分、平铺,将最终结果提交到Spark集群中运行,即得到ETL之后的日志数据。

ETL之后,需要结合Spark SQL和Spark Streaming等技术实现对于异常流量和攻击事件的监控和分析。流量主要来源于防火墙,所以可以采用单源日志特征匹配分析方法,而对于攻击事件,则需要采用关联分析方法,具体算法本文不再论述,其主要是制定一套规则库,由特定关键字构成,根据行为模式来进行安全日志的关联分析。

5 系统测试

本文利用学校的硬件环境,搭建了一个Spark分布式集群环境,测试硬件和软件环境如表2所示。底层日志采集采用机架式服务器,Spark集群部署在计算资源丰富的刀片式服务器集群上,用于日志ETL和分析。

通过模拟攻击实测,当日志数量级别小于5万时,单机处理能力比较强,超过5万数量级之后,Spark集群的处理能力凸显,处理效率随着节点数的增多而增加。优于本文只是搭建了一个实验环境,日志数量有限,但也可以从一定程度上反应Spark集群处理能力和单机的性能差异,当日志数量超过一定规模之后,采用Spark集群更加高效。此外,实验也验证了,本文采用的ETL和相异度聚合算法完全适合某高校的实际环境,满足多源安全设备日志分析的数据要求。

6 总结

本文使用Spark技术栈,通过聚类算法,在某高校实现了多源设备的日志分析系统。利用Spark SQL,实现日志ETL,对于多源安全设备采集到的日志数据进行过滤、规范、聚合,完成对于日志数据去冗余,提升了日志分析模块的效率,在分析模块中,使用Spark SQL和Spark Streaming完成日志分析,并根据业务需求,将结果写入MariaDB和HBase中,实现了用户对于结果的随机实时查询,并且在某高校的实际网络安全管理中取得了良好的运行效果。当然,本文中测试和实际运行环境,数据量尚没有达到理论预期,并且多源设备也仅有两个,无法得到全面完整的测试结果。将大数据技术应用于高校的安全管理中,是必然的结果,希望通过今后在工作中不断地实践,完善安全分析系统的相关算法,丰富多源设备的种类,使得Spark技术最终可以应用于高校的全面网络安全管理中,提高一线安全管理员发现网络安全问题和解决问题的效率。

参考文献:

[1] 赵静, 刘宇. 大数据技术在计算机网络入侵检测中的研究[J]. 网络新媒体技术, 2018, 7(4): 45-49.

[2] 陈闯. 基于Hadoop的ETL部件在分布式数据挖掘引擎中的应用[D]. 南京: 南京邮电大学,2016.

[3] 王静. 基于大数据的发电集团统一运行监测与安全预警平台研究与应用[A]. 中国电机工程学会电力信息化专业委员会. 2017电力行业信息化年会论文集[C]. 中国电机工程学会电力信息化专业委员会: 人民邮电出版社, 电信科学编辑部, 2017: 1.

[4] 刘东江, 黎建辉. 基于Spark的并行图聚类算法研究[J/OL]. 系统仿真学报: 1-13 [2019-06-08]. http://kns.cnki.net/kcms/detail/11.3092.V.20190416.1307.021.html.

[5] Sara Mustafa, Iman Elghandour, Mohamed A. Ismail. A Machine Learning Approach for Predicting Execution Time of Spark Jobs[J]. Alexandria Engineering Journal, 2018.

【通联编辑:谢媛媛】

猜你喜欢

聚类算法大数据
基于K?均值与AGNES聚类算法的校园网行为分析系统研究
大数据环境下基于移动客户端的传统媒体转型思路