DNS安全研究学习超详细总结

it2023-10-16  72

DNS安全研究

摘要DNS典型攻击与防范DNS反射放大攻击随机子域/非存在域名攻击DNS 缓存投毒攻击DNS 劫持DNS隧道DNS重定向 应对DNS攻击的方法应对 DNS 反射放大的防范方法应对 DNS 缓存投毒攻击的防范方法应对 DNS 劫持的防范方法应对 DNS 隧道攻击的防范方法对于 DNS 服务器本身漏洞的防范 DNS的一些安全机制DNSSEC基于服务群的 DNS 安全抗毁技术基于隐私保护技术的 DNS 通信协议基于多层级限速的 DNS 安全防护技术 DNS面临的技术挑战DNS未来发展

摘要

DNS(Domain Name System) 域名系统是将域名映射到精确 IP 地址的基础服务设施,是互联网的一项核心服务。由于 DNS 在设计之初没有考虑安全性问题,随着互联网的迅速发展,DNS 系统不可避免地暴露出了一些可供黑客利用的固有的安全缺陷 [10],再加上 DNS 本身在网络安全方面的问题容易被忽视,存在着很多安全问题和威胁。寻找提高 DNS 系统安全性的方法已经是一项十分迫切的事情。本文概述了 DNS 面临的主要安全威胁和应对威胁的办法,介绍了国内外对域名系统安全的研究现状,分析了未来域名系统需要解决的问题,并对域名系统安全的未来发展提出了展望。

DNS典型攻击与防范

因为 DNS 在设计之初忽略了安全问题,数据通过没有签名、没有加密的 UDP 协议传送,数据来源的真实性和完整性无法得到有效保证,同时 DNS 缓存也没有足够有效的安全保护机制,所以 DNS 一直以来就容易遭受各种攻击 [10]。DNS 攻击主要分为拒绝服务攻击和数据欺骗攻击。拒绝服务攻击通过消耗时间、内存和其他资源使合法用户无法正常访问系统或网络资源,最终可能导致系统无法提供正常服务。而数据欺骗攻击则通过篡改 DNS 数据直接获取对域名解析的控制权 [10]。下面是最常见的几种DNS 攻击的总结。

DNS反射放大攻击

这种攻击利用了攻击者和目标资源之间的带宽消耗差异 [16]。因为 DNS 解析一般是 UDP 请求, 攻击者很容易向开放的递归解释服务器发送大量伪造的 DNS 查询请求,使 DNS响应流量导向攻击对象的源地址 [10]。因为 DNS 请求包中一般会包含生僻的或不存在的域名,通过循环查询 DNS 流量被放大数倍。[17] 当引入受害者服务器的流量足够大时,受害者的网络基础会因流量过多而拒绝服务,最终可能引起系统的瘫痪。

随机子域/非存在域名攻击

这类攻击是攻击者通过僵尸网络向开放的递归解析服务器查询大量的合法域名的随机子域名或不存在的子域名,导致 DNS 权威服务器的带宽资源被耗尽,权威服务器无法继续提供正常服务 [10]。

DNS 缓存投毒攻击

攻击者通过在 DNS 名称服务器的缓存记录中插入伪造的缓存记录,使用户直接访问由攻击者控制的网站 [10]。攻击者利用伪造的网站页面欺骗受害者下载病毒和木马,控制受害者机器,盗取受害者的敏感信息。缓存投毒攻击的危害严重,会导致用户隐私泄露和财产损失。

DNS 劫持

这种攻击是攻击者通过直接攻击DNS 服务器、伪造 DNS 服务器、伪造 DNS 应答报文等方式将主机的域名解析请求解析到指向钓鱼网站或挂马网站的 IP 地址上。不仅会导致用户的隐私泄露和财产损失,还会使机构失去对域名的控制。

DNS隧道

由于防火墙和入侵检测设备通常不会阻止被认为是安全的 DNS 查询请求,攻击者可以通过将其他数据和协议编码为 DNS 查询请求来绕过防火墙和入侵检测设备 [10]。攻击者可以使用DNS 隧道攻击实现与被控客户端之间安全传输命令和数据。

DNS重定向

攻击者将 DNS 名称查询重定向到恶意 DNS 服务器,攻击者将完全控制被劫持的域名解析

应对DNS攻击的方法

应对 DNS 反射放大的防范方法

首先,最有效的方式就是正确配置防火墙以阻断配置特制的数据包和 IP 地址;其次,可采用 DNS 惩罚机制,对新发的请求进行归类、设立罚分,当罚分到达设置的阈值后服务器会丢弃所有伪造 IP 地址的请求;再次,需要适当增大链路带宽以承受较大规模的攻击 [15];还可通过关闭 DNS 服务器递归查询、使用DDoS 防御产品对异常访问请求进行过滤清洗来防范 DNS 反射放大攻击 [19]。

应对 DNS 缓存投毒攻击的防范方法

首先,负责权威域名的机构需要增加权威 DNS 服务器部署的数量;其次,选择“源端口随机性”较好的 DNS软件或版本能有效降低攻击成功的概率;还可在现有的 DNS 基础上绑定新的安全机制,引入技巧性方法增强 DNS 安全 [20]。

应对 DNS 劫持的防范方法

定期检查域名账户信息和域名 whois 信息,清理网站中存在的可疑文件;域名注册商和注册用邮箱的密码应当频繁更换,并且不能设定过于简单的密码;锁定域名更新设置,使攻击者不能通过 DNS 服务商网站修改记录;加强网站的防 SQL 注入功能;注意使用 Web站点文件夹及文件的写权限,最大程度避免木马程序;删除运行在 DNS 服务器上不必要的服务并设立 防火墙 [21];选择“.CN”可控域名服务最大程度保证国内用户安全 [8]。

应对 DNS 隧道攻击的防范方法

首先,可通过监控 DNS 服务器日志或使用工具监控网络数据包情况检测异常情况,如果网内主机的 DNS 查询数量超过阈值则可能是问题主机;其次,可以通过限制网络内的主机被允许访问的 DNS 服务器、限定能够发起 DNS TXT 解析请求的主机范围、控制传入和传出流量中的 TXT 请求来提高攻击者的信道部署。[22]

对于 DNS 服务器本身漏洞的防范

将内外DNS 服务器分别部署在不同的网络中以实现内外解析的不同分工 [8];加强操作系统的安全保护,及时下载系统补丁;及时下载 BIND 软件最新补丁、最新版本的同时修改配置文件、隐藏 BIND 版本号以防止黑客攻击 [25];对服务器设置安全的防火墙策略;使用 chroot 环境安装升级 BIND 程序,用非特权模式运行程序 [26]。

DNS的一些安全机制

DNSSEC

DNSSEC 弥补了 DNS 不能保证客户端收到的 DNS 记录的真实性和完整性的缺点,并且能很好地兼容传统 DNS。DNSSEC 可以提供数据来源验证、数据完整性验证和否定存在验证。DNSSEC 的核心思想是通过公钥加密对 DNS 中的信息创建加密签名。DNSSEC 主要由签名和验证两个过程组成。签名过程是用 HASH函数对 DNS 消息的内容进行散列回复,然后使用私钥进行加密,并将加密的消息附加到 DNS 消息中,而验证过程则是将用 HASH 函数计算一次 DNS 报文的“内容摘要”,与利用公钥解密收到的加密的“内容摘要”进行比对判断域名解析结果是否可信。DNSSEC 可以有效防止 DNS 欺骗,但会降低 DNS查询和响应的时间性能,增加 DNS 运营和使用的负担,且 DNSSEC 目前还不能提供安全有效的密钥分发通道,因此 DNSSEC 还没有普及。

基于服务群的 DNS 安全抗毁技术

文献 [4] 提出的基于服务群的 DNS 抗毁技术,将 DNS 服务节点部署于在整个网络中,通过群建立协议和群协商协议形成 DNS 服务群。群建立协议用于构建动态的服务群;群协商协议通过多个服务节点对用户 DNS 请求的汇聚计算向用户返回一致的DNS 查询结果。由于 DNS 服务不是由单一的服务节点提供的,并且没有中心和固定的拓扑,因此很难被完全摧毁,保证了 DNS 服务的可用性和正确性,具备更强的安全性和抗破坏能力。这种技术能够在一定程度上抵御缓存投毒攻击和 DDoS 攻击两类软攻击,当软攻击仅发生在网络的局部区域时,对用户服务请求的响应正确率可以达到 100%,但由于不能及时将恶意节点剔除出群,软攻击扩散到整个网络时不能保证 100% 的响应准确率。

基于隐私保护技术的 DNS 通信协议

文献 [13] 提出了一种基于 UDP 的 DNS 传输中的用户隐私保护的加密方法:DNSDEA(DNS dataencryption algorithm)。DNSDEA 采用非对称加密算法的密文方式通信,通过 PKI 加密体系与 DNS协议相融合,弥补了传统 DNS 体系域名隐私保护的问题,且与传统 DNS 体系有良好的兼容性。客户端的公钥通过 DNS 查询传输,降低了基于 TLS 等方法建立链路的开销,有效保持了 DNS 低延迟的特性。

基于多层级限速的 DNS 安全防护技术

文献 [7] 提出了一种基于多层级限速的 DNS 安全防护技术。这种技术的每个层次对不同的 DDoS攻击流量的都有相应的过滤策略,每一层级由限速过滤矩阵进行过滤,能通过的 DNS 请求包是正常请求包,被过滤的 DNS 请求包是异常 DDoS 攻击包。该技术可以有效过滤不同类型的 DDoS 攻击流量,防止某一地址段对某些域名的查询流量占用过多资源,最大程度保证正常用户的 DNS 访问。

DNS面临的技术挑战

文献 [3] 提出由于 DNS 协议不会记录查询请求在经过每个解析器和域名服务器时进行的处理动作,因此目前还缺乏恶意行为对 DNS 系统危害的量化分析的技术手段;由于 DNS 系统在设计初期没有过多考虑安全问题,DNS 安全增强需要考虑是否与传统的 DNS 系统相兼容,阻碍了研究成果的进一步推广;互联网中存在大量开放式 DNS 服务提供商,缺乏统一的安全管理规范和准入控制机制,因此要保证 DNS 安全需要规划整个互联网 DNS 系统的组成。

DNS未来发展

由于 DNS 查询请求和响应在默认情况下以明文方式传输,很容易带来安全隐患,因此未来势必会通过对 DNS 加密增加安全性。对 DNS 的加密有两种选择:侧重隐私性的 DoH(DNS over HTTPS,超文本传输协议安全)或侧重安全性的 DoT(DNSover TLS, 传输层安全)[24]。默认情况下 DNS 会通过 TCP 或用户数据包协议访问 53 端口,而使用DNS overTLS 时加密数据发送至 853 端口。有一些应用程序和设备在使用 DNS over TLS 进行工作,但由于没有简单的接口可以启用,在网站方面的应用还需要进一步探索。DNS over HTTPS 则针对网站设计,将所有数据包和其他网站流量一起投入到HTTPS 流,因为数据包的相似性,监控 HTTPS 端口的人无法将 DNS 查询和其他流量相区别。目前只有用户采取兼容服务才默认采用 DNS over HTTPS.基于 DNS 系统安全评估。具体评估方法分为安全漏洞扫描和权威名字服务器分布探测两部分。主要是依据“木桶原理”进行测试和评估,发现 DNS域名系统中的漏洞。同时也会对特定 DNS 域名系统请求进行监测,统计其中无效 DNS 请求,分析其对DNS 系统的影响 [23]。基于 AI 智能学习和数据挖掘的 DNS 关键技术。通过基于监督式学习网络的 DNS 服务器入侵检测方法、基于用户查询序列模式学习的 DNS 性能提升策略、DNS 使用挖掘框架以及基于潜在语义学习的 DNS 扩展应用,用机器学习中的监督学习过程解决 DNS 服务器的入侵检测 [23]

最新回复(0)