doi:10.3969/j.issn.1671-1122.2021.03.011
一种基于被动DNS数据分析的DNS重绑定
攻击检测技术
郭烜臻1,2,潘祖烈1,2,沈毅1,2,陈远超1,2
(1.国防科技大学电子对抗学院,合肥 230037;2.网络空间安全态势感知与评估安徽省重点实验室,合肥 230037)
摘  要:基于域名系统(DNS)的DNS重绑定攻击能够有效绕过同源策略、防火墙,窃取敏感信息,控制内网设备,危害巨大。DNS重绑定需要通过设置恶意域名才能实现。
针对DNS重绑定相关恶意域名的检测问题,文章提出一种基于被动DNS数据分析的
DNS重绑定攻击检测模型(DNS Rebinding Classifier,DRC)。通过引入被动DNS数据,
从域名名称、时间、异常通信及恶意行为等4个测度集刻画DNS重绑定相关域名;基
于C4.5决策树、KNN、SVM及朴素贝叶斯等分类方法对数据进行混合分类、组合训
练及加权求值。交叉验证实验表明,DRC模型对相关恶意域名的识别能够达到95%以
上的精确率;与恶意域名检测工具FluxBuster进行对比,DRC模型能够更准确地识别
相关恶意域名。
关键词:DNS重绑定;被动DNS;恶意域名检测;混合分类
中图分类号:TP309  文献标志码: A  文章编号:1671-1122(2021)03-0087-09
中文引用格式:郭烜臻,潘祖烈,沈毅,等.一种基于被动DNS数据分析的DNS重绑定攻击检测技术[J].
信息网络安全,2021,21(3):87-95.
英文引用格式:GUO Xuanzhen, PAN Zulie, SHEN Yi, et al. DNS Rebinding Detection Technology Based on Passive DNS Data Analysis[J]. Netinfo Security, 2021, 21(3): 87-95.
DNS Rebinding Detection T echnology Based on Passive DNS Data Analysis
GUO Xuanzhen1,2, PAN Zulie1,2, SHEN Yi1,2, CHEN Yuanchao1,2
(1. College of Electronic Engineering, National University of Defense Technology, Hefei 230037, China;2. Anhui
Province Key Laboratory of Cyberspace Security Situation Awareness and Evaluation, Hefei 230037, China)
Abstract: DNS rebinding attack based on the domain name system (DNS) can effectively bypass the homologous strategy and firewall, steal sensitive information, and control intranet
devices, causing great harm to the Internet community. DNS rebinding can only be realized by
setting malicious domain name. Aiming at the detection of malicious domain names related to
DNS rebinding, this paper proposes a DNS rebinding classifier (DRC) based on passive DNS
data analysis. By introducing passive DNS data, the domain names related to DNS rebinding
收稿日期:2020-06-18
基金项目:国家重点研发计划[2017YFB0802900]
作者简介:郭烜臻(1996—),男,江西,硕士研究生,主要研究方向为网络空间安全;潘祖烈(1976—),男,安徽,副教授,博士,主要研究方向为网络空间安全;沈毅(1986—),男,重庆,讲师,硕士,主要研究方向为网络空间安全;陈远超(1996—),男,福建,硕士研究生,主要研究方向为网络空间安全。
通信作者:郭烜
0 引言
域名系统(DNS)是现代互联网的核心组成部分,提供了方便记忆的域名与复杂的IP地址的相互映射,推动了互联网的发展。但随着网络技术的发展,DNS 因其协议及系统的脆弱性,成为不法分子发动网络袭击的跳板,使互联网在可用性、安全性和完整性等方面受到损害。如何保障DNS安全成为当下亟待研究与解决的重点问题[1]。
本文所研究的DNS重绑定攻击属于基于DNS协议的攻击。该类攻击基于DNS协议漏洞,重绑定域名解析IP地址,以达到绕过同源策略渗透进内网,从而控制设备及窃取敏感信息的目的[2],危害巨大。DNS重绑定攻击早在20世纪90年代就已出现。随着时间的推移,DNS重绑定的种类日益增多,攻击手段也更加丰富。在文献[3]中,DNS重绑定可以通过浏览器对内部网络进行攻击。DAI[4]等人将DNS重绑定与DNS 洪水攻击相结合,能够有效绕过包括DNS pinning在内的防御策略。随着物联网技术的普及,DNS重绑定技术也随之发展。在第27届DEFCON黑客大会上,研究人员展示了利用DNS 重绑定技术,对Google home、Roku TV、SONY音响设备、SonosWiFi  Speakers、radio thermostat等设备进行攻击,并获取设备控制权限[5]。据物联网安全公司Armis披露,全球有近5亿台设备受到这种攻击方式的威胁[6]。CVE-2018-1002103[7]通过DNS重绑定,在Minikube上远程执行代码,并实现了虚拟机逃逸的效果。可见,亟需提出针对DNS重绑定攻击的检测方法。
DNS的攻击检测往往与相关恶意域名的检测相关联。传统的DNS攻击检测主要分为两种:1)通过DNS 实时流量检测DNS攻击;2)通过分析DNS日志检测DNS攻击。近年来,随着机器学习的兴起,研究者通过将DNS数据与机器学习相结合以准确高效地完成对DNS攻击的检测。
文献[8]提出对DNS日志中特定类型的报文进行检测,如AAAA和PTR类型的报文,确定被攻击的IP 地址,并进行防护。文献[9]收集获取DNS流量,分析DNS流量特性,利用分类的思想,从数据采集、特征提取、分类器选择等方面建立分类模型,识别DNS恶意域名。该方法存在的问题是DNS流量难以获取,
并且涉及隐私问题。
值得注意的是,近年来,作为基于流量和日志的检测技术的补充,被动DNS数据因其数据的及时性、合理性及全面性,替代了数据流分析,被广泛应用于DNS 攻击检测及恶意域名识别领域。
ANTONAKAKIS[10]等人于2010年提出一种名为Notos的基于被动DNS数据的域名信誉评价系统。该系统采用网络特征、域特征和黑名单证据特征等3大类特征,并对数据进行标记,利用随机森林算法识别恶意域名。但是该系统仅关注目标地理位置及逻辑归属,忽略了访问特征。2014年,BILGE[11]等人提出Exposure方法对恶意域名进行识别。该方法提出了15个特征集,利用决策树的方法实现恶意域名的识别。但该方法局限于DNS的时间特征,无法对DNS重绑定的相关域名进行有效识别。
Segugio也是一款利用DNS数据进行僵尸网络恶意域名识别的系统[12]。Segugio可作为攻击检测系统部署在两个大型ISP网络之间,然而其局限性在于只能依据待测域名与已知域名的关系进行恶意域名的判定。PERDISCI[13]等人提出FluxBuster方法,利用DNS数据,
are characterized from the four measure sets of domain name, time, abnormal communication and malicious behavior. Based on C4.5 decision tree, KNN, SVM and naive Bayes classification methods, the data are classified, trained and weighted. Cross validation experiments show that the accuracy of DRC model for identifying related malicious domain names can reach more than 95%. Compared with
the malicious domain name detection tool FluxBuster, DRC model can identify related malicious domain names more accurately.
Key words: DNS rebinding; passive DNS; malware domain name detection; mixed classification
通过包括IP变迁在内的13个特征,采用聚类算法进行速变域名识别。然而该方法难以应对种类日益繁多的DNS攻击。张维维[14]等人提出DOAS系统,通过分析DNS实时流量,从依赖性和使用位置等角度,利用多分类器实现对恶意DNS流量的检测。然而在缺乏足够样本的情况下,该方法的结果会有较大波动。
目前针对DNS攻击的检测主要是围绕钓鱼网站、拒绝服务攻击及僵尸网络的检测,针对DNS重绑定攻击的检测研究较少,对相关恶意域名的检测存在不
足。为了提高DNS重绑定攻击检测效果,本文深入研究DNS重绑定攻击特性,提出一种基于被动DNS数据分析的DNS重绑定攻击检测模型(DNS Rebinding Classifier,DRC)。本文基于被动DNS数据的域
名属性、存活时间等特性提取部分静态特征,基于网络通信行为、域名解析等特性提取动态特征,最终共提取出域名名称、时间、恶意行为、异常通信等4个测度集的16种特征,结合机器学习与混合分类算法对模型进行组合训练并加权求优,从而对相关恶意域名进行识别。实验结果表明,本文方法能够有效检测DNS重绑定攻击。与相关研究进行对比实验表明,本文方法能够实现更好的DNS重绑定攻击检测效果。
1 相关知识
1.1 DNS重绑定的实现原理
为了更好地检测DNS重绑定攻击,需要了解其基本的实现原理。在发起DNS重绑定攻击之前,需要设置相关恶意域名及恶意DNS服务器。图1展示了基于时间变化的DNS重绑定攻击实现步骤。
DNS重绑定攻击步骤具体如下:
1)攻击者设置恶意网站和恶意域名服务器,受害者申请访问恶意网站,向恶意域名服务器发出解析请求;
2)恶意域名服务器接收解析请求,返回W eb服务器对应IP地址;
3)受害者访问W eb服务器,下载包含恶意Javascript 脚本的页面代码;
4)因攻击者设置的TTL(DNS解析记录存活时间)
值较短,步骤2)所返回的DNS解析地址过期,受害者再次申请解析恶意网站域名,此时恶意域名服务器返回精心构造的IP地址,如内网IP地址;
5)攻击者配合页面中的攻击脚本,绕过浏览器同源策略的限制,达到渗透攻击的目的。
DNS重绑定攻击并不只局限于内网设备。事实上,DNS重绑定攻击所针对的目标类型多样。按照威胁对象划分,如果DNS重绑定攻击返回的是公网IP地址,则为基于公网IP的DNS重绑定攻击,主要威胁目标为公网服务器;如果DNS重绑定攻击返回的是私有IP地址,则为基于内网IP的DNS重绑定攻击,攻击者能够获取内部网络中的敏感信息及设备控制权,危害较大。
1.2 被动DNS数据
本文在DNS重绑定攻击检测研究中引入了被动DNS (Passive DNS)数据。被动DNS数据是指从真实互联网中采集DNS流量,经过解析、去重、过滤等步骤后存储到相应数据库中的信息。被动DNS数据最早由WEIMER[15]于2004年提出,WEIMER将被动DNS数据的作用总结为恶意域名识别、流量分析、黑名单分析以及DNS错误配置检测。因对域名描述的全面性,可以通过被动DNS数据来展现互联网的具体情况,为安全研究者的研究提供相应依据。被动
DNS数据结构如图2所示。
2 DNS重绑定攻击检测模型
2.1 系统模型
本文提出的DNS重绑定攻击检测模型(DRC)如图3
图1 DNS重绑定攻击步骤
所示。首先,通过开源数据库获取被动DNS 数据,并进行数据清洗与存储,将被动DNS 数据存储到MySQL 数据库中。其次,特征统计模块对数量众多的特征进行筛选,根据DNS 重绑定的具体实现方法,删除掉一些无关或者效果不明显的特征,以减小机器学习的计算复杂度和系统开销。本文选取了4个测度集的16个特征对数据进行处理。对于已经确定为正常和恶意的域名,打上相应的标签,将数据传输到分类器引擎。该引擎的作用是通过标签集训练恶意域名的识别模型,通过多个分类器的训练学习,检测待测数据集中与DNS 重绑定有关的恶意域名;在此基础上,将结果传入加权求优模块,以加权优化的方式,对结果进行混合分类,提高最终预测的准确率。最后,将结果生成报告。
数据收集
被动DNS 数据
数据
检测结果
分类器1
分类器2
输出
输出
加权
求优
分类器引擎
域名名名称恶意行为时间异常通信
特征统计
图3 DRC 模型
2.2 DNS 重绑定攻击特征分析与恶意域名特征选择
2.2.1 DNS 重绑定攻击特征分析
本文所选取的特征均是从DNS 重绑定的实现方式所得。DNS 重绑定按照实现方式的不同可以分为3类:基于时间变化的DNS 重绑定、基于多个A 记录的DNS 重绑定和基于插件的DNS 重绑定。具体如表1所示。
表1 DNS 重绑定分类
种类描述
基于时间变化同一域名在较短时间内有多个不同IP 的DNS 解析报文,利
用此特点进行DNS 重绑定攻击,往往与速变域名相联系基于A 记录利用从接收到的A 记录中解析出的多个IP 进行DNS 重绑定攻击
基于插件
利用浏览器插件漏洞进行DNS 重绑定攻击
事实上,DNS 重绑定相关恶意域名与正常域名之间存在着较大区别,如表2所示。
表2 正常域名与DNS 重绑定相关恶意域名的区别
正常域名DNS 重绑定相关恶意域名
容易记忆记忆复杂域名解析行为正常域名解析行为异常域名存活时间长域名存活时间短IP 解析结果正常IP 解析返回私有IP 网页源码正常网页源码返回恶意攻击脚本应答报文TTL 值正常
应答报文TTL 值偏短
DNS 重绑定中,DNS 解析报文的TTL 值较短,大多数DNS 重绑定攻击的TTL 值均在10 s 以下。综上所述,DNS 重绑定具有如下基本特征:
1)出现私有IP 地址。
私有IP 地址包括A 类:10.0.0.0 ~ 10.255.255.255;B 类:172.16.0.0 ~172.31.255.255;C 类:192.16
8.0.0 ~ 192.168. 255. 255。域名解析中一般不出现私有IP 地址,但DNS 重绑定相关恶意域名的IP 解析结果中会出现私有IP 地址。私有IP 地址用集合和正则表达式可表示为Private_
ip = {Domain()|Domain()∈r’ ^1(((0|27)(.(([1-9]?|1[0-9])[0-9]|2([0-4][0-9]|5[0-5])))|(72.(1[6-
9]|2[0-9]|3[01])|92.168))
(.(([1-9]?|1[0-9])[0-9]|2([0-4][0-
9]|5[0-5]))){2})$’}
。其中包括了A 类、B 类、C 类及回环IP 地址。
2)TTL
值过短。
DNS 重绑定应答报文中的TTL 值过短,小于特定阈值。
3)行为异常。
短时间内同一域名接收到多个A 记录,或者接收到的一个A 记录中包含多个IP 。用集合可表示为Abnormal_behavior ={m |m ∈time_varying_record ∪ multiple_ A_record }。
4)出现异常流量。
浏览器与W eb 服务器的HTTP
应答报文中存在恶
图2 被动DNS 数据结构
意脚本,可表示为Abnormal_script。
因此,满足DNS重绑定攻击的特征匹配规则为DNS_ rebinding_set()={n|∀∈
n Private_ip() ∪ T TL_time() ∪ Abnormal_ behavior()∪Abnormal_script()}。其中,Private_ip表示出现私有IP,TTL_time()表示TTL值过短,Abnormal_behavior()表示行为异常,Abnormal_script()表示出现异常流量。2.2.2 恶意域名特征选择
分析出DNS重绑定攻击的基本特征后,从实现方式出发,进一步对DNS重绑定相关恶意域名特征进行选择。
1)基于域名名称的特征
通常恶意域名是数字、字母和特殊符号的随机组合,与正常域名差异较大。字母数量指在域名中出现的字母数量,数字数量指在域名中出现的数字数量,域名中出现的特殊符号数量也纳入考虑范围,三者作为域名的基本特征描绘了域名的基本面貌。是否含有著名域名是指该域名是否是著名域名或其子站,著名域名可以参考Alexa T opsites排行。同理,将是否与恶意域名相关也纳入考虑范围。
2)异常通信特征
异常通信特征包括域名地理位置、域名解析服务器及是否含有私有IP。某些特定区域的恶意域名活动较频繁,故需判定域名是否属于这些敏感区域。与DNS重绑定相关的域名解析服务器往往是伪造的服务器或者是受攻击者控制的服务器,故当NS(域名服务器)记录对应一个未知可疑服务器时,有存在DNS
重绑定攻击的可能。当前DNS重绑定倾向于控制内部网络中的IoT设备,或者窃取敏感文件,域名解析结果中出现私有IP也不是正常行为,故可将此作为DNS重绑定的一个判断依据。
3)基于时间的特征
基于时间的特征包括TTL和域名存活时间等多种。TTL值过短是DNS重绑定的一项重要特征。每次的DNS 解析报文往往对应不同的TTL值,反映了域名解析的变化情况。故将最大TTL值、最小TTL值及TTL值的变化次数纳入本测度集。域名存活时间是域名的一个重要特征。一般来说,与DNS重绑定相关的域名存活时间较短。域名存活时间计算方法如公式(1)所示。
Survivaltime(n) =starttime n endtime n
()()
3600
−(1)式中,starttime(n)为域名存活开始时间,endtime(n)为域名过期时间。如何申请域名
4)恶意行为特征
DNS重绑定的一大特征是域名对应的IP重绑定前后解析结果不同。进行DNS重绑定攻击时,域名解析请求数量暴增,域名服务器会对相同域名在短时间内进行多次解析;也可采用如文献[4]所展示的firedrill方法,对目标浏览器进行DNS洪泛攻击,通过发送大量的DNS解析报文,填充浏览器DNS缓存以达到篡改域名解析地址的目的。
本文所使用的4个测度集的16个特征如表3所示。
表3 特征信息
测度集编号特征名描述
域名名称
1Domain_special特殊字符
2Famous_domain与著名域名相关
3Malware_domain与恶意域名相关
4Num_word域名字母数量
5Num_digit域名数字数量
6Domain_length域名长度异常通信
7NS域名解析服务器是否正常
8Geo_feature地理位置信息
9Num_IP解析是否对应多个IP
10Private_IP是否为私有IP 时间
11Survival_time域名存活时间
12Min_TTL最小TTL值
13Max_TTL最大TTL值
14Change_ttl TTL值变化次数恶意行为
15Abnormal_behavior是否有异常解析行为
16Flood_behavior是否有洪泛DNS解析2.3 分类器引擎
分类器引擎由两部分组成:分类算法的选择及分类结果的加权求优。
2.3.1 分类算法
分类的目的是确定一个对象的类别。分类算法是指给定一个对象X,将其划分到预定义好的某个类别Y 中的算法。本文选取较常用的几种分类算法进行对比实验,从中选出最适合本文数据集的两种算法。本文选取的分类算法有C4.5决策树、支持向量机(SVM)、