(NDSS2024)论文阅读——仅低质量的训练数据?用于检测加密恶意网络流量的稳健框架

文章基本信息

作者:Yuqi Qing et al. (清华大学李琦团队)
代码
文章

摘要

  • 存在问题:收集包含足够数量的带有正确标签的加密恶意数据的训练数据集是具有挑战性的,当使用低质量的训练数据训练机器学习模型时,它们的性能会下降。
  • 研究目标:解决现实世界中的低质量训练数据集问题,即检测由不断演变的恶意软件生成的加密恶意流量。
  • 核心思想:利用正常和恶意流量数据之间的分布差异来估计每种类型数据的可能位置。

方法概述

三个组件:

  1. 特征提取模块:将原始加密流量转换为(表示细粒度行为的)特征向量。基于改进的 AE 架构,以无监督的方式工作,以防止错误的标签污染特征向量。
  2. 标签噪声校正模块:通过自回归生成模型估计训练数据的分布,重新标记表现出最明显分布特征的训练数据,并通过集成学习(7 个机器学习方法)推断剩余数据的标签(首先确定一部分高置信度的数据样本标签,然后将其余的所有样本重新打上标签)。
  3. 数据增强模块:利用经过标签校正的训练数据,选择要生成的恶意数据可能分布的区域,使用了一个改进的 GAN 模型来生成位于这个目标区域的新恶意数据,将生成新数据和校正过标签的数据混合进行训练。

整体流程:特征提取>分布估计>数据生成>(数据应用)

在这里插入图片描述

特征提取模块

一个改进的自动编码器,它分为嵌入层、堆叠的双向GRU(分别是encoder和decoder,分别都为两个Bi-GRU,decoder中的第一层和encoder不同,剩下都一样)和重建层。作用是从流量数据的包长序列中提取特征向量。
(代码分析后面有空了补上)

标签纠正模块

这一部分主要目的是为了利用现有的数据,进行分布的估计,然后根据估计出来的分布来纠正标签。这一部分根据论文所写的是随机从三个数据集中抽取500个良性流量和500个恶意流量,使用特征提取模块提取每个流的特征向量。
使用TSNE算法将特征向量降维到1维,再使用核密度估计来估计两种流量的分布情况。下图是文中可视化后的结果。

在这里插入图片描述

从图中可以看出良性流量和恶意流量确实存在分布差异(这里也是我们需要验证的,需要在其他数据集上进行复现
因此,我们可以估计低质量训练数据的分布,然后识别位于分布最密集和最稀疏区域的训练样本,如下图所示。

在这里插入图片描述

可以看到,右图横坐标代表了样本密度,其中密度高的样本就认为是正常流量,密度低的样本认为是恶意流量。并据此重新打标签。

但是存在的问题是,核密度估计等传统统计方法无法准确估计高维数据的分布。其次,正常数据分布和恶意数据分布之间的差异可能并不显着,特别是对于不太频繁的正常操作。

所以,本文采用了MADE进行分布估计,也就是说,最后本文并没有直接使用核密度估计和TSNE算法来进行分布估计,而是使用了先前的工作MADE(实际上,本文的代码中也集成了大量MADE中的代码,这实际上在图1中并没有标明,标签纠正模块也基本是MADE的工作)。最后根据预测的分布来纠正低质量训练数据的标签。

数据增强模块

通过上述特征提取和标签纠正,最后得到了目标数据集的分布情况,核心思想就是根据预测的分布来生成数据达到数据增强的效果。作者提出的现有的research gap是普通GAN模型只能生成遵循原始训练数据分布的新数据。而本文的创新是预测新的流量可能出现的分布,文中给了下图中的三个情况。

在这里插入图片描述

  1. 第一种情况是新的恶意流量可能会更接近正常流量,因为恶意流量为了绕过检查,所以会尽力装为正常流量。
  2. 第二种情况是新的恶意流量可能是从未出现过的0 Day攻击,所以会与现存的所有流量都有差距。
  3. 第三种情况实际上是生成正常流量的边界,如果单纯在上述两个边界的情况下生成数据,会加剧类别不平衡,使决策边界向正常流量转移,导致误报增多。因此文章使用原始训练数据中正常流量的分布作为边界,生成新的正常流量。

为了使生成的数据符合上述三种情况,本文提出了一种改进的GAN,结构如下图所示。
在这里插入图片描述
它根据每一种情况单独设计一个生成器,利用定制的损失函数来学习目标数据分布。最终的结构就是三个生成器网络和一个判别器网络。并且,为了避免模型崩溃问题,并进一步增加合成数据的多样性,数据增强模块实际上训练了三个独立的GAN,并将所有合成的数据组合起来作为新的训练数据。
下图是代码运行后生成的三个GAN模型。

在这里插入图片描述

文章主要贡献

文章核心是数据增强,考虑在缺乏训练数据以及训练数据质量过低时,使用什么方法可以提高数据集质量。
文章的思路大致如下:首先我们发现了流量数据集质量往往很差,这是无法避免的,因为流量数据的异构性。并且,我们发现了在大部分的数据集中,恶意流量和正常流量的分布是不同的,那么我们就可以根据这个不同来界定两者的边界。进一步,根据这个边界,对现有的数据进行划分(标签噪声纠正)以及对未来的数据进行划分(考虑的两种恶意流量的边界和一种正常流量的边界),从而指导数据生成,达到数据增强的目的。

文章比较好的地方是将数据的质量、正常流量和恶意流量的特征转换为特征空间中的分布情况,从而利用数学方法来进行分析,得到了最终的结论。

思考

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【心随行动】让行动轨迹和复盘形成闭环螺旋式上升

为何会迷茫,因为不知过去未谋将来。认真复盘可以帮达到理想的彼岸!!! 文章目录 为何会迷茫,因为不知过去未谋将来。认真复盘可以帮达到理想的彼岸!!!日复盘模板:时间&…

LabVIEW生物医学信号虚拟实验平台

介绍了一款基于LabVIEW的多功能生物医学信号处理实验平台的设计和实现。平台通过实践活动加强学生对理论的理解和应用能力,特别是在心电图(ECG)和脑电图(EEG)的信号处理方面。实验平台包括信号的滤波、特征提取和频谱分析等功能,能直观体验和掌握生物医学…

Ubuntu安装MinIO

注:本文章的ubuntu的版本为:ubuntu-20.04.6-live-server-amd64。 Ubuntu(在线版) 更新软件源 sudo apt-get update 通过wget下载MinIO二进制文件 sudo wget -P /usr/local/bin https://dl.min.io/server/minio/release/linux…

光纤收发器技术参数详解

1.1系统架构 1.2光纤收发器发展历程 数据速率 模块 最新修订年份 描述 应用 1 Gbps GBIC 2000年 千兆接口转换器 千兆以太网、SDH/SONET (2.5 Gb/s) 和光纤通道 (4Gb/s) 10 Gbps SFP 2001年 小型可插拔 千兆以太网、SDH/SONET (2.5 Gb/s) 和光纤通道 (4Gb/s)…

数据结构--顺序表(详解)

欢迎大家来到我的博客~欢迎大家对我的博客提出指导,有错误的地方会改进的哦~点击这里了解更多内容 目录 一、线性表二、顺序表 一、线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结…

C#高级篇 反射和属性详解【代码之美系列】

🎀🎀🎀代码之美系列目录🎀🎀🎀 一、C# 命名规则规范 二、C# 代码约定规范 三、C# 参数类型约束 四、浅析 B/S 应用程序体系结构原则 五、浅析 C# Async 和 Await 六、浅析 ASP.NET Core SignalR 双工通信 …

C语言程序设计:程序设计和C语言

文章目录 C语言程序设计:程序设计和C语言一、计算机程序和语言计算机语言C语言的发展及其特点C语言的发展历程C语言的特点 二、编译器安装三、最简单的C 语言程序简单的C语言程序介绍程序执行流程:输出: 求两个整数之和运行结果: …

I2C(一):存储器模式:stm32作为主机对AT24C02写读数据

存储器模式:在HAL库中,I2C有专门对存储器外设设置的库函数 I2C(一):存储器模式的使用 1、I2C轮询式写读AT24C02一页数据2、I2C轮询式写读AT24C02多页数据3、I2C中断式写读AT24C02一页数据4、I2C使用DMA式写读AT24C02一…

发表文章去哪里投稿?软文推广常见的几种渠道类型

在互联网高度繁荣的当下,人们获取信息的门槛愈发降低,投放信息渠道的类型也五花八门。但想要获得理想的推广效果,信息投放渠道在其中发挥着不小的作用。发表文章去哪里投稿?下面就让我们来了解一下软文推广常见的几种渠道类型。 一…

QComboBox中使用树形控件进行选择

事情是这样的,要在一个ComboBox中通过树形结构进行内容的选择。 默认的QComboBox展开是下拉的列表。因此需要定制一下。 效果就是这样的 实现上面效果的核心代码就是下面这样的 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { treenew…

Unity 读Excel,读取xlsx文件解决方案

Unity读取表格数据 效果: 思路: Unity可以解析Json,但是读取Excel需要插件的帮助,那就把这个功能分离开,读表插件就只管读表转Json,Unity就只管Json解析,中间需要一个存储空间,使用…

Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验

一,蜂鸣器模块 封装步骤: ①初始化SNVS_TAMPER这IO复用为GPIO ②设置SNVS_TAMPPER这个IO的电气属性 ③初始化GPIO ④控制GPIO输出高低电平 bsp_beep.c: #include "bsp_beep.h" #include "cc.h"/* BEEP初始化 */ void beep_init…

前端学习DAY29(1688侧边栏)

完整代码、 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>1688导航条</title><style>…

NLP模型工程化部署

文章目录 一、理论-微服务、测试与GPU1&#xff09;微服务架构2&#xff09;代码测试3&#xff09;GPU使用 二、实践-封装微服务&#xff0c;编写测试用例和脚本&#xff0c;并观察GPU1&#xff09;微服务封装(RestFul和RPC)2&#xff09;测试编写(unit_test\api_test\load_tes…

重生之我在异世界学编程之数据结构与算法:深入队列篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 一、概述二、链表节点结构三、队列结构四、基…

在线机考|2024华为实习秋招春招编程题(最新)——第2题_订单取餐顺序_300分(五)

题目内容 肯德基店销售炸鸡、薯条、可乐三种实物,准备三种食物的速度一样,且三种食物同时制作;三种食物同时制作,按订单顺序进行分发食物。现在有N个订单,每个订单用连续三位数组元素表示,数组的元素是对应食物的份数。N最大为100万,每个订单里每份食物最多100万份。请计…

SAP SD信贷管理后台配置(上)

后台系统功能配置 1、定义信贷控制范围 说明&#xff1a; 信贷控制区域是一个控制单元&#xff0c;用于指定和检查合作伙伴的信用额度&#xff1b;信用控制区域可以包含一个或多个公司&#xff0c;但一个公司无法分配给多个信贷控制区域&#xff1b;在信用控制区域内&#x…

​虚幻引擎UE5渲染不够快的解决办法

​虚幻引擎是由Epic Games公司开发的一款功能强大、全球最开放且先进的实时 3D 创作工具&#xff0c;广泛应用于游戏、影视、建筑可视化、虚拟现实等多个领域&#xff01;虚幻引擎UE5如何实现在网上极速渲染呢&#xff1f;本文提供云渲染和云电脑两套方案用于渲染提速&#xff…

算力股开盘大涨,电光科技7连板

12 月 30 日&#xff0c;尽管北证 50 指数半日跌超 3% 再创调整新低&#xff0c;全市场超 4200 股飘绿&#xff0c;但算力概念股却逆势活跃&#xff0c;电光科技实现 7 连板。以下是对这一现象的具体分析&#xff1a; 原因分析 政策利好&#xff1a;上海近日印发《关于人工智能…

kanzi做3d时钟屏保

用kanzi做一个3d屏保 1. blender制作3d数字模型 下载一些好看的字体文件&#xff0c;用blender建模字体模型&#xff0c;导出fbx格式 2. 新建kanzi工程 导入fbx模型&#xff0c;创建节点&#xff0c;时分秒节点&#xff0c;最上面放一个按钮&#xff0c;用来点击 根据喜好…