DNS安全概述

一、DNS的解析过程

1.递归解析

递归解析是一种由DNS客户端(通常是用户的应用程序,如一个浏览器)向本地DNS解析器发出解析请求,然后本地DNS解析器负责查询最终结果并将结果返回给客户端,而中间的所有查询请求都由本地DNS解析器代替客户端完成。参考上图的整个流程

2.迭代解析

迭代解析是一种由DNS客户端逐步请求各级DNS服务器,并通过每级回应获得下级服务器地址,直到获得最终的IP地址。与递归解析不同,迭代解析的每一级查询都是由客户端发出,不依赖本地DNS解析器进行递归查询。上图中的本地DNS服务器进行的就是迭代解析,如果终端使用迭代解析,就可以不需要本地dns服务器。

二、DNS安全技术

1.DNSSEC

DNSSEC(Domain Name System Security Extensions,即域名系统安全扩展)是一组协议,为DNS提供源身份验证和数据完整性。其主要目的是通过使用数字签名,防止数据在DNS传输过程中被篡改或伪造,从而增强DNS的安全性。

2.DoH

DNS over HTTPS (DoH) 是一种将DNS查询通过HTTPS协议发送的技术。这种方法使用HTTPS的加密和认证特性来保护DNS查询和响应。

3.DoT

与DoH类似,DoT与DoH的差别在于,DoT把DNS的Payload直接放在在TLS协议的上层。

4.HttpDNS

HttpDNS实际上不能算DNS,它提供了一种非标准的域名解析方式。初略看,与DoH有很大的相似性,但是实际上,这两种技术的设计目的差别很大。DoH,是一个通用服务,用于增强DNS本身的安全性。HTTPDNS是一个非标准的服务,通常只解析业务需要用到的几个域名。通常用于手机App、桌面客户端、嵌入式设备等场景。

三、常见的DNS威胁

1.DNS 缓存污染

DNS缓存广泛存在于全球各地开放的DNS服务器中,DNS缓存的的设计有两个目的:

  • 加速DNS查询的响应时间
  • 减少DNS查询请求对DNS服务器的压力

当用户对某个域名发起解析请求时,DNS服务器首先会在自身DNS缓存中查看是否有对应的结果,如果命中结果,会直接告知客户端,无需进行全球解析查询。但是DNS协议在设计时,没有相关的记录完整性认证机制,如果攻击者篡改了上游DNS服务器的结果,那么最终会把错误的结果缓存起来。

缓解及防御措施:DNSSEC

使用DNSSEC可以有效防止DNS缓存被污染,但是,实际上DNSSEC性价比非常低。因为现阶段,https已经是主流,如果DNS解析结果不对,最终能够在https握手阶段能够被检测出来。现在大部分DNS服务的运营商都支持DNSSEC,但是实际使用DNSSEC的域名却很少。

2.DDoS攻击

DDoS攻击通过向DNS服务器发送大量请求,耗尽资源使服务器无法响应合法请求。通常只能部署DDoS防护系统,限制同时连接数及流量来解决。

3.随机非存在域名攻击

通过递归服务器查询合法域名的随机子域名来进行攻击。本质上是一种缓存穿透攻击,因为请求的域名不存在,递归服务器最终会把解析请求发送到权威DNS服务。

  • 对于权威DNS服务器,如果本身记录量比较少,可以考虑全缓存的方式,全部记录放入内存,如果记录量很大,可以使用布隆过滤器。
  • 对于递归解析服务器,只能把这种情况当成DDos来处理

4.子域名劫持

子域名劫持涉及攻击者接管DNS提供商中配置错误的未使用子域名,从而用来托管恶意内容或者进行钓鱼攻击。举个例子:现在很多服务都是托管在云上面,如果一个子域名曾经使用过,并且对外提供了服务,在下线服务的时候没有移除相应的DNS记录,同一个云上的其他用户就有可能使用原服务相同的公网IP。此时,此用户就可以在此域名下搭建一些恶意功能,比如钓鱼、偷Cookies等。

域名所有者需要通过各种管理及技术的手段,保证服务下线时,域名解析也同时移除。

5.DNS劫持

DNS劫持是通过篡改DNS服务器配置或添加虚假DNS条目,将用户请求重定向到假冒网站或恶意服务器。随着Https的普及,这种攻击方式的危害性大大下降,如果做不到修改权威服务器上的解析,这种攻击的有效范围就很小。

  • 加强对DNS服务器的访问控制和监控,防止配置篡改。
  • 定期检查DNS配置和记录的完整性与准确性。

6.中间人攻击

中间人攻击通常用于劫持DNS通信,在DNS请求和响应之间插入,使攻击者能够读取、修改或注入虚假DNS数据。也有一些运营商,出于某种目的,会支持DNS流量,但是其提供的硬件资源不够,引起DNS解析异常缓慢甚至超时,严重影响用户体验。

  • 使用加密协议(如DoT或DoT)确保DNS通信的安全性。

四、DNS客户端安全性增强方法

1.对于客户端软件供应商

  • 使用加密协议,可以有效保护终端到本地DNS服务器之前的安全性。OpenDNS,Google DNS,Cloudflare等都有推荐加密DNS协议
  • 使用HttpDNS。目前的云服务提供商都有提供HttpDNS服务,客户端软件中用到的域名可以通过HttpDNS来解析,以达到绕过传统DNS协议的目的,可以规避所有针对DNS协议的攻击。

2.对于客户端用户

  • 使用加密协议,常用的浏览器Chrome ,Edge,Firefox等都支持设置安全DNS
  • 本地搭建DNS代理,把DNS请求代理到DoH或DoT来进行解析,可以让不支持安全DNS的软件使用到安全DNS。企业内部也可以使用此方式提供统一的DNS服务。

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图 。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

② 黑客技术

因篇幅有限,仅展示部分资料

4️⃣网络安全面试题

5️⃣汇总

所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包 》,扫码获取~

相关推荐
颜淡慕潇1 分钟前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
老大白菜4 分钟前
Python 爬虫技术指南
python
QQ同步助手14 分钟前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新21 分钟前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A1 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神1 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
LucianaiB2 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
PieroPc4 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
向前看-7 小时前
验证码机制
前端·后端
独行soc8 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw