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️⃣汇总

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

相关推荐
一叶龙洲3 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
星恒讯工业路由器4 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
王维同学5 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
keyipatience6 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
踏月的造梦星球6 小时前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle
星夜夏空997 小时前
网络编程(1)
服务器·网络
川石课堂软件测试7 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
上海云盾-小余7 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
武子康8 小时前
从恶意 Dataset 到横向移动:一套可落地的 Dataset Processing Threat Model(资产边界 + 威胁枚举 + 5 层控制)
人工智能·安全
见青..9 小时前
phpMyAdmin权限提升
web安全·网络安全·phpmyadmin