一、前言
近年来APT攻击的案例屡见不鲜,给国家、企业以及个人的利益造成极大威胁。随着流量加密技术的不断成熟,许多APT组织倾向于将流量加密后进行传输,从而保护传输内容。由于加密流量的实际载荷已被加密,故采用原始的流量检测方法,如深度包检测等方法,对于加密流量而言基本无效。业内尝试采用机器学习算法,通过专家经验手工提取特征的方法进行检测,但该方法存在耗时多、容易出现人为错误等问题,因此,转向深度学习技术,对流量自身进行表征学习,从而提取深度特征进行检测,具有比传统机器学习更优异的检测能力。首先,采用堆叠自编码器算法进行无监督学习,区分APT加密流量与正常流量。其次,对被检测出来的APT加密流量,采用卷积神经网络算法进行多分类任务,确定该流量属于何种APT组织。经过实验验证,该方案可以有效的检测APT加密流量,并且具有很强的APT组织分类能力。
二、问题描述
本方案主要解决两个问题:APT加密流量的识别和APT加密流量所属组织的分类。
1)APT加密流量的识别
业内普遍的解决方案是采用有监督学习方法,即收集一定数量的正常流量与APT流量,并打上不同的标签,然后采用有监督算法(例如逻辑回归、随机森林等)进行训练,生成模型用于检测。但是在实际应用中,会出现一个问题:由于收集到的APT黑流量数量有限,故而当采集的白流量数量远多于黑流量时,则会由于数据不平衡问题而使检测能力明显下降;若采集与黑流量数量相近的白流量,则可能因为白流量缺乏代表性则造成模型过拟合,进而产生大量误报。
面对这一问题,本方案采用无监督学习的方法进行检测,无监督学习是指无需预先定义目标变量,而是通过算法从无标签的数据中发现隐藏的结构和模式。这里采用无监督学习仅对掌握的APT加密流量进行训练,学习到APT加密流量的特有模式,然后用于流量检测,能够有效的利用现有APT流量,识别现网中的APT流量,同时规避白流量的选择问题。
2)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组织分类的任务,目前来看取得了不错的效果。随着深度学习技术的飞速发展,其提取特征的强大能力给流量安全检测提供很好的解决方案。观成科技团队将持续深入运用深度学习技术,争取在未来能够检测出更多的未知威胁。