今天为大家推荐由 360 网络安全研究院-安全分析资深专家分享的议题《用 DNS 进行网络度量和安全分析》,本课题简要阐述了 DNS 协议的历史和发展现状,在此基础上,结合 360 网络安全研究院的多年分析 DNS 数据的经验,介绍了我们利用 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 数据角度来介绍一下可以做的事情。主要是两大类,分别为网络(业务的)度量和安全分析。
同大多数早期的互联网协议类似,DNS 协议在设计之初是以明文形式传输,支持 TCP 和 UDP 两种传输协议,并且在实际使用过程中传输协议主要以 UDP 为主。
所以到现在,大多数的 DNS 请求和应答仍然是基于 UDP 协议的明文形式进行传输,因此 DNS 劫持是 DNS 在实际环境中非常普遍的问题,为了对这个问题有个精确的度量。清华大学网络科学与网络空间研究院和 360 公司合作,对全球范围内的 DNS 劫持情况做了一个定量的度量。测量方案通过请求随机化子域名(避免缓存服务器对请求域名的缓存)在不同的公共 DNS 服务器,从不同的请求类型,顶级域以及协议等维度的方式来探测 DNS 劫持的情况。
测量结果表明:
具体的测量详细过程和完整结果参见这里[2]。
为了解决 DNS 明文传输所引起的问题,相应的解决方案最近几年在业界已经积极的推动起来了,客户端方面来看,有更好安全意识的浏览器厂商(Firefox,Chrome,360 浏览器等)和操作系统厂商(包括 windows 和 macOS)逐步开始支持 DoT/DoH;在服务器方面包括 360 安全 DNS[3]在内的公共 DNS 服务提供商都开始 DoT/DoH 服务,有条件的用户可以尝试一下,应该可以极大的缓解由于 DNS 劫持所引起的安全风险。
NTP pool 成立于 2003 年,是由志愿者提供的联网计算机组成的动态虚拟群集,可向全球数百万个系统提供高度准确的时间同步服务。它是大多数主要 Linux 发行版和许多联网设备的默认时间服务器。
由于它的特殊工作方式,在 PDNS(参见下面的小贴士)中,它的域名和 IP 的映射关系在一定程度上是随机的,特别像之前非常流行的僵尸网络躲避攻击检测和防封堵使用的 Fastflux[4]。
为了摸清楚 NTP pool 的实际工作情况,我们通过 DNS 数据对 NTP pool 做了一次度量。
主要有如下发现:
a. NTP pool 在轮询服务器方面理论上来说是均衡的
b. 在实际操作中,收到地理位置以及不同服务器服务能力,服务策略的不同导致不同的 IP 提供服务的机会并不均等。
c. TOP4000 的 RRset(约占总数的 1%)即可占总记录数的 41.21%,不同 RRset 的 CDF 图如下:
完整的文章请参阅:https://blog.netlab.360.com/look-at-ntp-pool-using-dns-data/
所谓被动 DNS 也即 PassiveDNS(PDNS) 数据库是将历史 DNS 记录解析/融合/存储的系统。与主动扫描(探测)不同,可以利用大量的被动 DNS 数据进行大规模的基于 DNS 数据的度量。通过被动的收集 DNS 流量,构建域名和 Rdata(域名的解析结果)之间的全量历史映射关系,实现域名和 Rdata 的互查,以及历史 DNS 记录的查询。
360 的 PDNS 系统(https://passivedns.cn)是国内第一家公开的 PDNS 系统。系统建设于 2014 年,是国内目前规模最大和历史数据最久的 PDNS 系统。
利用 PDNS 可以完成很多其他的度量工作,比如:
总之在网络测量方面,只要涉及到域名,DNS 数据几乎就是天然的基准数据,只要设计合理的测量方案,就能够得到准确的结果。
面向 DNS 的安全分析,大体可分为两类:
· 针对 DNS 协议和系统本身的安全问题的分析
· 使用 DNS 数据来分析相关的安全事件
在日常工作中,针对 DNS 协议和系统的攻击在 DNS 数据中有一定的体现,但并不是利用 DNS 数据威胁发现的主要目标。如前所述,只要互联网使用域名的业务就会在 DNS 数据中留下自身的痕迹,恶意程序也不例外。因此从威胁发现的角度来说,使用 DNS 数据检测,分析和阻断安全威胁是海量 DNS 数据发挥作用的主要场景。
为了能够更加及时高效的发现安全事件,360 公司开发了 DNSMon 系统。该系统以 DNS 数据在统计维度上的异常为出发点筛选初始域名,综合 web 页面数据,证书数据,whois 数据,沙箱以及蜜罐等多维度的数据,并结合高质量的 IOC 和 word2vec,LSTM 等深度学习算法,对发生异常的域名进行综合判断,标定其异常状态,给出较为确定性的标签。
对于标黑和高危域名可以录入威胁情报库供第三方使用。对于白和其他灰域名则录入标签库供第三方查询使用。
基本流程如下图:
系统的优势主要体现为如下三点:
· 准实时的处理和关联海量的数据。目前在于能够在百万 QPS 的 DNS 请求的情况下,融合多维度的其他数据源进行处理,达到小时级别的输出。
· 自动化程度高。每天能够自动产生千级别的黑域名和高危域名。
· 无先验知识的情况下可以大规模的阻断黑,高危域名。例如:
在对 PDNS 数据进行深入分析之后,我们就会发现其实针对很多类型的攻击如果从 DNS 数据入口就会非常简单,能够达到事半功倍的效果。
近年来 DNS 协议正向着更注重隐私性,安全性方面快速发展。而针对 DNS 数据的分析则在对度量 DNS 协议发展情况,对依托于 DNS 数据所做的安全分析方面,尤其是在威胁情报的生产方面发挥着越来越重要的作用。
毫无疑问,DNS 协议对未来互联网的发展起着重要的作用,尽管我们还不知道它将走向何处,会给未来的网络带来哪些影响,现在是体验这个变化过程的最好时机。无论是对 DNS 数据做安全分析还是利用 DNS 做各种度量,DNS 这个宝库都值得深入探索和挖掘。
文章转载自:360 技术(ID:qihoo_tech)
原文链接:用DNS进行网络度量和安全分析
领取专属 10元无门槛券
私享最新 技术干货