论文部分内容阅读
企事业单位通常在网络的出入口处安装多种网络安全设备以保障内部网络安全,防火墙和入侵检测系统等安全设备在运行过程中会产生大量的日志来记录网络事件。通过研究这些多源异构的日志数据并从中提取网络安全事件可以呈现网络安全态势,这样能够让管理人员准确地掌握网络运行状况同时做出正确的网络决策。网络安全设备日志具有海量性、复杂性和时空关联性等特点。传统的网络安全日志分析技术越来越难以满足海量日志在采集、存储、预处理和分析等方面的需求。大数据具有4V特征:Volume(大量)、Velocity(高速)、Variety(多样性)、Value(价值)。本文的研究目标就是基于网络安全日志的特点,从海量日志的采集、存储、预处理和分析四个层面引入以Spark为核心的大数据技术,来开发一个速度快、伸缩性好、可扩展、处理数据量大的网络安全日志分析系统,从而实现大容量、低成本、高效率的网络安全分析能力。本文首先阐述了海量安全日志分析给网络管理人员带来的挑战和困难,然后介绍从日志的采集、存储和分析等方面引入大数据技术的优势。本文通过Flume和Kafka技术完成了海量网络安全日志的分布式采集与传输,并根据实际需求对Flume源码进行了功能二次开发;其次,基于Spark SQL组件设计并开发了网络安全日志预处理模块,并通过该模块顺利完成对网络安全日志的预处理:过滤、规范化和聚合。与此同时,本文充分利用Spark SQL和Spark Streaming等技术,结合单源日志特征匹配分析和多源日志关联分析的方法完成对网络安全日志的分析,包括异常流量状况以及网络攻击事件展示。并基于Java EE技术开发了一个Web展示和查询界面,满足了网络管理人员对网络异常事件的可视化展示和查询需求。论文最后通过实际实验产生的网络安全日志对系统关键模块进行了功能测试和时间性能测试,并对相关结果进行了分析,证明基于Spark的网络安全日志分析系统初步满足了本文的设计目标和需求。本文主要的创新点如下:(1)考虑到同一网络攻击事件会在多个安全设备上产生较多的重复告警日志,为了方便后续对攻击类日志进行关联分析,本文在日志预处理模块提出了基于网络安全日志的属性相异度聚类算法。该算法以网络攻击模型对应的日志属性特征为基础,根据IP地址和端口等属性对不同网络攻击具有相异的重要性来设置不同的权值,从而完成网络攻击重复告警日志的聚合。最后,通过实验证明了该算法对重复告警日志具有很好的聚合效果。(2)本文基于Spark SQL丰富的外部数据源接口和其抽象编程接口DataFrame,提出并实现了基于Spark SQL的网络安全日志预处理模块:ETL_ON_Spark。相比于传统的日志预处理技术,本文实现的ETL_ON_Spark具有可处理日志种类丰富,可处理数据量大,速度快,灵活性强等特点。