PassiveDNS概述

DNS TIAN 708℃ 0评论

两年前写的文章,现在看来有些错误。当时也是花大力气写的,就先贴上来吧。

国内关于PassiveDNS的文章不是很多,本文旨在帮助读者快速地了解PassiveDNS。

0x01 什么是PassiveDNS?

PassiveDNS,又叫被动DNS、pDNS。它最初是Florian Weimer在2005年的论文Passive DNS Replication中提出的一种方案,用来解决DNS系统PTR反向查询能力不足的问题。

我们经常使用到的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域就是我们通常所说的域名解析,反向查找区域即是这里所说的IP反向解析。它的作用就是通过查询IP地址的PTR记录来得到该IP地址对应的域名。当然,要成功得到域名就必须要设置该IP地址的PTR记录。所以并不是对每一个IP进行反向解析都会找到对应的域名。

我们可以将PassiveDNS简单理解为一个数据库,它收集每条DNS解析记录:如baidu.com202.112.14.178,这时我们再去查询202.112.14.178所对应的域名时就不必查PTR记录了,而是转化为了简单的数据库查询操作。

PassiveDNS存储了DNS查询的历史解析记录。我们知道,DNS并不负责记录改变,当我们对一条资源记录进行修改后,这个修改后的记录会在整个互联网上传播,之前的记录便永远消失了。所以如果我们记录下这些DNS解析记录,我们就能得到很多有价值的信息。包括:

  1. 该域名曾经绑定过哪些IP
  2. 这个IP有没有其他的域名
  3. 对于一个域名服务器(NS),它负责解析哪些域名
  4. 这个域名最早/最晚什么时候出现
  5. 一个域名下有哪些子域名

另外利用PassiveDNS可以实现对网络的DNS监控,基于此可以研究很多安全问题。

0x02 PassiveDNS系统实现流程

被动DNS数据的具体收集方式多种多样。一部分递归域名服务器,例如Knot以及Unbound,其中包含有软件钩子,旨在更为轻松地捕捉被动DNS数据。管理员可以利用dnstap这款免费程序从此类域名服务器当中直接读取被动DNS数据。

在骨干网环境下,被动DNS的采集关键是建立PassiveDNS Sensor,该Sensor可以部署在Client与Recursive,Recursive与Authority之间,采用交换机端口镜像旁路监听原理,具体的捕包技术有DPDK、Libpcap、零拷贝等。下图是PassiveDNS系统的原理示意图:

C2R(客户端-递归服务器) DNS流量

R2A(递归-授权)DNS流量

相关项目:

0x03 国内外PassiveDNS平台

国内:

国外:

转载请注明:老田博客 » PassiveDNS概述

喜欢 (1)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 影响力可以通过和商家合作变现
    这个有意思2018-07-02 22:02 回复
    • 是做什么的?
      冬天2018-07-02 22:03 回复