Press "Enter" to skip to content

利用神经网络挖掘共同特征发现未知的APT

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

原文标题:Discovering unknown advanced persistent threat using shared features mined by neural networks

 

原文作者:Longkang Shang, Dong Guo, Yuede Ji, Qiang Li

 

原文链接:https://www.sciencedirect.com/science/article/pii/S1389128621000803

 

原文来源:Computer Networks

 

笔记作者:[email protected]

 

文章小编:[email protected]

 

简介

 

命令和控制(C&C)通道广泛存在于APT攻击中,攻击者通过C&C通道与受感染的主机进行通信,以获取目标网络信息、传输攻击指令或执行恶意软件更新等操作。检测C&C通道最有效的方法是基于流量检测,因为目标系统中隐藏的恶意软件必须与外部C&C服务器进行通信,才能接收命令或发送数据,数据传输的过程就会在网络流量中留下攻击者无法消除的痕迹。然而,目前的流量检测方法主要面临两个难题:

 

隐蔽性:APT长期威胁的主要原因。攻击者会通过各种手段隐藏他们的痕迹,如加密流量、动态域名解析、降低数据传输频率等。这使得APT攻击很容易绕过入侵检测系统,也很难针对未知攻击提取特征。

 

灵活性:面对现有的检测方法,攻击者很容易通过定制恶意软件、根据目标网络调整和配置工具来绕过检测。技术和工具的不断改进以及复杂多样的攻击过程使得检测未知C&C信道非常困难。

 

针对以上问题,作者提出了一种利用恶意软件和C&C服务器之间通信流量的共同特征来检测C&C信道的方法,实验证明对于未知APT攻击的发现效果好于现有的其他方法。

 

方法

 

APT组织会共享使用的恶意软件,如下表就是部分组织使用的恶意软件重合情况。除了将工具共享,APT组织开发新的恶意软件时也会参考现有的软件,如 Duqu , Flame , Shamoon , Triton 几个工具就从震网病毒 Stuxnet 中借用了大量代码。基于这一发现,可以推断未知APT组织使用的恶意软件和已知恶意软件之间存在某些共同的特征。

 

因此,为了发现未知的C&C信道,需要先从现有的攻击流量数据中找出恶意软件和C&C服务器通信流量存在哪些共同的特征。显然由于数据加密等原因,很难由人工来完成这个工作,作者设计了以下的方法:首先从pcap数据包中解析出基于包(packet-based)和基于流(flow-based)的统计信息,针对包级统计信息使用LSTM来提取基于时间序列的共同特征,针对流级统计信息使用CNN来提取共同特征;最后通过PCA降维并进行实验选择合适的分类器完成对流量的分类。实验的流程图如下图所示。

 

为了进行对比,作者也对现有论文以及对恶意流量检测研究工作进行了总结,人工提取了10个特征,均为比较常见的流量检测特征类型,如下表所示。

 

实验

 

作者使用的APT攻击流量样本来自Contagio malware database,其中包含了36个APT样本,实验中一部分用作训练集,一部分用作测试集来测试模型发现未知C&C信道的能力。正常流量样本来自TcpPlay的 bigFlows.pcap ,它是一个从私有网络接入点上捕获的流量数据,包含了132个应用产生的约80万数据包,其中有约2万个双向网络流。为了模拟真实场景中可能存在的长会话、发送少量数据包的特点,作者将数据集中恶意流量的比例调整为约1%,与真实场景中的比例一致,增加了检测难度。

 

首先作者调整了神经网络和PCA降维的输出维度,在LSTM和CNN的输出分别为20维和30维,PCA降维输出为22维时得到了最佳效果。下表是这一参数下不同模型的分类结果,可以看到决策树家族和KNN的表现要比SVM、贝叶斯等经典算法的效果要好;随机森林的精确度和误报率虽然最佳,但是召回率较低;结果表明,梯度提升决策树GBDT是最优的检测算法。

 

作者与部分参考文献进行了对比,参考文献中仅使用了基于流的特征,检测结果如下表所示。

 

可以看出,使用两种特征的检测效果普遍好于仅使用基于流的特征的效果。实际上,恶意流量因为有发送频率低的特点,

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注