DNS面临的4大类共计11小类安全风险及防御措施

DNS在设计之初,并未考虑网络安全限制,导致了许多问题。DNS安全扩展(DNSSEC)协议的开发旨在解决DNS的安全漏洞,但其部署并不广泛,DNS仍面临各种攻击。接下来我们一起看下DNS都存在哪些安全攻击及缓解措施,旨在对DNS安全性进行全面审视。

1. 背景知识

DNS是一个将域名映射到数字IP地址的互联网系统,它是一个分布式数据库系统。由于其在互联网上的重要角色和网络的脆弱性,DNS已经成为了网络攻击的热门目标,这不仅威胁到用户的隐私和安全,也影响到DNS的稳定性和可靠性。

EfficientIP与IDC合作发布的《2022年全球DNS威胁报告》中指出,在过去一年中,88%的组织遭受了与DNS相关的攻击,平均每家公司有7次,其中包括DNS隧道、DNS劫持、DNS泛洪攻击等攻击技术手段。

2024年6月,乌克兰国防部情报总局的网络专家对俄政府机构和大公司进行了大规模分布式拒绝服务(DDoS)攻击,俄罗斯多个政府机构和私营企业的工作陷入瘫痪,此次攻击就利用到了DNS的安全缺陷。

由于接下来介绍的DNS安全攻击和防御技术依赖于读者要熟悉DNS的解析流程。如果对DNS协议工作原理还不熟悉,可以参阅博主前期文章
《一文彻底了解DNS协议工作原理,恐怕没有比这更通俗易懂的了吧?》

DNS解析原理

2. DNS面临的攻击

DNS之所以存在安全攻击,我们可以从概念、结构和通信三个方面来看:

  • 概念:DNS请求和响应通常通过UDP协议发送,这可能导致信息泄露。
  • 结构:DNS服务器的层次结构可能导致服务器容易受到攻击。
  • 通信:DNS响应的保护机制较弱,容易被攻击者利用。

DNS面临的攻击可以划分为四类:DNS数据篡改、DNS数据泛洪、DNS滥用和DNS服务器结构攻击。

DNS面临的攻击

2.1. DNS数据篡改(DNS Data Tampering)

这类攻击涉及篡改用户和DNS服务器之间的未加密DNS数据,导致用户接收到错误的地址转换信息。例如,DNS缓存投毒(DNS Cache Poisoning)就是一种常见的数据篡改攻击,攻击者通过向递归DNS服务器发送伪造的响应,导致服务器缓存错误的IP地址信息。

2.1.1. 1.DNS缓存投毒

攻击者首先向递归域名服务器发送DNS查询请求。如果递归域名服务器在其缓存中没有与所请求的域对应的IP地址,则递归域名服务器将向权威名称服务器发送查询请求。

在权威域名服务器发送NXDOMAIN(域名不存在)响应之前,攻击者会向递归域名服务器发送大量似乎来自权威域名服务器的欺骗回复。如果DNS响应与DNS查询匹配,递归域名服务器将接受攻击者的欺骗,并保存攻击者提供的资源记录(RRs)。

DNS缓存投毒原理

在此之后,当其他用户查询相同的域名时,他们将收到被污染的数据,从而被重定向到攻击者控制的服务器。

DNS缓存投毒(DNS Cache Poisoning)和DNS欺骗(DNS Spoofing)实际上是同一种攻击的不同说法,尽管它们描述的是同一类网络攻击行为。

注:要想细分DNS缓存投毒和DNS欺骗也比较简单,它们主要在于视角和侧重点不同。DNS缓存投毒强调的是缓存被污染的过程,而DNS欺骗更侧重于攻击最终导致用户访问到错误站点的现象。

2.1.2. Kaminsky

Kaminsky攻击是一种针对DNS系统的漏洞利用技术,由Dan Kaminsky在2008年首次公开披露。这种攻击能够迅速且大规模地破坏DNS缓存,导致用户被重定向到攻击者指定的恶意网站,而不是他们实际想要访问的合法网站。

Kaminsky攻击的关键点如下:

  • 端口号与事务ID:DNS查询和响应使用特定的端口号和事务ID来匹配请求和响应。Kaminsky发现DNS协议中存在一个漏洞,即事务ID(Transaction ID)和源端口(Source Port)的安全性不够强。
  • 快速猜测事务ID:攻击者可以通过发送大量的DNS查询请求到受害的DNS服务器,并在响应中插入恶意数据,试图覆盖合法的DNS记录。由于事务ID只有16位,攻击者可以快速尝试多种可能性,直到找到正确的事务ID。
  • 缓存污染:一旦攻击者成功地用恶意数据覆盖了合法的DNS记录,这些数据就会被存储在DNS缓存中。当其他用户查询相同的域名时,他们将收到被污染的数据,从而被重定向到攻击者控制的服务器。

2.1.3. DNS劫持

DNS劫持是指通过修改域名解析记录或拦截DNS请求,将用户重定向到恶意网站或虚假IP地址。这种攻击可以导致用户无法访问正确的服务,甚至访问到窃取信息或破坏原有服务的虚假网站。

DNS劫持原理

要执行DNS劫持攻击,攻击者要么在用户的系统上安装恶意软件,要么通过利用已知漏洞或破解DNS通信实现路由器接管。攻击涉及破坏用户系统DNS的设置将其重定向到恶意的DNS服务器。

若想了解更多关于DNS劫持的技术细节,可以参阅博主前期文章《剖析DNS劫持攻击原理及其防御措施》。

2.2. DNS数据泛洪(DNS Data Flooding)

泛洪攻击的目的是通过发送大量看似有效的查询请求来耗尽服务器资源,从而妨碍服务器对合法请求的响应。例如,DNS洪水攻击(DNS Flooding Attack)就是通过大量UDP请求来耗尽DNS服务器资源的攻击方式。

2.2.1. DNS泛洪攻击

攻击者向域名服务器发送大量的UDP数据包,模拟合法的DNS请求,导致DNS服务器耗尽资源来处理合法的请求。

DNS洪水攻击

2.2.2. DNS反射放大攻击

与上一节提到的DNS洪泛攻击不同,DNS洪泛攻击会耗尽DNS服务器的资源,而DNS反射和放大攻击则会试图用大量带宽流量使受害者网络容量饱和。

DNS反射放大攻击主要利用了DNS回复包比请求包大的特点。攻击者使用伪造的源IP地址向多个开放的递归DNS服务器发送小型请求查询。精心设计的请求会导致一个大的响应包。通过同时反射和放大攻击,开放域名服务器生成许多合法的DNS响应,最终受害服务器受到DDoS攻击。

DNS反射放大攻击原理

从上图中可以看到发送的 DNS 查询请求数据包大小为32字节,而查询返回结果的数据包大小3000字节以上。使用该方式进行放大攻击能够达到 50 倍以上的放大效果。

注:DNS使用了UDP协议,然而UDP协议没有像TCP那样的三次握手过程来验证请求的源IP。

为了减轻这种DNS反射放大攻击,国内外已经发布了一些安全指南,但近年来,放大攻击仍然很普遍。

2.2.3. 随机子域攻击

随机子域攻击是另一种类型的DNS数据泛洪攻击,攻击者会发送大量针对不存在的域的随机DNS请求,主要用于针对域名服务器的DDoS攻击。

为了成功地进行随机子域攻击,攻击者首先感染客户端。受感染的客户端通过随机生成的子域字符串对受害者的目标域创建请求查询。每个客户端将这些大量查询发送给递归域名服务器。由于此服务器不断响应域不存在,因此随机查找请求最终会耗尽有限的资源,从而延迟或停止对合法DNS请求的响应。

此外,通过随机子域攻击可以找到有效的子域名,攻击者可能会进一步探索这些子域名指向的服务或系统,寻找安全漏洞。

2.3. DNS滥用(Abuse of DNS)

攻击者利用DNS服务器进行与命令控制(C&C)服务器的通信,以隐藏攻击源并扩大僵尸网络(Botnets)的规模。例如,DNS隧道(DNS Tunneling)技术允许攻击者通过DNS端口发送攻击命令和接收结果,从而绕过防御系统。

2.3.1. DNS隧道

在进行DNS查询时,如果查询的域名不在DNS服务器本机的缓存中就会查询域名服务器获取结果,如果在互联网上有一台定制的服务器(我们称其为控制服务器),就可以依靠DNS协议进行数据隐蔽传输。

DNS隧道原理

若想了解更多关于DNS隧道技术的细节,可以参阅博主往期博文《DNS隧道技术原理及其典型应用场景剖析》。

DNS隧道样例

2.3.2. 域生成算法

域生成算法(Domain Generation Algorithm, DGA)是一种生成大量域名的技术,它能够根据特定的输入(如日期、时间戳或其他变量)生成一系列域名。这些域名通常在恶意软件中使用,用于建立与C&C服务器之间的通信路径。由于生成的域名数量众多且不断变化,使得防御者难以提前预测并阻止这些域名。

2.3.3. Fast Flux

Fast Flux 是一种利用 DNS 动态更新机制来实现快速切换 IP 地址的技术。具体来说,Fast Flux 利用了 DNS 的轮询功能,将多个 IP 地址与同一个域名关联,并且这些 IP 地址会在短时间内频繁地变化。通过这种方式,即使某个 IP 地址被发现并屏蔽,恶意软件仍然可以通过其他 IP 地址继续通信。

Fast Flux应用

这种技术通常被恶意软件和网络犯罪分子用来隐藏他们的命令与控制(C&C)服务器的真实位置,从而逃避检测和关闭。

2.4. DNS服务器结构攻击(DNS Server Structure)

这类攻击利用DNS的结构弱点,通过攻击最低层级的域名服务器来影响整个DNS查询处理。例如,DNS非存在域(NXDOMAIN)攻击就是攻击者发送大量对不存在域的查询请求,导致递归DNS服务器的缓存被填满,从而影响合法DNS请求的响应速度。

2.4.1. NXDOMAIN

不存在域(non-existent domain,NXDOMAIN)是DNS响应查询之一,这意味着域不存在。攻击者向DNS服务器发送大量查询,以查找不存在的域。DNS服务器试图处理查询以查找不存在的域,但由于域不存在,它们会发回NXDOMAIN查询。

最终,递归DNS服务器中的缓存可能会被NXDOMAIN结果填满,用户对合法DNS请求的DNS服务器响应时间会变慢。由于需要多次递归查询来获得解析结果,权威DNS服务器也会花费宝贵的资源。

2.4.2. 幻域攻击

类似于DNS NXDOMAIN攻击。主要的区别是攻击者使用多个幻域来干扰正常的DNS解析。在这种类型的攻击中,由于攻击者设置的这些“幻影”域名从不响应DNS查询或响应很慢,攻击者会通过大量查询耗尽DNS解析器的资源,从而导致普通用户可能会延迟或无法收到对正常DNS查询的响应。

3. 缓解措施

尽管DNS已经遭受了多种攻击,但研究人员已经在想办法减轻这些攻击。特别是DNSSEC的出现,它帮助确保了DNS数据的完整性与可靠性。此外,研究人员也逐渐引入了其他先进的方法来缓解DNS安全风险。

3.1. 采用DNSSEC技术

DNSSEC技术利用了数字签名和公钥来实现 DNS 数据的完整性与可靠性,利用 DNSSEC 技术通过权威域名服务器用自己的私钥签署资源记录,然后解析服务器用权威的公钥认证来自权威域名服务器的数据。

  • 如果秘钥验证成功,说明该数据来自可以信任的权威域名服务器,再进行解析服务器接收数据,有效的提高了连接的安全性;
  • 如果身份秘钥验证失败,则意味着接收到的数据可能是不被信任的,域名服务器可以拒绝接入。

3.2. 采用 DOT/DOH 技术

DOT和DOH分别指的是DNS Over TLS(传输层安全协议)和DNS Over HTTPS(超文本传输协议)。DOT/DOH 是通过将原本在链路上传输的明文 DNS 数据进行加密来达到防止 DNS 数据在链路上被窃听,篡改和劫持的目的。

尽管DOT/DOH提供了更高的安全性与隐私保护,但由于兼容性问题及加密带来的性能问题,他们并没有广泛使用。

3.3. 引入IDPS设备

通过引入IDPS设备,可以实时检查和监控DNS日志,可以及时发现异常行为并采取措施。

4. 参考文档及链接

  • 参考文档: 参考文档打包.zip (访问密码: 6277)

  • 参考链接

    • https://www.akamai.com/glossary/what-is-dns-tunneling#accordion-76a7acf228-item-2984740af8
    • https://www.akamai.com/blog/trends/dnssec-how-it-works-key-considerations

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

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

相关文章

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。 Flume两个版本区别: ​ 1&…

Jmeter中的定时器(一)

定时器 1--固定定时器 功能特点 固定延迟:在每个请求之间添加固定的延迟时间。精确控制:可以精确控制请求的发送频率。简单易用:配置简单,易于理解和使用。 配置步骤 添加固定定时器 右键点击需要添加定时器的请求或线程组。选…

区块链技术在慈善捐赠中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 区块链技术在慈善捐赠中的应用 区块链技术在慈善捐赠中的应用 区块链技术在慈善捐赠中的应用 引言 区块链技术概述 定义与原理 发…

[数组二分查找] 0074. 搜索二维矩阵

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 74. 搜索二维矩阵 - 力扣(LeetCode) 2. 题目大意 描述:给定一个 mn 大小的有序二维矩阵 matrix。矩阵中每行元素从左到右升序排列,每列元素从上到下…

使用 Python 脚本在 Ansys Mechanical 中创建用于后处理的螺栓工具

介绍 由螺栓连接定义的接头在工业应用中非常普遍。在 Ansys Mechanical FEA 中分析它们是一种非常常见的做法。通过Object Generator或Bolt Tools Add-on,使用线体、梁连接甚至3D实体中的梁单元,在Ansys Mechanical中生成螺栓连接非常容易。定义螺栓联接…

【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:创新与应用

一、引言 随着科技的迅猛发展,声音克隆技术已经成为一个炙手可热的研究领域。SoVITS(Sound Voice Intelligent Transfer System),作为该领域的先锋,凭借其卓越的性能和广泛的适用性,正在为多个行业带来前所…

python调用MySql详细步骤

一、下载MySql MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/windows/installer/8.0.html点击上面链接,进入MySQL8.0的下载页面,选择离线安装包下载。 不需要登陆,直接点击下方的 No thanks,just start my download. …

《InsCode AI IDE:编程新时代的引领者》

《InsCode AI IDE:编程新时代的引领者》 一、InsCode AI IDE 的诞生与亮相二、独特功能与优势(一)智能编程体验(二)多语言支持与功能迭代 三、实际应用与案例(一)游戏开发案例(二&am…

华为路由策略配置

一、AS_Path过滤 要求: AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接,引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

如何解决JAVA程序通过obloader并发导数导致系统夯住的问题 | OceanBase 运维实践

案例背景 某保险机构客户的数据中台,自系统上线后不久,会定期的用 obload 工具从上游业务系统导入数据至OceanBase数据库。但,不久便遇到了应用服务器的 Memory 与 CPU 资源占用持续攀升,最终导致系统夯住而不可用的异常。 memo…

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

react17安装html-react-parser运行报错记录

背景 react17 安装 html-react-parser npm install html-react-parser运行终端报错信息 ERROR in ./node_modules/html-react-parser/esm/index.mjs 2:0-122 Cant reexport the named export htmlToDOM from non EcmaScript module (only default export is available)原因…

websocket初始化

websocket初始化 前言 上一集我们HTTP的ping操作就可以跑通了,那么我们还有一个协议---websocket,我们在这一集就要去完成我们websocket的初始化。 分析 我们在初始化websocket的之前,我们考虑一下,我们什么时候就要初始化我们…

JavaEE 重要的API阅读

JavaEE API阅读 目的是为了应对学校考试,主要关注的是类的继承关系、抛出错误的类型、包名、包结构等等知识。此帖用于记录。 PageContext抽象类 包名及继承关系 继承自JspContext类。PageContext 实例提供对与某个 JSP 页⾯关联的所有名称空间的访问&#xff0…

Yocto项目 - VIRTUAL-RUNTIME,它有什么用?

Yocto 项目是一个完整的 Linux 分布构建工具集,提供了构建完全自定义小型核心或完整应用的能力。在这样一个构建系统中,VIRTUAL-RUNTIME这个概念是应用构建和选择处理中的重要部分。这篇文章将从概念、优势、应用场景和实战案例几个方面,全面…

基于微信小程序的乡村研学游平台设计与实现,LW+源码+讲解

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…

【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)

先准备图片资源 推荐一个好用的图标素材网站,有很多免费资源。 Ic, fluent, animal, dog, filled icon - Free download 其他辅助工具,类似 AI 抠图去背景,实测效果还行,但是非免费。 美图秀秀-在线一键抠图,无需P…

CTFhub靶场RCE学习

靶场 eval执行 <?php if (isset($_REQUEST[cmd])) {eval($_REQUEST["cmd"]); } else {highlight_file(__FILE__); } ?> PHP代码显示&#xff0c;要求将命令赋值给cmd然后执行 先查看一下根目录文件 ?cmdsystem("ls");&#xff01;切记最后的分…

云计算研究实训室建设方案

一、引言 随着云计算技术的迅速发展和广泛应用&#xff0c;职业院校面临着培养云计算领域专业人才的迫切需求。本方案旨在构建一个先进的云计算研究实训室&#xff0c;为学生提供一个集理论学习、实践操作、技术研发与创新于一体的综合性学习平台&#xff0c;以促进云计算技术…

MQ集群

目录 MQ集群 集群分类 普通集群 集群结构和特征 集群的部署 获取cookie 准备集群配置 启动集群 镜像模式 镜像模式的特征 镜像模式的配置 exactly模式 仲裁队列 集群特征仲裁队列&#xff1a;仲裁队列是3.8版本以后才有的新功能&#xff0c;用来替代镜像队列&#…