来源:Identifying APT Malware Domain Based on Mobile DNS Logging,https://www.hindawi.com/journals/mpe/2017/4916953/
摘要:高级持久威胁(APT)是对敏感信息的严重威胁。目前的检测方法耗时较长,因为它们检测APT攻击的方法是在数据泄露后对大量数据进行深入分析。具体来说,APT攻击者利用DNS定位他们的命令和控制(C&C)服务器和受害者的机器。本文通过对DNS日志的分析,提出了一种高效的检测APT恶意软件C&C域的方法。我们首先从移动设备的DNS日志中提取15个特性。根据Alexa的排名和VirusTotal的判断结果,我们给每个域打分。然后,我们通过分数度量选择最正常(normal)的域。最后,我们利用我们的异常检测算法,称为全局异常森林(GAF),来识别恶意软件C&C域。我们进行了性能分析,以证明我们的方法在计算效率和识别精度方面比其他现有的工作更有效率。与局部离群因子(LOF)、最近邻(KNN)和隔离林(iForest)相比,我们的方法获得了99%以上的结果,用于C&C域的检测。我们的方法不仅可以减少需要记录和分析的数据量,而且可以适用于无监督学习。
1、介绍
高级持续威胁(Advanced Persistent Threat, APT)[1,2]是由资金充裕、技能娴熟的组织发起的一种长期窃取高价值信息的攻击。APT攻击者潜入目标网络后,会在受损的计算机上安装恶意软件,以建立指挥控制(C&C)通道。大多数恶意软件使用域名系统(DNS)来定位其域名服务器和受危害的设备。然后,APT攻击者可以与受害者窃取敏感数据的设备建立长期连接。因此,恶意软件C&C域检测可以帮助安全分析师阻断APT的关键阶段。
目前,通过分析PC的网络流量来识别C&C领域有一些工作[3-8]。niffer [3], BotGAD[4]和BotMiner[5]利用特定行为异常(如每日相似度和短生命)检测僵尸网络中的C&C。主要原因是bot主机具有群体相似性。其他作品[6-8]也根据基于域的特性区分恶意域和普通域,如域名字符串组成、注册时间和活动时间。然而,由于APT攻击者感染了少量的计算机,这些检测方法不能应用于APT恶意软件,而且它们的行为通常是为了避免被检测到。机器学习技术被证明是有效的识别恶意软件[6]。然而,APT恶意软件的人为标记数据却少之又少。正常和异常的样本相互重叠。
为了应对这些挑战,我们提出了一种基于DNS日志识别APT恶意软件域的方法。我们用三种传统的算法,即局部离群因子(LOF)、-近邻结合LOF (LOF- knn)和隔离林(iForest),对我们提出的算法——全局异常森林(GAF)进行了实验评估。实验结果表明,我们提出的算法在一个区域基站每天30万个DNS请求的数据集中表现最好。具体来说,这项工作的贡献如下:
(i)我们描述了正常域的统计数据,并定义了一个基于Alexa和VirusTotal的规则来选择最正常域。
(2)在一个真正的动态网络环境中,我们通过研究由10K个设备组成,每天超过300,000个DNS请求的大型DNS日志,提取出了多粒度移动DNS请求的15个特征。
2 使用异常检测进行C&C检测的背景
APT在2006年首次使用,自2010年[7]曝光谷歌极光后就广为人知。2013年,由于PRISM的原因,APT攻击被推到了风口浪尖。因此,APT攻击由于长期潜伏、智能渗透和过度定制,给网络安全带来了新的挑战[8,9]。APT攻击者经常在被感染的机器上安装基于dns的APT软件(例如,特洛伊木马或后门),以窃取敏感数据并隐藏真实的攻击源。在命令控制通道建立阶段识别恶意软件是一个不错的选择。然而,被APT恶意软件感染的受损计算机的DNS行为特征与僵尸网络不同。因此,基于DNS数据的APT恶意软件识别是一个挑战。
APT恶意软件的可疑实例非常罕见,而且专家也无法对其进行完全标记。DNS数据中最普通的域实例是可用的。此外,异常检测[10]不依赖于固定的签名,可以识别新的和未知的攻击。因此,我们使用异常检测来使用移动DNS日志来识别恶意软件C&C域。最常见的异常检测包括统计异常检测、基于分类的异常检测和基于集群的异常检测[11]。如果采集到标记集,则采用基于分类的异常检测,如遗传算法[12]、支持向量机[13]、神经网络[14]等。然而,在真正的APT攻击中,数据的标签很难获得。无人监控的方法可以用于识别恶意软件C&C域,例如LOF、LOF - knn和iForest。LOF[15]根据邻居密度确定数据是否为离群值。lof - kn[16]根据相似性识别离群值。然而,这两种方法都有很高的计算复杂度和太多的假警报。为了解决这两个问题,iForest[17]使用树的平均路径长度检测异常,这需要小的子采样大小来实现高检测性能。因此,我们可以建立部分模型并利用子抽样来识别恶意软件C&C领域。隔离林是基于这样的假设:当树生长时,每个实例都与外部节点隔离。不幸的是,正常域和恶意软件域的属性值比较接近。传统的异常检测算法忽略了不同性质的不同影响。在本研究中,我们引入区分信息熵来提高效率,并利用距离度量来检测异常。
3.我们的方法概述
在本节中,我们概述了用于识别APT恶意程序域的方法,解释了为什么我们选择那些可能指示APT恶意程序域的特性,并说明了选择最正常域的度量标准。
3.1 我们的方法架构
DNS日志很小但很重要。因此,本文的工作主要集中在对DNS日志的分析,以检测APT恶意软件中的可疑域。我们存储DNS日志,其中包含访问用户、源IP、目标IP、国家标志、域名、请求时间和响应时间。然后根据日志提取特征,利用异常检测技术对APT恶意软件C&C域进行识别。图1概述了所提议的方法的系统体系结构。系统由以下组件组成:(1)DNS日志收集器将移动设备产生的DNS日志存储在被监控网络中;(2)多粒度特征提取器负责提取存储在DNS日志数据库中的域特征;(3)使用普通域标识符选择最普通的域;(4)异常学习模块训练异常检测器,使用由灰度集专家标记的恶意软件域和由检测器生成的APT恶意软件C&C域,由正常集生成的正常实例;(5)异常检测器根据异常检测模型产生的识别结果进行决策。
系统的部署包括三个步骤。第一步,提取我们感兴趣的特征。关于选择的特征的细节和动机将在3.2节中讨论。第二步定义一个度量来选择用于训练的普通域。第三步是我们提出的异常检测算法,利用部分正常样本预测C&C域。第4节详细描述了该算法。结果是APT恶意软件中的可疑域名列表。
3.2 特征提取
在这项工作中,我们提取了15个特征来检测APT恶意软件C&C域基于移动DNS日志。我们还对这15个特性进行了解释,并解释了它们可以用于检测恶意域的原因。提取的域特征如表1所示。
3.2.1 DNS请求和基于应答的特性
APT攻击者通常使用不同国家的服务器构建C&C通道,以躲避检测。此外,攻击者利用快速通量来隐藏真正的攻击源[18]。APT攻击者将C&C域更改为指向预定义的IP地址,例如反向地址和无效的IP地址。基于此,我们从DNS请求和响应中提取了三个特性,例如不同源IP地址的数量、相同域的不同IP地址的数量、相同国家的IP地址以及使用预定义的IP地址。
3.2.2 基于域的特性
攻击者喜欢使用长域来隐藏可疑的部分[19]。通过分析恶意软件与指挥控制服务器通信时产生的网络流量,我们发现许多恶意软件C&C域具有高级别、长串、包含IP地址、低访问次数等特点。因此,Alexa的排名、域的长度、域的级别和包含的IP地址有助于识别恶意软件域。例如,如果一个域名包含一个IP地址,例如“192.168.1.173.baidu.com”,我们会得出结论,它可能是一个恶意的域名。
3.2.3 基于时间的特征
当受损设备连接到C&C服务器的过程中出现连接失败时,受损的机器可能会发送许多重复的DNS请求。有时,这些受感染设备的行为表现出相似之处。由于恶意软件域的IP地址不存储在本地服务器中,因此域名解析需要更长的时间。在我们的实验环境中,通过分析一天内的域访问记录,我们发现很少有域具有较高的查询频率,如图2所示。这种现象有助于我们进一步识别恶意域名。因此,我们提取了三个特征来识别APT恶意软件的C&C域,如请求频率、反应时间和重复模式。
3.2.4 Whois-Based特性
值得信赖的域名通常会提前几年付费,而且它们的生命周期很长。然而,大多数恶意软件域名的存活时间很短,不到6个月。此外,可疑域的DNS记录为空或未找到。基于以上观察,我们可以使用注册时间、活动时间、更新时间和DNS记录来检测恶意域。
3.3 正常域域判断的度量
为了实现异常检测,需要确定正常样本。一种根据内部设备发起的DNS请求数量来选择普通域的直观方法。然而,为了降低暴露风险,APT攻击者没有利用恶意软件C&C服务器来控制过多的受感染机器。此外,在我们的实验环境中,大约包含10K的移动设备,内部设备在一天内查询的域数分布遵循重尾分布,如图3所示。每次都有大约一半的域名被查询。因此,我们可以得出结论,不同的访问设备的数量不能有效地识别正常的域。通过分析APT恶意软件,我们发现恶意域名排名在前20万[21]以上。因此,访问者的数量和他们访问的页面的数量是用来识别正常域的一个特性。此外,VirusTotal聚合了大量的反病毒产品和在线扫描引擎,以检查恶意领域。因此,我们使用Alexa排名和VirusTotal结果来判断正常域,其Alexa排名在国际域低于20万,国内域低于3万,VirusTotal检验结果小于3。