基于深度学习的加密恶意流量检测

news2024/9/24 18:03:20

加密恶意流量检测

  • 研究目标定位
  • 数据收集
  • 数据处理
    • 基于特征分类算法的数据预处理
    • 基于源数据分类算法的数据预处理
  • 特征提取
  • 模型选择
    • 基于数据特征的深度学习检测算法
    • 基于特征自学习的深度学习检测算法
  • 训练和评估
    • 精确性指标
    • 实时性指标
  • 应用检验改进

摘录自:Mingfang ZHAI,Xingming ZHANG,Bo ZHAO. Survey of encrypted malicious traffic detection based on deep learning[J]. Chinese Journal of Network and Information Security, 2020, 6(3): 66-77.
网络信息安全学报:Survey of encrypted malicious traffic detection based on deep learning

本文归纳总结“六步法”的加密恶意流量检测一般框架模型,为问题研究提供帮助。
“六步法”框架是针对加密恶意流量检测问题的,但对于普通的流量识别问题仍然适用(普适性)。
加密恶意流量检测的本质是学习数据特征,将流量数据进行正确分类。

如下是“六步法”的模型构造
在这里插入图片描述

研究目标定位

流量通常由5元组决定:源IP、目标IP、源端口、目标端口和协议。
可按以下方面对流量进行分类:
1)协议,如SSH、SSL/TLS
2)应用,如微信、滴滴出行、百度地图
3)服务,如聊天。购物
4)网站,如谷歌、百度
5)用户行为,如浏览、下载、上传
具体就加密流量而言,通常分为加密与未加密识别加密协议识别加密服务识别恶意流量检测

  • 加密与未加密识别主要将流量区分为加密流量和非加密流量。
  • 加密协议识别是根据协议的不同对加密流量进行归类。
  • 加密服务识别是将流量按特征、服务类别或者应用程序进行分类。
  • 异常流量检测的目的在于检测出隐藏在加密流量之中的DDoS、APT、Botnet等恶意流量,是保障网络安全的重要手段。

与加密协议识别和加密服务识别相比,异常流量检测的难点有:
①攻击者常常利用协议规则将攻击流量伪装成正常流量,增加检测的难度。
②数据集严重不平衡,攻击流量远远小于正常流量,可能会产生训练不充分的问题,从而影响检测精度。
③检测错误代价大,因此对检测精度要求更高。

下图是加密流量识别分类结构
在这里插入图片描述

数据收集

直接收集法:常用的数据采集软件有Wireshark、Sniffer、Fiddler等。
脚本收集法:拟合大多现有的攻击模式。
混合方法:直接收集法+脚本收集法。

数据处理

数据预处理是指将未加工数据转换为适合分析的形式,包括多数据源的数据融合、数据清洗、维规约等。

基于特征分类算法的数据预处理

该方法需要将原始数据处理为打上各种特征标签的数据,如统计标签、时间序列等,而后送入算法模型检测恶意流量与正常流量。
在这里插入图片描述
数据清洗:数据清洗是指对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误。对数据中存在的无效值或错误值常采用删除的方法,包括整列删除、变量删除和成对删除等方法。对缺失值处理有均值插补、同类均值插补及高维映射等方法。
数据集成:数据集成是将多个数据源收集的数据整合在一起,主要的困难在于多个数据源异构的问题,即几个数据源并不完全一致,收集的数据格式、长度等不同,相互之间存在冗余和不兼容等问题。
数据变换:数据变换即对数据进行规范化处理,以便于后续的信息挖掘,主要包括数值化、中心化和规范化等内容。数值化就是将非数据信息转化为数据,如网络协议信息,可用简单数值表示。中心化是指将数据减去均值或者某个指定数值的操作。规范化目的在于把数据整合到[0,1]内以方便实验,常用最大值规范化方法。
数据归约:数据规约指在保持数据原貌的前提下,最大限度地精简数据量。通常采取特征选择和数据采样的方法实现。

基于源数据分类算法的数据预处理

使用深度学习方法自动学习数据中所隐藏的特征,从而实现对加密恶意流量的检测。这类算法无须对数据进行特征提取操作。
在这里插入图片描述

特征提取

在加密协议握手阶段,客户端与服务器往往需要通过明文协商相关加密参数,这一阶段可以得到许多与加密相关的宝贵数据,如加密采用的TLS版本、算法、证书、TLS扩展选项等。除此之外,数据包长度、流长度、报文的持续时间以及时间间隔等信息,都可以有效提升加密恶意流量检测的精度。
在这里插入图片描述
并不是特征越多越好,过量的特征选择反而可能导致检测性能的下降。另外,复杂的识别特征需要耗费大量的存储空间和计算能力,给硬件系统带来压力。

模型选择

基于深度学习的检测方法具有检测加密流量的天然优势。
检测模型主要分为两大类:一类是利用特征标签检测加密恶意流量;另一类是充分利用CNN、RNN等深度学习的特征学习能力,自动学习数据中隐含的特征进行恶意流量检测。

基于数据特征的深度学习检测算法

此类方法需要首先提取数据特征,然后将有特征标签类的数据输入深度学习算法进行训练检测。

基于特征自学习的深度学习检测算法

该类算法不需要提取数据特征,只对数据进行切片操作,而后由算法自动挖掘特征进行检测。

基于特征自学习的深度学习检测算法最大的特点是不需要再提取数据特征,对于数据集的要求低、依赖性小,可移植性好,使用更加灵活。
但这类方法也有着天然的不足:
①数据切片取多少字节合适并没有依据,只是凭经验取舍。
②切片数据长度不能太长,切片过长可能影响计算性能,进而影响训练的效率。
③训练过程可解释性相对较低,训练比较困难,容易引起检测性能不稳定。

训练和评估

模型构建后,即需要对模型进行训练和评估。
训练通常采用N折交叉验证,一般为10折。
评价指标有精确性指标和实时性指标。

精确性指标

精确性指标基于混淆矩阵生成,主要用来评估模型的检测能力和检测精度,包括准确率、召回率、精确度、误报率、F分数等。
混淆矩阵用于描述加密恶意流量检测中实际类别和预测类别之间的相互关系。
其中:

  • TP(真正例)表示检测模型将攻击类型正确识别为攻击类型的样本个数;
  • TN(真负例)表示检测模型将正常类型正确识别为正常类型的样本个数;
  • FP(假正例)表示检测模型将正常类型错误识别为攻击类型的样本个数;
  • FN(假负例)表示检测模型将攻击类型错误识别为正常类型的样本个数;
预测攻击正常
攻击TPFN
正常FPTN

基于上述定义,给出各种精度性能指标的公式化定义。
准确率 = T P + T N T P + T N + F P + F N 准确率=\frac{TP+TN}{TP+TN+FP+FN} 准确率=TP+TN+FP+FNTP+TN
召回率 = T P T P + F N 召回率=\frac{TP}{TP+FN} 召回率=TP+FNTP
精确度 = T P T P + F P 精确度=\frac{TP}{TP+FP} 精确度=TP+FPTP
误报率 = F P F P + T N 误报率=\frac{FP}{FP+TN} 误报率=FP+TNFP
召回率、精确度和误报率体现了检测方法在每个攻击类别上的检测效果,特别是当数据不平衡时,这3个指标能够准确获知各类攻击的检测情况。
由于一般情况下召回率和精确率之间存在博弈,即召回率高,精确度就低;反之精确度高,召回率就低。于是引入F分数指标,F分数是综合考虑召回率和精确率的精确性评价指标。当β=1时,精确率和召回率同等重要,权重相同,此时F分数又被称为F1分数或F衡量。
F分数值越高表明算法的分类性能越好。
F 分数 = ( 1 + β 2 ) P r e c i s i o n × R e c a l l β 2 P r e c i s i o n + R e c a l l F分数=(1+\beta^2)\frac{Precision×Recall}{\beta^2Precision+Recall} F分数=(1+β2)β2Precision+RecallPrecision×Recall
上述精确性指标基于流或基于包,字节精度对评估流量分类算法的准确性至关重要。但是,字节精度可能耗费计算资源,提升计算复杂度。

实时性指标

实时性指标用于评估模型的检测效率,反映加密恶意检测可以在线、快速地识别加密恶意流量的能力,保证在实施恶意流量检测的过程中不影响核心网络性能。实时性主要体现在对流的前N个包的精确检测上。

应用检验改进

关于“六步法”的最后一步应用检验改进,是指将构建的模型应用到实际网络中,进行实网加密恶意流量检测,通过网络运行,检验算法模型的实效性和健壮性,并定期对模型进行更新,不断完善模型以取得更高的检测精度和效能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现 pdf 转 word

前言:最直接的方式 wps 充会员可以直接转,但是单纯为了 使用这个功能有没啥必要 pdf转word方法 在线转换wps转换其他收费转换方式 在线转换 介绍在线转换,虽然样式简陋但是可以转换成功,转换以后也没有失真 http://ssyr.mynatap…

#循循渐进学51单片机#步进电机与蜂鸣器#not.8

1、能够理解清楚单片机IO口的结构。 2)t1相当于PnP三级管,t2相当于npn三极管 3) 强推挽io具有较强的驱动能力,电流输出能力很强。 2、能够看懂上下拉电阻的电路应用,并且熟练使用上下拉电阻。 3、理解28BYJ-48减速步进电机的工作…

Android 官方屏幕适配之ScreenMatch

背景: Android 项目的一个app需要适配手机平板,为了一套UI和可以适配2个不同屏幕,记录一个适配的技巧: 前提,使用这个框架:GitHub - wildma/ScreenAdaptation: :fire:一种非常好用的 Android 屏幕适配——…

#循循渐进学51单片机#c语言基础和流水灯实现#not.3

1、熟练掌握二进制、十进制和十六进制的转换方法。 多少进制就是多少之间相加,比如十六进制就是十六一次一加;二进制转化十六进制,分成四个一组。 2、C语言变量类型与取值范围,for、while等基本语句的用法。 for、while等基本语句…

基于Y向连贯性算法的多边形扫描线生成(适用于凸多边形和凹多边形)【原理+java实现】

问题介绍 给定一个多边形,可能是凸多边形,也可能是凹多边形,现需要生成一系列线条将多边形描述出来,示例如下图 原始方法 遇到这个问题,大家首先想到的方法可能是:使用一系列的竖线来和多边形进行相交&…

Java入坑之语法糖

一、for和for-each 1.1for和for-each概念 for 循环是一种常用的循环结构,它可以通过一个变量(通常是 i)来控制循环的次数和范围。for 循环的语法格式如下: for (初始化; 布尔表达式; 更新) {//代码语句 }for-each 循环是 Java …

数据库系统的三级模式和二级映射

数据库系统的三级模式结构基本概念模式(schema)外模式(external schema)内模式 (Internal Schema) 数据库系统的二级映射外模式/模式映象模式/内模式映象 总结感谢 💖 数据库系统的三级模式结构 数据库系统…

Web安全与攻防

Web安全概述 在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基于Web的攻击和破坏的增长,安全风险达到了前所未有的高度。Web安全可以从以下三个方面进行考虑:…

Matlab图像处理-从RGB转换为HSV

从RGB转换为HSV HSV彩色系统基于圆柱坐标系。从RGB转换为HSV需要开发将(笛卡儿坐标系中的)RGB值映射到圆柱坐标系的公式。多数计算机图形学教材中已详细推导了这一公式,故此处从略。 从RGB转换为HSV的MATLAB函数是rgb2hsv,其语法为: hsv_imag…

商业综合体AI+视频安防监控与智能监管解决方案

一、方案背景 商业综合体需要具备更好的品质和环境才能吸引更多客流,如何有效地进行内部管理、外部引流,是综合体管理人员思考的重点。 传统的视频监控需要靠人盯牢屏幕或者发生报警后通过查看录像,才能找到意外事件相关人员与起因&#xf…

VMware启用共享文件夹

1. 启用 编辑虚拟机设置 - 选项 - 共享文件夹 - 总是启用 - 添加 2. 启动Ubuntu查看 正常情况/mnt目录会出现文件夹hgfs 如果不存在,可参考 这篇文章 操作 如果安装VMWare tools后/mnt中有hgfs但没共享文件,可参考 这篇文章 如果出现 mount: unkno…

Mac 安装软件各种报错解决方案

Mac 安装软件各种报错解决方案 文章目录 Mac 安装软件各种报错解决方案一. 打开允许“允许任何来源”二. 无法打开"xxx",因为它不是从App Store下载三. 无法打开"xxx",因为 Apple无法检查其是否包含恶意软件。四. "xxx"已…

执行 git remote add github git@github.com:xxxx/testGit.git时,git内部做了啥?

git remote add 往 .git/config 中写入了一个叫 [remote "origin"] 配置 url → 表示该远程名称对应的远程仓库地址fetch 参数分为两部分,以冒号 : 进行分割冒号左边 ☞ 本地仓库文件夹冒号右边 ☞ 远程仓库在本地的副本文件夹 ☞ 往里面添加数据的意思 可…

pgzrun 拼图游戏制作过程详解(6,7)

6. 检查拼图完成 初始化标记成功的变量Is_Win Is_WinFalse 当鼠标点击小拼图时,判断所有小拼图是否都在正确的位置,并更新Is_Win。 def on_mouse_down(pos,button): # 当鼠标被点击时# 略is_win Truefor i in range(6):for j in range(4):Square S…

今天早上在使用Layui的时候,排查出了自己的BUG

昨天使用的时候,一直渲染不出来,今天,翻看了文档找到了问题特意,留了一个,field写成了filed,辛辛苦找了半天 ... /委屈差点错怪了Layui

【Transformer系列】深入浅出理解Tokenization分词技术

一、参考资料 NLP技术中的Tokenization是什么?核心任务是什么? 二、Tokenization相关介绍 1. Tokenization的概念 NLP技术中Tokenization被称作是“word segmentation”,直译为分词。具体来说,分词是NLP的基础任务&#xff0c…

如何优化你的Vue.js应用以获得最佳性能

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

C++版本的OpenCV实现二维图像的卷积定理(通过傅里叶变换实现二维图像的卷积过程,附代码!!)

C版本的OpenCV库实现二维图像的卷积定理过程详解 前言一、卷积定理简单介绍二、不同卷积过程对应的傅里叶变换过程1、“Same”卷积2、“Full”卷积3、“Valid”卷积 三、基于OpenCV库实现的二维图像卷积定理四、基于FFTW库实现的二维图像卷积定理五、总结与讨论 前言 工作中用…

基于matlab实现的弹簧振动系统模型程序(动态模型)

完整代码: clear all; %System data m1.0; zeta0.01; omega01.0; Dt1.0; f01.0; x00.0; dotx00.0; xmaxsqrt(x0^2(dotx0/omega0)^2)min([0.5*abs(f0)*Dt/(m*omega0) f0/omega0^2]); omegadomega0*sqrt(1-zeta^2); dt00.1*pi/omega0; nstep500; a0.70; b0.…

Python爬虫(二十)_动态爬取影评信息

本案例介绍从JavaScript中采集加载的数据。更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import time import json#数据下载器 class HtmlDownloader(object):def download(self, url, paramsNone):if url is None:return Noneuser_agent …