背景
今天为大家推荐由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. 全球的8.5%的自治域存在DNS劫持,其中包括像中国移动这种较大的ISP。
4. 推测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. 子域名方面:
TP 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数据进行大规模的基于DNS数据的度量。所谓被动DNS也即PassiveDNS(PDNS) 数据库是将历史DNS记录解析/融合/存储的系统。通过被动的收集DNS流量,构建域名和Rdata(域名的解析结果)之间的全量历史映射关系,实现域名和Rdata的互查,以及历史DNS记录的查询。
360的PDNS系统(https://passivedns.cn)是国内第一家公开的P
其他的度量
利用PDNS可以完成很多其他的度量工作,比如:
1. 不同CDN厂商规模的评估
2. 黑灰色产业规模的评估
3. 新通用顶级域名(new gTLD)使用情况/(在现实使用中的)冲突情况的评估
4. 域名在注册,备案以及解析尤其是涉及到批量的域名处理时的相关情况的评估
5. 国家(涉及域名方面)政策的执行情况的评估
6. ……
总之在网络测量方面,只要涉及到域名,DNS数据几乎就是天然的基准数据,只要设计合理的测量方案,就能够得到准确的结果。
3
安全分析
面向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数据入口就会非常简单,能够达到事半功倍的效果。
1. 比如传统的采用DGA技术和fastflux技术的僵尸网络从DNS数据入手是非常容易的。
2. 再比如某些黑灰行业他们在不断的改进自己的攻击手法时,其所使用的基础设施却是不变的,以某一个或者几个IP/域名为入口通过DNS数据能够很快的将其他之前未发现的IOC关联出来。
3. 再比如一些恶意程序在运行时,在时序上有着非常稳定的顺序,这种非常强的关联关系也会在DNS中留下非常显著的特征。只要在时序上构建较好的模型,我们就能够对域名进行聚类和扩展分析,从而有效的提高分析效率。
4. …
4
总结
近年来DNS协议正向着更注重隐私性,安全性方面快速发展。而针对DNS数据的分析则在对度量DNS协议发展情况,对依托于DNS数据所做的安全分析方面,尤其是在威胁情报的生产方面发挥着越来越重要的作用。
毫无疑问,DNS协议对未来互联网的发展起着重要的作用,尽管我们还不知道它将走向何处,会给未来的网络带来哪些影响,现在是体验这个变化过程的最好时机。无论是对DNS数据做安全分析还是利用DNS做各种度量,DNS这个宝库都值得深入探索和挖掘。
参考资料
1. https://powerdns.org/dns-camel/
2. https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-liu_0.pdf
3. https://dns.360.cn/
4. https://en.wikipedia.org/wiki/Fast_flux#:~:text=Fast%20flux%20is%20a%20DNS,compromised%20hosts%20acting%20as%20proxies.
往期精彩回顾
封装 axios 取消重复请求
常见登录鉴权方案
360Stack裸金属服务器部署实践
360技术公众号
技术干货|一手资讯|精彩活动
扫码关注我们
转载:https://blog.csdn.net/qihoo_tech/article/details/111503106