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

DNS风险分析及防护研究(五):常见的DNS威胁与防御(中科三方)

DNS是互联网运行重要的基础设施,在全球互联网运转中扮演重要作用。互联网中的每一次访问都开始于一次DNS查询,从而将人们更好辨识的域名转换为数字化的IP地址。随着互联网的快速发展以及网络技术的快速发展,DNS固有的缺陷逐步暴露出来,并引发越来越多的网络安全问题。本文重点讨论目前DNS所面临的典型威胁,包括基于DNS的分布式拒绝攻击、DNS缓存投毒等,分析了不同攻击的原理和危害,并提出相应的防护建议。

1.DNS攻击类型

1.1DNS缓存投毒

缓存投毒是最常见的一种DNS攻击类型,其主要基于DNS缓存进行攻击。DNS缓存是DNS系统为了节省DNS查询时间而引入的一种机制,DNS缓存广泛存在于全球各地开放的DNS服务器中。当用户对某个域名发起请求时,DNS服务器首先会在自身DNS缓存中查看是否有对应的结果,如果命中结果,会直接告知客户主机,而无需进行全球解析查询。

这种机制虽然提升了解析查询的效率,但是为攻击者利用DNS缓存发动攻击提供了条件。如果攻击者冒充权威服务器,在权威服务器之前,将应答数据包发送给递归服务器,就能够成功污染DNS缓存,将错误的解析数据传递给客户主机,从而将客户机的访问引导至攻击者控制的服务器上。

1.2 DNS DDoS攻击

DNS DDoS攻击根据攻击目标可以分为DNS查询攻击和DNS反射放大攻击两种。DNS查询攻击目标是DNS服务器,可以是递归服务器也可能是权威服务器,攻击者通过控制大量的僵尸网络对DNS服务器发起解析请求,导致DNS服务器资源耗尽,无法响应正常的解析请求。

DNS反射放大攻击目标是web服务器或客户主机,攻击者伪造受攻击者的IP,控制僵尸网络对DNS服务器发起解析请求,DNS服务器不会验证解析来源的真实性,而是会对所有解析请求进行应答。而DNS应答数据包往往是请求包的数十倍甚至是数百倍,因此被攻击目标就可能承受来自DNS服务器数百倍的攻击流量,从而形成反射放大攻击,耗尽被攻击目标的网络资源。

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

随机子域名攻击是指攻击者通过递归服务器查询合法域名的随机子域名或者根本不存在的子域名来进行攻击。攻击者通过控制僵尸网络发送大量的此类请求,以此来耗尽权威服务器的带宽和资源,从而导致权威服务器无法提供正常的解析服务。

非存在域名攻击类似随机子域名攻击,攻击者向递归服务器发送大量非存在的域名请求,这些域名解析缓慢或者不能解析,以此让DNS服务器一直等待解析响应,从而达到消耗DNS服务器资源,实现拒绝服务攻击的目的。

1.4DNS劫持

从结果上来看,DNS劫持与缓存投毒十分类似,也是将用户劫持到受攻击者控制的IP地址。但与缓存投毒不同的是,DNS劫持通常是通过直接修改域名解析记录达成,主要有两种方式,一种是直接控制域名管理平台权限,修改域名解析记录,另一种是直接攻击权威域名服务器,修改区域文件内的资源记录。DNS劫持对于企业和机构客户而言影响非常严重,它会导致失去对域名的控制,造成客户的流失,业务的严重受损。

2.防御及缓解措施

2.1 DNSSEC

从目前来看,DNSSEC是解决DNS安全问题最有效的方式之一。DNSSEC是指通过数字签名和公钥来实现DNS数据的完整性和可靠性。权威域名服务器用自身的私钥来签名资源记录,然后递归服务器用权威服务器的公钥来认证应答数据,如果认证成功,则表明接收到的数据确实来自权威服务器,如果认证失败,则表明接收到的数据是伪造的,就会抛弃数据。由中科三方自研的二代云解析系统已经具备DNSSEC功能,能够有效应对DNS缓存投毒、DNS劫持等攻击手段,确保DNS解析数据的准确性。

2.2 Anycast

Anycast是一种网络路由方式,通过部署anycast,提供相同服务的一组服务器可以使用相当的IP地址,客户请求的数据将会被转发到这组服务器中路由拓扑结构最近的一台主机,因而可以起到有效抵御DDoS攻击的效果。如果攻击者利用僵尸网络对DNS服务器发动DDoS攻击,这些巨量的网络信息会通过anycast转发到不同DNS服务器上,进而缓解单一服务器的运行压力。

2.3响应速率限制

响应速率限制是指权威服务器可以统计来自相同DNS查询所对应的DNS响应频次,并设置发送次数的阈值。如果某一时间段内,发送响应的频次超过设定的阈值,权威服务器就会停止发送响应。如果在一段时间内,权威服务器没有收到高于阈值的查询,则取消限制。这样就有效保护了权威服务器远离DDoS攻击。

但这种方式同样具有一些局限性,一方面它只对权威服务器有效,无法应用于递归服务器,另一方面,攻击者可以通过发送一组不同的查询绕过限制规则。

2.4设置递归服务器查询权限

利用DNS实现反射放大攻击的关键点在于,大部分开放式的递归服务器可以让任何人执行DNS查询请求,因此DNS递归服务器设置一定的接入权限,保证授权的用户才能执行DNS查询请求,能够有效降低DNS反射放大攻击的危害。

综上所述,DNS由于其自身设计方面的缺陷以及其在互联网中的基础地位,导致针对DNS的攻击事件愈发显著,DNS的可靠性和稳定性下降,严重影响网络的稳定运行,因此加强DNS安全风险防控能力至关重要,可以通过采用DNSSEC技术、Anycast技术等多种网络安全技术提升DNS的安全性能,为用户提供更加安全可靠的DNS服务。

相关文章:

DNS风险分析及防护研究(五):常见的DNS威胁与防御(中科三方)

DNS是互联网运行重要的基础设施,在全球互联网运转中扮演重要作用。互联网中的每一次访问都开始于一次DNS查询,从而将人们更好辨识的域名转换为数字化的IP地址。随着互联网的快速发展以及网络技术的快速发展,DNS固有的缺陷逐步暴露出来&#x…...

使用geoserver发布shp和tiff数据

一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的,所以运行需要java的环境,不同geoserver的版本号对java的版本要求不同,所以选择版本时需注意对应java的版本要求,由于我本地安…...

谷歌周彦祺:LLM浪潮中的女性科学家多面手丨智源大会嘉宾风采

导读 大模型研发竞赛如火如荼,谷歌紧随OpenAI其后推出PalM2、Gemini等系列模型。Scaling Law是否仍然适用于当下的大模型发展?科技巨头与初创企业在竞争中各有哪些优势和劣势?模型研究者应秉持哪些社会责任? 2023智源大会「基础模…...

Burp模块

Target模块 记录流量 1.Target按主机或域名分类记录 2.HTTP History 按时间顺序记录且会记录很多次 3.Target模块的作用 (1)把握网站的整体情况 (2)对一次工作的域进行分析 (3)分析网站存在的攻击面 …...

sql笔记:SQL SERVER字符串填充(标量值函数创建、标量值函数调用)

/*字符串填充 ,如果返回 -1 说明输入参数有错误*/ CREATE FUNCTION [dbo].[uf_pad_string] ( @string_unpadded VARCHAR(100), --123填充前字符串 @pad_char VARCHAR(1), --0 填充的字符串 @pad_count tinyint, --10 填充后字符串长度 @pad_p…...

python使用hTTP方法

Python中可以使用requests库来发送HTTP请求,其中包括GET、POST、PUT、DELETE等方法。下面是一个使用requests库发送HTTP请求的示例: python import requests # 发送GET请求 response requests.get(Example Domain) # 发送POST请求 data {key1: valu…...

JavaSE常用API

1. Math.round(11.5)等于多少?Math.round(- 11.5) 又等于多少? Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5然后进行取整。 2. switch 是否能作用在 byte 上,是否能作用在 long 上…...

华为OD机试之模拟商场优惠打折(Java源码)

模拟商场优惠打折 题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用; 打折券&…...

5月VR大数据:Quest 2下跌超1%,其它变化不大

Hello大家好,每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么?关注这里就对了。我们会统计Steam平台的用户及内容等数据,每月初准时为你推送,不要错过喔! 本数据报告包含:Steam VR硬…...

CW32系列模数转换器(ADC)

模数转换器(ADC)的主要功能是将模拟量转换为数字量,方便MCU进行处理。下面以CW32L083为例介绍CW系列的模数转换器的特点和功能,并提供演示实例。 一、概述 CW32L083 内部集成一个 12 位精度、最高 1M SPS 转换速度的逐次逼近型模…...

电动力学专题:电磁场规范不变性与规范自由度

对称性,不变性,相对性,协变形 在现代物理学中常常被认为具有相同的含义(好拗口) 规范与规范的自由度 保证电磁场物理量不改变的情况下,有多组势可供选择,而每组势可以称为一个规范 规范不变性…...

max delay的应用场景与常见问题

max delay与min delay用来约束start points到endpoints点对点的路径长度,set_max_delay约束最大值,set_min_delay约束最小值。 max delay的-from和-to并不局限在get_pins,get_cells和get_clocks同样可以。 set_max_delay 5 -from UFF0/Q -to UFF1/D set_max_delay -from …...

非阻塞队列

非阻塞队列 首先我们要简单的理解下什么是非阻塞队列: 与阻塞队列相反,非阻塞队列的执行并不会被阻塞,无论是消费者的出队,还是生产者的入队。 在底层,非阻塞队列使用的是CAS(compare and swap)来实现线程执行的非阻塞…...

动力电池管理系统(BMS)

BMS技术 目录 BMS技术 一、BMS简介 二、BMS主要功能 1、参数检测 2、剩余电量(SOC)估计 3、充放电控制 4、热管理 5、均衡控制 6、故障诊断 7、信息监控 8、参数标定 9、CAN总线接口 三、BMS架构组成 1、BMS的拓扑架构 1、1集中式架构的B…...

ChatGPT桌面客户端支持gpt4模型,附使用说明

#软件核心功能: 1、支持OpenAI官方秘钥及API2D双秘钥使用;如果全局魔法,可以自己用官方秘钥;没魔法国内可直接使用API2D秘钥; 2、内置GPT4模型选项,如果你的官方秘钥支持可直接使用;你也可以注册…...

Vivado下时序逻辑模块的仿真

文章目录 D触发器两级D触发器带异步复位的D触发器带异步复位和同步置数的D触发器移位寄存器单口RAM伪双口RAM真双口RAM单口ROM 组合逻辑电路在逻辑功能上特点是任意时刻的输出仅仅取决于当前时刻的输入,与电路原来的状态无关。 时序逻辑在逻辑功能上的特点是任意时刻…...

ThreadLocal的使用方式

1. ThreadLocal的使用方式 (1) 在关联数据类中创建private static ThreadLocal 在下面的类中,私有静态 ThreadLocal 实例(serialNum)为调用该类的静态 SerialNum.get() 方法的每个 线程维护了一个“序列号”,该方法将返回当前…...

全面理解:C++中的指针和迭代器,以及解引用操作符(*)和箭头操作符(->)的用法

指针与迭代器的基础概念 指针: 指针是一种变量,其值为另一种类型的对象在计算机内存中的地址。你可以使用指针来直接访问和操作它指向的对象。指针的使用非常强大,但也很危险,因为你有可能错误地操作内存,这可能会导致…...

Vite 使用学习指南

Vite 的基本概念和特点 Vite 是什么,它的主要特点是什么 Vite 是一个基于 ES modules 的前端构建工具,它的主要特点包括: 快速的冷启动:Vite 采用了基于浏览器原生 ES 模块的开发模式,可以在开发时快速启动应用&…...

【算法训练(day6)】双指针模板

一.双指针算法的由来和使用场景 通常情况下我们可能会遇到在某些可遍历的集合中寻找满足某种性质的字串或元素。这时候我们采取暴力的思路就会面临多重循环。我们可以利用题目中所给的集合并利用其性质将多重循环降成一重循环。光用语言描述可能不太好理解。接下来看几个双指针…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...