刘海霞 许鑫磊 冉宇瑶 赵小娟
摘 要:针对目前层出不穷的各类网络攻击事件,基于最新的大数据技术组件,构建集数据收集、数据处理、数据存储、数据分析、数据呈现于一体的安全态势感知系统框架。通过Flume和Kafka获取日志或网络攻击信息,使用MapReduce和Storm技术进行批量或实时分析,以达到对网络安全的感知;采用层次分析法确定指标权重,提取网络态势特征,通过分析构建判定矩阵完成对网络安全态势的评估,并利用神经网络、关联分析、时间序列画出三种预测技术;通过ECharts进行可视化图表部署,采用R语言、ECharts技术对威胁类型、攻击数据进行展示和分析,将攻击源进行可视化,从而完成安全态势的预测。系统具有高可用、可扩展、易部署等特点,能较好地支撑各类网络安全威胁的感知与预测。
关键词:网络安全;态势感知;大数据;分布式
中图分类号:TP309 文献标识码:A
Research on Security Situation Awareness System based on Big Data
LIU Haixia1, XU Xinlei2, RAN Yuyao1, ZHAO Xiaojuan3
(1.Keyi College, Zhejiang Sci-Tech University, Shaoxing 312369, China;
2.Hangzhou Anheng Information Technology Co., Ltd., Hangzhou 310018, China;
3.Luoyang Radio & Television University, Luoyang 471000, China)
304361324@qq.com; 25195913@qq.com; ranyuyao@126.com; 58724833@qq.com
Abstract: In view of various attack events that are emerging one after another, this paper proposes to build a security situational awareness system framework that integrates data collection, data processing, data storage, data analysis, and data presentation based on the latest big data technology components. Logs or network attack information are obtained through Flume and Kafka, and MapReduce and Storm technology are used to perform batch or real-time analysis, so to achieve network security perception. AHP (Analytic Hierarchy Process) is used to determine the index weights, extract the characteristics of the network situation, and complete the assessment of the network security situation by analyzing and constructing a judgment matrix. Neural network, correlation analysis, and time series are used to draw three forecasting techniques. Visualized chart is deployed through ECharts and R language is used. ECharts is used to display and analyze threat types and attack data, and visualize attack sources, thereby completing security situation prediction. The system has the characteristics of high availability, scalability, and easy deployment, and can better support the perception and prediction of various network security threats.
Keywords: network security; situational awareness; big data; distribution
1 引言(Introduction)
隨着网络更深入地走进人们的生活,各种对网络安全的入侵和攻击也越来越严重,给网络的入侵行为检测和预防带来很多新问题。当前,很多学者开始关注网络安全和网络预防,并对其展开研究。如LEE等[1]基于Hadoop开源软件开展了DDoS攻击检测技术实验,对存储记录的流量数据进行分析,获取较高的吞吐量;刘冬兰等[2]对电力信息系统网络安全态势感知及主动防御问题进行了研究,实现了攻击事件及安全态势的实时监控预警;王以伍等[3]利用大数据相关技术对网络运行相关海量数据进行分析、过滤、融合,识别已知和未知的安全威胁,并建立了安全体系;龚俭和FRANKE等[4-5]认为,整个态势感知过程包括态势要素获取、态势理解和态势预测。丁华东等[6]基于贝叶斯方法提出了一种网络安全态势感知混合模型,并对既定网络环境中收集到的态势指标数据进行离散化预处理,利用不同的评价方法建立相应的态势感知模型;琚安康等[7]基于开源工具集提出了一种大数据网络安全态势感知及预警架构。
综合来说,目前的研究利用大数据技术处理数据快的优势,克服了传统方法的瓶颈问题,实现了较高的数据分析效率,但对基于大数据的系统分析较少。本文将应用现有大数据技术,结合攻击检测预警技术模块,设计一种覆盖从数据获取到视图呈现各个阶段的网络安全态势感知系统,并利用大数据开源代码及Java编写工具,实现该预警系统的各个功能模块。
2 网络安全态势感知系统研究架构(Research architecture of network security situation awareness system)
结合大数据技术,对网络安全的态势需求进行分析,设计系统框架,从数据源获取到攻击可视化呈现,覆盖整个流程。系统架构采用分层设计与模块化相结合的方式进行,主要包括数据源、数据收集与预处理、数据分布式存储、数据挖掘与分析、网络安全态势评估预测、网络安全态势可视化呈现等功能模块,子模块之间通过数据逻辑通路连接,相互合作实现对网络安全态势的数据分析、攻击风险预警并呈现,如图1所示。
2.1 数据源
数据源包括网络中的硬件设备如路由器、交换机、流量采集器等;网络安全设备如防火墙、网络安全防护软件等,以及系统日志、应用日志、CPU利用率等。另外,还包括运行和维护数据(处理记录、风险评估等)、外部攻击数据(攻击方式、特点、攻击漏洞等)等。
2.2 数据收集与预处理
该模块主要收集各种网络设备产生的数据,然后经过初步整理分类,将其传入大数据平台。对需要实时分析的数据,将其直接传送给Storm。数据收集主要包括传感器(采集和发送如路由器、交换机等网络设备的数据)、网络爬虫(按照一定规则自动抓取万维网信息的程序或者脚本)、Flume日志(采用分布式收集各种设备、系统和应用中产生的日志数据,它们往往隐藏了许多有用信息)、Kafka消息(在消息传输过程中保存消息的容器或中间件,主要目的是提供消息路由、数据分发并保障消息可靠传递),并对上报数据进行统一的范式化预处理,对采集的数据进行数据归并、数据清洗等操作,然后根据不同业务把数据存储到不同的存储系统上。
2.3 数据分布式存储
数据分布式存储HDFS[8]是整体系统框架的存储基础,主要负责将采集的数据统一存储,为后面的数据处理分析、检索查询提供支持。数据分布式存储不仅支持由数据收集与预处理模块采集的各种安全数据、网络数据、攻击数据,也要为中间处理结果提供存储保障。
2.4 数据挖掘与分析
数据挖掘是指从大量的数据中挖掘出有用的信息,即从大量的不完全、不确定的实际应用数据中发现隐含的、事先未知的,但又有潜在用处的信息和知识的非平凡过程。通过聚类分析法及统计学方法,将获取的数据进行深度分析和处理,得到数据的深层价值,挖掘出隐藏度较高的攻击方式。此模块主要包括批量数据(离线)分析、实时数据流分析,其中批量数据分析采用MapReduce编程模式,实时数据流分析采用Storm架构[9]。
网络安全事件关联分析能将不同来源的报警信息进行去伪存真,从而挖掘出真正的网络攻击事件。在此系统设计中选用Storm作为流数据处理工具,对接收到的实时数据进行关联分析,分析完成后将分析结果和告警信息送入存储子系统,以供日后查询分析,或提交态势呈现子系统直接显示到可视化界面中,展示实时网络安全态势。
2.5 网络安全态势评估预测
根据网络运行状况发展变化的实际数据和历史资料,运用科学的理论、方法和各种经验、判断、知识去推测、估计、分析其在未来一定时期内可能的变化情况,是网络安全态势感知的一个重要组成部分。本系统采用层次分析法确定指标权重,提取出网络态势特征,通过分析构建判定矩阵完成对网络安全态势的评估。然后根据评估数据,采用神经网络、关联分析、时间序列画出三种预测技术,针对不同网络所处的环境,选择对应的网络安全态势预测技术,从而可以有预见性地进行安全策略的配置,实现动态的网络安全管理,预防大规模威胁网络安全事件的发生。
2.6 网络安全态势可视化呈现
对前面几个模块采集的数据进行分析、评估、预测之后,利用计算机图形学和图像处理技术,将实时数据以动态方式进行展示,将历史数据以静态或动态方式展示给用户,让用户一目了然地观看到实时的网络安全态势走向。异构的数据源和持续增长的数据量给分析人员带来了繁重的负担,这里采用R语言、Kibana等可视化技术将安全分析的结果和实时安全状态进行可视化呈现,可帮助系统管理员实现对网络整体安全态势的掌握,以应对日趋复杂的网络安全形势。
3 网络安全态势感知系统研究模块及技术(Research modules and technologies of network security situation awareness system)
3.1 系统技术分析
系统开发主要以Spring Boot、Mybatis、Hadoop、Flume、Kafka、Spark、Storm、Kibana等技术为开发框架,采用Linux centos版本作为服务器系统,通过Nginx反向代理服务器来搭建服务器,并且可以利用Nginx的特性和爬虫技术、lua脚本对请求数据进行抓取来做数据源,发送到Kafka消息队列中进行排列,通过Spark对每一条请求数据包都进行安全分析后利用MySQL数据库来存储相关数据,从而对系统的数据存储进行支撑;利用Hadoop大数据框架作为文件存储系统,通过Flume框架对日志目录进行实时监控,并传输到Spark中進行数据的处理分析和存储;最后将数据通过Spring Boot和Mybatis来开发后端建立与数据库的连接,将数据通过Kibana进行可视化呈现在前端界面,用户使用本系统完全可以通过浏览器实现管理、监测等操作。
3.2 系统功能模块
系统主要分为两大模块:管理端和可视化显示端。其中,管理端包括管理员、安全信息员两个部分。管理员主要具有用户管理、公告管理、邮件模块管理、系统参数配置管理等权限;安全信息员具有日志目录管理、漏洞库管理、规则特征库管理、脚本库管理、攻击信息管理及黑白名单信息管理等权限,另外还可以对各类事件进行分析,是整个系统的核心模块。前端显示模块,主要是对攻击信息进行及时显示与处理。详细信息如图2所示。
事件分析模块主要处于SparkStreaming数据流式处理阶段,首先触发流程为客户端向服务器发送请求通过Nginx反向代理服务器,Nginx会调用Lua脚本对请求的数据包进行流量捕获,然后直接将捕获的完整请求数据包和响应数据包格式化后发送到Kafka消息队列中等待消费者消费;随后通过消费者消费将数据消费到Spark中,通过SparkStreaming对topic进行筛选获取对应的请求数据包;接着在Spark中对数据包进行获取后拆分,逐个进行特征匹配,当匹配到特征字段就会将这段的数据包进行记录和标记,然后及时触发邮件系统,在恶意数据包存入数据库中的同时向绑定用户发送邮件告警。
3.3 基本攻击流程及分析
首先确定攻击目标:http://219.***.***.228:4**。
存在漏洞的url:
http://219.***.***.228:4**/new_list.php?id=1。
寻找网站存在的弱点,假设new_list.php的id参数存在SQL注入漏洞,构造攻击向量id={payload}(payload为攻击载荷)。发送带有攻击载荷的请求数据包,攻击成功后获取数据库名称,如图3所示。
4 网络安全态势感知系统实现(Realization of network security situation awareness system)
管理员登录后进入后台管理页面:显示当日产生的告警信息条数和拦截条数;展现系统所受威胁的类型占比;展现近七日的威胁告警和拦截条数的折线图,更好地体现出近期系统所受的威胁程度,据此可以立即采取防御措施;网口吞吐量检测实时显示服务器的网口吞吐量信息,可以直观地看出服务器的流量状态,快速辨别服务器是否存在恶意流量,如图4所示。
另外,打开事件分析模块,可以对主机威胁、紧急事件、情报事件、攻击者视角、流量等进行安全方面的分析,查找攻击来源,并对攻击过程进出进行分解,将攻击源进行可视化,如图5所示。
5 结论(Conclusion)
本文针对目前网络安全应用问题,利用大数据技术及开源工具集设计并实现了网络安全态势感知及预警系统,并在工作单位对网络安全态势感知系统进行了部署和测试,对已有安全数据进行了合理分析,能够实现对网络安全威胁事件产生预警,实时检测获取网络攻击行为,并采用可视化的方法将结果呈现出来。随后对网络安全态势感知系统进行了观测与试用,整体运行稳定,可以对大多数的安全威胁事件进行预警,效果良好。
参考文献(References)
[1] LEE Y, LEE Y. Toward scalable internet traffic measurement and analysis with hadoop[J]. ACM SIGCOMM Computer Communication Review, 2012, 43(1):5-13.
[2] 刘冬兰,刘新,张昊,等.基于大数据的网络安全态势感知及主动防御技术研究与应用[J].计算机测量与控制,2019,27(10):229-233.
[3] 王以伍,张牧.基于大数据的网络安全态势感知关键技术研究[J].电脑知识与技术,2020,16(15):43-46.
[4] 龚俭,藏小东,苏琪,等.网络安全态势感知综述[J].软件学报,2017,28(4):1010-1026.
[5] FRANKE U, BRYNIELSSON J. Cyber situational awareness a systematic review of the literature[J]. Computers & Security, 2014, 46:18-31.
[6] 丁华东,许华虎,段然,等.基于贝叶斯方法的网络安全态势感知模型[J].计算机工程,2020,46(6):130-135.
[7] 琚安康,郭渊博,朱泰铭.基于开源工具集的大数据网络安全态势感知及预警架构[J].计算机科学,2017,44(5):125-131.
[8] LUST-RING.深入理解HDFS:Hadoop分布式文件系统[EB/OL].(2016-07-15) [2020-03-05].https://blog.csdn.net/bingduanlbd/article/details/51914550#t24.
[9] 一路前行1.Storm架构与运行原理[EB/OL].(2017-08-13)[2020-03-20].https://blog.csdn.net/weiyongle1996/article/details/77142245.
作者简介:
刘海霞(1981-),女,硕士,讲师.研究领域:计算机应用,网络安全.
许鑫磊(1997-),男,本科,工程師.研究领域:网络安全与检测.
冉宇瑶(1969-),女,硕士,副教授.研究领域:计算机应用,算法分析.
赵小娟(1982-),女,硕士,讲师.研究领域:网络安全技术,信息化技术.