DNS服务已经深入互联网的各个角落。最初,DNS数据包被设计成未加密的形式传输于互联网上,然而这种设计并不安全,攻击者可以截获并分析DNS数据包来损害互联网用户的安全和隐私。在解决这些问题的同时,Google和CloudFlare等大型供应商采取了将DNS查找进行加密的方案,如DNS over Https(DoH)和DNS over TLS(DoT)。
因此,研究在利用DNS over Https(DoH)加密技术后,供应商能否保护用户免受基于流量分析的监控和审查。首先利用LSTM技术和DoH流量的数据包大小创建分类器,其次在开放环境和封闭环境下分别测试分类器,最后通过分析DoH业务讨论如何选择性地阻止DoH攻击。
随着互联网的快速发展,DNS服务已经成为最重要的服务。域名系统(Domain Name System,DNS)是互联网上最关键的基础设施,主要作用是将易于记忆的主机名称映射为难以记忆的IP地址,从而保障其他网络应用顺利执行。DNS服务主要由3个部分组成,分别是域名空间(Domain Name Space)和资源记录(Resource Record)、名字服务器(Name Server)、解析器(Resolver),如图1所示。
图1 域名系统解析过程
由于DNS存在安全性问题,所以安全技术人员利用加密技术将DNS查找与回应的数据包进行加密,从而保证数据包不被监听和利用,由此产生了多种技术,包括DNS-over-TLS(DoT)、DNS-over-HTTPS(DoH)、DNS-over-QUIC和DNSCrypt。虽然这些技术协议产生的时间并不长,但一些协议已经得到大型DNS服务供应商的大力支持。目前,Google和CloydFlare等公司已经发布了公开的DoH解析器,Firefox也支持DoH协议。本文利用Firefox浏览器收集相关网站的访问记录,筛选出DoH流量,利用深度学习算法对DoH流量进行分析,进而挖掘用户的访问记录。
01
DoH安全性的相关研究
2018年IETF批准了DNS-over-HTTPS(DoH)作为标准跟踪协议。DoH协议是将HTTPS和DNS解析器之间建立连接,通过HTTP发送DNS查询并获取DNS响应,每个DNS查询响应对映射到HTTP交换,如图2所示。DoH的实现建立在IP、TCP、TLS以及HTTP之上,每层包含一个或者多个相似的参数用于关联同一个用户身份,用于身份认证。DoH通过对DNS通信进行加密,并要求对服务器进行身份验证,减轻了被动监听和主动攻击的威胁,保证了DNS信息的安全传输。
图2 DNS-over-HTTP协议
目前,DoH和DoT已经被广泛使用。Cloudflare和Quad9已经提供DoH和DoT解析器,谷歌(Google)也支持DoH,火狐(Firefox)也将提供DoH解析器。Cloudflare还分发了独立的DoH客户端,并且在2018年发布了一个隐藏的解析器,用以提供DoT服务。
同时,其他DNS加密协议也得到了应用,如DNS-over-DTLS和DNS-over-QUIC。早在2014年,Shulman等人提出单独靠加密可能不足以保护用户的隐私;2013年Herrmann等人提出了利用DNS痕迹作为追踪特征,在不考虑加密情况下实现攻击;2019年Sandra Siby等人将DoH流量包的大小与n-grams相结合作为特征进行研究,表明使用DoH协议后仍然能够获取用户的访问记录。
2019年,Jonas Bushart等人利用香农熵进行研究,表明即使在填充的情况下,攻击者仍然可以以高概率形式正确猜测用户访问痕迹。以往的研究大多是先收集数据集,挑选出数据的某个或者某些特征作为样本特征,利用机器学习或者深度学习进行训练。
本文将每次访问获得的数据包大小作为序列,利用长短期记忆网络对数据集进行训练。本文的贡献主要有以下几点。
(1)利用加密流量数据包大小序列作为每个网址的特征集。
(2)利用深度学习算法进行训练,获得很高的准确率。就当前的调研情况,长短期记忆网络还没有运用到DoH研究中。
(3)本文与Sandra Siby文献方法进行对比,效果要优于他们的方法。本文利用开放性环境和封闭性环境进行实验,充分验证了该方法的有效性和实用性,实现了从观察加密的DNS流量来推断用户的访问痕迹。
02
算法分析
2.1 基本假设
本文假设对手可以访问加密的DNS流量,该流量是当用户使用HTTPS访问网站时使用DoH协议生成的,然后利用两种环境对DoH流量进行实验。
2.1.1 封闭环境
这个环境中,攻击者知道用户访问的网页集。每个网站都可以进行训练,并决定只需确定用户访问的已知网站中的哪一个。封闭环境中利用300个网站进行测量,每个网站样本数为300,从数据集中随机选择85%作为训练集,剩下15%则作为测试集测量准确率。
2.1.2 开放环境
这个环境模拟攻击者在真实环境中预测用户的访问域。攻击者只知道客户访问网站的一个子集,这时攻击者的任务更加复杂,因为在训练阶段无法包含所有相关的网站。攻击者不仅必须找到最相似的DNS序列,还必须确定最近的序列是否真正合适。开放环境中利用300个网站进行测量,其中100个网站作为攻击者预先训练的子集,在检测到相似类的同时,利用阈值判断测试数据是否真正属于某个类,并舍弃低于阈值的数据。
2.2 算法——LSTM
长短期记忆网络(Long Short-Term Memory,LSTM)是为了解决长期以来的问题而专门设计的,主要通过输入门、遗忘门和输出门实现对信息的保护和控制。遗忘门:历史状态信息的遗忘程度。该门会读取
和
,输出一个在区间[0,1]中的数,公式如下:
输入门:新状态信息的更新程度,确定更新的信息。输入
和
,公式如下:
输出门:利用更新的细胞信息更新细胞状态,公式如下:
长短期记忆网络能够有效解决长期依赖的问题,在文本分类、文本预测、感情分析等方面发挥着重要作用。本文将DoH数据包长度序列作为每个网址的特征,利用LSTM训练样本,找出长度序列的依赖关系,并根据训练的分类器对未训练的样本进行分类,进而预测使用DoH协议的用户的访问痕迹。
03
数据集收集
预先准备在Alexa的网站列表中收集前500个网页的追踪信息,有87个网址的网页状态是无效的,98个网址的页面状态出现了波动,无法正常访问。经过删除和筛选,最终选择其中300个网址进行数据集收集。2019年9月1日到2019年10月15日期间对数据进行收集,以循环的方式访问每一个网页,为每一个网页获取300个样本。
为了收集DoH流量,使用DoH客户端设置的Ubuntu16.04虚拟机,在虚拟机中将Firefox浏览器设置为DoH支持,使用selenium 3自动启动Firefox,并从列表中访问网页并触发DNS查找。对列表中的每个网页重复此过程,每次的访问都要重新启动浏览器并清除缓存信息,确保缓存和配置文件不影响数据流量的收集。
最后,运行tcpdump捕获DoH客户端和解析器之间的网络流量,通过目标端口和IP地址过滤流量,以获得最终的DoH流量。经过一个月半的时间,收集了300个网址,每个网址300个样本,共90 000个网页样本。将收集得到的网页进行整理和分化,随机分出开放环境下的数据集,100网页作为被监视的数据集,整体300网页作为测试集。
04
算法实现与结果展示
下面评估基于长度序列的长短期记忆网络在封闭环境和开放环境的有效性。
4.1 封闭环境
封闭环境中,攻击者知道用户访问的网页集。本文使用20次循环训练,训练数据集中90 000个样本,将其中15%的样本作为测试集,85%的样本作为训练集,利用LSTM进行训练,并计算交叉熵损失和准确率。表1显示了实验结果。表1 分类方法的分类性能
分析数据集发现,域名数据集包含指向同一服务区域的URL,如www.taobao.com与www.tianmao.com都是指向相同的服务,共同使用IP地址222.22.29.103和222.22.29.102,而分类器经常错误分类这些情况。但是,对于攻击者而言他们是等价的。
针对这种情况,本文将域名进行合并,整理出合并数据集并进行训练。如表1第二行显示,考虑到等价的分类,检测成功率提高7%~8%。分析实验结果得出,长短期记忆网络可以高概率预测DNS-over-HTTPS类别,适用于序列的多分类问题,利用DNS-over-HTTPS连续数据包的大小作为序列,根据其规律进行学习,将训练好的模型对剩余的15%数据进行测试,得出94.87%的准确率。
利用相同的数据集进行对比实验,利用Sandra Siby提出的方法将数据包大小的unigram、Bi-gram和突发流量作为特征,将数据集划分为15%的测试集和85%的训练集,利用随机森林算法进行训练,得出如表2所示的结果。表2 Sandra Siby的分类方法的分类性能
实验结果分析可知,Sandra Siby的分类方法检测出的精确率为89%,召回率为88%;将unigram、Bi-gram和突发流量作为特征,也可以高精度地对DoH流量进行分类,但是分类性能低于基于LSTM的分类性能。可以看出,利用长短期记忆网络进行训练得出的准确率相对较高。随后,在合并数据集下测试长短期记忆网络的循环次数对实验精度的影响,如图3所示。
图3 使用LSTM在封闭环境下的准确率与损失的曲线
可以看出,当进行到第5次循环时,检测的准确率增幅明显下降;进行到第9次循环时,准确率达到90%,此时test-loss和train-loss减小幅度小,说明训练即将成功;第16次循环后,损失值处于0.2以下并保持不变,此时训练准确率为0.943。由此可以看出,基于LSTM在用户使用DoH协议的情况下对用户的访问痕迹进行预测,可以达到较高的准确率。
4.2 开放环境
开放环境下,攻击者在只有部分用户访问的网页的情况下进行训练分类器。设置两个网页数据集,一个是被监测的数据集,一个是没有监测的数据集。攻击者的目标是确定跟踪的页面流量是否属于被监视的数据集中的页面。由于假设攻击者可以访问所有的网页是不现实的,所以使用100网页,每个网页300样本,共30 000个样本作为被监视的数据集。
另外,利用包含前者数据集在内的300个网页,每个网页300样本,共90 000个样本作为没有监测的数据集,类别划分为1/3在监视集中,2/3完全没有在监视集中。为了决定是否属于被监视的网页集,本文使用Stolerman等人提出的方法,设置阈值取舍测试集中的流量序列。分类器在预测时只取概率大于阈值t的情况,舍弃概率小于t的序列,可以得出精确率pre与阈值t的关系曲线如图4所示。
图4中,将阈值设置为[0,0.99]区间,有0.05、0.1、0.2、0.3、…、0.9、0.95共11个测量点。分析实验结果可以看出,精确率、召回率与阈值相关,阈值设置越大,精确率越高,召回率越小。阈值的大小影响预测的精度,所以当攻击者进行流量分析时,可以根据实际情况适当设定阈值以达到最优分析。
图4 在开放环境中设定阈值,其精确率与召回率的曲线
然后进行对比实验,将阈值设置为0.8进行LSTM预测实验和N-gram为特征的随机森林实验,测出准确率如表3所示。表3 开放环境下,阈值设置为0.8,对比本文方法与Sandra Siby提出的方法在精确率上的表现
之后进行阈值为0.9、0.7的实验,结果也同样显示出本文方法的精确率高于Sandra Siby所提的方法,可以看出LSTM方法在开放环境下也能够精确地分类DoH流量,说明在实际环境中,攻击者可以利用LSTM分析用户在使用DoH情况下的访问痕迹。
05
结 语
本文进行DNS-over-HTTPS协议的安全性分析。DoH协议利用加密算法将DNS消息进行加密处理,利用HTTPS进行传输,保证消息的安全,保护用户的隐私。利用深度学习对DoH流量进行分析,根据流量数据包序列的规律性训练出分类器,利用未参与训练的数据集进行测试,得出高概率的预测。在实际环境中,攻击者可以利用一部分域名的DoH数据包访问情况预测用户的访问痕迹,分析用户的访问规律,进而完成攻击者想要的攻击行为。研究表明,DNS-over-HTTPS协议不足以保护用户的隐私,用户不能仅靠DNS-over-HTTPS协议达到安全的目的。这些结果有助于影响DNS隐私标准的演变,能够为DNS供应商在使用下一版本时的安全性提供启示。作者简介 >>>