原文标题: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
笔记作者:2rrrr@SecQuan
文章小编:ourren@SecQuan
简介
命令和控制(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是最优的检测算法。
作者与部分参考文献进行了对比,参考文献中仅使用了基于流的特征,检测结果如下表所示。
可以看出,使用两种特征的检测效果普遍好于仅使用基于流的特征的效果。实际上,恶意流量因为有发送频率低的特点,
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
原文始发于微信公众号(安全学术圈):利用神经网络挖掘共同特征发现未知的APT