背景
今天为大家推荐由 360 网络安全研究院-安全分析资深专家分享的议题《用 DNS 进行网络度量和安全分析》,本课题简要阐述了 DNS 协议的历史和发展现状,在此基础上,结合 360 网络安全研究院的多年分析 DNS 数据的经验,介绍了我们利用 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 劫持情况
同大多数早期的互联网协议类似,DNS 协议在设计之初是以明文形式传输,支持 TCP 和 UDP 两种传输协议,并且在实际使用过程中传输协议主要以 UDP 为主。
所以到现在,大多数的 DNS 请求和应答仍然是基于 UDP 协议的明文形式进行传输,因此 DNS 劫持是 DNS 在实际环境中非常普遍的问题,为了对这个问题有个精确的度量。清华大学网络科学与网络空间研究院和 360 公司合作,对全球范围内的 DNS 劫持情况做了一个定量的度量。测量方案通过请求随机化子域名(避免缓存服务器对请求域名的缓存)在不同的公共 DNS 服务器,从不同的请求类型,顶级域以及协议等维度的方式来探测 DNS 劫持的情况。
测量结果表明:
基于 UDP 的 DNS 数据包更容易遭到劫持。
A 类型(IPv4 地址)的 DNS 请求比其他类型稍高。
全球的 8.5%的自治域存在 DNS 劫持,其中包括像中国移动这种较大的 ISP。
推测 DNS 劫持的主要目的是为了减少财务结算和提高 DNS 相应的性能。
具体的测量详细过程和完整结果参见这里[2]。
小贴士:DNS 加密传输的进展
为了解决 DNS 明文传输所引起的问题,相应的解决方案最近几年在业界已经积极的推动起来了,客户端方面来看,有更好安全意识的浏览器厂商(Firefox,Chrome,360 浏览器等)和操作系统厂商(包括 windows 和 macOS)逐步开始支持 DoT/DoH;在服务器方面包括 360 安全 DNS[3]在内的公共 DNS 服务提供商都开始 DoT/DoH 服务,有条件的用户可以尝试一下,应该可以极大的缓解由于 DNS 劫持所引起的安全风险。
用 DNS 数据来度量 NTP pool 的使用情况
NTP pool 成立于 2003 年,是由志愿者提供的联网计算机组成的动态虚拟群集,可向全球数百万个系统提供高度准确的时间同步服务。它是大多数主要 Linux 发行版和许多联网设备的默认时间服务器。
由于它的特殊工作方式,在 PDNS(参见下面的小贴士)中,它的域名和 IP 的映射关系在一定程度上是随机的,特别像之前非常流行的僵尸网络躲避攻击检测和防封堵使用的 Fastflux[4]。
为了摸清楚 NTP pool 的实际工作情况,我们通过 DNS 数据对 NTP pool 做了一次度量。
主要有如下发现:
1. 服务器方面
NTP pool 服务器在 4000 左右,其中 IPv6 的占比在 25%,IPv4 占 75%。
NTP pool 服务器遍布全球 97 个国家,不过主要集中在美、德、法、英、荷、加等发达国家。
国内的服务器只占总服务器个数的 2%,并且主要集中在香港,台湾,广东和北京等这些经济较为发达的地区。
2. 子域名方面:
NTP pool 的子域名主要有三种划分方式:按照大洲,按照国家/地区,按照供应商。
NTP pool 的域名 DNS 请求中,大约 3%的域名请求是无效的,主要是拼写错误或者系统的 bug 导致的。
按照供应商访问的 NTP pool 服务会在一定程度上暴露用户发起请求的客户端的类型。下图是我们对不同供应商的 DNS 请求次数的统计:
3. 使用服务器效率方面:
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 系统
所谓被动 DNS 也即 PassiveDNS(PDNS) 数据库是将历史 DNS 记录解析/融合/存储的系统。与主动扫描(探测)不同,可以利用大量的被动 DNS 数据进行大规模的基于 DNS 数据的度量。通过被动的收集 DNS 流量,构建域名和 Rdata(域名的解析结果)之间的全量历史映射关系,实现域名和 Rdata 的互查,以及历史 DNS 记录的查询。
360 的 PDNS 系统(https://passivedns.cn)是国内第一家公开的 PDNS 系统。系统建设于 2014 年,是国内目前规模最大和历史数据最久的 PDNS 系统。
其他的度量
利用 PDNS 可以完成很多其他的度量工作,比如:
不同 CDN 厂商规模的评估
黑灰色产业规模的评估
新通用顶级域名(new gTLD)使用情况/(在现实使用中的)冲突情况的评估
域名在注册,备案以及解析尤其是涉及到批量的域名处理时的相关情况的评估
国家(涉及域名方面)政策的执行情况的评估
……
总之在网络测量方面,只要涉及到域名,DNS 数据几乎就是天然的基准数据,只要设计合理的测量方案,就能够得到准确的结果。
安全分析
面向 DNS 的安全分析,大体可分为两类:
· 针对 DNS 协议和系统本身的安全问题的分析
DNS 投毒
DNS 劫持
伪随机前缀 DoS 攻击
NXNSAttack 攻击
…
· 使用 DNS 数据来分析相关的安全事件
DNS 隧道
DNS 反射放大
DGA
Fastflux
…
DNSMon——基于 DNS 数据的威胁检测和分析系统
在日常工作中,针对 DNS 协议和系统的攻击在 DNS 数据中有一定的体现,但并不是利用 DNS 数据威胁发现的主要目标。如前所述,只要互联网使用域名的业务就会在 DNS 数据中留下自身的痕迹,恶意程序也不例外。因此从威胁发现的角度来说,使用 DNS 数据检测,分析和阻断安全威胁是海量 DNS 数据发挥作用的主要场景。
为了能够更加及时高效的发现安全事件,360 公司开发了 DNSMon 系统。该系统以 DNS 数据在统计维度上的异常为出发点筛选初始域名,综合 web 页面数据,证书数据,whois 数据,沙箱以及蜜罐等多维度的数据,并结合高质量的 IOC 和 word2vec,LSTM 等深度学习算法,对发生异常的域名进行综合判断,标定其异常状态,给出较为确定性的标签。
对于标黑和高危域名可以录入威胁情报库供第三方使用。对于白和其他灰域名则录入标签库供第三方查询使用。
基本流程如下图:
系统的优势主要体现为如下三点:
· 准实时的处理和关联海量的数据。目前在于能够在百万 QPS 的 DNS 请求的情况下,融合多维度的其他数据源进行处理,达到小时级别的输出。
· 自动化程度高。每天能够自动产生千级别的黑域名和高危域名。
· 无先验知识的情况下可以大规模的阻断黑,高危域名。例如:
永恒之蓝挖矿蠕虫及其系列变种
MSRAminer 恶意挖矿程序及其系列变种
NuggetPhantom 恶意程序及其系列变种
DGA.popad 广告网络挖矿程序
Mylobot 僵尸网络
Godlua 后门
Burimi 挖矿蠕虫
LSDMiner 挖矿恶意程序
盗贼恶意 SDK 应用
恶意利用某大型互联网厂商的评论系统漏洞刷广告流量
Skidmap 恶意程序
更多案例请参考:https://blog.netlab.360.com/tag/dnsmon/
安全分析的其他方面
在对 PDNS 数据进行深入分析之后,我们就会发现其实针对很多类型的攻击如果从 DNS 数据入口就会非常简单,能够达到事半功倍的效果。
比如传统的采用 DGA 技术和 fastflux 技术的僵尸网络从 DNS 数据入手是非常容易的。
再比如某些黑灰行业他们在不断的改进自己的攻击手法时,其所使用的基础设施却是不变的,以某一个或者几个 IP/域名为入口通过 DNS 数据能够很快的将其他之前未发现的 IOC 关联出来。
再比如一些恶意程序在运行时,在时序上有着非常稳定的顺序,这种非常强的关联关系也会在 DNS 中留下非常显著的特征。只要在时序上构建较好的模型,我们就能够对域名进行聚类和扩展分析,从而有效的提高分析效率。
…
总结
近年来 DNS 协议正向着更注重隐私性,安全性方面快速发展。而针对 DNS 数据的分析则在对度量 DNS 协议发展情况,对依托于 DNS 数据所做的安全分析方面,尤其是在威胁情报的生产方面发挥着越来越重要的作用。
毫无疑问,DNS 协议对未来互联网的发展起着重要的作用,尽管我们还不知道它将走向何处,会给未来的网络带来哪些影响,现在是体验这个变化过程的最好时机。无论是对 DNS 数据做安全分析还是利用 DNS 做各种度量,DNS 这个宝库都值得深入探索和挖掘。
文章转载自:360 技术(ID:qihoo_tech)
原文链接:用DNS进行网络度量和安全分析
评论