DNS科普系列 :被动DNS(Passive DNS)

简介: 在DNS领域有一些“专有技术名词(俗称行业”黑话“),不熟悉DNS和相关应用的人可能不容易接触和理解他们。从这篇开始,我们将帮助大家梳理一些DNS专有名词,本期的专有名词是:被动DNS(Passive DNS)。

如今,每个人的生活都离不开互联网,而互联网中又蕴含着很多小学问。就拿浏览网页来说,当我们输入某个网址后,屏幕背后究竟要经历怎样的过程,才能带我们精准到达那个网页呢?

我们把输入的网址称为域名,而在这背后,需要一台域名服务器将该域名解析为对应的IP地址,然后根据IP地址来对网站服务器进行访问。其中,通过域名获取对应IP地址的过程叫域名解析。域名解析需要使用到DNS。

DNS是互联网上存储域名与IP映射关系的一个分布式数据库。使用DNS,用户可以方便的用域名访问互联网,而不用关心复杂难记的IP地址。

然而,我们发现有一些问题,光靠DNS是很难解决的,例如:

  • 一个域名过去曾指向到何处?
  • 特定网络范围内的IP地址对应的所有域名有哪些?
  • 对于一个给定的名称服务器,它托管了哪些域名?
  • 有哪些域名指向给定的IP网络?
  • 一个域名下存在哪些子域名?

这些DNS很难解决的问题,利用被动DNS(Passive DNS)技术就可以迎刃而解。

被动DNS是什么?

被动DNS是Florian Weimer在2004年提出并发明的一项技术,与DNS查询的方式相反,被动DNS属于反向获取或查询DNS数据信息。

被动DNS,将全球域名系统中可用的DNS数据信息(包括)重建到中央数据库中,以便研究人员对其进行检索和查询。这些数据信息是从生产网络中获取到的,不仅包含了当前的DNS数据,也包括了历史记录中的一些DNS数据映射。

被动DNS的应用场景有哪些?

发明被动DNS技术的初衷,是为了防止网络攻击,事实上,它的确在这方面起到了突出的作用。除此之外,它还被用在其他的应用场景中,例如:

  • 检测网站钓鱼域名

  • 阻断垃圾邮件干扰

  • 识别恶意域名

  • 提供威胁情报

  • 检测域名劫持

  • 品牌保护

  • 域名DNS历史记录查询

  • 查询主域名下的所有子域名

被动DNS是如何工作的?

接下来,让我们通过一个实例,来了解被动DNS是怎么工作的?

以下实例,使用到的是美国Farsight Security公司推出的Passive DNS数据库----DNSDB,有关这一案例的更多信息,可参考该公司的Passive DNS白皮书:https://info.farsightsecurity.com/passive-dns-ebook

被动DNS基于被动观察的DNS查询和响应。例如,一个互联网用户可能会查询到www.popeyes.com,这是美国一家颇受欢迎的炸鸡餐厅的网站。根据查询发生的位置,被动DNS传感器可以收集到该DNS查询的相关信息,并收集到主机名解析的IP地址,例如13.52.38.70。

将该信息添加到DNSDB后,DNSDB用户可以在DNSDB中搜索该名称,从而了解该名称解析为哪个IP地址;用户还可以查询IP地址并收集指向该IP的域名。

这一过程,如下图所示:

1.png

例如,使用DNSDB命令行工具dnsdbq查看标准域名,我们看到:

$ dnsdbq -r www.popeyes.com -S -k last | more
;; record times: 2019-11-05 15:04:13 .. 2020-04-06 23:41:49
;; count: 179249; bailiwick: popeyes.com.
www.popeyes.com. CNAME rbi.netlifyglobalcdn.com.

;; record times: 2019-08-07 16:07:03 .. 2019-11-05 15:04:00
;; count: 96401; bailiwick: popeyes.com.
www.popeyes.com. CNAME popeyes.com.

;; record times: 2017-03-31 02:33:47 .. 2019-08-07 15:59:50
;; count: 369691; bailiwick: popeyes.com.
www.popeyes.com. CNAME popeyeswcag.wpengine.com.
[ etc ]

我们截取了一段时间www.popeyes.com是CNAME的记录(第一段部分)

该CNAME指向另一个域名:rbi.netlifyglobalcdn.com。

为了找出该域名的实际位置,我们需要再次通过被动DNS查看结果:

$ dnsdbq -r rbi.netlifyglobalcdn.com/A -S -k last | more
;; record times: 2020-03-19 16:34:11 .. 2020-04-07 00:41:42
;; count: 7912; bailiwick: netlifyglobalcdn.com.
rbi.netlifyglobalcdn.com. A 54.156.183.85

;; record times: 2019-11-05 15:10:24 .. 2020-04-07 00:35:09
;; count: 121708; bailiwick: netlifyglobalcdn.com.
rbi.netlifyglobalcdn.com. A 35.199.169.199
;; record times: 2020-03-19 16:43:14 .. 2020-04-07 00:32:07
;; count: 22756; bailiwick: netlifyglobalcdn.com.
rbi.netlifyglobalcdn.com. A 13.52.58.70

;; record times: 2020-03-19 16:52:23 .. 2020-04-07 00:27:17
;; count: 23076; bailiwick: netlifyglobalcdn.com.
rbi.netlifyglobalcdn.com. A 54.215.26.148
[etc]

值得注意的是,DNSDB报告了我们在“真实DNS”中找到的IP地址13.52.58.70,但被动DNS传感器也大致在同一时间看到了其他IP地址。 在这种情况下,由于Popeyes®是非常受欢迎的快餐连锁店,因此他们使用的内容分发网络可以在同一时间段内解析该站点的昵称(rbi.netlifyglobalcdn.com)到多个IP地址(CDN可能会将来自美国西海岸的查询发送到一台服务器,将来自东海岸的查询发送到另一台服务器,并将来自南海岸的查询发送到第三台服务器)。 这意味着我们现在可以轻松查看有关此域的详细信息,否则我们可能很难发现它们。

是否有使用相同CNAME的域? 我们可以通过搜索记录的“右侧”进行检查(例如通过使用-n而不是-r):

$ dnsdbq -n rbi.netlifyglobalcdn.com -S -k count
;; record times: 2019-11-05 15:04:13 .. 2020-04-07 02:43:57
;; count: 179517
www.popeyes.com. CNAME rbi.netlifyglobalcdn.com.

;; record times: 2019-11-20 23:49:36 .. 2020-04-07 03:35:15
;; count: 29883
www.timhortons.ca. CNAME rbi.netlifyglobalcdn.com.

;; record times: 2019-11-13 03:08:20 .. 2019-11-13 03:16:25
;; count: 28
www.bk.com. CNAME rbi.netlifyglobalcdn.com.
;; record times: 2019-11-13 03:11:20 .. 2019-11-13 03:13:24
;; count: 9
mobile.bk.com. CNAME rbi.netlifyglobalcdn.com.

通过这个实例,我们发现www.timhortons.ca、www.popeyes.com以及www.bk.com(汉堡王®)使用了相同的CNAME,那么他们之间有什么关系呢?

通过查阅相关资料,我们发现,这三个品牌其实同属于一家餐饮公司。

2.png

原本只是简单的一次检索,被动DNS却可帮助我们发现一个域名背后的三个快餐连锁品牌之间的关系。

而这只是被动DNS诸多应用场景中最为普通的一个,在预防网络攻击方面,它还会展示出更强有力的作用,这些都需要我们进一步学习与探索。

如需了解被动DNS更多的信息,请参考以下资料:

[2] https://www.farsightsecurity.com/technical/passive-dns/

相关文章
|
安全 Ubuntu 算法
CVE-2014-0224:OpenSSL在Heartbleed之后再爆“CCS”新漏洞
重要的互联网基础工具OpenSSL在Heartbleed“心脏出血”漏洞发生不久后,于2014年6月5日再次修正了一个可以导致中间人攻击的新漏洞“CCS”(CVE-2014-0224)。
2871 0
CVE-2014-0224:OpenSSL在Heartbleed之后再爆“CCS”新漏洞
|
27天前
|
人工智能 运维 安全
OpenClaw新手必装6大核心插件完整教程:阿里云/本地部署+模型配置+安全运维
很多用户在完成OpenClaw(Clawdbot)部署后,面对技能市场中成百上千的插件常常陷入迷茫:盲目安装不仅会导致系统臃肿、运行卡顿,还可能引入权限风险与不稳定因素。真正让OpenClaw实现自动化、智能化、安全化运行的关键,在于优先安装**6大核心底座级插件**。它们是AI实现联网、浏览、学习、管理、安全、邮件自动化的基础,也是所有高阶能力的前提。
710 1
|
3月前
|
存储 弹性计算 安全
阿里云服务器“99计划”是什么?2026年“99计划”具体活动内容及组合套餐介绍
阿里云“99计划”为个人和中小企业提供低价长效云服务器,包括经济型e实例(99元/年)和通用算力型u1实例(199元/年),新老用户同享,续费同价。除低价云服务器外,该计划还涵盖立享建站礼包、加99元享高效存储保障及弹性数据库等专属优惠,支持快速搭建网站、搭建FTP站点等场景。此外,多场景组合套餐和无忧数据备份服务满足用户多样化需求,确保数据安全与业务顺畅,助力用户轻松上云。
3619 4
|
网络协议 算法 安全
NSEC和NSEC3
【10月更文挑战第18天】
691 1
|
API
icp备案查询免费API接口教程
该接口用于查询指定域名的ICP备案信息,支持POST或GET请求方式。请求时需提供用户ID、用户KEY及待查询的域名,可选参数为查询通道。响应中包含状态码、消息内容、备案号、备案主体、域名及审核时间等信息。示例中提供了GET和POST请求方式及返回数据样例。
2105 4
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1847 21
|
域名解析 负载均衡 网络协议
信息收集——绕过CDN查找真实IP(最实用的方法)
信息收集——绕过CDN查找真实IP(最实用的方法)
8291 0
信息收集——绕过CDN查找真实IP(最实用的方法)
|
IDE Java API
Javadoc的讲解使用
本文介绍了Javadoc工具的使用方法和常用标签,通过示例代码展示了如何为Java代码添加文档注释并使用Javadoc命令生成HTML格式的API文档。
588 0
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
3788 0

相关产品

  • 云解析DNS