天天看点

干货分享 | 加密流量检测之多维特征

作者:中睿天下

随着网络攻防博弈的不断升级,越来越多的APT攻击组织利用隐蔽隧道技术隐藏攻击特征,隐蔽隧道是绕过防火墙端口屏蔽的一种通信方式,可以绕过 WAF、IPS、IDS等网络监控防护设备入侵军工、国防等核心单位内网,对军工、国防等单位形成新威胁、新挑战。

另外据Gartner统计,2020年有超过70%的恶意网络攻击使用加密流量技术,加密攻击流量已逐渐成为APT攻击组织攻击的重要手段与环节。恶意加密流量是一种使用加密技术如https加密等,对攻击命令、恶意攻击软件、恶意程序等加密后进行传输的数据流。识别隐蔽隧道恶意流量涉及大量数据处理和分析的复杂任务,给网络安全运营带来了巨大的挑战,其主要原因有三:

1

加密后的流量特征与明文的流量特征相比变化较大,无法通过传统攻击载荷匹配的方式进行检测识别;

2

恶意软件利用流量伪装技术(如流量变形、链路填充),将恶意流量特征转换为普通的正常流量特征,增加识别难度;

3

不同加密协议的加密方式和封装格式之间有着很大的差异,需要针对性考虑检测判别策略。因此加密攻击流量的检测是业界面临的重点及难点。

目前基于传统的规则匹配及算法的防护拦截措施无法及时发现并阻断隐蔽隧道恶意流量的攻击行为,可能对军工、国防单位财产、声誉、数据造成严重损失,识别隐蔽隧道恶意流量已成为业界的重点难点课题。

因此首先需要采用基于机器学习以及人工智能等技术手段,通过对流量特征、会话特征、时空特征、隐蔽通信特征等多维特征融合分析提取,根据不同的业务场景,分别构建选择面向隐蔽攻击流量的智能监测模型,从而实现对已知或未知木马隐蔽隧道通信的全面监测能力。

其次随着时间的迁移、攻击样本数据分布变化以及攻击者行为模式的变化等因素影响,会导致新的攻击流量发生某种程度的偏差或移位,最终会影响模型检测的精准率,因此需要系统需要具备对概念漂移的全面检测分析能力,能够对训练模型以及模型参数进行适时地调整或重构,实现模型的及时迭代与更新。

最后,需要通过智能模型检测的结果以及对APT攻击链的特征分析,完成对APT攻击组织攻击行为判定、组织聚类和画像归因等,并且基于APT攻击链提取的特征也可反馈于智能监测模型训练,从而能够形成一个安全监测的闭环。

机器学习领域,特征工程一直占据着核心位置,特征工程的质量高低决定着机器学习的效果。在网络安全领域,我们在利用机器学习对流量进行检测、分析时,遇到比较大的挑战,就在于特征的选取,如何通过繁多的多维特征体系,提取特定APT木马通信的维度特征,进而纳入到我们的模型训练,提炼出比较精准的检测模型。

通过分析多个APT样本的通信流量,我们将多维特征工程通过如下特征维度展开:

01

时空特征

时空特征即协议无关特征。“时” 指的是和时间相关的一组特征集,例如,流时长、包时间间隔等。“空” 指的是和包大小相关的一组特征集,例如,包大小、包数等。

02

背景特征

背景特征是指从背景流量中提取并选择的一类特征,如 DNS、HTTP、ICMP等背景流量特征,其中,DNS 背景流量特征主要反映在域名特征,HTTP 背景流量特征主要反映在 HTTP 协议头内容特征,ICMP背景流量主要反映在PING流量。

03

握手特征

握手特征、主要是和 SSL 协议相关的一组特征集,刻画客户端和服务端在握手阶段的一系列流量特征。例如,协议版本、支持的扩展项等。

04

证书特征

证书特征主要是和 x509 协议相关的一组特征集,刻画双方使用的数字证书的一系列特征。例如,证书链长度、使用者正常度等。

以DNS隧道攻击流量为例

该攻击类型流量呈现时空特征状态为:平均包长比较固定,连接时间长、频率高;正常的DNS协议数据包较小,连接状态多为中低频。在对该类型DNS隐蔽隧道恶意加密流量进行建模时,共使用正常加密DNS流量、隐蔽隧道恶意加密DNS流量请求与响应报文20万对,其中正常DNS流量数据和恶意DNS流量各10万对,包含内部采集的DNS流量数据和互联网公开DNS流量数据,同时,为保证恶意流量数据样本的多样性,恶意流量数据涵盖网络攻击时常用的iodine DNS、DNS Shell、DNS2TCP、DNSCAT等多个DNS隧道工具的流量数据。

在建模过程中,对采集到的正常及恶意流量数据进行数据清洗和规范化处理,分析正常DNS流量与恶意DNS流量差异,从协议、载荷方向入手,共提取出DNS请求类型、请求数据分布等多维特征。以DNS请求的源IP为威胁源来识别DNS流量数据是否为恶意流量,其中80%的数据用来训练模型,20%的数据作为验证集评估模型效果。使用卷积神经网络算法训练DNS隧道流量识别模型。

具体工作流程如下:

卷积神经网络主要由卷积层、池化层和全连接层构成。相较于普通的神经网络,卷积神经网络最大的特点就是增加了卷积运算。卷积运算主要包括提取特征和映射特征两部分。在提取特征中,前一层提取的局部特征就是后一层的输入,同时在提取某个局部特征时,也能确定该特征与其它特征的位置关系。在特征映射中,多个按矩形进行排列的的神经元节点组 成一个个特征平面,同一特征平面上的神经元节点权值共享。权值共享能够减少网络层之间的连接,并且降低过拟合的风险,减少了参数的数量并简化了模型。

通过深层神经网络自动学习网络流量的时空特征,实现高效的网络流量异常检测。其基本工作流程为:在数据包层次,系统将每个数据包转换为二维图像格式,然后利用卷积神经网络学习数据包内部的空间特征。在网络流层次,系统利用循环神经网络进一步学习数据包间的时序特征。最终,在综合利用两种深层神经网络的特征学习能力的基础上,得到准确刻画网络流量行为的网络流时空特征,并最终用于隐蔽隧道通信检测。

预处理: 预处理将原始网络流量转换为卷积神经网络需要的二维图像格式。判断流量是否具有异常行为的基本单元是网络流,因此原始网络流量需要首先切分为一组网络流。每一个网络流包含一组双方通信的数据包。

交叉验证: k折交叉验证技术用于评估和选择性能最好的模型。训练集被随机均分为10个子集,每次训练和验证时选择1个子集作为验证集。

时序特征学习:长短时记忆循环神经网络用于学习流量空间特征之间的时序特征。

SoftMax分类器: SoftMax分类器用于对自动学习到的时空特征进行隐蔽隧道通信检测。针对具体每个网络流。

具体流程如下:

干货分享 | 加密流量检测之多维特征

DNS隐蔽隧道通信流量的评价指标如下:

模型算法 准确率 召回率
卷积神经网络 91.54% 100%
干货分享 | 加密流量检测之多维特征

继续阅读