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.rhkb.cn/news/470700.html

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

相关文章

MySql结合element-plus pagination的分页查询

实现效果如下: 重点:使用mysql查询的limit和offset 原生SQL写法: select c.id as deptid,c.name as department,position,a.name staffname,2024-11 as shijian ,CASE WHEN b.shijian IS NULL THEN no ELSE yes END AS submit from fa_wecom…

ubuntu20.04安装FLIR灰点相机BFS-PGE-16S2C-CS的ROS驱动

一、Spinnaker 安装 1.1Spinnaker 下载 下载地址为: https://www.teledynevisionsolutions.com/support/support-center/software-firmware-downloads/iis/spinnaker-sdk-download/spinnaker-sdk–download-files/?pnSpinnakerSDK&vnSpinnakerSDK 在上述地址中…

什么是数字图像?

点赞 关注 收藏 学会了 什么是数字图像? 本文可在公众号「德育处主任」免费阅读 弄懂数字图像的概念对学习计算机视觉很有帮助。 那么,什么是数字图像? 字面意思,数字图像就是有数字组成图像。通常由像素(Pixel&…

2024年11月13日

1.创业法律指南 留置权和其他三个权 定金和订金 一般保证和连带保证 1.案例 物权编之担保法律制度案例一 冯系养鸡专业户,为改建鸡会和引进良种需资金20万元。冯向陈借款10万元,以自己的一套价值10万元的音响设备抵押,双方立有抵押字据&a…

Android OpenGL ES详解——立方体贴图

目录 一、概念 二、如何使用 1、创建立方体贴图 2、生成纹理 3、设置纹理环绕和过滤方式 4、激活和绑定立方体贴图 三、应用举例——天空盒 1、概念 2、加载天空盒 3、显示天空盒 4、优化 四、应用举例——环境映射:反射 五、应用举例——环境映射:折射 六、应用…

2024版本IDEA创建Sprintboot项目下载依赖缓慢

目录 步骤一:在IDEA中搜索Maven(双击shift) 步骤二:找到Maven下的settings.xml文件修改镜像 ​编辑 ​编辑​编辑 步骤三:用VScode打开settings.xml文件修改镜像 ​编辑 步骤一:在IDEA中搜索Maven(双击shift) 步骤二&#xff…

Android Framework AMS(16)进程管理

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读AMS 进程方面的知识。关注思维导图中左上侧部分即可。 我们本章节主要是对Android进程管理相关知识有一个基本的了解。先来了解下L…

python购物计算 2024年6月青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析

目录 python购物计算 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python购物计算 2024年6月 python编程等级考试一级编程题 一、题目要求 …

Pycharm PyQt5 环境搭建创建第一个Hello程序

第一步: 创建Pycharm项目,下载包: pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/下载好了之后,可以看到相应包: PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最…

【Vue】Vue3.0(十九)Vue 3.0 中一种组件间通信方式-自定义事件

文章目录 一、自定义事件概念及使用场景二、代码解释三、新的示例 一、自定义事件概念及使用场景 概念 在 Vue 3.0 中,自定义事件是一种组件间通信的机制,允许子组件向父组件传递数据或触发父组件中的操作。子组件通过defineEmits函数定义可以触发的事件…

Java的dto,和多表的调用

1理论 需求是新增菜品eg:菜名:豆腐脑;口味:甜口,咸口, 菜单表:dish;口味表dish_flavor; 1dto:数据传输对象 新建一个dishDto对象有两个表里的属性 2用到两个表,dish,d…

【前端学习指南】Vue computed 计算属性 watch 监听器

🍭 Hello,我是爱吃糖的范同学 🔴 想把自己学习技术的经历和一些总结分享给大家! 🔴 通过这样的方式记录自己成长,同时沉淀自己的技术,我会把所有额外的时间和经历投放到CSDN和公众号&#xff0…

【算法】——二分查找合集

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 零:二分查找工具 1:最基础模版 2:mid落点问题 一:最…

读数据质量管理:数据可靠性与数据质量问题解决之道03数据目录

1. 同步数据 1.1. 不同的数据仓库和数据湖通过数据集成层来进行桥接 1.2. AWS Glue、Fivetran和Matillion等数据集成工具从不同来源收集数据,统一这些数据,并将其转换为上游来源 1.3. 数据集成的一个典型用例是收集数据湖的数据并以结构化格式将其加载…

openSUSE 环境下通过 zypper 安装软件

操作场景 为了提升您在云服务器上的软件安装效率,减少下载和安装软件的成本,腾讯云提供了 zypper 下载源。openSUSE 操作系统和部分 SLES 的云服务器用户可通过 zypper 快速安装软件。本文档以 openSUSE 操作系统为例,指导您通过 zypper 快速…

ima.copilot-腾讯智能工作台

一、产品描述 ima.copilot是腾讯推出的基于腾讯混元大模型技术的智能工作台,通过先进的人工智能技术,为用户提供了一个全新的搜读写体验,让知识管理变得更加智能和高效。它不仅是一个工具,更是一个智能的伙伴,能够帮助…

NVIDIA Isaac Sim 仿真平台体验测评

目录 一、引言二、GPU加速相关体验2.1 Isaac Sim GPU 加速体验2.2 GPU加速体验分析 三、AI框架集成相关体验四、学术研究价值五、开发生态六、综合分析6.1 主要优势6.1.1 仿真效率6.1.2 开发便利性6.1.3 与 AI 框架的协同性 6.2 潜在应用场景 七、运行体验与建议7.1 GPU加速与P…

WebRTC API分析

主题 本文详细描述常用的webrtc api 媒体协商类 myPeerConnection.createOffer([options]); var options { offerToReceiveAudio: true, // 告诉另一端,你是否想接收音频,默认true offerToReceiveVideo: true, // 告诉另一端&a…

11张思维导图带你快速学习java

博主主页:【南鸢1.0】 本文专栏:JAVA 本文目录 简介 1.Java SE​编辑 2.Java Web 3.MySQL​编辑 4.前端技术 5.Linux 6.Spring SpringMvc mybatis 7.JVM 8.Springboot 9.Vue 10.SpringCloud 11.常用中间件 总结 简介 Java是一种跨平台的编程语言&am…

Jmeter基础篇(22)服务器性能监测工具Nmon的使用

一、前言 我们在日常做压测的过程中,不仅仅需要监控TPS,响应时间,报错率等这些系统基础性能数据,还需要对服务器的性能(如CPU、磁盘、内存、网络IO等)做监控,以求对系统运行过程中的硬件性能有…