APP下载

基于时序挖掘的网络流量分析系统设计与实现

2023-04-06展鹏

电脑知识与技术 2023年5期
关键词:异常检测时间序列网络流量

展鹏

关键词:时间序列;网络流量;异常检测;前后端分离

0 引言

当前正处于网络技术高速发展的时代,《“十四五”国家信息化规划》的发布进一步推动“互联网+”、大数据、云技术等前沿技术深度融合到生产、教育、科研等各个领域。以高校信息化建设为例,随着接入校园网络环境的设备、服务、信息系统等不断增多,针对网络的攻击愈发频繁,网络安全问题日益严峻。网络安全和信息化是事关国家安全、国家发展、事关全国人民学习、工作、生活的重大战略问题,没有网络安全就没有国家安全,没有信息化就没有现代化。网络流量分析是一种监测网络运行的行之有效的技术手段,因此,利用信息化技术,研究、设计并实现一套网络流量分析系统及时发现网络中的异常情况,对确保服务的稳定运行具有重要的现实意义。

网络流量数据具有典型的大数据特征:数据量大、数据种类多、持续产生、大量积累[1]。显然,为了确保信息化服务的持续运行,网络流量数据是随着时间的推移不断产生并积累的,是一种典型的时间序列流数据[2-3]。目前国内外使用的网络流量监控产品,大多采用基于采集到的原始流量数据进行分析,往往更多地关注于流量数据的瞬时异常[4-5]。网络流量是一种动态的、随时间不断变化的数据序列,本文着重研究一段时间内的网络流量相对于整体流量数据的异常程度,即分析流量数据局部与整体的关系,更有利于发现异常的数据特征,降低瞬时异常对局部异常检测的影响。同时,实际生产环境中采集到的网络流量数据量大,且存在一定噪声数据,直接基于原始网络流量数据进行挖掘分析,计算和存储成本较高,往往难以高效且有效地获取隐藏在流量数据背后的信息[6]。本文以网络流量为主要研究对象,对实际运维工作进行调研并做需求分析;再利用基于时间序列数据挖掘的方法进行网络流量异常检测,开发了一套功能丰富、操作便捷的网络流量分析系统;最后对系统进行实地部署并验证运行效果。系统主要解决从海量的网络流量数据中高效且有效地发现网络中的异常情况,并将异常信息及时反馈给运维人员,以提升网络服务的可持续性,提高用户的幸福感、安全感和获得度。

1 系统需求分析

系统的总体目标在于采集并分析、检测网络中的异常流量情况,配合告警模块,及时将网络环境中出现的异常情况反馈给相关运维人员,以便对发生的异常情况进行快速响应、快速解决,确保网络服务的持续与稳定。系统主要功能模块如图1所示。

1.1 基础数据管理

基础数据管理模块主要用来维护流量检测的目标信息。在进行网络流量采集之前,需维护设备或信息系统的基础信息,以便后续数据采集、异常检测分析以及统计等功能模块的数据存储与展示。此类信息主要包括楼宇、机房、机柜、服务器、虛拟机等,数据之间存在关联,便于从多维度进行数据统计与分析。

1.2 系统管理

系统管理模块负责本系统的权限管理,采用RBAC(Role-Based Access Control) 权限设计思想,即将系统的功能权限与系统角色相关联,通过赋予系统用户适当的角色来取得角色所拥有的系统权限。此设计思路清晰,有效降低权限管理的复杂度。主要的功能包括用户管理、角色管理、菜单管理、部门管理和字典管理。其中,部门管理与数据权限相关联,以便控制用户对数据的访问权限;字典管理主要是系统中常用的代码项,如设备类型、设备品牌等。

1.3 数据采集管理

数据采集是本系统的重要功能模块,负责从多种渠道采集并存储网络流量数据,提供流量数据采集与存储功能,为网络流量数据分析、异常检测提供基础保障。来源管理主要用于维护数据提供方的信息,此处与基础数据中的服务器、虚拟机进行关联;接口管理主要维护数据采集中的第三方接口对接信息,如对接Zabbix、Prometheus等监控平台提供的数据获取接口;任务管理用于数据采集定时任务的配置,包括任务的创建、编辑、开启、关闭、任务监控、删除等功能;数据管理模块提供网络数据查询功能,方便用户掌握数据采集情况。

1.4 异常检测管理

网络流量异常检测模块是本系统的技术核心。如上文所述,网络流量具有典型的时间序列流数据特征,因此,本模块采用基于时间序列异常检测技术对网络流量数据进行数据分析,通过时间序列降维表征技术提高异常检测的效率与精度。系统将检测得到的异常流量数据序列存储为特征序列,基于此特征序列,利用时间序列分类技术进行高效的异常检测。同时,系统将检测出的异常流量保存作为历史异常记录,便于运维人员进行故障分析和日志审计。告警管理模块与通信平台对接,可向运维人员以短信、邮件等形式及时反馈发现的异常情况。

1.5 统计分析

以数据表格与可视化图表相结合的形式,将本系统中的各类数据进行集中展示,便于管理及运维人员整体把控网络服务的运行情况。

2 系统总体设计

2.1 整体技术架构设计

基于时序挖掘的网络流量分析系统的整体技术框架采用了基于B/S架构的多层框架模型,如图2所示。整体上可以分为四个层次,分别为前端展示、负载均衡、后端业务逻辑和数据库。系统采用当前流行的前后端分离开发框架,通过RESTful API[7]响应业务请求,进而保证系统的开发效率和系统稳定性。

2.2 前端技术架构

随着前端技术的不断演进,前端开发的复杂度越来越高,存在着大量的DOM操作API、页面渲染性能降低等问题,MVVM(Model-View-ViewModel) 架构模式有效地解决了前端开发存在的问题,并将前端开发工程化,更加便于代码管理。MVVM 架构由Model、View和ViewModel三部分组成。Model即代表数据模型;View是指UI组件,负责页面展现;ViewModel主要用于同步Model和View对象。基于MVVM架构思想,本系统采用了NodeJS+Webpack+VueJS的技术路线,构成了系统的整体开发框架[8]。其中,ElementUI是一套基于Vue的桌面端组件库,提供了大量组件模型,可实现快速页面开发,ES6作为JavaScript开发标准,使用SCSS作为前端样式的预处理语言。最后,使用NPM对前端项目进行编译、打包,部署到服务器即可。

2.3 负载均衡

Nginx是一款高性能、轻量级的Web和反向代理服务器,同时可以用其实现负载均衡。将编译、打包完成的前端工程部署至Nginx服务器中,修改Nginx配置,包括服务器地址、端口、转发策略等,即可打通前后端的数据交互。

2.4 后端技术架构

本系统后端业务逻辑核心采用Spring Boot框架进行搭建[9-10]。Spring Boot是一款开源的基于Java语言的开发框架,其采用“约定优于配置(Convention Over Configuration) ”的设计理念简化了Spring应用的开发、测试与部署。Spring Boot提供了丰富的开发组件,支持内嵌运行容器(如Tomcat、Jetty等),自动管理依赖,且易与安全、日志等组件集成。基于Spring Boot 的后端业务逻辑开发,主要分成了三个部分:控制层(toCroyn)t。roller) 、服务层(Service) 和数据访问层(Reposi?控制层。接收来自客户端的请求,在其内部调用服务层相应的业务逻辑,完成业务操作,并将处理结果返回,实现与前端页面的交互。

服务层。Service主要用于处理请求中的业务逻辑,开发中每个Service均涉及为接口,每种服务都有对应的业务逻辑实现。需要与数据库操作的逻辑,通过调用数据访问层完成。

数据访问层。数据访问层主要用于实现系统与数据库的交互。本文設计并开发的系统采用Spring Data JPA对数据库操作进行封装,使用JPQL简化数据库操作语句,大幅降低开发成本,便于后期维护。此外,对于复杂的统计、分析业务,本框架依然支持原生SQL查询。

2.5 数据库

根据用途不同,本系统使用三种数据库作为底层数据支撑,分别是:MySQL、MongoDB和Redis。

MySQL。MySQL是一种关系型数据库管理系统(Relational Database Management System, RDBMS) ,常用于Web 应用开发。本系统五大功能模块均基于MySQL 数据库实现数据存取,并使用Druid 作为MySQL 数据库连接池,实现对系统数据库的有效监控。

MongoDB。MongoDB 是当前流行的文档型gNooDSBQL中数存据储库,适,其合数用据于以大J数SO据N字分符析串。的本形系式统在采M集o的n?网络流量数据量庞大,且具有一次存储、多次查询的特点,因此,将MongoDB作为网络流量原始数据存储库,在后续流量分析工作中,按需提取原始数据进行挖掘分析,将分析到的异常特征数据存入MySQL数据库,可有效降低系统自身的运行和存储压力。

Redis。Redis 是一种运行于内存中的NoSQL 数据库,其具有结构简单、易于操作且运行速度快的特点。为了加快系统响应速度、降低MySQL请求压力,使用Redis作为MySQL数据库的缓存。当用户请求到达时,首先判断缓存中是否存在该数据,如存在,则直接将缓存中的数据返回;若不存在,则访问MySQL数据库获取数据,并将该数据存入缓存,再将数据返回给用户。此外,对于分布式部署场景,为防止出现因服务器扩展、重启等情况造成用户Session丢失的情况发生,Redis还将用于实现Session共享。

3 系统实现

结合系统需求分析与整体技术框架,本章对系统开发过程中的核心技术进行详细介绍,主要包括RESTful接口设计标准与实现、网络流量采集过程以及异常流量检测的核心算法。最后,将系统前后端代码编译、打包并部署到服务器端,截图展示系统的关键功能。

3.1 RESTful 接口设计

FieldRinEgS博T(士Re在pr2es0e0n0ta年tio提na出l 的St一ate种软Tr件an架sfe构r)风是格[11R-12o]。yAPI接口是前后端分离架构数据通信的基础,即前端通过API接口向后端请求数据。RESTful API即是具有REST风格的API接口设计,可有效提升代码复用率,提高开发效率,降低出错概率。以本系统中基础数据管理的楼宇信息为例,表1列出了与楼宇管理相关的接口设计示例(HTTPS请求端口默认为443) 。

3.2 数据采集实现

网络流量数据是本文设计并开发系统的核心研究对象,数据采集工作是进行异常流量检测的基础。在IT基础设施监控方面,目前市面上已经有很多产品,如Zabbix、Prometheus、SNMP以及各硬件厂家提供的监控平台等[13]。为了实现从多种渠道获取网络流量数据,本系统设计并实现了一套统一的数据采集接口程序,根据不同平台提供的API 接口进行统一封装,数据采集的整体流程如图3所示。监控平台的基础信息,包括地址、端口号、监控参数等,由本系统的数据采集管理模块中的来源管理实现。

用户录入待采集数据的设备信息后,可从监控来源中选择监控平台,即可将相应监控参数自动与该设备管理。由后端根据监控参数,利用相应监控平台提供的API 接口方法统一封装,供系统自身调用。最后,配合定时数据采集任务,将监控取得的数据进行解析,将解析后的数据与系统中设备信息关联后,存储至本系统数据库内。例如Prometheus监控平台,它提供了丰富的RESTful API来获取监控数据。为此,需要先维护Prometheus API的相关参数,如表2所示。

Prometheus API 的响应内容是JSON 格式的,对JSON数据进行解析即可得到相应数据,将数据与设备信息进行关联后存储至系统数据库。此外,本系统还提供了如Excel、CSV等数据文件线下数据导入功能,便于手工处理数据或进行数据迁移工作。

3.3 异常流量检测核心算法

网络流量异常检测是本系统的核心算法,其实现了从海量、高维度的网络流量数据中高效、有效地检测出异常流量序列。如前文所述,网络流量数据时间属性天然相关,具有时间序列流数据的特征。因此,系统在数据采集阶段,对原始数据进行预处理,最终将带有设备ID、时间戳、监控指标、数据值等关键字段信息存储至系统数据库。

基于时间序列模式的异常检测是时间序列数据挖掘的热点研究方向之一,在先前的工作中,提出了一种基于特征符号表示的网络异常流量检测算法NAAD-FD[1]。本系统利用NAAD-FD算法对采集到的设备流量数据进行异常检测分析,最终得出异常流量序列。异常检测过程主要包含以下五个步骤:

1) 从系统数据库中提取待检测的流量数据信息,按照时间戳顺序组成网络流量时间序列模型NF,可形式化表示为式(1) 。

2) 对网络流量时间序列模型NF 进行降维表示,将原始的数据序列转化为包含七项特征值的数据子序列,特征值分别为子序列SNF 的符号表示值、子序列长度、最大值、最小值、均值、起始值和结束值。

3) 利用NAAD-FD 算法计算子序列间的相似度(即距离),进而根据LOF[14]算法思想,计算各子序列的平均异常指数。

4) 根据LOF的相关定义可知,若子序列的平均异常指数明显大于1,则可判断该子序列是异常的

5) 将NAAD-FD算法判断得出的异常子序列存入系统异常特征库中,以便对异常数据进行进一步分析。同时,本系统提供了异常告警模块,可根据配置当异常指数超过一定阈值,即可向运维人员发送告警消息,以提醒及时处理异常。

综上所述,本文研究并开发实现的基于时序挖掘的网络流量分析系统整体运行流程如图4 所示。

3.4 系统实现与运行效果

1) 基础数据管理。基础数据管理模块实现了流量检测目标信息的数据维护,包括楼宇、机房、机柜、服务器、虚拟机等信息。在编辑服务器或虚拟机等设备信息时,除维护设备名称、序列号、型号等基本信息外,还可与监控平台实现关联,便于在数据采集模块设置采集任务。图5为系统中机房信息维护的实际界面。

2) 数据采集管理。数据采集管理模块实现了多渠道数据采集与存储流量数据。通过接口管理将如Zabbix、Prometheus等监控平台接入系统,设备信息与监控平台接口进行对接,通过API采集并存储流量数据,以供异常分析使用。图6为系统中数据采集接口管理的实际界面。

图7所示为数据采集任务管理,通过该功能可定时采集设备上的监控数据,同时提供了采集日志功能,方便了解采集情况以及日志审计。

3) 异常检测管理。以系统采集并存储的流量数据为研究基础,异常检测模块实现了基于时间序列数据挖掘的异常流量检测分析。首先将流量数据转换为时间序列模式,然后将原始流量数据降维表示成具有7项特征值的特征表示形式,利用基于LOF密度的异常检测方法计算得出各特征序列的局部密度值,進而分析得出异常流量序列。采用该异常检测模式,有效提升了异常检测精度与检测效率。系统将异常序列数据进行集中存储,便于对流量的行为特征进行深入分析。图8所示为异常数据信息库的实际界面。

4 结束语

在当前网络安全的严峻形势下,本文针对网络流量异常检测展开研究,从基础数据管理、监控平台对接、数据采集与存储、异常流量检测分析等角度进行需求分析,利用VueJS、Spring Boot、MySQL、MongoDB 等技术,设计并开发了一套稳定、高效、易操作的基于时间序列数据挖掘技术的网络流量分析系统,经过单元测试、功能测试,确保系统内各项功能的稳定性、兼容性与安全性得到保障。本系统基于时间序列异常检测技术,从网络流量整体角度出发,分析局部范围内的流量相对于整体流量的异常程度,进而发现一段时间区域内的异常,为IT管理人员提供了高效、有效的网络流量分析建议,为确保实现持续、稳定的高质量网络服务提供有力保障。

对于发现的异常流量,本系统将其特征进行存储,在后续的研究工作中,可利用基于时序分类、相似性检索、深度学习等异常检测技术进一步提升异常检测精度与效率。

猜你喜欢

异常检测时间序列网络流量
基于多元高斯分布的网络流量异常识别方法
基于神经网络的P2P流量识别方法
AVB网络流量整形帧模型端到端延迟计算
网络流量监控对网络安全治理的重要性