1
基于在线学习的分布式流量实时分析系统
1.概述
目前,各种类型的流量充满了网络空间,其中包含了正常上网业务,具有
CVE
编号的网络攻击、计算机病毒(邮件病毒、木马、蠕虫、勒索软件)等等。
这些流量中既包含未加密的流量,也包含经过加密的流量,如广泛使用的安全
传输层
(TLS)
协议。 如何开发出一个网络安全系统,能够有效抵对
TLS
加密
与非加密的流量数据进行检测、分析与分类,并实时识别出网络上的恶意攻击
行为成为现阶段面临的一个挑战。目前在工业界,已经已经有了基于网络端口
映射的流量分类识别方法和基于有效载荷分析的流量分类识别方法等,但这些
方法面临两个都面临了准确性和可靠性低的问题,且这两种方法是无法在加密
流量上使用的,因此探究其他的流量检测方法显得格外重要。同时,
CVE
、恶
意加密流量等网络攻击具有攻击量大、高并发的特点,对于检测系统更是提出
了实时化与分布式部署的要求。
我们提出将分布式网络系统与深度学习技术、虚拟化技术相结合,同时引
入在线学习机制做到实时推断与模型动态更新。该系统具有以下特点:利用
CyberFlood
产生
TLS
加密与非加密的、不同种类的业务流量和恶意流量;
利用
Hive
分布式数据库存储原始流量数据;通过
Spark
和
Flink
流量分别
对流量进行并行批处理和流式处理;使用
CNN+LSTM
的时空深度学习网络
对不同类型的流量进行分类;利用
redis
缓存加速实时流量的特征读取;利用
Docker
虚拟化容器对深度学习模型进行部署。该系统同时具有高隔离性、高
容错性、高准确性和高实时性特点,可以解决传统安全系统所面临的的挑战。
目前我们的系统版本为
V2.0
,可以识别出包含加密与非加密的业务流量、
恶意软件流量和网络攻击流量这三种流量类型,并进行动态流量数据的可视化
呈现。
2.目标
2.1.
对
CyberFlood
产生流量数据进行抓取、分析与分类。
2.2.
能够实时、准确识别出网络上的
TLS
加密与非加密的正常业务流量、
网络攻击流量,恶意软件流量,模型上线后能够不断进行动态调整。
2.3.
实现一个可交互的、具有高并发能力、高容错性的分布式网络流量监测
系统,并且能对流量数据可视化。
3.系统架构
系统架构大致分为以下几个部分:
3.1
流量生成模块:
CyberFlood
生成包括
TLS
加密与非加密的业务流量
与恶意流量。
3.2
流量抓取模块:
Python
抓取流量并解析。
3.2
批处理模块:将解析后流量以
JSON
格式的存储在
Hive
分布式数据库
中,然后由
Spark
对流量特征进行批处理。
3.3
流式处理模块:将解析后的流量由
Kafka
收集送往
Flink
对流量特征
进行流式处理。