《DNS攻击防范科普系列4》--遭遇DNS缓存投毒该怎么办?

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:         在《DNS攻击防范科普系列》的前几讲中,我们介绍了常见的DNS攻击、以及防范DDoS攻击、保障操作安全的方法。今天我们给大家带来的是对DNS缓存投毒攻击的防范。首先我们先来说说什么是“DNS缓存投毒”。

        在《DNS攻击防范科普系列》的前几讲中,我们介绍了常见的DNS攻击、以及防范DDoS攻击、保障操作安全的方法。今天我们给大家带来的是对DNS缓存投毒攻击的防范。首先我们先来说说什么是“DNS缓存投毒”。

DNS缓存投毒介绍
_

        缓存投毒(DNS cache poisoning),又称DNS缓存污染(DNS cache pollution),是指一些刻意制造(投毒)或无意中制造(污染)出来的DNS数据包,让DNS缓存服务器缓存了错误的域名解析记录。
        DNS缓存投毒工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行监听,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回错误结果。
为了减少网络上的流量,一般的DNS缓存服务器都会把域名数据缓存起来,待下次有其他DNS客户端要求解析同样的域名时,可以立即提供服务。当缓存服务器缓存了错误的域名数据时,DNS客户端在请求这些域名时就会得到错误的结果。

DNS缓存投毒原理
        目前DNS采用UDP协议传输查询和应答数据包,采用简单信任机制,对首先收到的DNS应答数据包仅进行原查询包发送IP地址、端口和ID的确认,而不会对数据包的合法性做任何分析,若匹配,则接受其为正确应答数据包,继续DNS解析过程,并且丢弃后续到达的所有应答数据包。这就使得攻击者可以仿冒权威DNS服务器向缓存DNS服务器发送伪造应答包,力争抢先完成应答以污染DNS缓存。若攻击者发送的伪造应答包在权威名字服务器发送的正确应答包之前到达缓存DNS服务器,并与原查询包IP地址、端口、ID相匹配,就能够成功污染DNS缓存。
下面我们来看看几种投毒类型:
1、通过随机响应包造成投毒的“生日攻击”
在 2008 年之前,所有DNS请求包都使用固定源端口53发送解析请求。因此,除了ID之外,欺骗DNS回复所需的所有信息都是有限的。用这种弱点攻击 DNS 被称为“生日悖论”,平均需要256次来猜测ID。为了使攻击成功,伪造的DNS回复必须在合法权威DNS服务器响应之前到达缓存DNS服务器。如果伪造响应首先到达,它将由缓存DNS缓存,并且直到其生存时间(TTL)到期,递归DNS不会向权威DNS请求解析相同的域名。
2、Kaminsky缓存投毒
2008年,在Black Hat上有人公布了一种新型缓存投毒的原理。其中基本的随机猜测技术不变。该攻击利用了 DNS 响应包的AUTHORITY SECTION字段,因为 DNS 响应可以是直接应答(请求的直接IP地址)或引用(对给定区域具有权威性的服务器)。基本思想是攻击者选择他们希望攻击的域,然后向目标解析器查询尚未被解析器缓存的子域(查询不存在的子域是一个很好的选择,因为不存在的子域记录是没有被DNS服务器缓存的)。由于子域不在缓存中,因此DNS递归服务器向该域的权威服务器发送查询。正是在这一点上,攻击者用大量伪造的响应来淹没正常应答,每个伪造的响应都有不同的伪造ID号。如果攻击者成功注入伪造响应,则递归DNS服务器将为权威服务器缓存错误的IP。对受感染域的递归DNS服务器的未来 DNS 查询将导致所有请求被转发到攻击者控制器权威解析器,使攻击者能够提供恶意响应,而无需为每个新 DNS 记录注入假条目。

DNS缓存投毒应对方法
_

        防止DNS缓存投毒的最佳方法是实施加密和身份验证的安全方法DNSSEC。作为整个互联网的骨干和基石协议,DNS目前最常用的实施方式,是未加密的明文传输的方式。DNSSEC是一种较好的对DNS进行身份验证的方法,DNS服务器对DNS解析器的应答,采用DNSSEC的签名方式。然后DNS解析器使用签名来验证DNS响应,确保记录未被篡改。此外,它还提供从TLD到域权威区域的信任链,确保整个DNS解析过程是安全的。
        尽管有这些明显的好处,但DNSSEC的采用速度很慢。主要问题是DNSSEC设置很复杂,需要升级设备和系统、以及相应的服务,才能处理新协议。此外,由于DNS缓存投毒等攻击形式并没有得到相应的重视。DNSSEC也没有被提高到较高的优先级上进行实施。
        阿里云DNS致力于保障用户域名解析的安全性,我们非常重视用户的安全和隐私性保护。给大家透露一下,阿里云DNS对DNSSEC的支持已经在紧张的研发中了。待DNSSEC功能上线后,阿里云将更好的保护您的DNS服务器,助您有效应对缓存投毒攻击。

了解阿里DNS,请戳链接:https://www.aliyun.com/product/dns

相关文章
|
2月前
|
网络协议 安全 网络安全
DNS放大攻击
【8月更文挑战第20天】
91 1
|
2月前
|
缓存 NoSQL Java
Redis深度解析:解锁高性能缓存的终极武器,让你的应用飞起来
【8月更文挑战第29天】本文从基本概念入手,通过实战示例、原理解析和高级使用技巧,全面讲解Redis这一高性能键值对数据库。Redis基于内存存储,支持多种数据结构,如字符串、列表和哈希表等,常用于数据库、缓存及消息队列。文中详细介绍了如何在Spring Boot项目中集成Redis,并展示了其工作原理、缓存实现方法及高级特性,如事务、发布/订阅、Lua脚本和集群等,帮助读者从入门到精通Redis,大幅提升应用性能与可扩展性。
60 0
|
6天前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
13 1
|
13天前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
36 8
|
2月前
|
缓存 算法 前端开发
深入理解缓存淘汰策略:LRU和LFU算法的解析与应用
【8月更文挑战第25天】在计算机科学领域,高效管理资源对于提升系统性能至关重要。内存缓存作为一种加速数据读取的有效方法,其管理策略直接影响整体性能。本文重点介绍两种常用的缓存淘汰算法:LRU(最近最少使用)和LFU(最不经常使用)。LRU算法依据数据最近是否被访问来进行淘汰决策;而LFU算法则根据数据的访问频率做出判断。这两种算法各有特点,适用于不同的应用场景。通过深入分析这两种算法的原理、实现方式及适用场景,本文旨在帮助开发者更好地理解缓存管理机制,从而在实际应用中作出更合理的选择,有效提升系统性能和用户体验。
81 1
|
2月前
|
缓存 网络协议 API
【API管理 APIM】APIM中对后端API服务的DNS域名缓存问题
【API管理 APIM】APIM中对后端API服务的DNS域名缓存问题
|
2月前
|
存储 缓存 监控
DNS 定期刷新缓存
【8月更文挑战第18天】
49 2
|
2月前
|
SQL 安全 网络安全
【惊心动魄】揭秘网络暗黑势力!全面解析网站安全攻击手段及防御秘籍,助你构筑坚不可摧的数字堡垒!
【8月更文挑战第13天】随着互联网发展,网站成为信息和服务的关键渠道,但也面临黑客攻击的风险。本文介绍几种常见攻击及其防御方法:SQL注入可通过参数化查询预防;XSS攻击需对数据严格过滤和编码;CSRF攻击则需使用唯一令牌验证;文件上传漏洞应限制文件类型并验证;DDoS攻击可借助CDN和防火墙缓解。维护网站安全需持续监控和更新防护策略。
66 11
|
3月前
|
存储 缓存 网络协议
如何在 Linux 上刷新 DNS 缓存?
【7月更文挑战第14天】
63 0
如何在 Linux 上刷新 DNS 缓存?
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面