如何防止DNS缓存中毒攻击(一)

本文涉及的产品
.cn 域名,1个 12个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: DNS缓存中毒也称为DNS欺骗

DNS缓存中毒也称为DNS欺骗,是一种攻击,旨在查找并利用DNS或域名系统中存在的漏洞,以便将有机流量从合法服务器吸引到虚假服务器上。这种攻击往往被归类为域欺骗攻击(pharming attack),由此它会导致出现很多严重问题。首先,用户往往会以为登陆的是自己熟悉的网站,而它们却并不是。与钓鱼攻击采用非法URL不同的是,这种攻击使用的是合法的URL地址。
DNS缓存中毒如何工作?

当一个DNS缓存服务器从用户处获得域名请求时,服务器会在缓存中寻找是否有这个地址。如果没有,它就会上级DNS服务器发出请求。

在出现这种漏洞之前,攻击者很难攻击DNS服务器:他们必须通过发送伪造查询响应、获得正确的查询参数以进入缓存服务器,进而控制合法DNS服务器。这个过程通常持续不到一秒钟,因此黑客攻击很难获得成功。

但是,现在有安全人员找到该漏洞,使得这一过程朝向有利于攻击者转变。这是因为攻击者获悉,对缓存服务器进行持续不断的查询请求,服务器不能给与回应。比如,一个黑客可能会发出类似请求:1q2w3e.google.com,而且他也知道缓存服务器中不可能有这个域名。这就会引起缓存服务器发出更多查询请求,并且会出现很多欺骗应答的机会。

当然,这并不是说攻击者拥有很多机会来猜测查询参数的正确值。事实上,是这种开放源DNS服务器漏洞的公布,会让它在10秒钟内受到危险攻击。

要知道,即使1q2w3e.google.com受到缓存DNS中毒攻击危害也不大,因为没有人会发出这样的域名请求,但是,这正是攻击者发挥威力的地方所在。通过欺骗应答,黑客也可以给缓存服务器指向一个非法的服务器域名地址,该地址一般为黑客所控制。而且通常来说,这两方面的信息缓存服务器都会存储。

由于攻击者现在可以控制域名服务器,每个查询请求都会被重定向到黑客指定的服务器上。这也就意味着,黑客可以控制所有域名下的子域网址:www.idcbest.com,mail.idcbest.com,ftp.idcbest.com等等。这非常强大,任何涉及到子域网址的查询,都可以引导至由黑客指定的任何服务器上。

DNS缓存中毒有何风险?

DNS缓存中毒的主要风险是窃取数据。DNS缓存中毒攻击的最喜欢的目标是医院,金融机构网站和在线零售商。这些目标容易被欺骗,这意味着任何密码,信用卡或其他个人信息都可能受到损害。此外,在用户设备上安装密钥记录器的风险,可能会导致用户访问其他站点时暴露其用户名和密码。

另一个重大风险是,如果互联网安全提供商的网站被欺骗,那么用户的计算机可能会受到其他威胁(如:病毒或特洛伊木马)的影响,因为一旦被攻击用户则不会执行合法的安全更新。

据称,DNS攻击的年平均成本为223.6万美元,其中23%的攻击来自DNS缓存中毒。

目录
相关文章
|
1月前
|
域名解析 网络协议 安全
什么是DNS劫持攻击以及如何避免此类攻击
【10月更文挑战第28天】DNS劫持攻击是一种网络攻击方式,攻击者通过篡改用户的DNS设置,将合法网站的域名解析为恶意网站的IP地址,使用户在不知情的情况下访问钓鱼网站。攻击手段包括在用户系统植入恶意软件、利用路由器漏洞或破解DNS通信等。为防止此类攻击,应使用安全软件、定期检查DNS设置、重置路由器密码及避免访问不安全的网站。
163 1
|
20天前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
1月前
|
缓存 网络协议 安全
如何防止DNS缓存中毒(Ⅱ)
服务器应该配置为尽可能少地依赖与其他DNS服务器的信任关系
43 10
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0
|
2月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
66 0
|
2月前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
86 0
|
15天前
|
PyTorch Shell API
Ascend Extension for PyTorch的源码解析
本文介绍了Ascend对PyTorch代码的适配过程,包括源码下载、编译步骤及常见问题,详细解析了torch-npu编译后的文件结构和三种实现昇腾NPU算子调用的方式:通过torch的register方式、定义算子方式和API重定向映射方式。这对于开发者理解和使用Ascend平台上的PyTorch具有重要指导意义。
|
20天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
50 12

推荐镜像

更多