当前位置: 首页 > news >正文

观成科技:基于深度学习技术的APT加密流量检测与分类检测方案

一、前言

近年来APT攻击的案例屡见不鲜,给国家、企业以及个人的利益造成极大威胁。随着流量加密技术的不断成熟,许多APT组织倾向于将流量加密后进行传输,从而保护传输内容。由于加密流量的实际载荷已被加密,故采用原始的流量检测方法,如深度包检测等方法,对于加密流量而言基本无效。业内尝试采用机器学习算法,通过专家经验手工提取特征的方法进行检测,但该方法存在耗时多、容易出现人为错误等问题,因此,转向深度学习技术,对流量自身进行表征学习,从而提取深度特征进行检测,具有比传统机器学习更优异的检测能力。首先,采用堆叠自编码器算法进行无监督学习,区分APT加密流量与正常流量。其次,对被检测出来的APT加密流量,采用卷积神经网络算法进行多分类任务,确定该流量属于何种APT组织。经过实验验证,该方案可以有效的检测APT加密流量,并且具有很强的APT组织分类能力。

二、问题描述

本方案主要解决两个问题:APT加密流量的识别和APT加密流量所属组织的分类。

  1. APT加密流量的识别

业内普遍的解决方案是采用有监督学习方法,即收集一定数量的正常流量与APT流量,并打上不同的标签,然后采用有监督算法(例如逻辑回归、随机森林等)进行训练,生成模型用于检测。但是在实际应用中,会出现一个问题:由于收集到的APT黑流量数量有限,故而当采集的白流量数量远多于黑流量时,则会由于数据不平衡问题而使检测能力明显下降;若采集与黑流量数量相近的白流量,则可能因为白流量缺乏代表性则造成模型过拟合,进而产生大量误报。

面对这一问题,本方案采用无监督学习的方法进行检测,无监督学习是指无需预先定义目标变量,而是通过算法从无标签的数据中发现隐藏的结构和模式。这里采用无监督学习仅对掌握的APT加密流量进行训练,学习到APT加密流量的特有模式,然后用于流量检测,能够有效的利用现有APT流量,识别现网中的APT流量,同时规避白流量的选择问题。

  1. APT加密流量所属组织的分类

目前针对APT流量分类的研究还处于初级阶段。为了达到精细化检测、将检测出的APT恶意流量所属组织进行分类的目的,本方案采用深度学习多分类技术深入挖掘不同APT组织流量的深层次特征,学习出各自APT组织的流量差异,最终达到利用模型进行精细化分类的目的。

三、原理解释

首先,采用堆叠自编码器算法进行APT加密流量识别。该算法是一种经典的无监督学习算法,它由多个自编码器连接而成,自编码器用于学习数据的低维表示,而堆叠自编码器通过连接多个自编码器从而学习到更高级别的数据特征表示。

自编码器(Auto Encoder,简称AE)的原理图如下:

自编码器主要由编码器(Encoder)、解码器(Decoder)组成,其工作流程为将输入(Input)首先通过编码器进行信息压缩,生成中间变量Code,然后将中间变量通过解码器转换成最终Output,而自编码器训练的过程就是使得输入和输出无限接近的过程。堆叠自编码器的原理如下图所示:

堆叠自动编码器由多个标准自动编码器层堆叠而成。每一层自动编码器包括编码器和解码器两个部分,编码器负责将输入数据映射到隐藏层(低维空间),解码器再将隐藏层的表示解码回原始数据的维度。在训练过程中,首先单独训练每一层自动编码器,待每一层训练完成后,将所有编码器层串联起来形成预训练的深度神经网络。相比于自编码器,堆叠自动编码器能够通过多层非线性变换将原始数据映射到抽象和紧凑的特征空间,进而实现更深层次的特征学习和表示学习。

其次采用卷积神经网络算法进行对APT流量进行分类。卷积神经网络(Convolutional Neural Network,CNN)是一种常用于图像识别、语音识别等领域的深度学习模型。CNN的核心思想是通过卷积操作来提取图像等数据的特征,从而实现对数据的分类、识别等任务。卷积神经网络的流程如下:

CNN基本结构由卷积层、池化层和全连接层组成。其中,卷积层是CNN的核心,它通过滑动一个卷积核在输入数据上进行卷积操作,从而提取出数据的局部特征。卷积操作可以看作是一种特殊的加权求和操作,其中卷积核中的权重参数是通过训练学习得到的。池化层用于对卷积层输出的特征图进行降维处理,从而减少模型参数和计算量。常用的池化方式有最大池化和平均池化两种。全连接层用于将池化层输出的特征向量映射到输出类别上,从而实现对输入数据的分类或识别。CNN的优点在于它能够自动学习和提取数据的特征,无需手动进行特征工程。此外,CNN还具有平移不变性、参数共享等特点,使得模型具有较好的泛化能力和鲁棒性。

四、检测流程

整个方案的检测流程如下图。

  1. 数据预处理:将原始流量的pcap包保留IP报头以及每个IP数据包的前1480字节,IP有效载荷小于1480字节的报文在报文末尾进行补零操作,将这些字节作为模型输入。然后将数据进行归一化,使得所有数据的输入值在[0,1]范围内。
  2. APT加密流量检测:将输入的向量代入训练好的堆叠自编码器模型进行预测,并留下模型预测为异常的疑似APT加密流量。

3)APT组织分类:将疑似APT加密流量代入卷积神经网络模型进行APT组织多分类任务,这里选取了四类主要的APT组织:蔓灵花、海莲花、白象以及蓝宝菇,除此以外,将其它APT组织的所有加密流量汇总成一个单独的类,共计5类。

五、实验结果

APT异常流量识别的实验验证中选择了正常流量1万条,以及APT加密流量2000条,实验结果如下:

准确率

精确率

召回率

F1分数

APT恶意流量识别

0.94

0.93

0.925

0.927

由实验结果可知,该检测三项指标均高于0.9,证明该方案能够有效检测APT加密流量。

APT组织多分类实验中选择了海莲花、蔓灵花、白象、蓝宝菇组织的加密流量各1000条,其他组织的加密流量总计1000条,实验结果如下:

对于多分类任务,一般使用Kappa系数来评判模型优劣,根据上述数据,计算Kappa系数KIA=0.872,根据业内经验,该系数在0.81到1之间说明模型性能极佳,因而该多分类任务具备一定的分类能力。

六、结语

针对传统的检测方式无法检测APT中的加密流量的问题,利用深度学习框架,提取加密流量本身的高级特征,分别完成对于APT加密流量的识别以及APT组织分类的任务,目前来看取得了不错的效果。随着深度学习技术的飞速发展,其提取特征的强大能力给流量安全检测提供很好的解决方案。观成科技团队将持续深入运用深度学习技术,争取在未来能够检测出更多的未知威胁。

相关文章:

  • 任务倒计时App
  • 公司面试题总结(二)
  • BC C language
  • 【运维】Ubuntu换硬盘扩容
  • web刷题记录(5)
  • Python网络爬虫4-实战爬取pdf
  • PDF编辑与修正 提高工作效率 Enfocus PitStop Pro 2022 中文
  • Spring应用如何打印access日志和out日志(用于分析请求总共在服务耗费多长时间)
  • Mybatis06-动态SQL
  • K8s 卷快照类
  • WindTerm使用SSH密钥连接阿里云实例,服务器设置SSH密钥登录
  • NIFI启动后密码在哪里
  • STM32MP135裸机编程:配置RCC,修改主频到1GHz
  • XX食品有限公司智能制造汇报材料(71页PPT)
  • Claude3 注册及升级教程(包含封号解决方法)
  • Angular数据绑定机制
  • CSS 三角实现
  • egg(89)--egg之redis的发布和订阅
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript设计模式之工厂模式
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Otto开发初探——微服务依赖管理新利器
  • python3 使用 asyncio 代替线程
  • RxJS: 简单入门
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 反思总结然后整装待发
  • 聚簇索引和非聚簇索引
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 通过npm或yarn自动生成vue组件
  • 智能合约开发环境搭建及Hello World合约
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # include “ “ 和 # include < >两者的区别
  • # 透过事物看本质的能力怎么培养?
  • ###C语言程序设计-----C语言学习(6)#
  • #数学建模# 线性规划问题的Matlab求解
  • $NOIp2018$劝退记
  • (06)金属布线——为半导体注入生命的连接
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (8)STL算法之替换
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java)【深基9.例1】选举学生会
  • (分布式缓存)Redis持久化
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (区间dp) (经典例题) 石子合并
  • (算法)硬币问题
  • (万字长文)Spring的核心知识尽揽其中
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET Core 通过 Ef Core 操作 Mysql