浅谈rDNS在IP情报建设中的应用

在当今数字化世界中,互联网已经成为人们日常生活和商业活动中不可或缺的一部分。在这个庞大而复杂的网络生态系统中,IP地址是连接和识别各种网络设备和服务的基础。然而,仅仅知道一个设备的IP地址并不足以充分理解其在网络中的角色和行为。为了更深入地理解和利用IP地址,反向域名解析(rDNS)技木提供了丰富的信息,帮助我们洞悉IP地址的更多细节。

什么是rDNS?

与DNS相反,rDNS是将IP地址转换为域名的过程,是通过查询PTR和CNAME记录来实现的。一个IP可以对应多个域名,属于一对多的关系;而从IP地址反向查找域名通常返回零个或一个主机名,属于一对一关系。反向DNS常见用途:

1. 验证发送者的身份
rDNS被广泛用于电子邮件发送过程中,作为防止垃圾邮件和钓鱼攻击的一部分。当一封电子邮件从一个服务器发送时,接收服务器可以查看发送服务器的IP地址,并执行rDNS查询以确认该IP地址所对应的域名。如果rDNS记录与发送服务器的声明相匹配,这可以作为发送服务器身份的一个验证,从而增加了邮件合法性的可能性。如AOL(美国在线)要求发送者邮件服务器必须可以被反向解析才能向AOL/AIM邮箱发送邮件。而对于一些大型网络供应商来说,配置正确的反向DNS记录也是建立互联网服务可信任与可靠性的一部分。

2. 网络故障诊断和跟踪
在网络管理和故障诊断过程中,知晓发起请求设备的域名信息是非常有用的。rDNS可以帮助网络管理员识别网络流量中的特定主机,理解流量来源,使其有效地诊断问题。

3. 实施安全策略和访问控制
一些网络服务和应用程序可能基于反向域名来实施安全策略或访问控制。通过rDNS,服务可以检查访问请求的IP地址背后的域名,以决定是否允许访问或应用特定的规则。如善意Bot的识别,通过校验请求头User-Agent以及IP的反向解析记录来确认该请求是否来自真实的SEO爬虫。

从反向DNS派生地理位置信息

在终端中执行 host 96.227.5.107 得到 pool-96-227-5-107.phlapa.east.verizon.net., 从该例子可知,子域部分.phlapa可以表明该IP位于美国宾夕法尼亚州费城;对 63.153.137.40 进行反向解析得到 63-153-137-40.sxfl.qwest.net.,子域部分.sxfl.是美国南达科他州苏福尔斯市的缩写。通过阅读主机名可以合理预判它所在的地理位置,说明rDNS记录可以为IP地理定位提供附加价值,然而需要考虑的问题是:

• 在整个IPv4地址空间中有多少个IP能够被反向解析?
• 在可被反向解析的IP中有多少rDNS记录存在地理位置信息?

在论文《 IP Geolocation through Reverse DNS》中,我们找到了比较合理的答案,文章提出一种从rDNS提取位置的机器学习方法,将该任务视为一个机器学习问题,对于给定的主机名,将其生成位置候选列表,然后使用二元分类器对每个主机名和候选位置对进行分类来确定哪些候选位置是合理的。最后根据置信度对剩余候选位置进行排名,并根据人口数量关联起来,此方法可以有效补充和改进当前主流IP Geo 商业数据库的准确性。

图1:IPv4地址空间rDNS分布情况

全网43亿IPv4地址空间中,约有25.68亿个公网IP,上图显示有12.5亿个IPv4地址具有有效的rDNS。在这12.5亿个IPv4中约有1.6亿包含了精确的城市匹配,有2.7亿包含了机场代码。也就是说所有有效反向DNS记录中大约只有12%包含了有用的地理位置信息,其覆盖范围并不足以单独形成完整的IP Geo数据库,但可助于丰富现有IP地理位置信息。此外论文对2014-2018年的rDNS变化情况做了分析,数据显示64.8%的rDNS解析记录保持不变,且反向DNS数量逐年缓慢增长。而事实也是如此,根据最新的rDNS数据,该数字已经增长至12.86亿左右。

图2:2014-2018 rDNS主机名的变化情况

像 MaxMind、Neustar IP Intelligence 和 IP2Location 等公司提供的商业IP地理位置数据库,都是结合了多种信息源以及算法来完成,包括WHOIS信息、网络延迟信息、网络拓扑信息以及与直接运营商合作甚至是分析网络社交图谱等手段来达到较高的覆盖率,但依旧会出现缺少某些IP范围的位置信息。借用网络拓扑和延迟信息有诸多局限性:(1)需要有遍布全球的测绘节点资源;(2)并不是每个公网IP都允许ICMP Ping或者公开其网络拓扑;(3)通过traceroute等得到的路由距离没法完全映射成现实地理距离。但借助rDNS进行地理定位可摆脱上述限制。

从反向DNS派生IP连接类型

某些rDNS解析记录中可以发现一些包含连接类型的 信息:

ADSL: 194.245.146.50: 194-245-146-50.adsl.nrw.net.
DSL: 201.248.37.20: 201-248-37-20.dyn.dsl.cantv.net.
BROADBAND: 95.25.2.183: http://95-25-2-183.broadband.corbina.ru
CATV: 188.156.235.137: BC9CEB89.catv.pool.telekom.hu.
DYNAMIC: 14.3.6.51: http://ae006051.dynamic.ppp.asahi-net.or.jp

那么rDNS信息可以作为挖掘IP使用场景(家庭住宅、企业专线、数据中心等)的一种方式,对于安全产品来讲通常会对不同的IP类型采取不同的严格程度的防护策略,例如对动态住宅IP采取较为谨慎保守的防护措施,因为绝大部分真人访问的终端IP都属于动态IP且多人共用,容易造成误杀;而对于企业专线类IP决策成本则没有那么高。

动态IP是由多个网络供应商分配在IP池里面的,因此如果单纯从whois信息以及其他信息很难直接确认某个IP是否为动态IP,而通过rDNS某些关键字信息则可以对此做一些判断,用简单的例子证明,在RDNS数据库中查询ptr包含 dynamic关键字的IP,有5800万+的IP能够被直接匹配到。

结合一些其他第三方威胁情报数据可初步证明此猜想。

当然,实际动态IP数量远比这个多,笔者这边只是抛砖引玉,同样地,由于不是每个IP都存在rDNS记录,因此同第二章节反向DNS记录可以补充丰富IP的连接类型,但仅靠rDNS不足以构成一个完整的数据库。

利用ZDNS来完成IPv4反向DNS解析

论文《ZDNS: A Fast DNS Toolkit for Internet Measurement》中介绍了一种高性能可扩展的DNS探测框架,包括三个主要组件:DNS库、核心框架和可组合模块。DNS库实现了自己的缓存递归解析器库,提供递归查询、缓存、验证、交换数据包的传输记录以及简化DNS解析。核心框架用于简化命令行交互,而可组合模块则用于方便地扩展功能。ZDNS的实现遵循以下几个设计原则:

• 内部递归:ZDNS支持递归解析以便了解DNS操作的各个特征。这是因为公共递归解析器通常隐藏了许多DNS解析特征,而且经常对查询进行频率限制。因此需要支持内部自行递归解析。

• 安全性:DNS协议定义了许多RFC标准,并且在2022年有超过65种DNS记录类型。因为服务器经常配置错误或恶意操作而返回格式错误的响应,所以ZDNS使用内存安全的编程语言,并支持模块化接口。

• 高性能:使用外部递归解析器时每秒执行9万次解析,10分钟内扫描5000万个域名,12小时内解析整个IPv4地址空间的PTR记录。

下图是ZDNS解析性能数据:

如果只看PTR记录的数据表现情况,使用 Goole 的DNS公共解析仅用了12.1h完成整个IPv4空间地址的解析并且达到了93.0%成功率,使用内部的递归解析则花费了116.7h,但同时也保持了88.5%的成功率,使用内部递归解析性能下降很大的一部分原因是无法利用公共解析的缓存来加速查询,另一部分原因是内部递归机制要查询到一定数量才能返回响应。对比A记录与PTR记录,当解析次数从5000万次到数十亿,ZDNS的成功率下降不到5%。

结束语

反向DNS(rDNS)技术作为网络管理和安全领域中的重要工具,为丰富IP地址信息、识别地理位置和连接类型提供了有力的支持。通过本文的介绍,我们对rDNS的基本概念和其在丰富IP信息方面的应用有了更深入的了解。

在从rDNS派生地理位置信息方面,我们可以利用rDNS记录中的域名和地理位置数据库进行关联,从而推断IP地址的地理位置信息,为地理定位和位置感知服务提供数据支持。这对于网络定位服务、内容分发网络优化等方面具有重要意义。另一方面,通过rDNS派生IP连接类型,我们可以基于rDNS记录的域名和服务类型,对IP地址所对应的应用和服务进行分类和识别。这有助于网络安全和流量管理,提高了对网络活动的可视化和理解能力。利用ZDNS等工具完成IPv4反向DNS解析,可以快速、高效地进行大规模的rDNS查询,为网络管理和安全分析提供了便利。这种工具的应用为实际的网络信息收集和分析工作提供了技术支持,有助于实现网络资源的合理利用和网络安全的加强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11 桌面图标突然多 绿色小对勾,如何去除掉

突然间桌面图标每个上面都有一个绿色小狗狗,如下图所示,以为中病毒了,后来一查不是。 去除方法 1、鼠标在桌面空白处单击,选择“个性化”(或直接按“windows键I键”)调出设置菜单。 2、在左侧选择“主题”…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 注&…

21.基础乐理-等音调扩展篇、为何一共十五个大调

首先 等音调 的概念是基于 等音 的概念,比如下图中的音名:因为用的按键相同,音名不同,所以被称为等音调 然后音名一共有35个,如下图:所以在理论上它会有35个大调,但是人总是倾向于选择简单、简洁…

MAC如何重装系统(怒冲30大洋,才拿到的教程~,收藏点赞兄弟们)

背景 应该是之前装了一些远程的软件,卸载一直不干净,导致电脑很卡,而且网络貌似出现了问题,钉钉直接登陆不上了。其余软件网络倒是还好。所以就去PDD,买了个教程,重装了一下。才发现是mac自带,…

云赛道---AI开发框架

MindSpore 旨在提供端边云全场景的 AI 框架。 MindSpore 可部署于端、边、云不同的 硬件环境,满足不同环境的差异化需求,如支持端侧的轻量化部署,支持云侧丰富的 训练功能如自动微分、混合精度、模型易用编程等。 MindSpore 全场景的几个重…

交互式探索微生物群落与生态功能的关系

微生物群落在生态系统中发挥则重要功能,我们在对微生物群落进行分析时,会将不同分类水平(从门到属)的微生物类群的相对丰度与测定的某一生态功能进行相关性分析。但由于微生物类群数较多,又有不同的分类水平&#xff0…

leetcode-二叉树的镜像-91

题目要求 思路1 1.遍历一遍二叉树,将左边的结点对应创建一个右边的结点 2.用此方法空间复杂度O(n),并不是最优 思路2 1.将一个结点的左右子树进行交换,如果左子树还有左右结点,就再交换左子树的左右结点,以此递归下去…

Kubernetes:云原生时代的核心引擎

文章目录 一、Kubernetes简介:引领云原生潮流二、K8s的核心特性:自动化与智能化三、K8s的实践应用:打造高效云原生应用架构四、K8s的挑战与应对:安全与性能并重五、K8s的未来展望:无限可能与挑战并存《Kubernetes快速进…

【windows-搭建Ubuntu22LTS】

一、环境要求 1. windows版本要求 至少Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版 2. 控制面板开启相关的程序(需要重启) 二、Microsoft store安装unbuntu 下载后直接运行(稍微等会&#…

从开发角度理解漏洞成因(01)

文章目录 PHP开发漏洞环境(SQL注入)生成前端代码生成后端代码数据库写功能调试功能 测试SQL注入漏洞字符型注入布尔盲注 PHP开发漏洞环境(SQL注入) 持续更新中… 文章中代码资源已上传资源,如需要打包好的请点击PHPM…

亿道三防onerugged|工业车载电脑在港口正面吊上的应用

港口正面吊是港口作业中至关重要的设备,它承担着装卸集装箱等重要任务。作为专业人员,我深知港口作业的复杂性和挑战性。在这方面,亿道三防onerugged系列的工业车载电脑为港口正面吊的应用提供了一种创新的解决方案。 首先,工业车…

milvus对象存储和消息中间件的工厂设计模式分析

milvus对象存储和消息中间件的工厂设计模式分析 需求 根据参数设置创建mq和storage mq有kafka,pulsar storage有local,minio,remote 配置文件 根据配置文件选择初始化mq和存储: mq:type: pulsarcommon:storageType: minio对于这种类型一个是mq,一个是存储&…

springboot+vue新疆肉牛智慧牧场养殖系统

系统涉及的对象是奶牛。 系统使用员工有管理员和普通员工。 管理员有修改的权限,普通员工没有。 系统需要包含奶牛的编号,种类,体重,健康情况、生长情况、牛奶产量,以及上次更新数据时间等信息,管理员可以对…

关于权限的设计

首先系统权限,每个账号登录后,都需要知道这个账号允许访问哪些api,哪些数据权限(一般是指其他账号的一些数据) 这里就需要通过角色来关联。 --1.角色绑定菜单,每个菜单设计的时候包含了这个菜单会用到的所…

HarmonyOS 实战开发-使用canvas实现图表系列之折线图

一、功能结构 实现一个公共组件的时候,首先分析一下大概的实现结构以及开发思路,方便我们少走弯路,也可以使组件更加容易拓展,维护性更强。然后我会把功能逐个拆开来讲,这样大家才能学习到更详细的内容。下面简单阐述…

【Linux系统编程】基础指令(二)

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

架构师系列- 定时任务(二)- Quartz框架

quartz特点 Quartz是一个优秀的任务调度框架, 具有以下特点 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;负载均衡高可用 quartz 架构体系 Quartz 设计有四个核心类,分别是Scheduler(调度…

一个简单的java递归下降语法分析器例子

import parser.Parser; import parser.RecursiveDescentParser;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class Main {public static void main(String[] args) {// 关键词List<String> keyList new ArrayList<>(Arra…

NXP i.MX8系列平台开发讲解 - 3.10 Linux PCIe资源分配与访问(二)

目录 1. PCIe BFD 2. PCIe 配置空间 2.1 PCIe 配置空间访问 PCIe I/O访问方法 PCIe MMIO访问方法 3. PCIe BAR相关 4. PCIe Capbility 5. PCIe 操作 本文将重点讲解PCIe的资源访问相关内容&#xff0c;对于PCIe资源访问是从Host 端老看可以对PCIe进行配置与访问的资源主…

【opencv 加速推理】如何安装 支持cuda的opencv 包 用于截帧加速

要在支持CUDA的系统上安装OpenCV&#xff0c;您可以使用pip来安装支持CUDA的OpenCV版本。OpenCV支持CUDA加速&#xff0c;但需要安装额外的库&#xff0c;如cuDNN和NVIDIA CUDA Toolkit。以下是一般步骤&#xff1a; 安装NVIDIA CUDA Toolkit: 首先&#xff0c;您需要安装NVID…