写点什么

用 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:001606

评论

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

Kubernetes官方java客户端之三:外部应用

程序员欣宸

Kubernetes java client

TiFlash 开源了

PingCAP

【直播回顾】OpenHarmony 知识赋能第四期第四课——音频驱动开发

Anna

OpenHarmony

DevEco Device Tool 3.0 Release新版本发布,支持多人共享开发、源码级调试

HarmonyOS开发者

HarmonyOS DevEco Device Tool

阿里云:已有10000家企业在云上构建数据湖

Apache Flink

云计算 阿里云 数据湖 云原生

腾讯AI Lab姚建华博士当选 2022 美国医学与生物工程院会士

科技热闻

清华自研时间序列数据库Apache IoTDB原理解析

云智慧AIOps社区

数据库 时序数据库 消息队列 智能运维

高效使用Java构建工具,Maven篇|云效工程师指北

阿里云云效

云计算 maven 阿里云 java 并发 构建工具

企业实施知识管理的建议

小炮

企业知识管理

轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)

刘悦的技术博客

Python ide 编辑器 Python3 Sublime

架构标准TOGAF实践最重要的三件事

博文视点Broadview

车载小程序快马加鞭突围车联网生态系统

FinClip

“远见者”特斯拉AI主管Karpathy|深度学习崛起十年

OneFlow

人工智能 深度学习 计算机视觉 特斯拉 openai

博文推荐|深入解析 BookKeeper 多副本协议(一)

Apache Pulsar

开源 云原生 中间件 bookKeeper Apache Pulsar

web前端培训-检测Javascript类型的4种方式

@零度

JavaScript 前端开发

模块二作业

HZ

架构实战营 「架构实战营」

大数据培训-如何连通 Hive 数仓和ClickHouse

@零度

大数据 hive Clickhouse Seatunnel

We are learning by contributing!访 StarRocks Committer 周康、冯浩桉

StarRocks

数据库 开发者社区 StarRocks

对话LigaAI创始人周然:在研发SaaS赛道,「颠覆」Jira | PLG十人谈

LigaAI

SaaS LigaAI 研发协作平台

在 AWS 上运行 CAE 工作负载的五个原因。

亚马逊云科技 (Amazon Web Services)

产品 计算机

Linux下网络编程-UDP协议探测在线好友

DS小龙哥

4月月更

【直播回顾】OpenHarmony知识赋能第四期第四课——音频驱动开发

OpenHarmony开发者

OpenHarmony HDF框架 音频驱动开发

恒源云(Gpushare)_如何防止训练不中断?技巧大放送1!

恒源云

算法 服务器 训练

直播预告 | 如何在有限数据下实现资讯类网站海量信息自动分类

百度开发者中心

突破数据分析瓶颈,寻因生物单细胞测序数据分析迈入云时代

阿里云弹性计算

虚拟化 持久内存 基因测序

设备资产管理系统解决方案

低代码小观

资产管理 CRM系统 企业设备管理 设备巡检管理系统 企业管理软件

产品知识在线培训的解决方案

小炮

企业知识管理

Java培训-实现定时任务的几种方式

@零度

Java

10年资深架构师分享 | 普通程序员向架构师进阶之路

云智慧AIOps社区

程序员人生 高薪 架构师 技术分享 职场发展

教你VUE中的filters过滤器2种用法

CRMEB

开发者手册之如何成为 OceanBase Contributor

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

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