DoH这个词对于很多安全从业人员并不是个新词,但对其前世今生能洞若观火的却不多。本期前瞻洞察将从DNS的隐私与安全问题出发,讲述DoH为什么诞生,DoH的出现到底利弊几何,对其弊端如何应对。为了便于读者理解,对于“何为隐蔽隧道?”、“DoH如何成为隐蔽隧道的利器?”这些基础性的问题也进行阐述。
传统DNS的隐私与安全问题催生安全DNS技术
DNS应该是家喻户晓的一个名词了,中文名叫作域名系统,用来实现域名和IP地址的映射,是互联网不可或缺的基石。DNS明文传输机制便于防火墙等安全设备进行安全检查和审计,但导致了严重的隐私问题和新的安全问题。先说说隐私问题,由于我们日常的DNS请求都经过运营商(ISP),明文传输的DNS信息在运营商那里都是全部公开透明的,用户毫无隐私可言。即使我们无条件相信运营商不会滥用我们的隐私数据,那么在整个互联网里明文传输的DNS信息也难免被第三方合法地、非法地窃听,后果难以意料。除了隐私问题,明文DNS还存在安全问题,比如域名劫持、重定向、钓鱼等。比如,你明明在浏览器输入的是招商银行,但却有可能被劫持到一个外观同招商银行一样的钓鱼网站。已经有充分的证据表明 [1],DNS流量被用于非安全目的的过度审查、监管和其他非法目的。
由于安全性和隐私性的考量,对DNS进行加密的技术和方案并不少见。最早的有DNSSEC和DNSCrypt。DNSSEC [2]通过增加签名验签机制以保护DNS数据的完整性,从而防止中间人攻击,但是DNS数据在网络流量中依然是明文格式,不能解决DNS数据机密性的问题。
DNSCrypt[3] 通过开源社区发起,同时解决了DNS数据的完整性和机密性,但是并没有提出RFC标准建议,且网络应用对其支持非常有限。
DNS over TLS (DoT) [4]于2016年正式提出并发布了RFC标准,DoT通过TLS协议对DNS请求和响应进行加密和封装,并工作于853端口。由于DoT在专门的端口提供服务,很容易被防火墙和其他安全设备识别、审查和阻断,可用性方面存在缺陷。
更引人注目和被寄予厚望的是本文的主角DNS over HTTPS (DoH)。这个方案获得IETF正式支持,于2018年10月发布了RFC 8484[5] 。DoH把DNS请求和响应数据包用HTTPS加密,从而防止第三方对明文DNS数据包的窃听和篡改。目前,DoH已经得到包括Cloudflare、Google、Quad9、阿里巴巴等代表性的公开DNS解析商的支持。主流浏览器(包括Chrome、Firefox、Edge等)和Windows11也正式支持了DoH。可以预计,尽管有监管机构和反隐私组织的反对和阻挠,DoH的使用率在未来依然会稳步提升。
DoH如何工作
DoH之所以被寄予厚望,主要原因是能良好融合到HTTP生态,网络应用对DoH的支持也更容易。得益于HTTP/2的特点,DoH可以允许服务端先发地把DNS响应push给客户端(早于客户端发起DNS请求),降低了DNS服务的时延,改善网络应用的性能。DoH将DNS请求和响应封装到HTTP请求的主体,客户端跟递归服务器之间建立一个TLS会话,通过HTTPS协议传输封装了DNS请求的HTTP请求。DoH的封装示意图见图 1。
图1:DoH封装示意图
跟传统DNS相比,DoH 通过 443 端口的加密 HTTPS 连接接受 DNS 查询将其发送到兼容 DoH 的 DNS 服务器(解析器),而不是在 53 端口上发送纯文本。这样,DoH 就会在常规 HTTPS 流量中隐藏 DNS 查询,因此第三方监听者将无法嗅探流量,无法获悉用户的 DNS 查询,也就无法推断他们将要访问的网站。
图2 :DoH工作示意图
DoH成为隐蔽隧道攻击的利器
成也萧何败也萧何。DoH虽然具备绝佳的隐私保护能力和安全能力获得用户的青睐,也由于DoH被用于隐蔽隧道攻击而遭到政府机构和安全机构的警惕关注。
将DoH隐蔽隧道攻击之前,先说说DNS隐蔽隧道攻击。
由于几乎所有的网络应用都依赖于DNS作为前置条件,防火墙通常开放53端口供DNS服务正常运行,客户端可以连接到内部的DNS服务器或者外部DNS服务器。这就从根源上导致了DNS被攻击者视为天然的、优质的隐蔽通道。
一个简单的DNS隧道攻击流程,见图 3:攻击者首先接管控制一个目标域名的Name Server(NS);客户端把C&C数据(命令与控制)或目标数据通过编码、加密、混淆等方法嵌入到一个DNS请求的子域名中;在一个TTL窗口中(窗口大小由递归服务器确定),发起的DNS请求的域名的子域名只要是不重复的,那么递归服务器就查询不到缓存数据,就会把请求转到权威域名服务器,并通过NS指派解析到攻击者所控制的域名服务器,攻击者就能收到C&C数据或者目标数据;攻击者在DNS响应数据包里同样可以嵌入C&C数据或者目标数据,并送达客户端。见图 4、图 5示意。
图 3:DNS隧道拓扑图
图4:通过DNS隧道获取控制命令示意
图5:通过DNS隧道回传窃密信息示意
DNS 隧道可以利用多种记录类型来传输数据,例如 A、MX、CNAME、TXT、 NULL 等,见表 1。
表1:资源记录类型
DNS 隧道的实现工具有很多,表 2介绍了三种常见的。
表2:DNS隧道工具
当DoH技术出现后,为上述的DNS隧道攻击提供了新的利器。基于DoH协议构建隐蔽隧道,不仅通信内容可基于HTTPS协议加密,而且与高可信DoH服务的通信(而非本地DNS服务器)不会引发异常行为,避免了基于DNS的恶意行为检测机制。
随着DoH的使用范围日益扩大,基于DoH的隧道攻击势必成为网络安全领域十分棘手的问题。这个威胁并不是针对未来形势耸人听闻的预判,而是已经成为现实的威胁。利用DoH隧道实施数据外传的首款恶意软件Godlua在2019年被披露[6];利用DoH实施数据外传的APT组织(APT34)在2020年被披露[7];其他利用DoH隧道技术进行攻击的研究和开源项目参考[8][9][10]。
DoH流量识别技术
为了检测DoH隐蔽隧道攻击,需要做两件事。由于DoH流量隐藏在HTTPS加密流量中,首要任务需要把DoH流量识别出来。
来自SANS协会的Hjelm [11]提出了一种识别DoH行为模式的RITA框架,这种方法不采用网络流量,而是采用Zeek IDS的用户日志;作者认为DoH具备规律的行为模式。
图6:RITA实验环境示意图
但是,这个成果经过其他研究人员[12]进行复现发现,RITA并不能从HTTPS流量中识别DoH流量。
Patsakis等人[13]的研究主要集中在基于DNS隧道的DGA和僵尸网络的检测,也提到了DoH和DoT。作者利用Hodrick-Prescott滤波(H-P滤波)检测出基于DoH/DoT的僵尸网络规律的行为模式,并取得很好的效果,见图 7。但是,DoH往往不局限于僵尸网络场景,对于更一般的通用场景下,识别DoH流量更有迫切需求和研究价值。
图7:基于DNS隧道的DGA和僵尸网络的检测
Bushart等人[14]的研究聚焦于识别DoH流量,但局限在于仅仅通过已知的DoH服务商的IP地址进行识别。目前,越来越多的DNS服务商也开始提供DoH服务,且标准DNS和DoH服务都使用一致的IP地址,如谷歌的8.8.8.8、Cloudflare的1.1.1.1。这就使得这种基于IP地址的识别方法不再有效。
图8:基于已知DoH服务商IP地址的识别
DoH隧道攻击检测技术
把DoH流量从浩瀚的HTTPS加密流量中识别出来之后,还需要进一步区分这些DoH流量是良性的还是隐蔽隧道攻击。
针对DoH隧道检测技术的研究并不多,大部分研究集中在传统的DNS隧道检测方面。
一些具备代表性的研究成果有:Paxson等人[15]研究开发了一种DNS隧道检测工具,计算DNS请求和响应数据包传递的信息量;Liu等人[16]利用DNS数据包的时间间隙、请求包大小等4个特征训练分类器,实现对DNS隧道的检测;文献[17]提出了一种称为Byte-level CNN的深度神经网络实现检测;Luo等人[18]提出一种可以检测利用A和AAAA资源记录的隧道攻击;Wu等人 采用一种半监督学习的自编码器实现流量特征自动提取,并检测隧道攻击。上述研究成果仅仅针对传统的、明文的DNS数据包发起的隧道攻击。
DoH流量的特征分析可以分为两个阶段:HTTPS客户端-服务端握手阶段、加密传输DNS请求应答阶段。在第一阶段的握手过程中,客户端和服务端之间有少量的数据包交互,且这些数据包包含了明文信息,可用于识别是什么应用发起了HTTPS连接。这个称为TLS指纹的一类技术是实现DoH识别、DoH隧道检测的基础性技术。
TLS指纹技术方面的研究成果颇丰。最具代表性的是Cisco的一些列研究成果[19][20][21][22],通过对大规模TLS流量的分析,得到恶意软件、企业应用如何使用TLS的模式,提出一种基于目的地上下文和先验知识的精确的TLS指纹生成方法。
考虑到互联网实际场景的复杂性、客户端到递归服务器链路的多样性,基于TLS指纹技术的分类器性能会存在下降。另外,从攻击者视角,攻击者会想方设法逃逸检测。因此,需要构建模拟一些实验场景,通过放大攻击者的逃逸能力从而寻找到DoH隧道检测性能的下确界。如果攻击者需要付出极高代价才能进行逃逸,就能说明DoH隧道检测的有效性。
为数不多且有一定代表性的针对DoH隧道检测的文献,是来自加拿大University of New Brunswick的研究[23],利用DoH流量特征和神经网络实现了99%的检测准确性。
图9:DoH隧道检测技术框架
总结——强盾在何方?
DoH的提出是隐私保护和安全提升的一个里程碑。但是,对于攻击者而言,把攻击活动隐藏到加密的DNS流量是个不错且必然的选择。由于DNS请求和响应的内容不再可见,现有基于域名特征的DNS隧道检测技术几乎全部失效。
构筑DoH隧道攻击的强盾,思路应聚焦于对加密DoH流量的特征分析。具体是采用各种机器学习模型,尤其是深度神经网络,对DoH流量的统计特征、时序特征进行分类。
需要强调的是,根据文献[24]的研究结论,对HTTPS加密流量进行代理解密会大幅降低连接的安全性。这种简单粗暴的代理解密方法难以持续。因此,采用中间人代理的方式对DoH流量进行解密从而把DoH隧道检测问题降级为传统DNS隧道检测的思路并不可行。
题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
- 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
- 国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图 ![](https://img-blog.csdnimg.cn/direct/424e38ca2a4f4d9f8309ef122fbcf07a.png)
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取