写点什么

用 DNS 进行网络度量和安全分析

  • 2020-12-27
  • 本文字数:3516 字

    阅读完需:约 12 分钟

用DNS进行网络度量和安全分析

背景


今天为大家推荐由 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 劫持的情况。



测量结果表明:


  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. 子域名方面:


  • 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 可以完成很多其他的度量工作,比如:


  1. 不同 CDN 厂商规模的评估

  2. 黑灰色产业规模的评估

  3. 新通用顶级域名(new gTLD)使用情况/(在现实使用中的)冲突情况的评估

  4. 域名在注册,备案以及解析尤其是涉及到批量的域名处理时的相关情况的评估

  5. 国家(涉及域名方面)政策的执行情况的评估

  6. ……


总之在网络测量方面,只要涉及到域名,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 数据入口就会非常简单,能够达到事半功倍的效果。


  1. 比如传统的采用 DGA 技术和 fastflux 技术的僵尸网络从 DNS 数据入手是非常容易的。

  2. 再比如某些黑灰行业他们在不断的改进自己的攻击手法时,其所使用的基础设施却是不变的,以某一个或者几个 IP/域名为入口通过 DNS 数据能够很快的将其他之前未发现的 IOC 关联出来。

  3. 再比如一些恶意程序在运行时,在时序上有着非常稳定的顺序,这种非常强的关联关系也会在 DNS 中留下非常显著的特征。只要在时序上构建较好的模型,我们就能够对域名进行聚类和扩展分析,从而有效的提高分析效率。

总结


近年来 DNS 协议正向着更注重隐私性,安全性方面快速发展。而针对 DNS 数据的分析则在对度量 DNS 协议发展情况,对依托于 DNS 数据所做的安全分析方面,尤其是在威胁情报的生产方面发挥着越来越重要的作用。


毫无疑问,DNS 协议对未来互联网的发展起着重要的作用,尽管我们还不知道它将走向何处,会给未来的网络带来哪些影响,现在是体验这个变化过程的最好时机。无论是对 DNS 数据做安全分析还是利用 DNS 做各种度量,DNS 这个宝库都值得深入探索和挖掘。


文章转载自:360 技术(ID:qihoo_tech)

原文链接:用DNS进行网络度量和安全分析

2020-12-27 07:001727

评论

发布
暂无评论
发现更多内容

LED显示屏行业发展现状与未来展望

Dylan

行业 LED LED display LED显示屏 市场

Solana 创下 2 月以来的最低价格,因为模因币暴跌

dappweb

玩转提示工程,优化LLM的实践指南!

神州数码

人工智能|ChatGPT 的 API 使用

霍格沃兹测试开发学社

GOTC 2024 全球开源人才及教育论坛议程出炉!

OSCTraining

加密市场再遭重创:多重利空因素引发超10亿美元抛售潮

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

阿里云2024云栖大会门票开抢啦!数量有限,先到先得!

MasterInTech

告别卡顿,拥抱流畅!nPlayer for Mac,你的私人高清影院

理理

如何在 K8s 中实现指定数据库实例下线?

小猿姐

数据库 Kubernetes 容器 云原生

深度解读KubeEdge架构设计与边缘AI实践探索

华为云开发者联盟

AI 边缘计算 kubeedge 企业号 8 月 PK 榜 2024企业号8月pk

24年广西具有资质等保测评公司汇总

行云管家

广西 等保 等级保护

基于51单片机设计的井下瓦斯监控系统

DS小龙哥

8月月更

MATLAB R2023b:创新升级,强化数据分析与可视化能力!

理理

虚拟ECU:纯电动汽车发展下的新选择

DevOps和数字孪生

电动汽车 虚拟ECU

RUM技术探索:前端监控数据采集与实践

乘云数字DataBuff

前端监控 #RUM

KeyShot 2023 Pro:更强大的材质库,更流畅的动画效果

理理

模块化叙事的演变:DeFi借贷开发的模块化转型

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

监控系统原理揭秘-数据运算篇

京东科技开发者

银行业数据分析的关键应用场景探索

镜舟科技

数据库 数据 银行

基于MySQL内核的SQL限流设计与实现|得物技术

得物技术

MySQL 数据库 企业号2024年7月PK榜

【YashanDB数据库】大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks

YashanDB

yashandb 崖山数据库 崖山DB

mac音量控制软件推荐 Sound Control v2.6.4激活版

理理

MongoDB工程配置入门(二)

XIAOJUSURVEY

Java mongodb Node nestjs

如何建立测试团队的知识库

老张

团队管理 软件测试 质量保障 知识库

【AIGC】 0成本学习:AI工作流生成Joy(ComfyUI)

京东科技开发者

连锁行业IT运维有哪些难点?贝锐向日葵如何帮助连锁企业搭建IT运维体系?

科技热闻

跨平台高级音乐播放器foobar2000 中文汉化版下载 mac/win

理理

苹果mac好用且免费的远程桌面软件VNC Viewer for Mac

理理

【YashanDB知识库】statement级别的触发器在jdbc接口调用executeBatch时被多次触发

YashanDB

yashandb 崖山数据库 崖山DB

引入JaCoCo导致的类型转换问题分析

京东科技开发者

用DNS进行网络度量和安全分析_语言 & 开发_360技术_InfoQ精选文章