当前位置: 首页 > 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)】双指针模板

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

免费常用的API接口大全

免费常用的API接口大全 OPEN AI : ChatGPT 能够模拟人类的语言行为,与用户进行自然的交互。ChatGPT 可以用于处理多种类型的对话,包括对话机器人、问答系统和客服机器人等。它还可以用于各种自然语言处理任务,比如文本摘要、情感分…...

【HTML】第 2 节 - HTML 标签

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、标题标签 3、段落标签 4、文本格式化标签 5、图像标签 5.1、基本作用 5.2、属性 6、超链接标签 7、音频标…...

MATLAB算法实战应用案例精讲-【数模应用】残差检验(附Java、python和MATLAB代码)

目录 几个高频面试题目 线性回归残差是否一定满足正态分布? 一般情况 特殊情况...

初学Qt(Day03)

今天概览 今天的目标是写一个动态的彩虹灯 一开始是有思路的。只是写的过程中有太多小bug了,真的是防不胜防 我的思路是: 主界面是一个开始界面,点击开始按钮之后,有一个子界面出现,显示出彩虹灯转动的效果。 内部的执…...

皮卡丘xss之htmlspecialchars、xss之href输出、xss之js输出

1.xss之htmlspecialchars htmlspecialchars()函数的功能如下: htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是: (1)& (和号)成为 & (2)…...

ArrayList和LinkedList的区别

ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。 LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比&#xf…...

记录 vue3 webpack 使用 iframe 遇到的坑

需求 我尝试用Vue3写一个自己的主页,把常用的功能集中到主页中,如下图 后发现一个好玩的东西,js实现的在网页底部出现鱼和波浪,如下图,就像想也放到自己的主页中,搜索后发现可以在Vue中用iframe标签直接引…...

华为OD机试真题 Java 实现【去除多余空格】【2023Q1 100分】

一、题目描述 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。 条件约束: 不考虑关键词起始和结束位置为空格的场景;单词的的开始和结束下标保证涵盖一个完整的单词,即一个坐标对开始和结束…...

SAP-MM 条件类型字段解析

01、“定价类型”:定义此条件类型的代码和描述,代码不能重复,描述可更改,根据实际需要,条件类型可定制; 02、“存取顺序”:表示此条件类型在定价时,要到存取顺序号定义的条件表中读…...

C#,码海拾贝(28)——求解“对称正定方程组”的“平方根法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…...