当前位置: 首页 > 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对外的数据结构。 实际上每种数据结构都有自己底层的…...

Redis 单线程真的是单线程吗?源码角度全面解析

Redis 是单线程的——这句话流传太广了&#xff0c;以至于很多人真的以为 Redis 就一个线程在跑。但实际上&#xff0c;如果你 ps -ef 或者 top 看一眼正在运行的 Redis 进程&#xff0c;会发现线程数不止一个。 到底怎么回事&#xff1f;这篇文章从源码角度把这个问题彻底说清…...

Cursor AI Pro终极解锁指南:告别试用限制的专业解决方案

Cursor AI Pro终极解锁指南&#xff1a;告别试用限制的专业解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

VS2022 + WinForms:从拖控件到写逻辑,手把手带你做出第一个C#计算器

VS2022 WinForms&#xff1a;从拖控件到写逻辑&#xff0c;手把手带你做出第一个C#计算器 第一次打开Visual Studio 2022时&#xff0c;那个闪亮的启动界面可能会让你既兴奋又不知所措。作为微软最新的集成开发环境&#xff0c;VS2022为C#开发者提供了强大的工具链&#xff0…...

C++ 安全子集:探讨在关键任务系统中限制部分 C++ 特性(如 RTTI)的必要性

尊敬的各位专家、各位同仁&#xff0c;大家好。今天&#xff0c;我们齐聚一堂&#xff0c;共同探讨一个在软件工程领域&#xff0c;尤其是在关键任务系统&#xff08;Critical Mission Systems&#xff09;开发中至关重要的话题&#xff1a;C 安全子集——在严苛环境下限制部分…...

数据库索引原理:B+树与哈希索引的深度对决

数据库索引原理&#xff1a;B树与哈希索引的深度对决在数据库的世界里&#xff0c;索引是提升查询性能的“核武器”。如果把数据库表比作一本厚厚的书&#xff0c;那么索引就是书中的目录。没有目录&#xff0c;想要找到特定的知识点只能一页页翻找&#xff08;全表扫描&#x…...

智慧农业 水稻害虫检测数据集 基于深度学习结合 深度学习模型(YOLOv11) 和 图形用户界面(GUI) 两部分来实现。 PyQt5

智慧化农业-水稻害虫目标检测数据集&#xff0c;3156张&#xff0c;yolo和voc两种标注方式 10类&#xff0c;标注数量&#xff1a; Asiatic Rice Borer: 亚洲稻螟 (716) Brown Plant Hopper: 褐飞虱 (577) Paddy Stem Maggot: 稻茎虫 (104) Rice Gall Midge: 稻瘿蚊 (223) Rice…...

牙齿龋齿检测数据集 YOLO模型如何训练牙齿病害数据集 权重识别龋齿

牙齿龋齿检测数据集&#xff0c;2554张&#xff0c;提供yolo和voc两种标注方式 1类&#xff0c;标注数量&#xff1a; caries: 6946 image num: 2554 &#x1f9b7; 龋齿检测数据集 (Dental Caries Detection Dataset) 属性详细描述数据集名称齿科龋齿目标检测数据集图像总数2…...

跨平台监控整合指南:如何用GB28181协议让海康/大华NVR对接第三方平台?

跨平台监控整合实战&#xff1a;GB28181协议下海康/大华NVR与第三方平台对接全解析 在商业综合体、智慧园区等大型监控项目中&#xff0c;不同品牌设备的混合部署已成为常态。海康威视、大华等主流厂商的NVR设备如何通过GB28181协议与第三方监控平台实现无缝对接&#xff1f;本…...

AutoHotkey自动化效率提升指南:从入门到进阶的全场景应用技巧

AutoHotkey自动化效率提升指南&#xff1a;从入门到进阶的全场景应用技巧 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.co…...

Ubuntu下Minicom与Kermit串口工具对比:哪个更适合你的嵌入式开发?

Ubuntu下Minicom与Kermit串口工具深度评测&#xff1a;嵌入式开发者的终极选择指南 在嵌入式开发领域&#xff0c;串口通信如同开发者的"听诊器"&#xff0c;是调试硬件、监控系统状态的核心工具。Ubuntu作为最受开发者欢迎的Linux发行版之一&#xff0c;其生态中Mi…...