王萍
摘 要
本文提出了一种基于大数据的技术来识别网络异常行为的方法,并基于该理论方法设计实现了一个网络异常行为分析监测系统。本文详细描述了系统的总体架构设计、各模块详细设计及异常入侵行为发现方法原理。本系统涉及的核心技术模块包括数据采集与预处理模块、实时流量监测模块、大数据关联分析异常检测模块、访问行为基线机器学习模块、综合管理与展示模块。本文使用的异常识别方法首先通过网络流量前端数据采集与预处理模块采集并还原网络流量数据、通过syslog收集安全设备告警数据、通过漏洞扫描工具采集系统和应用的漏洞数据,再将多种数据源采集的数据进行融合和关联分析,利用机器学习技术形成网络边界访问、业务系统访问、网站访问正常行为基线,再结合基线与实时流量和网络安全事件的实时对比关联分析识别网络入侵行为。系统使用的主要技术有:基于Spark streaming的实时大数据关联分析技术,基于Spark MLlib的离线挖掘分析技术,基于kafka的数据总线技术,基于Spring MVC的Web应用技术,基于html5、css、js的前端展示技术。
【关键词】网络异常行为分析 实时关联 机器学习 大数据
1 绪论
近年来网络攻击技术发展变换迅速,随着各种网络攻击检测技术的发展,黑客为了绕过检测系统,采用的攻击手段也越来越隐蔽,行为越来越复杂,为了达到最终目的,黑客潜伏周期也会很长。在此种场景下,现在普遍运用的基于特征检测的方法只能将已有的入侵行为模式检查出来,但对新的入侵方法无能为力,需要安全专家对新入侵方式进行分析后重新提取模型特征,生成新的规则更新到系统中,费时费力,因此在应对复杂多变的攻击手段面前往往响应效率低下。
随着大数据技术的发展,提升了对海量数据的处理能力,因此可以通过实时数据流的检测和对历史数据的挖掘分析进行非基于特征的异常行为检测,此方法可以识别更隐蔽及复杂手法的攻击行为。
2 系统目标
本系统基于大数据技术手段,通过对网域信息、资产信息、应用信息、漏洞信息、实时网络流量、安全事件等信息的采集和关联分析,并对收集的历史数据进行挖掘分析,通过智能的手段去学习正常的网络访问行为基线,再利用基线与实时网络访问行为的对比识别异常攻击行为,并以可视化的方式直观的显示异常告警和异常访问路径。
3 系统设计
3.1 系统架构设计
如图1所示,本系统分为数据采集层、数据预处理层、数据分析层、数据持久化层、和展示层。
3.1.1 数据采集层
数据采集层负责从不同的数据源采集数据,本系统的数据来源包括网络中核心交换机的镜像网络流量,网络中部署的IDS、WAF、防火墙、防病毒等安全设备的告警事件,主机和应用服务器日志。
3.1.2 数据预处理层
数据预处理层负责将接入的原始数据进行解析、过滤、数据提取、归一化、丰富化处理,为后续的数据分析处理提供有效数据。
3.1.3 数据分析层
数据分析层分为实时分析和离线分析两部分。实时分析基于实时数据流处理技术,对数据进行关联对比和统计,基于一定的分析规则形成异常行为告警事件。
3.1.4 数据持久化层
数据持久化层根据存储数据的类型及使用情况采用不同的数据库进行存儲。
3.1.5 展示平台层
展示平台层是一个人机交互的Web应用,主要用于系统的可视化管理操作、分析结果的展示、告警事件从查询和处理、交互式历史数据挖掘分析。
3.2 系统功能模块设计
3.2.1 数据采集与预处理模块
数据采集与预处理模块实现了数据采集接收的接口,支持通过syslog接收流量前端、安全设备上报的数据,同时支持通过日志文件读取的方式获得应用日志数据。数据预处理通过正则规则文件对接入的事件内容进行匹配和提取,并将数据内容按照统一的格式进行组装形成归一化的事件,并对数据中例如各异的时间格式、事件等级、事件名称等进行统一的标准化处理。事件经过归一化处理后还需要对后续分析所依赖的属性进行丰富化处理,例如根据IP定位回填物理位置信息、资产信息等。
3.2.2 实时异常检测模块
实时异常检测模块采用Spark streaming(Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用)技术进行实时事件流的处理,数据采集与预处理模块将处理过的数据放入kafka(是一种高吞吐量的分布式发布订阅消息系统)中,kafka作为系统的消息总线承担各个模块之间的数据交换,实时监测模块通过消息订阅读取预处理后的实时数据流,并依据检测规则对数据内容进行检测,例如根据登记的允许开放端口检测非法端口访问,根据权限规则检测非法请求,根据请求频度、业务规则检测异常行为等。
3.2.3 机器学习模块
机器学习模块采用Spark MLlib(MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维以及底层优化等)技术对历史流量数据、安全事件数据进行基于统计、聚类等算法的学习,可以学习针对应用的流量访问规律,形成正常业务访问模型,再将模型转化成规则应用到实时异常检测模块对后续数据进行实时分析。
3.2.4 综合管理与展示模块
综合管理与展示模块采用Spring MVC架构实现了一个人机交互的管理平台,管理平台包括异常分析结果的可视化展示,告警事件的查询、统计、处置管理,资产、漏洞、恶意IP等信息登记,数据挖掘任务的配置,算法管理,学习结果查看,系统自身的用户、角色权限管理,系统操作日志管理,系统菜单管理,字典表管理等。endprint
4 使用的关键技术
4.1 大数据存储技术
Elasticsearch适用于海量事件的检索处理,因此将经常被用于页面交互查询的分析告警结果数据放入Elasticsearch。
HDFS是Hadoop分布式文件系统,适合存放大规模数据集,因此将收集的原始数据和预处理结果数据放入其中,结合Spark(Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎)技术进行历史数据挖掘。
redis是一个key-value的基于内存的存储系统,适用于实时分析时快速查找相关联的信息,例如根据IP地址检索物理位置、关联资产信息,根据漏洞编号关联漏洞信息等。
Mysql是关系数据库,适合存储系统管理类数据、统计结果数据、报告数据等。
4.2 实时流事件处理技术
Spark streaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对接多种数据源,本系统采用的数据源是kafka,系统将读取的数据流分解成一系列短小的批处理作业,对每个数据片的内容根据检测规则进行异常检测。
4.3 大数据挖掘分析技术
本系统基于Spark MLlib技术,通过运用聚类、统计、频度分析、决策树等算法从netflow流量中学习服务器以及开放的端口,统计端口的流量规律,通过对比包数范围、字节范围、流量条数、连接频率、连接范围等指标发现异常的网络访问行为,可根据异常特征确定恶意域名、僵尸网络等。
5 系统验证
系统开发完成后应用于某大型国企中心机房,采集业务应用服务器区核心交换机流量,经过一段时间的稳定运行可以识别出服务器违规开放的端口,非法的协议访问,发现外部恶意主機连接等异常行为,且发现的外部IP地址通过网络恶意地址库检索结果证实是垃圾邮件服务器。
6 结论
本系统基于大数据的技术,通过运用Spark、kafka、Spring等技术框架构建了一套网络异常分析监测系统,通过接入网络流量、安全日志、漏扫结果、资产信息等数据进行关联对比和挖掘分析,能够实现无需预置特征的网络异常行为识别。
作者单位
中电长城网际系统应用有限公司 北京市 102209endprint