DNS安全概述

2024-07-06 278 0

一、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服务。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论