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 对流量特征 进行流式处理。
3.4 Web 后端模块:批处理和流式处理的结果都送往后端服务器的 MySQL 数据库以 CSV 格式存储。
3.5 模型训练模块:使用带标签的流量数据对时空神经网络(CNN+LSTM) 模型进行训练和交叉验证,然后对模型进行准确的评估,通过不断地调试调优改 进模型。
3.6 模型线上推断与在线学习模块:Java 后端将未知种类的流量特征从 MySQL 数据库中导出,送往 Redis 进行缓存,然后将 Redis 中的流量特征通 过 gRPC 请求发往 Docker 容器,然后以JSON 格式返回流量的分类结果。 在推断的过程中,模型权重会动态调整并更新。
3.7 流量可视化模块:通过前端可视化呈现流量的分析结果。