基于顶级域解析日志的递归DNS 识别方法①

2023-10-28 05:37胡安磊谢高岗苑卫国魏金侠付豪
高技术通讯 2023年9期
关键词:域名信息熵顶级

胡安磊 谢高岗 苑卫国 魏金侠 付豪

(*中国科学院计算技术研究所 北京 100190)

(**中国互联网络信息中心 北京 100190)

(***中国科学院计算机网络信息中心 北京 100083)

(****中国科学院大学 北京 100049)

0 引言

域名系统(domain name system,DNS)是互联网上关键基础设施之一,实现域名和网际互连协议(internet protocol,IP)地址间的转换。DNS 分为权威DNS 和递归DNS 两类,其中递归DNS 是用户使用域名解析服务的入口。准确识别出真实递归DNS,对于保障各级权威域名系统的安全、支撑对递归DNS 的深入研究和管理是非常重要的。

对递归DNS 进行准确识别需要全局和海量的递归查询行为数据支撑,局部网络(如运营商网络、校园网)内的数据存在覆盖面不够的问题。.CN国家顶级域名系统拥有全局视角海量的递归查询行为数据,海量递归查询中也存在大量非真实和异常递归查询,会直接影响.CN国家顶级域名系统服务的安全稳定,目前尚未基于此类数据对递归DNS 进行准确的识别研究。因此本文以.CN国家顶级域名系统某服务节点连续一周的解析查询日志为数据集,对.CN国家顶级域名解析日志进行递归查询行为特征分析和递归域名服务聚类分析,在聚类的基础上结合专家经验对递归DNS 进行准确的识别,可以支撑对递归DNS 进行进一步研究,形成真实递归DNS 的清单可用于.CN国家顶级域名系统进行服务管理和安全防护。

本文的主要贡献如下。

(1)特征处理方面。提出一种基于递归DNS 源IP 的递归查询行为特征选择方法,利用特征自表示性将关键具有代表性的特征选择出来,减少冗余特征对模型的影响。

(2)递归DNS 识别方面。利用改进的聚类方法对海量递归DNS 查询请求数据聚类,首先利用粗聚类方法结合模型的关键指标和计算时间确定K值,然后针对DNS 查询行为日志进行聚类,最后通过与专家知识库的关联,识别出各种类型的递归DNS。

(3)数据来源方面。使用真实的递归DNS 到.CN国家顶级域名系统的查询日志作为数据源,选取2021 年12 月某一周的查询日志,包含约4.2 亿条查询记录。通过实验分析与人工验证,本文方法可以将上述数据准确地划分到各个查询行为类别中。

1 相关工作

如图1 所示,域名服务体系由2 大类别和4 个环节的DNS 组成。第1 类是权威DNS,包括根DNS、顶级DNS 和其他各级权威DNS 3 个环节,负责维护和保存各级权威域域名信息,接受递归DNS查询请求;第2 类是递归DNS,为终端用户提供域名查询服务。

图1 域名服务体系架构

顶级DNS 处于整个域名服务体系的次顶端,目前全球顶级域名数量已超过1500 个,主要包括国家和地区顶级域名(如中国.CN,美国.US),通用顶级域(如.COM和.NET)和新通用顶级域(如.TOP和.XYZ),特别是国家顶级域名用于标识特定国家域名空间,是国家主权在网络空间的象征。截止2021 年12 月,我国域名总数为3593 万,其中.CN国家顶级域名数量为2041 万,占域名总数的56.8%[1],.CN国家顶级域名系统在我国整个域名服务体系中处于关键地位。

递归DNS 根据其服务的开放性可分为开放递归DNS 和非开放递归DNS;根据其进行递归查询的目的,可以分为真实的递归DNS 和非真实的递归DNS。上述几大类型的递归DNS 可根据其行为特征进行进一步地类型识别。限于数据获取等原因,目前对递归DNS 进行类型识别的研究主要通过主动扫描探测的方法对开放递归DNS 进行识别,这种方法在递归DNS 识别的覆盖面上存在不足。

递归DNS 测量对于域名系统运维与安全保障至关重要。根据被动采集递归DNS 的查询响应日志,以及从用户端视角对全球开放数百万公共递归服务主动探测,结合递归DNS 查询行为统计特征分析,发现递归DNS 面临缓存投毒和拒绝服务威胁[2-4],存在大量配置问题和安全隐患[5-8],全球范围内公共递归DNS 存在严重域名解析劫持问题[9-11]。上述研究主要集中在开放递归DNS 的探测识别、测量评价、特征统计和行为分析方面,研究分析的递归DNS 覆盖面存在不足。

递归DNS 查询行为与网络整体运行状况和各类网络安全攻击行为紧密联系。通过对全球300 万开放递归DNS 的主动探测和恶意响应行为研究,可以分析递归DNS 对互联网络安全和稳定的影响[12];也可以通过对递归域名查询日志的深入监测和查询行为分析,开展诸多针对恶意域名[13-15]、僵尸网络[16-17]等危害网络安全的异常行为研究。上述研究主要集中在通过递归DNS 查询行为分析网络中的恶意攻击行为方面,对网络攻击、恶意行为和递归DNS 的关系研究不足。

针对.CN 国家顶级域名解析日志查询行为的分析测量有利于了解国内用户互联网访问特征,以及攻击异常行为及时发现。.CN 国家顶级域名递归DNS 和域名的查询频度遵循明显的幂律分布特征,从整体分布统计特征角度检测DNS 查询行为是否异常[18]。基于.CN国家顶级域名的递归DNS 日志查询行为的特征提取,可基于K-means 算法进行DNS 查询模式分析[19]。但上述研究在特征提取过程中,只应用到了IP 和域名基于时间维度统计的直接特征,未考虑到不同特征间的联系和特征重要性的区别,对噪声特征比较敏感,并集中在递归DNS的查询的统计规律特征分析,未对递归DNS 的识别作进一步的研究。

综上,使用.CN国家顶级域名系统的日志研究递归DNS,可覆盖我国几乎所有的递归查询行为,全面准确分析递归查询行为并进行真实递归DNS的识别研究,有助于支撑.CN国家顶级域名系统的安全保障和对递归DNS 的进一步研究。

2 数据集与查询行为

2.1 数据集

本文采集2021 年12 月21 日至27 日连续7 d的.CN国家顶级域名系统某解析节点连续一周的查询日志,其日志信息示例见表1,数据集全局统计信息见表2。

表1 DNS 查询请求日志信息示例

表2 数据集全局统计信息

其中例1“20211224084916”为查询时间,表示2021 年12 月24 日08 时49 分16 秒;“220.187.246.34”为客户端IP 地址;“34585”为客户端查询端口号;“www.cnnic.cn”为客户端查询域名;“IN”是Resource Class 中最常见的一种,表示Internet(另有少量CS、CH、HS);“A”为资源记录类型(resource record type),表示所查询的域名服务器类型,为IPv4类型,另外还有IPv6 类型“AAAA”、邮件交换地址类型“MX”等;“203.119.28.1”为查询的目的IP,即DNS 服务器的公网IP 地址;“cnnic.cn”为客户端查询的权威域名;“cn”为查询的顶级域名;“alicn”为被查询解析节点名称。

2.2 查询行为分析

首先根据对递归DNS 查询日志的资源记录类型统计,发现查询类型一共有42 种,其中查询次数超过80 万的类型有9 个,分别包括A、AAAA、NS、TYPE65(HTTPS)、TXT、DS、CNAME、SOA 和MX,具体分布情况如表3 所示。查询类型为A、AAAA 和NS 记录查询占比超过93%,其他查询类型包括TYPE65(HTTPS)、TXT、DS、CNAME、SOA 记录、MX记录等占比不足7%。

表3 主要域名查询记录类型分布

正常的递归DNS 查询量每日随时间变化具有显著的周期性,图2 展示的是选取节点的.CN顶级域名服务器在7 d 内每日按小时统计的查询量变化情况。图中显示来自递归DNS 的查询在凌晨和上午呈上涨趋势,分别在凌晨1:30 左右和上午10:30左右达到较高值。其中出现凌晨域名查询高峰与存在注册机的域名抢注行为密切相关,在晚上呈上涨趋势,凌晨2 点左右达到较高值,之后呈下降趋势并在早上6 点左右开始上升,在上午11 点左右达到较高峰值之后缓慢下降。

图2 每日查询量变化趋势

根据文献[18]递归DNS 的整体查询行为在正常网络状况下遵循Zipf’s 分布,在双对数坐标图中呈现明显的线性特征(负相关),即递归DNS 的查询请求具有整体集中分布的特点。

本文对递归DNS 查询数量整体频次特征分别基于源IP 和域名2 个方面进行实证分析。可以发现,基于源IP 递归DNS 查询量与其频次分布呈现一种长尾特征,约95%以上的递归查询请求由大约5%的递归DNS 发起,如图3 所示。另外,基于域名访问量与其频次分布也呈现一种长尾特征,约96%的域名查询请求次数低于5 次,占总查询量不足40%,也就是说占比4%的域名所产生查询量占比总查询量近60%,如图4 所示。

图3 基于源IP 的递归DNS 查询量频次分布

图4 基于域名的递归DNS 访问量频次分布

3 识别方法

本文提出的基于自表示特征提取的递归DNS行为识别流程如图5 所示。

图5 基于自表示特征提取的递归DNS 行为识别流程

3.1 特征扩展

对于递归DNS 查询行为来说,查询日志中的IP地址来源分布、单位时间查询量变化、域名信息熵分布、查询频率等因素对递归分类结果影响比较大。同时考虑查询行为的周期性因素,为了能够更准确地对递归DNS 查询行为进行分类,将周期作为关键因素考虑进来。因此,综上本文基于递归DNS 的IP地址角度梳理递归查询行为共计9维的直接特征,具体如下所述。

(1)查询请求总数x1:统计日志中每个IP 的查询请求数量,反映了IP 的活跃程度。(2)每小时最大查询总次数x2: 统计每个IP 每个小时内的请求查询次数,并取其中最大值。(3)每小时最大查询变化率x3:统计每个IP 每个小时内的请求查询次数,并计算每个小时相较于上一小时的变化比率。(4)IP 端口信息熵x4:统计日志中每个IP 的所有端口,并计算信息熵,entropy=-∑p·log(p),其中p是每个端口出现的概率。当DNS 发生流量异常时,会引起查询源IP 端口熵值的突变。(5)域名种类x5:统计每个IP 对应的域名的种类数,反映提交的域名请求分布情况。(6)域名信息熵x6: 统计日志中每个IP 的所有域名字符串,并计算信息熵。(7)权威域名信息熵x7:统计日志中每个IP 的所有权威域名,计算信息熵。(8)顶级域名信息熵x8:统计日志中每个IP 的所有顶级域名,计算信息熵。(9)重复查询次数x9:统计日志中每个IP 所查询域名出现的平均次数,域名重复查询次数越大说明同一个域名被访问的平均时间间隔就越小。

3.2 基于系数表示的无监督特征选择

本文采用一种基于稀疏表示的无监督的特征选择方法,基于特征之前的自表示性将噪声特征去掉,留下关键特征。基于特征自表示性进行关键特征选择的原理是利用稀疏约束项[20]对初始特征进行重新表示,形成特征重表示矩阵,然后通过特征重表示矩阵与初始特征矩阵差异最小化来求解稀疏矩阵的非零列,非零列即为要选择的关键特征。

稀疏表示目前得到广泛应用,现有分析结论中已发现了冗余特征具有自表示性[21]。对于DNS 查询日志数据特征矩阵X,xj为矩阵X的第j行,每一行表示一条日志,行数表示查询日志样本个数,xj=(xj1,xj2,…,xj9),j∈[1,M];每一列表示一维特征,初始维度共9 维,每一维特征用xi,i∈[1,9],来表示。

令T为投影矩阵,ti表示矩阵T的第i行,ti=(ti1,ti2,…,tiM),i∈[1,9]。投影矩阵T的列向量可以反映不同特征的重要性。当矩阵T只有列不为0 时,与之对应的DNS 查询日志特征矩阵X只有维特征被选择,其余特征没有被选择。

小儿支气管肺炎是临床常见呼吸系统疾病,多发于秋冬季,常见的发病因素有细菌感染和病毒感染,小儿支气管肺炎发病急骤,发展迅速,如果不能及时的进行治疗就会影响患者身体健康和生命安全[1]。本文通过选取我院2016年8月~2017年9月收治的小儿支气管肺炎患者120例作为研究对象,分析优质护理模式对小儿支气管肺炎疗效及肺功能的影响。

DNS 查询日志数据重构损失项可以表示为‖X-∑i∈[1,9]ti·X‖。该重构损失项的含义是DNS 查询日志数据的每个特征由其他维度的特征进行表示,ti为数据特征矩阵X的重构系数,描述了第i维特征xi对数据整体特征重构的贡献度。如果ti为0 向量,则对应的第i维特征xi的贡献度为0。

为了同时满足DNS 查询日志重构矩阵T·X与DNS 查询日志特征矩阵X之间的误差最小,且投影矩阵T只有k列不为0,则DNS 查询日志重构损失项的约束优化问题可以表示为以下形式:

利用交错方向乘子法将上述优化问题变换为拉格朗日函数,并利用迭代优化求解变量的方法进行求解,得到值和投影矩阵T。根据投影矩阵T的个非零列,可以对DNS 查询日志矩阵X中的特征进行选择。

3.3 聚类分析

K-means 算法是一种基于距离聚类的方法,将M个DNS 查询日志数据样本划分到k个类别中,要求满足同一个类别中的样本相似度较高而不同类别中的样本相似度较低。与其他算法相比,其适用于大规模数据的场景,并且收敛速度比较快,其每个类别均用该类中所有数据的平均值来表示,这个平均值即被称作为聚类中心。并且对于数值属性的数据,能很好地体现出聚类在集合和统计学上的意义,目前在聚类算法中是被应用最广泛的算法。选取的数据是连续7 d 的.CN国家顶级域名系统某解析节点连续一周的查询日志,考虑到其数据量大、没有标签、大多特征为统计特征等原因,本文选择用Kmeans 算法来对全量日志进行聚类,实现对大规模查询日志的快速分组。

设待分类的DNS 查询日志数据集为{x1,x2,…,xM},计划将这些样本分为k类(粗聚类确定),步骤如下。

(1)首先针对全量的查询日志数据直接进行粗聚类,即在没有确定簇值的情况下先对数据进行多簇值聚类,然后根据Inertias 值变化趋势、计算时间随簇数量变化趋势来综合分析确定簇值k。

4 实验结果分析

4.1 聚类参数的选择

在样本特征对聚类模型性能的影响方面,本文选择Inertias 与不同k值情况下的聚类时间综合选取k,其中Inertias 值是K-means 模型对象的属性,作为没有真实分类结果标签下的非监督式评估指标,表示样本到最近的聚类中心的距离总和。该值越小越好,越小表示样本在类间的分布越集中。

针对实验样本进行聚类,聚成多个类别,观察类别数量与Inertias 值的对应关系变化,结果如图6 所示,横坐标表示聚成的类的数量,纵坐标表示Inertias 值。实验结果显示,聚类类别k≥20 时,曲线变化率接近平缓,Inertias 值下降不明显。

图6 聚类算法Inertias 值变化趋势图

本文为了验证聚成类别数量对模型性能的影响,做了5 次聚类实验,结果如图7 所示。从图中的结果可以看出,聚成的类别越多,模型运算时间越长,整体呈现出阶段性的线性增长。第1 个阶段聚成的类别数量小于12 类,运算时间在0.05 s 以内;第2 个阶段聚成的类别数量小于21 类,运算时间在0.062 s 以内,同比第1 个阶段时间增长率为24%;第3 个阶段聚成的类别数量小于32 类,运算时间在0.08 s 以内,同比第2 个阶段时间增长率为29%;第4 个阶段聚成的类别数量小于50 类,运算时间在0.1 s以内,同比第3 个阶段时间增长率为25%。通过分析可知,随着聚类数量的增加,时间增长率最低的是从第1 个阶段到第2 个阶段,即k≤21 时,聚类时间增长率比较小。因此,综合考虑先验知识、随着聚类数量变化引起的聚类模型Inertias 值以及聚类时间变化等因素,选取聚类数量k=20。

图7 聚类类簇由2 增加到50 计算时间变化趋势图

4.2 实验结果分析

本文实验选择了表2 中69 386 个源IP 的查询日志来验证本文方法的有效性。实验主要分为2组,分别对具有9 维特征的样本进行聚类和选择出重要特征的样本进行聚类。

(1)第1 组是对样本直接进行聚类形成20 个簇,经过预处理之后生成初始特征是3.1 节所梳理的9 维特征。采用K-means 算法对69 386 个IP 特征向量进行聚类,选择k=20,结果详见表4。

表4 初始选定的九维特征聚类结果

分析表4,针对聚类形成的20 个簇进行归类合并,形成查询行为特征相似的递归DNS 集合;结合每个簇内递归DNS 具体查询日志内容,发现基于查询行为,可以将递归DNS 识别为公共递归DNS、企业级递归DNS、自服务递归DNS、探测递归DNS、攻击递归DNS、域名抢注递归DNS 等6 类集合,结果如表5 所示。针对表5 结果进行集合内验证,结论如下。

表5 递归DNS 识别和查询行为主要特征分析

1)公共递归DNS。查询行为聚到类4、6、14 中的递归DNS 识别为公共递归DNS,为大范围网络(如互联网、ISP 网络)内的用户提供递归解析服务,属于真实递归DNS。其查询特征是查询数量大(如类4中平均查询总量超96万次),查询具有明显时间周期性,查询量变化相对平缓且少尖峰,查询域名种类多(如类4 中查询域名种类平均46 万次)且多数为有意义域名对象,域名重复查询次数很少(如类6 平均小于3 次),IP 源端口随机变化,说明查询域名类别相对丰富,顶级域名信息熵较大存在查询变化。

2)企业级递归DNS。查询行为聚到类15 中的递归DNS 识别为企业级递归DNS,为一定网络范围(如企业局域网)内的用户或特定应用提供递归解析服务,属于真实递归DNS。其查询特征是查询域名总量不大(如类15 中总共包括3718 个IP 对象,平均查询量两千多),每小时查询变化率不大,所查询域名种类数量均不大,域名信息熵都很小,所查询对象的二级域名基本相同且重复查询次数很大(如类15 平均超过160 次),主要集中在特定域名对象如DNS 委托服务、证书服务、软件升级、游戏网站和组织机构等。

3)自服务递归DNS。查询行为聚类到簇1、2、7、11、18、20 中的递归DNS 识别为自服务递归DNS,仅为自身的网络应用提供递归解析服务,属于真实递归DNS。其查询特征总访问量不大且比较平均(如类18 中总共包括6536 个IP 对象,平均日查询量622 次),域查询种类不大(如类18 平均低于120次),且绝大多为正常访问的娱乐新闻类等网站域名,IP 端口信息熵较小,域名重复查询次数较小(如类18 平均3 次左右)。

4)探测递归DNS。查询行为聚类到簇5、9、13、19 中的递归DNS 识别为探测递归DNS,为特定用途(如搜索引擎爬虫、网络监控等)提供递归解析服务,不属于真实递归DNS。其特征是查询量很大(如类5 查询总量超150 万),基本为定时查询且无查询变化率或很小,IP 端口信息熵正常,所查询域名种类固定(如类9 主要固定探测gov.cn、bj.cn、hk.cn、sc.cn、tw.cn 等各省几十种二级域名状态),探测重复查询次数最大(类5 超13 万),其权威域名信息熵和顶级域名信息熵不大。类5(IP:49.7.*.*)也为定时探测,所探测目的域名主要是固定域名解析状态等互联网基础服务(如*.tv.ctdns.cn),类19(IP:10.10.*.*)为定时探测某些重点域名解析状态是否正确(如cnnic.cn 和95538.cn等)。

5)攻击递归DNS。查询行为聚类到簇10 中的递归DNS 识别为攻击递归DNS,其为某些网络攻击提供递归查询服务或直接发起针对权威DNS 的攻击,不属于真实递归DNS。其查询特征是查询量短时间集中且查询量非常大(如类10 中总共包括4 个IP 对象,域名查询总量超500 万,每小时超50 万),域名查询种类非常大(如类10 中域名种类总量也超500 万),且绝大多为具有典型DGA 特征域名。

6)域名抢注递归DNS。查询行为聚类到簇3、8、12、16、17 中的递归DNS 识别为域名抢注递归DNS,为域名行业中掉线域名抢注这一特定行为提供递归解析服务,不属于真实递归DNS。其查询特征域名查询访问时间周期性明显,域名查询总访问量很大且随时间变化很大(如类3 总量超300 万,每小时最大变化率近13 万),域名查询种类非常大(如类3 超280 万次),绝大多为个有意义网站域名,且查询NS 记录比例很高,域名信息熵和权威域名信息熵很高,域名重复查询次数很小。

(2)对于递归DNS 查询日志来说,国家顶级域名系统每天产生的日志量达到百亿级别,直接对全维度的日志进行分析,处理过程比较复杂,分类模型的运算时间将直接影响该方法在国家顶级域名系统查询日志的实际应用。为提高模型的聚类性能,第2 组实验主要是给出从3.1 节梳理的9 维特征中选取关键特征的相关结果。

表6 给出了利用无监督特征选择方法从初始9维特征中依次选择2、…、8 特征的结果,其中表格中行表示特征初始维度,列表示被选择的特征对应的维度。

表6 选择不同维度特征结果

表7 不同维度特征聚类结果

从表6 和7 的综合结果可以看出,选择出5 维特征时模型的整体效果比较好,与全维度特征聚类结果相近,且运算时间也具有显著优势。具体选择出来的5 维特征包括查询请求总数、端口信息熵、域名信息熵、权威域名与顶级域名信息熵。其中查询总数反映了IP 的活跃程度,正常源IP 的网络行为通常不会有过高的DNS 请求;端口信息熵当DNS发生流量异常时,必定会引起查询源IP 端口熵值的突变;域名信息熵反映查询域名的分散或集中程度,当DNS 发生流量异常时,必定会引起查询域名熵值的突变;权威域名信息熵与顶级域名信息熵与域名信息熵意义类似。

5 结论

本文从.CN国家顶级域名系统面对的实际问题和实际需求出发,基于真实数据设计了一种递归DNS 行为特征提取和识别方法。首先通过最小化特征的重构误差选择出递归DNS 查询日志中具有代表性的重要特征;然后利用粗聚类方法确定聚类簇的数量;最后基于递归DNS 的查询日志通过聚类的方式全面准确识别出公共递归DNS、企业级递归DNS、自服务递归DNS 等真实递归DNS,以及探测递归DNS、攻击递归DNS、域名抢注递归DNS 等非真实递归DNS。该研究结果可形成完整准确的真实递归DNS 清单,可支撑.CN国家顶级域名系统的服务管理和安全防护,也可支撑对递归DNS 的进一步深入研究。

猜你喜欢
域名信息熵顶级
基于信息熵可信度的测试点选择方法研究
LOVE, XO
薮猫:沼泽里的顶级猎手
以顶级专业的眼光选择顶级品质的产区
Combosquatting域名抢注的测量研究
如何购买WordPress网站域名及绑定域名
基于信息熵的实验教学量化研究
全球十大顶级美人排名中国一人上榜
一种基于信息熵的雷达动态自适应选择跟踪方法
基于信息熵的IITFN多属性决策方法