Press "Enter" to skip to content

DNS隧道检测综述

 

原文标题:A comprehensive survey on DNS tunnel detection

 

原文作者:Yue Wang, Anmin Zhou, Shan Liao, Rongfeng Zheng, Rong Hu, Lei Zhang

 

原文地址:https://linkinghub.elsevier.com/retrieve/pii/S1389128621003248

 

发表会议:Computer Networks,9 October 2021

 

笔记作者:yyp@SecQuan

 

文章小编:cherry@SecQuan

 

1.简介

 

域名系统(DNS)隧道建立在受控主机和主服务器之间,伪装成授权域名服务器,可作为恶意活动的秘密数据通信通道。由于DNS流量随时可以规避网络安全机制,DNS隧道可能造成严重损害。因此,在面对此类威胁时,深入全面地了解各种检测技术具有相当重要的意义。然而,大多数现有的研究集中在DNS隧道检测技术的一个方面,例如基于机器学习、流量和负载分析的方法,很少有研究进行了全面的调查,包括该研究领域的一系列完整的文献,或者分析关于DNS隧道的最新文献。本文从基于规则和基于模型的方法的新角度回顾了这些检测技术,并对基于DNS的工具及其相应的特性进行了描述和分析。据作者所述,这是第一次从各个方面详细地以新颖和具体的分类方式全面讨论和分析DNS隧道检测的研究,涵盖了2006年至2020年开发的几乎所有检测方法。此外,还对检测方法进行了比较分析,并对今后的研究方向提出了几点建议。

 

2.DNS隧道技术分析

 

DNS隧道技术分析的典型特征可分为两类:有效负载分析和流量分析。

 

2.1负载分析

 

有效负载分析针对单个或多个DNS数据包,其重点是分析有效负载的相关特性。例如,特定DNS隧道工具的签名、请求域名相关功能等。当前的检测技术也主要集中在利用这些特征。

 

数据包的大小

 

有效载荷上传/下载比率

 

域名/子域名长度

 

子域或标签数量

 

域名中特殊字符的比例或数量

 

域名中最长有意义子字符串/单词长度的比率

 

字符熵

 

不常见的记录类型

 

特定DNS隧道工具的签名

 

策略违反

 

2.2 流量分析

 

流量分析侧重于查询整个DNS流量,基于时间尺度,更侧重于流量的异常变化。除了与流量相关的功能外,还包括一些其他有用的信息(此处称为流量功能)。大多数基于流量的功能依赖于确定的时间窗口;因此,它们通常用于非实时检测。对于实时检测,基于有效载荷的特征被更频繁地使用。

 

到特定IP地址的DNS通信量

 

到特定域名的DNS通信量

 

域名的主机名数量

 

查询与接收响应的时间间隔

 

域名历史记录

 

DNS服务器物理归属位置

 

对动态域名服务器(DDNS)的DNS查询

 

孤立DNS查询流量

 

Nx域名响应数量

 

3.DNS隧道检测

 

与不确定性较大的检测相比,依赖模型或特定平台的规则去设计检测方法更加科学、高效。根据是否手动设置规则,DNS隧道检测分为两类,即基于规则的检测和基于模型的检测,如图所示。

3.1 基于规则的检测

 

基于规则的检测是指通过分析相关特征,手动设置规则。然后,在监控流量中发生预设规则匹配时,确定DNS隧道的存在。其重点在于某些特征的规则设计,这些特征可分为两类:基于签名的方法和基于阈值的方法。

 

基于签名的方法

 

基于签名的方法通过匹配特定签名来检测DNS隧道。它的重点是由专业人员分析的有效特征:恶意数据包的静态和固定数据特征。

 

基于阈值的方法

 

基于阈值的方法涉及通过比较特定阈值来检测DNS隧道,这需要对DNS隧道的特征进行定量分析,以设计一个实用的阈值。DNS隧道的检测实现了重置阈值与在线捕获的流量计算值之间的比较。除了直接定量分析相关功能外,可视化技术还经常用于阈值确定或辅助检测。基于阈值的方法又分为基于负载阈值和基于流量阈值的分析方法。

 

3.2 基于模型的检测

 

基于模型的检测通过模型自动生成基于多个特征的识别规则。其重点在于机器学习模型的训练。机器学习算法可以分为传统机器学习和深度学习。这两种方法的主要区别在于特征提取的方法和算法。传统的基于机器学习的方法要求专家在数据处理阶段通过丰富的经验和专业知识手动提取关键特征。基于深度学习的方法可以充分利用数据结构和序列信息,自动提取关键特征。

 

机器学习模型

 

在DNS隧道检测领域,从无监督学习和有监督学习的角度分析了常见的传统机器学习算法。在无监督学习中常用的算法有:K均值聚类算法、一类支持向量机(OCSVM)算法;有监督学习模型算法有:逻辑回归算法、支持向量机(SVM)算法、随机森林集成学习算法。

 

深度学习模型

 

基于深度学习的方法的优势在于,它可以利用序列和结构信息以及自动提取特征。然而,这也意味着影响深度学习模型性能的具体原因可能未知,并且需要高性能的硬件。

 

总体来说,有监督学习算法被广泛应用于DNS隧道检测。支持向量机算法的性能优于逻辑回归算法、决策树、贝叶斯等。此外,基于核函数的支持向量机优于线性支持向量机。在无监督学习算法中,k-means更受欢迎,但其性能不如OCSVM。基于机器学习和深度学习模型的比较如下表所示。

 

 

4.总结

 

为了设计一个DNS隧道检测系统的实际应用,有必要首先研究系统环境,包括可用硬件设备和网络环境的性能,在一定程度上限制检测方法。例如,深度学习方法需要高性能的硬件设备。一些经过训练的模型方法或阈值可能需要根据网络的不同规模吞吐量进行重新训练和确定。然后,可以将背景信息与检测系统的性能要求相结合,以选择和设计适当的方法、数据集和信息。常见特征主要分为基于有效载荷的特征和基于流量的特征。基于负载的功能侧重于通过参考多个DNS数据包来分析负载的相关特征。基于流量的功能旨在查询特定时间窗口内的总体DNS流量,更侧重于流量的异常变化。对于基于流量的功能,有几个功能可能与本地网络环境密切相关,例如到IP地址的DNS流量和到域的DNS流量。这种类型的功能表明,使用这些功能调整检测系统对于各种网络流量规模至关重要。

 

DNS隧道检测系统方法框架的选择也是一个关键环节。基于规则的检测侧重于对重要特征的手动分析,以设计有效的规则。结合不同的平台,这种方法可以很容易地部署在现有的网络中。然而,由于自适应性差,这种方法无法处理变化的网络环境,无论是通过签名还是保留。基于模型的检测技术侧重于模型训练,自动形成有效的规则,具有较强的灵活性和自适应性。这两种技术有不同的优势和劣势,但都可以在有效特性和足够数据集的条件下表现良好。

 

总体而言,方法、数据集和特征是检测系统性能的最重要因素。这三个方面都会影响检测系统的性能以及系统擅长的场景(例如,实时检测、低吞吐量DNS隧道检测),因此在比较或设计DNS隧道检测系统时存在相当大的挑战。很难使用特定标准来判断DNS隧道检测系统的绝对质量,也很难找到满足任何要求的完美检测系统。因此,在检测DNS隧道时,理想的想法是结合上述一般性能要求和背景环境,逐步确定合适的方法、数据集和功能。

 

此外,未来的研究可能集中在两个方面:DNS隧道的心跳流量和封装在DNS隧道中的协议。在DNS隧道中检测心跳流量的研究可以在进行恶意活动之前消除威胁,避免非活动DNS隧道在通信维护期间检测性能可能下降的情况。同时,值得注意的是,DNS过度传输层安全性(DoT)和通过安全协议层(DoH)的超文本传输协议的DNS的出现给DNS隧道检测带来了巨大挑战,这意味着DNS隧道的存在成为加密双隧道的内层,导致DNS隧道的隐蔽性和DNS隧道检测的困难性增加,这一新的研究方向也非常需要关注和进一步研究。

 

Be First to Comment

发表回复

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