背景
今天为大家推荐由360网络安全研究院-安全分析资深专家分享的议题《用DNS进行网络度量和安全分析》,本课题简要阐述了DNS协议的历史和发展现状,在此基础上,结合360网络安全研究院的多年分析DNS数据的经验,介绍了我们利用DNS数据做过的一些关于大网方面的度量,并结合公司多维度的海量数据做的安全分析方面的一些工作。
1
DNS概述
DNS协议对互联网的从业者来说并不陌生,它是互联网的最古老也是最基础和最核心的协议之一。简单来说的话,它最主要的功能是完成域名和IP地址的映射,即互联网的电话簿。
但DNS协议能够完成的功能远远不止于完成域名和IP地址的映射,很多现代互联网的基础业务都要基于DNS协议才能够完成,可以认为跟域名相关的业务几乎都和DNS协议有关。根据dns-camel项目[1]统计,截止到2019年6月,共有150篇标准,建议,最佳实践方面的RFC,共有2637页,非常庞杂的内容。所以DNS协议实际的复杂度超出了大多数人对其的理解。
下图显示了DNS协议相关的RFC页数从1984年到2019年的变化量,可以看到从1996年开始,几乎以每四年500页的速度在稳定增加。
也正因为如此基础和复杂,几乎所有的互联网业务都会在DNS数据中留下痕迹。使用了DNS服务的恶意行为也不例外,对DNS数据进行安全分析,可以涵盖绝大多数的恶意行为。
本文从使用DNS数据角度来介绍一下可以做的事情。主要是两大类,分别为网络(业务的)度量和安全分析。
2
网络度量
DNS劫持情况
同大多数早期的互联网协议类似,DNS协议在设计之初是以明文形式传输,支持TCP和UDP两种传输协议,并且在实际使用过程中主要以传输协议主要以UDP为主。
所以到现在,大多数的DNS请求和应答仍然是基于UDP协议的明文形式进行传输,因此DNS劫持是DNS在实际环境中非常普遍的问题,为了对这个问题有个精确的度量。清华大学网络科学与网络空间研究院和360公司合作,对全球范围内的DNS劫持情况做了一个定量的度量。测量方案通过请求随机化子域名(避免缓存服务器对请求域名的缓存)在不同的公共DNS服务器,从不同的请求类型,顶级域以及协议等维度的方式来探测DNS劫持的情况。
测量结果表明:
1. 基于UDP的DNS数据包更容易遭到劫持。
2. A类型(IPv4地址)的DNS请求比其他类型稍高。
3.