当前位置: 首页 > news >正文

国科云:浅谈DNS缓存投毒常见类型和防御策略

为了提升解析效率减轻各级服务器的解析压力,DNS系统中引入了缓存机制,但这同样也带来了较大的安全隐患,为攻击者利用DNS缓存进行投毒攻击创造了条件,对DNS系统的安全造成了巨大破坏。本文国科云将分析缓存投毒的两种主要类型,并对缓存投毒的防御策略进行简单介绍。

DNS缓存投毒攻击类型

在目前各种DNS攻击手段中,DNS缓存投毒(DNS Cache Poisoning)是比较常见也是危害较大的一种,它通过使用虚假域名解析数据替代DNS服务器缓存中主机记录的真实IP地址信息,从而诱导用户访问错误站点,达成攻击目的。

传统DNS缓存投毒

DNS系统采用树状分形结构,在标准解析链条中,递归服务器在接收到客户主机发起的解析请求后,会发起全球迭代查询,最终在域名授权的权威服务器获得最终的解析记录。为了缩短解析时间,提高域名解析和web访问的速度,DNS系统引入了缓存机制。

缓存DNS服务器从权威服务器请求到查询结果后,除了告知客户主机外还会将结果保存在自身缓存中一段时间,这就是DNS缓存(DNS Cache)。DNS缓存投毒攻击就是通过污染DNS缓存,用虚假的IP地址信息替换缓存DNS服务器中真实IP地址信息,达成攻击效果。

目前DNS采用UDP协议传输和应答数据包,采用简单的信任机制,对首先收到的应答数据包仅进行发送IP地址、端口和随机查询ID的确认,而不会对数据包的合法性进行验证,如果数据包确认就会将其作为正确应答数据包,继续DNS解析过程,丢弃后续到达的所有数据包。这个过程所存在的缺陷,为攻击者仿冒权威服务器向缓存DNS服务器发送伪造应答包提供了机会。

如果攻击者抢先在权威服务器之前将伪造的应答数据包发送到缓存DNS服务器,并与原查询包IP地址、端口和随机查询ID匹配,就能成功污染DNS缓存,使得在该缓存有效期内,将使用该缓存服务器的客户主机对该域名的访问请求至受攻击者控制的IP地址。

传统DNS缓存投毒攻击有较大的局限性,必须等待原DNS缓存失效,缓存DNS服务器重新向权威服务器发起请求时发动攻击。但当前大多数缓存DNS服务器的DNS缓存TTL时间较长,导致攻击者可以利用的攻击机会较少,攻击成功率很低。然而新型的Kaminsky攻击克服了这一缺陷,大幅提升了攻击成功率,使得DNS缓存投毒攻击的破坏性大幅上升。

Kaminsky 缓存投毒攻击

传统DNS缓存投毒,污染的目标是域名所对应的IP地址信息,而Kaminsky攻击所针对的目标则上升到了域名授权的权威域名服务器。

与传统DNS缓存投毒攻击不同,Kaminsky攻击发送给缓存DNS服务器的域名主机并不是真实的,而是使用随机序列与目标域名的组合。

如24678.example.com,其中example.com是目标域名,而24678为随机生成序列。显然24678.example.com的域名主机记录在缓存DNS服务器中是不存在的,缓存DNS在接收到这个域名请求后需要进行迭代请求。

攻击者会抢先在权威服务器之前将伪造的应答数据包发送至缓存DNS服务器中,在伪造的应答数据包中,资源记录部分与正确应答包的结果是一样的,比如24678.example.com的DNS的IP地址、UDP端口号、应答结果是NXDOMAIN。但除此之外,攻击者还伪造了一个example.com的ns记录,将其指向攻击者控制的服务器。这条ns记录也会被写入缓存DNS服务器的缓存中,在DNS缓存时间有效内,对example.com的所有域名查询都被发送到攻击者控制的服务器上。

与传统DNS缓存投毒相比,Kaminsky攻击不受DNS缓存TTL的限制,其所污染的目标也不再局限于域名对应的IP地址信息,而是域名主机的NS记录,破坏力更高,危害性更强。

DNS缓存投毒防御策略

针对DNS缓存投毒攻击,目前有几种比较可行的防御策略:

(1)Bind软件采用源端口随机性较好的较高版本,源端口的随机性可以有效降低攻击成功概率,增加攻击难度。

(2)增加权威服务器数量,目前国内外权威服务器数量得到明显提升,但仍需进一步加强。

(3)在DNS应答数据包验证方面,除原查询包IP地址、端口和随机查询ID外,增加其他可认证字段,增强认证机制。

(4)改进现有DNS协议框架,可以在DNS服务器上配置DNSSEC,或引入IPv6协议机制。

(5)UDP端口随机化,不再使用固定的53端口,在UDP端口范围内随机选择端口,可以使ID号和端口号的组合空间扩大6万多倍,降低缓存投毒的命中率。

(6)及时刷新DNS,重建DNS缓存,或者根据服务器性能适当减小缓存记录的TTL值。

(7)可以限制DNS动态更新,设置静态的DNS映射表,可以保护重要网站不被攻击。

国科云DNS安全解决方案

国科云解析是基于云技术的新一代权威解析技术,能够通过DNSSEC、健康监测、减小TTL值等手段,应对DNS缓存投毒、NS篡改等DNS攻击手段,域名解析的安全性和准确性得到了保障。

DNSSEC

国科云解析支持DNS安全扩展协议(DNSSEC),能够对DNS记录进行数字签名,保证DNS应答报文的真实性和完整性,保护用户不被重定向至非预期地址,有效应对DNS缓存投毒及其他形式的篡改。

健康监测

云解析在国内及海外设置多个解析监测节点,能够通过ping命令、TCP/UDP探测和http(s)协议等方式对网站健康状态进行实时监测,当发现因缓存投毒导致的域名状态异常时,会及时发出告警,为网站管理者进行故障处理提供技术标准和依据。

减小TTL

TTL是DNS缓存在DNS服务器上的生存时间。TTL值越小,DNS服务器就会在越短时间内请求权威服务器,获取最新的解析记录,更好地规避缓存投毒带来的风险。国科云解析最低支持1S的TTL,能够做到DNS缓存秒级刷新,最大限度降低缓存投毒带来的劫持风险。

DNS在互联网上应用广泛,其安全关系着整个互联网的稳定。缓存投毒作为DNS攻击最常见的方式之一,破坏力强,影响范围广,如果与其他技术结合,将产生更严重的危害。因此,了解缓存投毒的工作原理和防御策略,对于加强DNS系统安全,维护互联网的健康秩序,具有重要意义。

(本文部分图片和文字引用自网络,如有侵权行为,请联系删除)

相关文章:

国科云:浅谈DNS缓存投毒常见类型和防御策略

为了提升解析效率减轻各级服务器的解析压力,DNS系统中引入了缓存机制,但这同样也带来了较大的安全隐患,为攻击者利用DNS缓存进行投毒攻击创造了条件,对DNS系统的安全造成了巨大破坏。本文国科云将分析缓存投毒的两种主要类型&…...

Linux命令(120)之tcpdump

linux命令之tcpdump 1.tcpdump介绍 linux命令tcpdump是用来将网络中传送的数据包完全截获下来以进行相关分析,常用的分析工具是wireshark 2.tcpdump用法 tcpdump [参数] tcpdump参数 参数说明-i指定端口-n指定协议-t在输出的每一行不打印时间戳-s抓取数据包时&a…...

2311rust对接C

原文 为了与其他语言通信,Rust提供了(FFI)外部函数接口.FFI是Rust和C间的函数调用,与C函数调用有相同性能的零成本抽象. FFI绑定还可利用(如所有权和借用)语言功能来提供强制指针和其他资源协议的安全接口. Rust与C对话 从Rust调用C代码的简单示例开始.如下为C代码: int do…...

MYSQL字符串函数详解和实战(字符串函数大全,内含示例)

MySQL提供了许多字符串函数,用于处理和操作字符串数据。以下是一些常用的MYSQL字符串函数。 建议收藏以备后续用到查阅参考。 目录 一、CONCAT 拼接字符串 二、CONCAT_WS 拼接字符串 三、SUBSTR 取子字符串 四、SUBSTRING 取子字符串 五、SUBSTRING_INDEX 取子…...

从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)

目录 1. C多线程 1.1 thread库 1.2 mutex库 1.3 RAII锁 1.4 atomicCAS 1.5 condition_variable 1.6 分别打印奇数和偶数 2. shared_ptr线程安全 2.1 库里面的shared_ptr使用 2.2 shared_ptr加锁代码 3. 单例模式线程安全 3.1 懒汉模式线程安全问题 3.2 懒汉模式最…...

Angular 指令介绍及使用(三)

Angular 指令概述 在 Angular 中,指令是一种机制,用于扩展和修改组件的行为和外观。指令可以由开发者自定义,也可以是 Angular 框架自带的一些内置指令。通过使用指令,我们可以在 HTML 模板中通过属性或元素名来操作组件。 Angu…...

小学生加减乘除闯关运算练习流量主微信小程序开发

小学生加减乘除闯关运算练习流量主微信小程序开发 经过本次更新,我们增加了新的功能和特性,以提升用户体验和运算练习的趣味性: 能量石与激励视频:用户可以通过观看激励视频来获取能量石,这些能量石可以用于解锁收费…...

普通测径仪升级的智能测径仪 增添11大实用功能!

普通测径仪能对各种钢材进行非接触式的外径及椭圆度在线检测,测量数据准确且无损,可测、监测、超差提示、系统分析等。在此基础上,为测径仪进行了进一步升级制成智能测径仪,为其增添更多智能化模块,让其使用更加方便。…...

vue做的一个一点就转的转盘(音乐磁盘),点击停止时会在几秒内缓慢停止,再次点击按钮可以再次旋转,

先看效果&#xff1a; 代码&#xff1a;主要部分我会红线画出来 css:部分&#xff1a; 源码&#xff1a; vue部分&#xff1a; <template><div class"song-lyric"><div><div class"type"><div class"right">&l…...

Spring6(一):入门案例

文章目录 1. 概述1.1 Spring简介1.2 Spring 的狭义和广义1.3 Spring Framework特点1.4 Spring模块组成 2 入门2.1 构建模块2.2 程序开发2.2.1 引入依赖2.2.2 创建java类2.2.3 创建配置文件2.2.4 创建测试类测试 2.3 程序分析2.4 启用Log4j2日志框架2.4.1 引入Log4j2依赖2.4.2 加…...

Linux中报错no space device解决思路

1&#xff0c;df -h &#xff1a;查看所有文件下的磁盘使用情况。注意&#xff0c;查询的最后一栏属性就是分区所在的目录路径 2&#xff0c;进到具体的文件下&#xff0c;接着命令&#xff1a;du -sh * | grep G 搜索G以上的文本。 没搜到内容的话&#xff0c;使用命令du -sh…...

vue3使用element-plus

安装 # NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus 全局引入 main.js // main.ts import { createApp } from vue import ElementPlus from element-plus//引入ElementPlus所有组件 import element-plus/dis…...

高质量实时渲染笔记

文章目录 Real-time shadows1 自遮挡问题2 解决阴影detach问题&#xff1f;3 Aliasing4 近似积分5 percentage closer soft shadows(PCSS)percenta closer filtering(PCF)PCSS的思想 6 Variance Soft Shadow Mapping (VSSM)步骤Moment Shadow Mapping 7 Distance field shadow …...

云原生下GIS服务规划与设计

作者&#xff1a;lisong 目录 背景云原生环境下GIS服务的相关概念GIS服务在云原生环境下的规划调度策略GIS服务在云原生环境下的调度手段GIS服务在云原生环境下的服务规划调度实践 背景 作为云原生GIS系统管理人员&#xff0c;在面对新建的云GIS系统时&#xff0c;通常需要应对…...

VBA 宏For WPS(完整版)-供大家学习研究参考

VBE7.1安装方法&#xff1a; 适用于安装 WPS 2019 版本的 缺少 VBA 模块的 亲测可用&#xff0c;内含 VBA 7.1 安装顺序1、2、3、4按照顺序安装&#xff1b; 1.安装MSVCRTRedist\Release目录下32位的安装包&#xff0c;此安装包为运行时库 3.安装VBARedist\Release目录下32位的…...

【Linux】八、进程通信

进程通信的介绍 目的 数据传输&#xff1a;一个进程将它的数据发送给另一个进程&#xff1b; 资源共享&#xff1a;多个进程间共享资源&#xff1b; 通知事件&#xff1a;一个进程向另一个或一组进程发送消息&#xff0c;同时事件如&#xff0c;进程终止时要通知父进程&#xf…...

不同类型的软件企业该如何有效的管理好你的软件测试团队?

最近在网上发现一篇记录了2012年《[视频]作为测试经理如何有效管理好你的软件测试团队》的文字内容&#xff0c;感谢记录的人&#xff0c;我也保存一下。顺便将演讲中的PPT重点截图也放上来&#xff0c;一并保存了&#xff01;。由于是现场速记&#xff0c;过度的口语化&#x…...

vue echart 立体柱状图 带阴影

根据一个博主代码改编而来 <template><div class"indexBox"><div id"chart"></div></div> </template><script setup> import * as echarts from "echarts"; import { onMounted } from "vue&…...

vscode远程linux安装codelldb

在windows上使用vscode通过ssh远程连接linux进行c调试时&#xff0c;在线安装codelldb-x86_64-linux.vsix扩展插件失败&#xff0c;原因是linux服务器上的网络问题&#xff0c;所以需要进行手动安装。 首先在windows上下载&#xff1a; codelldb-x86_64-linux.vsix&#xff1b;…...

【中间件篇-Redis缓存数据库08】Redis设计、实现、redisobject对象设计、多线程、缓存淘汰算法

Redis的设计、实现 数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型&#xff0c;它们分别是&#xff1a;string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合)&#xff0c;但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的…...

华为云优惠券介绍、领取入口及使用教程

华为云是华为的云服务品牌&#xff0c;致力于为用户提供一站式云计算基础设施服务。为了吸引用户&#xff0c;华为云经常推出各种优惠活动&#xff0c;其中就包括优惠券的发放&#xff0c;下面将为大家详细介绍华为云优惠券的作用、领取入口以及使用教程。 一、华为云优惠券介绍…...

OPTEE安全通告之CVE-2023-41325(Double free in shdr_verify_signature)

安全之安全(security)博客目录导读 目录 一、受影响版本 二、漏洞描述 三、问题触发 四、官方Patch修复...

第12章 关于 Micro SaaS 的结论

从时间和地点的自由到一种新鲜的独立感,开发 Micro SaaS 应用程序有很多好处。 获得 6 位数的订阅收入。辞掉我朝九晚五的令人丧命的工作。消除毫无意义的会议、办公室政治、混乱和救火。想工作就工作。随时随地使用我想要的任何技术工作。花更多时间陪伴家人。与我开发的应用…...

postman调用接口报{“detail“:“Method \“DELETE\“ not allowed.“}错误, 解决记录

项目是python代码开发, urls.py 路由中访问路径代码如下: urlpatterns [path(reportmanagement/<int:pk>/, views.ReportManagementDetail.as_view(), namereport-management-detail),] 对应view视图中代码如下: class ReportManagementDetail(GenericAPIView):"…...

基于单片机的线路差动保护系统设计

摘 要 随着我国微型电子技术和嵌入式系统的发展&#xff0c;目前行业内相对比较传统的线路差动保护系统无法满足客户的需求。为了改进传统线路差动保护系统在控制上得短板问题&#xff0c;在本次毕业设计中&#xff0c;将使用相对先进、快捷、智能的控制机制。该系统的控制大脑…...

vscode 快速打印console.log

第一步 输入这些 {// Print Selected Variabl 为自定义快捷键中需要使用的name&#xff0c;可以自行修改"Print Selected Variable": {"body": ["\nconsole.log("," %c $CLIPBOARD: ,"," background-color: #3756d4; padding:…...

drawio连接线的样式设置

drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存储&#xff0c;以及在线共…...

【力扣题:循环队列】

文章目录 一.题目描述二. 思路解析三. 代码实现 一.题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好…...

配置开启Docker2375远程连接与解决Docker未授权访问漏洞

一、配置开启Docker远程连接 首先需要安装docker,参考我这篇文章&#xff1a;基于CentOS7安装配置docker与docker-compose 配置开启Docker远程连接的步骤&#xff1a; //1-编辑/usr/lib/systemd/system/docker.service 文件 vim /usr/lib/systemd/system/docker.service //2…...

土木非科班转码测开,斩获10家大厂offer

大家好&#xff0c;我是洋子 24届秋招基本已经落下了帷幕&#xff0c;各大互联网大厂基本也开奖完毕&#xff0c;还没有拿到满意offer的同学也不要灰心&#xff0c;积极备战明年的春招。另外&#xff0c;25届想要找暑期实习的同学也可以开始准备起来了&#xff0c;基本大厂在春…...