来源:A Survey on Malicious Domains Detection through DNS Data Analysis
三、数据源定义
在本节中,我们将对文献中提出的方案中使用的不同类型的DNS数据、辅助信息和参考标准进行分类。这些数据的收集方式对恶意域检测方案的基本假设和直觉有重大影响。表1给出了本节的简要总结,并列举了相关的文章。请注意,该表不是详尽的,它只包含了最相关的源代码和文章示例。
3.1 DNS数据来源
DNS数据的收集可以按照以下两个正交维度进行分类:(1)数据的收集位置;(2)数据的收集方式。
收集数据的地方。由于DNS基础结构的分布式特性,可以考虑多个位置来收集关于DNS查询和回复的信息。在所有涉及的服务器中,解析器(如第2部分中定义的)是惟一的,因为它是唯一可以直接访问来自客户机的查询的位置。因此,在下面的文章中,我们将区分数据来源的两种具体情况。我们把第一个称为“主机解析器”。它是指通过观察终端主机与其解析器之间的通信而获得的DNS数据。第二个被称为“DNS-DNS”,指的是通过观察两个DNS服务器之间的通信可以获得的数据(其中一个可能是解析器)。
如何收集数据。在给定的时间点上获取ip和域名之间现有关联的信息有两种方式。一种方法是定期积极主动地解析大量收集域名以获得信息。另一种方法是被动地观察发送到DNS服务器的所有请求,提取必要的数据。接下来,我们将把这两种方法区分为主动和被动DNS数据收集。
3.1.1收集数据的地方
Host-Resolver如图1流1和8。使用解析器的内部接口捕获数据的一个主要优势,它提供了有关客户的详细信息的DNS查询和响应,这可能直接链接到特定类型的恶意行为[45,109,109,126,133,134]。例如,僵尸网络控制的主机通常在查询域和时间模式方面都有类似的DNS查询模型。Choi等人[45,46]利用“什么主机查询什么域”的信息,为每个域构建一个矩阵,该矩阵显示了在什么时间什么机器查询了这个特定域。这种表示非常方便,因为它允许分析人员修剪矩阵的列级和行级,以纠正由于僵尸网络部件失活或时间窗口参数配置错误而可能出现的错误。在Segugio系统[133,134]中,这个信息被用来构建一个主机域图,表示主机和域之间的“谁查询什么”关系。由于中间服务器的缓存,很难从DNS-DNS数据中观察到这种行为模式。这种数据来源的另一个优点是易于访问。任何公司或研究所都可以在自己的解决方案中直接部署传感器,而无需与其他各方合作。由于这些原因,许多现有的恶意域检测方案都是建立在解析器数据的基础上的,特别是那些特性与单个主机行为相关的解析器数据。还应该提到的是,使用主机解析器DNS数据的方法也可以用于检测恶意主机,粗略地说就是那些查询恶意域的主机。
部署在解析器内部接口上的传感器的一个限制是,它们只能看到单个组织中主机的行为,这可能不足以全面地建立与恶意活动相关的模式。一个值得注意的例外是,客户端选择使用一个公开可用的DNS服务器作为解析器,以提供递归查询,例如谷歌公共DNS[7]、OpenDNS[12]或Norton ConnectSafe[11]。由于与它们交互的主机数量庞大且种类繁多,在这些解析器中收集的数据可以全面揭示与不同攻击类型相关的可疑行为。大型互联网服务提供商的DNS解析器也服务于大量的个人用户。它们可以用于相同的目的。不幸的是,来自公共DNS服务器或ISP DNS服务器的DNS数据日志不容易被研究社区访问,通常是出于隐私考虑[71,88,172]。
另一方面,部署在其他DNS服务器附近的传感器观察到的查询通常会看到几个组织发出的查询。在文献中,被认为观察DNS-DNS流量最频繁的位置是(i)在权威的名称服务器[29]上,包括负责TLDs的服务器[29,154],(ii)在解析器的外部接口上[28,35,36,82]。传感器离DNS树的根越近,可见性越大。从TLD服务器收集的数据可以提供独特的见解和对新出现的恶意域名的早期检测。注意,这样的日志只会显示请求的存在,而不会显示它们的答案(即因为TLD服务器通常只提供迭代查询。仅从解析器的日志中很难捕捉到这样的信号。从权威服务器获取日志可以解决这个问题,但是由于缓存的原因,并不是所有查询对该服务器都是可见的。因此,DNS树中较高的DNS服务器的日志所提供的视图可以很快变得相当粗粒度。最极端的情况是在根服务器上观察到的请求,这些请求几乎可以完全显示在Internet上查询的所有名称,但没有响应。这些请求的容量分析也受到在终端客户端和根服务器之间的中间服务器中发生缓存的严重影响[62,63]。因此,在解析器的服务器上捕获的数据所提供的特性通常是有限的。此外,这些域名服务器的日志很难被研究人员获取。
3.1.2数据收集方式
活动DNS数据收集。为了积极获取DNS数据,数据收集器会故意发送DNS查询并记录相应的DNS响应[44,73,89,91,105,121,127]。查询域的列表是通过多个来源构建的,典型的列表包括流行的域列表,比如Alexa Top Sites[25],出现在各种黑名单中的域,或者来自权威服务器的区域文件。显然,由于查询是由数据收集器发出的,因此它们不能反映实际用户的行为。而主动DNS数据主要捕捉域的DNS记录,如解析后的ip、规范名、记录的TTL等。主动抓取DNS数据的主要优点是数据采集方法的灵活性和易用性。数据收集器可以轻松地控制要查询的域。此外,主动DNS可以在域的实际恶意使用前显示域的滥用信号。例如,主动DNS收集器可以在区域文件中发现新注册但尚未使用的潜在恶意域[57,69],而被动传感器无法看到它。此外,活动DNS数据没有链接到
个人用户的行为,因此,可以与研究社区共享,而不涉及任何隐私问题。同时,由于同样的原因,活动DNS数据不能使用依赖于用户级特性(例如用户查询的时间统计信息)的技术来检测恶意域。如果DNS查询仅从有限的一组主机发出,收集的数据可能会有偏差,这是另一个限制。具体来说,一个域可能与多个ip相关联,这取决于查询发出者的地理位置。因此,活动DNS数据可能包含有限的ip集,这些ip集是查询发出地点的函数。
四 检测算法设计
为了系统地介绍过去各条工作路线所采用的方法,我们选择从三个不同的观点来看待它们:
特征:使用了哪些特征?
方法:检测方法基于什么技术?
结果:产生了什么结果?
下面的小节分别介绍了这些观点,而表2只列出了最相关的示例和相关文章,提供了该部分的概述。
4.1特性
特征提取(或称,特征工程)是一项具有挑战性的任务,对检测方法的质量(精度和鲁棒性)有很大的影响。精心设计的特征在很大程度上有助于方法的成功,相反,糟糕的特征甚至可能毁掉好的检测算法。另一方面,即使一个特征可能具有很好的预测能力,导致较高的检测准确率,如果它可以很容易地被攻击者伪造,依赖它的检测方法的鲁棒性也会很低。因此,成功的检测方法在选择特征时必须考虑到准确性和鲁棒性的微妙平衡。
很少有什么方法可以简单地从DNS的流量中分析资源记录并在它们出现的时候使用特定的字段值。相反,在使用这些原始值进行检测之前,可以对其进行多种处理(平均值、标准差、最大值、最小值、速率、离群值等)。此外,可以使用DNS环境之外的外部数据来充实初始数据集。有些方法在检测方法中使用DNS数据之前,需要将DNS数据转换为不同的数据结构,比如图。例如,Lee等人提出的方法[100,101]就是这样的情况,其中构建了一个表示具有域的客户端通信序列的图。作者将其称为域名旅行图(DNTG),并使用它来识别需要通过检测方法考虑的相关域集群。在Oprea等人[126]提出的方法中,构建了另一种表示主机IP地址和查询域之间关联的图,而Khalil等人[82]的方法中,图捕获了不同ASNs中大量域的移动。
个别处理、富集和预处理技术的数量非常庞大,每一种都超出了本文的范围。为了系统地展示艺术的现状,我们在更高的抽象层次上区分消费特征。具体来说,我们考虑以下三个维度来区分特征:
(1)内部特征(Internal features)与上下文特征(Contextual features)
(2) DNS数据集依赖与独立特征
(3) 单一 vs 多域特征
4.1.1内部特征与上下文特征
内部特征和上下文特征之间的区别与Perdisci等人[128]提出的将特征分为被动特征和主动特征的区别非常相似。根据作者的观点,被动特征是指那些“可以通过被动地监视DNS查询从解析器中收集到的信息中直接提取出来的”,而“主动特征需要一些额外的外部信息来计算”。由于我们确实考虑到在其他地方被动或主动地收集数据的可能性,我们认为这个术语可能具有误导性,因此我们选择了不同的术语,即内部术语和上下文术语,如下所述:
内部特征(Internal features)。这些特征可以单独从DNS资源记录中提取出来。不需要外部的免费数据源。然而,它们可能是,并且大多数情况下在被输入到检测方法之前会被转换。例如,[35、36、128、129、148]中使用的“域平均TTL值”就是这种特征的一个例子。此外,从域名中提取的特征,在DGA检测和归属中很流行([28,30,45,73,140,155]),属于这一类。此外,基于关联的特性在基于图形的方法中很流行[100,101,126,133,134,149,174],通常使用内部DNS特征构建。
上下文特征。另一方面,上下文特性是通过结合DNS和外部信息源构建的。例如,要计算“域的IP地址所属的ASNs的数量”([44、45、75、148]),需要IP- as映射的信息。在另一个示例[82]中,作者使用计算在不同AS数量上的相似度得分作为数字,为域域关联分配权重。Zhang等人[171]还利用WHOIS数据中推断的关联进行域聚类。
我们注意到一些上下文特征需要查询攻击者控制的资源。例如,Prieto等人[130]将域web呈现作为特性之一,即,每当一个新域名出现在他们的列表中时,他们就会检查这个域名是否有网页可用。另一种特殊类型的上下文特性使用DNS数据本身进行充实。例如,Prieto等人[130]检查域是否有关联的MX记录。因此,使用这种类型的特性可能会警告攻击者该域正在受到监视。然而,并不总是需要积极地与域交互。这样的数据有时可以从泰利斯[91]、Censys[53]或Shodan[14]等系统获得。
虽然内部特征的使用有很多好处,主要是在简单性方面,但它们捕捉信息的能力是有限的,这些信息已被证明无法区分好域名和坏域名。例如,给定域的注册时间通常是一个非常重要的特性,但它不能仅从DNS数据获得。研究表明,有时攻击者会在恶意活动开始前几个月批量注册域名[69]。这种注册模式的检测使研究人员能够像[57,69]中所做的那样,主动检测恶意域。然而,国家代码TLDs (ccTLD)通常无法获得这些信息,因为ccTLD注册中心很少提供对其区域内的访问。因此,域的存在可以一直保持未知状态,直到第一次查询时为止,此时通过查询WHOIS服务器可能(有时但不总是)检索该信息。这使得依赖这些特征的方法不适用于大量领域。同样,由于可访问性有限、涉及隐私、成本过高等原因,其他一些有用的丰富信息也很难获取。然而,尽管存在这些问题,上下文信息的使用可以让研究人员提取出更有意义的特征,从而为恶意行为信号提供更广泛的覆盖。
4.1.2 DNS数据集依赖与独立特性
根据我们对文献的回顾,我们认为区分受到特定DNS数据集影响的特征和独立于现有DNS数据集的特征是很重要的。我们分别将它们称为DNS数据集相关特征(DDD)和DNS数据集独立特征(DDI)。这两个类背后的原理与验证阶段相关联。仅依赖于DDD特征的方法的性能很大程度上受所选数据集的影响。因此,为了评估这些方法的质量,执行跨数据集验证是非常重要的,使用来自不同位置、不同时期、不同大小的数据集等等(更多信息请参阅5.3部分)。相反,依赖DDI特性的方法更稳定,可以在不同的环境中同样运行。
依赖于DNS数据集的特性。例如,在观察期间“被观察到的被分配到一个域的IP地址的数量”是DDD特性,因为它的值依赖于specific数据集[75,89,128,129]。类似地,Khalil et al.[82]等人使用“一对域共享的观测公共ASNs的数量”特性来构建域名之间的关联,这也是与数据集有关的,因为使用这种关联构建的图取决于数据集的收集地点和方式。
DNS数据集独立的特性。另一方面,“流行搜索引擎中特定域的命中率”[35,36]是DNS数据集独立的特性,因为它不依赖于在选定的DNS数据集中可以看到什么。同样,域名的“n-gram”分布[28,30,110]是独立于DNS数据集的,因为它不依赖于所选择的数据集。
4.1.3单域与多域特性。
Mono域特征。为每个域提取单域特征。例如,“拥有一个给定领域的国家数量”[28,29,44,61,150]就是一个单一领域特性的例子。使用这类特征的优点之一是,依赖于它们的方法可以在完全不同的数据集上进行训练和操作。
多域特征。计算在一对域上的域关联特征,在许多基于图的和集群方法中使用[82,133,134,154,171,174],是多域特征的例子,也被使用,例如在[28,30,101]。我们注意到,依赖于多域特征的方法通常需要更大的数据集才能正常工作。实际上,两个任意域之间的关联可能是间接的,因此,为了构建这样一个关联中间域,还应该考虑将其包括在内,以便该方法能够正常工作。
4.2检测方法
在我们正在考虑的检测方法中,我们发现了两种主要的范例。首先,该方法可能会从一些外部专家那里获得一些好处,以确定如何区分好域名和坏域名。这种专门知识是通过各种启发式方法实现的,不使用机器学习技术。因此,我们其称为基于知识范式的方法(Knowledge Based methods)。在第二种情况下,尽管作者可能有一些恶意和良性域可供使用的例子,但他们对如何区分这两种域没有先天的理解。它们依赖数据驱动算法来帮助识别过程自动化,因此,我们将这种范式下的方法称为基于机器学习的方法(Machine Learning Based methods)。
一般来说,属于前一类的方法出现得早于后一类。在早期的研究工作中,通过对数据的分析,研究人员发现了能够区分恶意域和良性域的特征。然而,随着时间的推移,对手的行为导致了这些方法检测能力的下降,这迫使研究人员寻找更多描述性特征。这样的竞争导致了一种情况,即需要在一个模型中考虑的特征数量变得难以管理,促使研究人员转向基于机器学习的方法,这种方法能够从高维数据中自动获得知识。
随着该领域的进一步发展,研究者们开始使用堆叠方法。为了生成恶意域列表,当将一个方法的输出作为输入传递给下一个方法时,这些方法涉及几个步骤。因此,由于这些技术采用了不同的检测方法,包括机器学习和基于知识的方法,我们称之为混合方法(Hybrid approaches)。
4.2.1基于知识的方法
为了检测涉及恶意活动的域,基于知识的方法依赖于专家的洞察力。这些见解可以通过测量研究获得,这些研究探索与恶意领域活动相关的异常。文献中有许多这样的研究[37、40、47、64、65、93、118、130、139、158、170]。例如,Sato等人[139]观察到属于一个恶意软件家族的恶意域名往往同时被查询。因此,通过测量已知恶意域和未知域之间的共存程度,并将结果与某个阈值进行比较,就有可能检测到新的恶意域。现代Choi在他的作品中利用了同样的观察[45-47]。Krishnan等人[93]和Guerid等人[65]观察到,在DNS查询方面,网络中的机器人社区往往表现出类似的模式,这些模式是DNS基础设施无法解析的。
不幸的是,这一系列方法都有局限性。专家可能有意无意地有偏见。例如,Grill等[64]构建了它们的方法,即DGA恶意软件为找到与之通信的正确域做出了许多DNS解析。因此,对于感染这类恶意软件的主机,DNS解析的数量大于后续通信的数量。通过将它们之间的比率与手动设置的阈值进行比较,作者可以检测到感染了恶意软件的主机。然而,现代浏览器试图预测用户的互联网行为并提前解决某些领域的问题,即使这些领域从未被查询过。因此,在这种情况下,如果阈值不自动调整,这种方法将产生假阳性,因为这种行为在分析时专家并不知道。此外,专家通常不擅长分析高维数据,因为对于人类来说,从数据中提取的特征之间的所有关联和依赖是不容易掌握的。
4.2.2基于机器学习的方法
大多数用于检测恶意域的方法都是数据驱动的,其核心是机器学习算法[150]。一般来说,机器学习算法允许计算机在没有明确编程的情况下学习数据[113,138]。根据用于学习的数据,现有的机器学习技术通常可以分为三个子类:
•监督学习
•Semi-supervised学习
•无监督学习
监督学习算法。这些算法需要标记完整的训练集,即,对应于数据样本的每个特征向量都必须与表示该样本所属类的标签相关联。关于本文的主题,这意味着训练集中的每个域名都必须明确地标记为恶意或善意。然而,考虑到在实验训练期间通常观察到的域的数量,几乎不可能将所有域都正确标注。因此,在有监督学习的情况下,训练数据集通常只包含那些标记为高可信度的数据。感兴趣的读者可以参考[90]查阅监督学习算法。有监督的机器学习方法,如[29、35、36、44、61、75、85、122、127、148]由于简单、自动选择最相关的特性和有效性,在这个领域非常流行。实际上,依赖这种方法的研究人员只需要从原始数据中提取特征,并在标记的数据集中训练分类器。将训练过的分类器应用到新的数据中是很简单的。例如,DomainProfiler[44]使用了针对相关IP地址和域名提取的55个特性。采用随机森林算法发现滥用域。Antonakakis等人的[29]也使用随机森林。然而,在此工作中,特征是从权威名称服务器的被动DNS数据中提取的。
不幸的是,监督学习方法有几个缺点。首先,他们需要一个标记数据集来训练。由于DNS和黑名单数据的易变性,获取完全正确的数据集并不容易。如3.3节所述,手工标记很耗时,不会导致大量的训练数据集。使用来自不同白名单和黑名单的信息进行自动标记同样容易导致错误的数据包含[51、94、95、135、143、145、150]。其次,监督学习方法更容易受到特定数据集的过拟合影响。如果标记的数据集有偏差,这可能会无意中导致分类器学习不正确的特征变量分布。此外,在真正的DNS数据提要中,只有一部分域可以用标签分配。在实践中,绝大多数样本没有进行标记,无法参与分类学习过程,导致训练数据集不一致。
Semi-supervised学习算法。为了克服这种局限性,已经提出了半监督学习算法[41,173]。他们从标记和未标记的数据中学习。未标记数据有助于机器学习算法修改或重新排序从标记数据集获得的假设[173]。然而,采用这种算法通常是相当具有挑战性的,需要研究人员付出更多努力。关于半监督学习算法的更多信息,我们参考[173]和[41]。基于图形的推理方法是这一类别下最流行的方法[77、82、100、101、109、112、126、174]。例如,Manadhata等人[109]利用从企业HTTP代理日志中提取的主机域图的信任传播算法检测到恶意域。假设恶意主机更有可能与恶意软件域进行通信,而良性主机可以仅偶尔询问恶意域,并且具有初始恶意和良性域的馈送,使用置信传播方法的作者能够评估图中未知的域的边际概率是恶意的。在[174]中,作者用他们的方法在两种类型的图上预测了恶意主机和域。首先,域查询响应图(Domain Query Response Graph, DQRG)是使用来自DNS查询响应对的信息构建的:客户机的IP地址与查询的域名相连接,而查询的域名又与返回的域的IP地址相关联。第二个是被动DNS图(Passive DNS Graph, PDG),它使用从被动DNS数据中提取的域名、它们的规范连接和相应的IP地址(CNAME和一个资源记录)来构建。然后,信念传播应用在这些图表。与[109]中所有良性域的初始值都相同的情况相反,Zou等[174]根据Alexa top K列表中的等级来赋值。Mishsky等人[112]在域ip图上应用了流算法。然而,这个图除了这个区域常用的加权域- ip边,还包括表示“告诉我你的朋友是谁,我将告诉你你是谁”关系的域-域和IP-IP边。
群标半监督学习技术在该领域也被广泛使用[57,62,63,100101]。Gao等[62,63]提出了一种基于共现模式的聚类检测恶意域的方法。显然,来自相同恶意代理的对DNS系统的查询经常会同时发生,例如,当一个机器人试图解析算法生成的域名以获取主机的IP地址时。在这种情况下,相同的域名会经常在DNS解析日志中一起弹出。作者用以下方法利用了这种观察。在第一次访问时,他们对流量进行粗粒度的集群。他们选择了一个时间窗口,对于每个锚定域(来自标记数据集的恶意域),测量它与选定时间窗口内的其他域共存的频率。他们计算了两个指标:术语频率(表示其他域名与锚域名一起查询的频率)和反向文档频率(表示在所有窗口中遇到其他域的罕见程度)。使用这两个指标的预定义阈值,作者选择了与每个锚定域相关联的粗粒度集群。此外,为了执行细粒度聚类,每个域都分配了一个比特向量,其长度等于观测期间锚定子域满足的次数。如果对域的查询发生在一个小的时间窗口内,而对锚的查询发生在一个小的时间窗口内,则会设置这个向量中的一个位。然后,使用X-means对这些向量进行集群,以选择细粒度的集群。Jehyun Lee和Heejo Lee提出了一种新的方法来构建一个表示客户端域通信序列的图,他们称之为域名旅行图(DNTG)[101]。这个有向图中的节点表示一个域,如果同一客户端顺序查询了相应的域,则在两个节点之间添加一条边。边的权值随着域间转移数的增加而增加,而边的方向表示转移的顺序。edge还与客户共享比率得分相关联,该分数表示查询域的客户集的Jaccard相似性。在构建图形之后,它将使用分配给边缘的值和一些预先设防的阈值进行集群化。然后,作者将包含黑名单域的集群中的所有域标记为恶意的。
与此同时,这种算法在有限的事实真理的情况下并不是灵丹妙药。使用未标记的数据并不总是有帮助,因此,研究人员必须在验证所提议的方法方面付出额外的努力。此外,与获得正确标记的数据集相关的问题也与此相关。
无监督学习算法。非监督学习方法[34,45,46,79,154,171]的引入不仅是为了消除对标记数据集的依赖。无监督学习方法,又名聚类技术[78],仅使用数据的内部属性自动将域划分为集群。从理论上讲,通过对恶意和良性域存在完全不同行为的特征的仔细选择,就有可能使群集算法将提供的样本划分为两个群集。然后,研究人员决定哪些集群包含恶意和良性域[45,46,150]。然而,有些方法,例如[154,171],并没有遵循这条路径,而是更进一步。它们在与不同恶意行为相关的多个维度上对域进行分组,然后通过将识别的组相互关联来选择恶意域的集群。
尽管这些方法在独立于标记数据方面有明显的好处,但在文献中并不常见。我们认为这主要是由于这些技术对于设计是最困难的。此外,由于标记数据集通常存在于此区域(尽管既不完整也不完全正确),研究人员更倾向于探索更容易使用的监督和半监督方法。
4.2.3混合方法
尽管根据所提供的分类方法可以对单个检测算法进行分类,但大多数现有的实际方法都是混合的,并且使用不同类型的算法来生成结果。这可以是机器学习技术的结合[28,30,126,128,129]。例如,Notos系统[28]中使用了这种方法。它在第一个阶段训练5个元分类器,使用监督学习技术评估一个域与预定义的域组(流行的、普通的、Akamai、CDN和动态DNS)的紧密度。然后将计算出的贴近度得分作为第二阶段监督学习算法的特征。Oprea等[126]将半监督方法(信念传播)与监督学习算法(线性回归)相结合。该领域还使用了机器学习和基于知识的方法的组合[133,134,169]。例如,Segugio系统[133,134]结合了基于图形的预滤波和有监督的机器学习。它是这样工作的。首先,系统使用递归DNS解析器之前收集的DNS数据构建主机域图。给定一组良性和恶性域,以及一些启发式方法,它将执行此图的过滤。它将已知的域节点分别标记为良性和恶意,其余的则标记为未知。类似地,如果主机节点查询某个恶意域,系统将其标记为恶意节点,而良性节点仅解析良性域。所有其他机器都被标记为未知。在此之后,系统对图进行剪枝删除:1)查询5个域或更少的机器;2)代理主机(服务器的域名数量比其他机器多得多);3)仅由一台机器查询的域;非常流行的域(被大量机器查询的域)。然后,图中剩下的每个域节点也分配如下属性:1)观察窗口中指向域的一组IP地址;2)在多长时间前,该域首次被问及观测时间窗口。用这个信息Segugio计算了一些特征:1)机器行为特征(已知被感染机器的分数,未知机器的分数,机器的总数);2)域活动特性(在过去两周内主动查询域的天数,连续查询域的天数);3) IP滥用特性(在选定的时间窗口内与已知恶意软件域相关的IP分数、未知域在时间窗口内使用的IP数和/24)。使用这些特性和监督机器学习算法,作者预测未知的标签。
4.3结果
最后,我们想知道的是域名是否有恶意。然而,恶意这个词可以用不同的方式来理解。例如,一些域可能涉及垃圾邮件发送或网络钓鱼、服务于C&C通信或简单地充当用于其它类型的活动的代理。在许多被提出的方法中,有些方法能够识别特定类型的“恶意”,而另一些方法则不能解释为什么他们判定某个领域是恶意的。因此,在本文中,我们将检测特定恶意行为的方法与不了解恶意行为的方法进行了划分。
与恶意行为无关的方法。粗略地说,与恶意行为无关的方法并不试图捕获特定的恶意行为。相反,他们的智力建立在不同域名之间不同类型的关联上。这种类型的方法[82,101,109,112,126,174]将预测利用与构成事实真理的域的连接的域的恶意。这种技术有时被称为“联想犯罪”[82]。如果一个域与一组已知的恶意域有很强的连接,那么很可能这个域也参与了恶意活动。例如,如果将成人相关域用作事实真理,那么这些方法将生成相同类型的域列表,假设这些域使用相同的关联。类似地,如果这些方法提供了垃圾邮件域,它们将预测与垃圾邮件活动相关的域。同时,只有少数黑名单报告特定类型的恶意域,例如PhishTank[125]或Spamhaus[15]。此外,通常相同的基础设施可能用于不同的恶意活动。因此,即使一个方法提供了特定类型的事实真理,输出也可能包括其他类型的恶意域。例如,攻击者可以使用具有相同IP地址的服务器来承载不同类型的恶意域。如果一种方法根据公共IP地址在域之间建立联系,它将在这些域之间建立联系。
恶意行为的专门方法。相反,构建恶意行为专门化方法是为了捕获与特定恶意行为相关的专门化特性。例如,有许多方法专门尝试捕获适合于检测自动生成的域名的词法[66、165、166]或分辨率[30、64]特性。一些方法提取了检测多种恶意活动的特性。因此,Bilge等人[35,36]提取出了相关的(尽管可能不是完美的[27,60])基于域名的特征,用于捕获DGAs和基于DNS应答的特征(例如,不同IP地址的数量、TTL值等),这些特征易于检测暴露IP通量行为的域。
4.4挑战
4.4.1与特征相关的挑战
尽管在其他研究领域寻找有意义的特性并不容易,但在恶意领域检测领域,这一过程尤其具有挑战性。特性不仅需要精心设计以将良性域与恶意域分离开来,而且它们还必须能够抵御歹徒的潜在操纵。例如,某些DGAs生成易于识别的名称(例如“ccd2.cn”、“syx4.cn”、“oif1.cn”等),您可以将其视为识别这些恶意域名的强大功能。虽然目前对于数量非常有限的DGAs来说是这样,但是攻击者通过简单地更改域生成算法的一些参数来呈现这个特性是很简单的。另一方面,考虑到特定资源的有限容量(例如,公共IP地址的数量)的特性更加健壮,因为在不影响攻击者收益的情况下,很难伪造它。
遗憾的是,用一种系统的和可度量的方式来评估特性的健壮性并不容易。这个问题的重要性已经被许多研究者认识到,例如,在[29,44,96,101,107,122,126,129,171]。然而,据我们所知,现有的方法中没有一种提供了一个可以定量评估特性健壮性的框架。Stinson等人[151]对一些僵尸网络检测方法的可规避性进行了定性的高水平评估。其他人,如Hao等人[69],定性地讨论了他们方法中使用的一些重要特性的健壮性。然而,提供一个对特征鲁棒性进行定性和定量评估的框架仍然是一个需要引起研究团体关注的开放问题。这样的框架必须同时考虑特征和复杂程度及其对攻击效用的影响。我们认为,这样的框架可以有效地对抗自适应攻击者,因为它可以帮助研究人员和安全专家构建检测工具,利用这些特性,而这些特性的形成会对攻击者的利益产生负面影响。
4.4.2检测方法相关挑战
虽然检测方法的有效性很重要,并且在大多数方法中得到了应有的关注,但是它的性能却被忽略了。然而,在实际考虑和实际部署时,深度性能分析与有效性分析一样重要。在实际部署中,DNS流量的数量和速率可能比出版物中使用的数据集大得多。因此,检测方法必须是可扩展的,以在这样的生产系统中工作。此外,一些方法需要大量的数据集来训练和调整它们的检测算法。为了解决这个问题,一些作者建议使用分布式计算平台,如Apache Hadoop[3]或Apache Giraph[2]。另一些则通过将被认为不太重要的数据元素分散出来来减小数据集的大小。例如,Exposure[35,36]过滤掉了Alexa前1000个域[25]和那些在预先防御期间被查询少于20次的域的所有域。不幸的是,这种过滤可能导致忽略可能具有潜在恶意的重要域集。在这种情况下,我们需要一个系统的性能评估,它不仅考虑到检测方法的复杂性和可伸缩性,还考虑到减少所需数据大小所需的抖动预处理步骤的特征。
除了性能评估挑战之外,恶意域检测方法面临的第二个挑战与检测前的等待时间有关。有些方法(如[35,36])依赖于聚合数据或以批处理模式运行,因此,在能够决定域的恶意状态之前,它们必须观察大量DNS请求。然而,这些方法所引起的延迟可能使它们对于在短时间内提供恶意活动的域无效,就像域通量一样。例如,Sheng等人[143]发现“63%的网络钓鱼活动持续时间不到两个小时”。另一方面,一些方法利用了实时特性(而不是聚合),可以动态标记域。然而,与聚合特性相比,非聚合特性通常更容易伪造。这两种方法都有优点和局限性,因此,两者之间的最优选择很大程度上受到部署环境的影响。
第三个挑战与对手的适应性有关。他们不断调整自己的行为以躲避检测工具,而检测技术必须定期重新训练和调整他们的模型以捕捉这些变化。此外,这也意味着随着时间的推移,技术本身已经过时,使相应的方法不再可能使用。
第四个挑战在于缺乏系统的方式定量比较和对比不同域的有效性和效率检测方法。为了获得可靠的定量结果,每种方法都应该是可重复的和可测量的。再现性意味着,在初始训练中使用的数据集相同的情况下,结果可以重新生成,而可测性意味着在评价有效性和性能时使用定量指标。遗憾的是,方法的作者很少共享数据集和实现代码,这可能是由于隐私、专有的问题,有时是与安全相关的问题,这使得复制结果变得非常困难,并使比较变得相当复杂。克服这一挑战的一种方法是,利用论文和技术报告等公共来源提供的信息,实施这些作品中提出的工具。然而,这些工具的复杂性通常是最重要的,并且公共资源不包含足够和详细的信息来提供合理的方法实现。
4.4.3与结果相关的挑战
作为算法执行的结果,系统预测域是否恶意。然而,一个域在不同方面可能是恶意的。例如,在明显的情况下,域可以定义为恶意的,因为它用于发送垃圾邮件或分发恶意软件。不幸的是,恶意行为的构成并不总是那么明确。一个例子是包含成人内容的域。一些方法,例如Predator[69],认为这些域是恶意的,因为它们经常用于与垃圾信息相关的活动。其他人[95,133,165]认为这些域是良性的。与此同时,研究表明,它们通常会导致较高的假阳性率,特别是如果事实包含这种类型的域[43]的话。通常情况下,Wondracek等人[162]证实成人域名(adult domain)通常用于恶意软件传播和激进的市场营销,不应该盲目认为是良性的。因此,研究人员应该在他们的工作中清楚地确定哪些域被认为是恶意的。