就是,DNS流量窃听是个广泛存在的现实。美国和中国院校的研究人员将这一事实摆到了大众眼前。
清华大学和得克萨斯州大学达拉斯分校的最新研究表明,使用TCP协议传输的比例虽小但很重要的一部分DNS查询(约0.66%),可被黑客窃听。该研究团队由中国的刘保军( 清华大学博士研究生 )、陆超逸(清华大学研究生)、段海新(蓝莲花战队创始人,清华大学网络与信息安全实验室主任)、刘莹(清华大学网络科学与网络空间研究院博士生导师)、杨敏(复旦大学教授),以及美国的IEEE会员李周( Zhou Li )和得克萨斯大学达拉斯分校计算机科学系副教授郝爽( Shuang Hao )组成。研究成果发表在第27届Usenix安全研讨会会议论文上,论文名称《谁在回复我的查询:理解并描述DNS解析路径拦截》。
研究人员设置了经过充分训练的系统来评估DNS拦截,审查了全球范围内约14.9万个住宅IP和蜂窝IP地址。
软件和浏览器要使用DNS查询来解析IP地址和域名,但因为DNSSEC和DNS-over-HTTPS之类DNS流量保护标准的消极实现和惫懒采用,DNS查询确实很不安全。
DNSSEC协议的目的是要防止黑客篡改其所拦截到的域名搜索,方法则是对查询结果进行数字签名。只要检测到有任何伪造,DNSSEC便会通报给使用该协议的软件。DNS-over-TLS 和 DNS-over-HTTPS 也执行相同的功能,但还添加了加密查询的工作。加密查询可以防止恶意入侵者识别出用户访问的站点。
然而,据报道,这些安全保护标准并没有得到全面采纳。DNS流量既没有被加密,也没有经验证。这意味着,DNS流量很容易被窥探。而且,网络罪犯能利用这明显的漏洞将毫无疑心的用户重定向到带毒虚假网站。此类拦截或许不会造成致命后果,但肯定不利于保护用户隐私。
问题在于,用户自身并不了解DNS查询的错综复杂,从而最终被网络罪犯利用。必须点出的是,用户是可以选择自己的DNS解析服务器的。只需要手动将自己的应用程序和操作系统指向特定DNS就可以了。比如说,用户可以很容易地设置自己的应用程序使用谷歌公共DNS(8.8.8.8)或Cloudflare的DNS(1.1.1.1)。但基本上,人们总是选择接受互联网服务提供商(ISP)给的任何DNS解析服务器。
该团队使用注册域名来研究为保护DNS查询的动态变化。他们还在秘密拦截DNS流量的特定DNS解析服务器上搜索了被骗网络用户的IP地址。3,047个服务提供商中有259个被检测出存在DNS查询拦截动作。
在这方面,对谷歌公共DNS的UDP查询数据包中约27.9%遭到了拦截,而TCP支持的数据传输则有7.9%被拦截。中国提供商是此类拦截的首要助力者。
我们发现,有82个自治系统(AS)在拦截超过90%的发往谷歌公共DNS的查询。举个例子,谷歌公共DNS发出的8个响应回复遭到AS9808(广东移动)篡改,指向了推广中国移动某App的门户网站。
DNS为互联网应用提供关键服务,几乎每个互联网连接都要用到DNS查询。但该研究显示,DNS查询是可以被拦截并恶意使用的。因为安全保护标准没有被恰当采用,比如DNSSEC和 DNS-over-HTTPS,用户隐私暴露在巨大风险之中。每个通过浏览器访问网页的用户都要用到DNS查询,这是将域名翻译成IP地址的过程。如果DNS查询数据未加密,用户的个人隐私就会处于巨大的风险之中。跟踪用户浏览习惯的网络罪犯,将能够获取到用户业余爱好、兴趣和日常工作之类的私密信息。某些情况下,这些信息可被用于敲诈勒索,而更常见的用途,是被网络罪犯用来开展目标侦察工作。因为能提供可被用于个性化攻击的针对性信息,此类对鱼叉式网络钓鱼攻击特别有用。
所有系统在初始设计中都必须实现加密。正如研究人员的论文所揭示的,个人数据加密仍未成为大多数公司企业的首要工作。但加密问题是必须立即解决的一个问题。或许公司企业尚未将DNS查询当做潜在的攻击途径。如果情况果真如此,那么,到底还有多少其他数据相关的过程是未受保护的呢?网络中的任意节点,无论是云端、数据中心,还是终端,数据加密都应是必需的规定动作。
《谁在回复我的查询:理解并描述DNS解析路径拦截》论文原文:
https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-liu_0.pdf