浅析DNS劫持及应对方案

news2025/7/18 8:36:54

DNS是网络连接中的重要一环,它与路由系统共同组成互联网上的寻址系统,如果DNS遭遇故障,“导航系统”失效,网络连接就会出现无法触达或到达错误地址的情况。由于的DNS重要作用及天生脆弱性,导致DNS自诞生之日起,就成为网络攻击的重点目标,其中DNS劫持是最常见危害最大的攻击方式。接下来,本文针对DNS劫持原理和应对方式做下简单介绍。

什么是DNS劫持?

DNS劫持就是通过各种技术手段取得域名的解析控制权,进而修改域名的解析记录,将域名指向的服务器IP修改为受控制的IP地址,从而将用户引导至虚假网站,实现窃取用户信息,破坏正常服务的目的。

DNS劫持的危害

DNS劫持的危害是双向多面的。对于用户而言,它通过将用户引导至与原网站十分相似的网站,并诱导用户输入账号、密码、身份证等敏感信息,从而造成个人信息泄露、财产损失等风险。对于企业机构而言,它会让企业机构失去对域名的控制权,导致站点不能访问,正常流量流失,业务无法正常运行,进而对企业形象和经济利益造成影响。
DNS劫持示意图

DNS劫持案例

(1)2009年巴西最大银行Bandesco巴西银行遭遇DNS劫持,1%的用户被钓鱼。受影响的用户被重定向到另一个虚假银行网站,该网站试图窃取用户密码并安装恶意软件。

(2)2010年1月12日,发生著名的“百度域名被劫持”事件,很多网民发现百度首页无法登录的异常情况。而根据百度域名的whois查询结果发现,该网站域名被劫持到雅虎下面的两个域名服务器,另有部分网民发现网站页面被篡改成黑色背景和伊朗国旗,对百度的安全形象和业务运行造成非常恶劣的影响。

(3)2012年,日本三井住友银行、三菱东京日联银行和日本邮储银行提供的网上银行服务都被钓鱼网站劫持,出现试图获取用户信息的虚假页面,当用户登录官网网站后,会弹出要求用户输入账号密码的页面,页面上还显示银行的标志,如果不仔细分辨,很难分清真假。

(4)2013年5月,发生史上最大规模的DNS钓鱼攻击事件,造成800用户被感染。

(5)2014年1月21日,全国出现大范围DNS故障,中国顶级域名根服务器发生故障,造成大部分网站受影响。

从上面这些案例中可以看出DNS劫持是一种范围波及大、影响深远的网络攻击手段,不但对用户的信息财产安全造成严重的威胁,也会对企业的品牌形象、线上流量以及业务开展产生巨大损失,因此了解DNS劫持原理并针对性地做好应对策略至关重要。

DNS劫持原理

介绍DNS劫持原理,需要首先了解典型的DNS解析流程。当客户端发起域名请求时,本地递归服务器(大多数情况下为运营商DNS)或公共DNS会通过向根域名服务器、顶级域名服务器到权威域名服务器一级一级查询,并将最终查询结果返回给客户端。

除了这种典型解析流程外,由于DNS缓存的存在,当客户端发起请求时,浏览器缓存、hosts文件、本地递归服务器DNS缓存会先将本地储存的解析记录直接告知客户端,从而省去全球递归查询的步骤。

从上面DNS解析流程中可以看出,一次完整的DNS查询具备以下两个特点:

链路长,查询过程包含多次、多级网络通信;

参与角色多,查询过程涉及客户端(浏览器缓存、hosts文件)、递归解析服务器、权威解析服务器等角色。

在一次完整DNS查询链路的各个环节,都可以通过技术手段将域名解析记录进行篡改,将域名指向劫持到错误的IP地址上。下面会逐一介绍各类型的DNS劫持。
DNS解析流程图

DNS劫持类型

1.本地DNS劫持

本地DNS劫持是指发生在客户端侧的各类DNS劫持,包括:

(1)通过木马或者恶意程序入侵客户端,篡改DNS缓存、hosts文件、DNS服务器地址等DNS相关配置;

(2)利用路由器漏洞入侵路由器,并针对路由器中的DNS缓存进行篡改。

2.DNS解析路径劫持

DNS解析路径劫持是指发生在客户端和DNS服务器网络通信间的DNS劫持方式。通过对DNS劫持报文在查询阶段的路径进行划分,又可将DNS劫持分为四类:

(1)DNS请求转发

通过中间盒子、软件等技术手段将用户发出的DNS请求重定向到由攻击者控制的流氓DNS服务器,从而将其重定向到恶意站点。

(2)DNS请求复制

将DNS查询复制到网络设备,并在用户发起请求时先于正常应答返回DNS劫持的结果,这种方式表现为一个DNS查询抓包返回两个不同的应答。

(3)DNS请求代答

通过利用网络设备或软件代替DNS服务器对DNS查询进行应答。

(4)DNS缓存感染

DNS缓存感染是指攻击者在递归解析服务器投入错误的缓存信息,当访问者发起解析请求时,递归服务器就会从DNS缓存中将错误的解析记录返回,从而将用户引导至错误的网站。
DNS缓存污染原理图
3.篡改DNS权威记录

篡改DNS权威记录是指攻击者非法入侵DNS权威记录管理平台账号,控制DNS解析设置权限,直接修改DNS解析记录的行为。通过这种方式可以将权威服务器下特定域名的解析指向恶意服务器以实现DNS劫持的目的。

DNS劫持应对方案

(1)安装杀毒软件,可以有效防御木马病毒和恶意软件,并定期修改路由器管理账号密码和更新固件;

(2)企业端可以设置更小的TTL值,实现DNS缓存的短时间更新,用户端可以定期刷新DNS缓存,从而让用户发起请求时尽可能去请求权威服务器,降低DNS缓存被污染的可能;

(3)加强域名账户的安全等级,使用强度较高的密码,并定期更换密码;

(4)定期查看域名账户信息、域名whois信息以及域名解析生效状态,发现异常及时联系域名服务商;

(5)选择安全技术实力过硬的域名注册商,并且给自己的域名权威数据上锁,防止域名权威数据被篡改。

(6)在客户端和递归DNS服务器通信的最后阶段中使用DNS加密技术,如DNS-over-TLS,DNS-over-HTTPS等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React源码解读之任务调度

React 设计体系如人类社会一般,拨动时间轮盘的那一刻,你便成了穿梭在轮片中的一粒细沙,角逐过程处处都需要亮出你的属性,你重要吗?你无可替代吗?你有特殊权限吗?没有,那不好意思&…

Autosar模块介绍:AutosarOS(5)

上一篇 | 返回主目录 | 下一篇 AutosarOS:错误处理、跟踪与调试(5)1 钩子例程2 错误处理(ErrorHook)3 系统启动(StartupHook)4 系统关闭(ShutdownHook)5 系统保护&#x…

【面试题】margin负值问题

margin-top和margin-left负值&#xff0c;元素向上、向左移动&#xff1b;margin-right负值&#xff0c;右侧元素左移&#xff0c;自身不受影响&#xff1b;margin-bottom负值&#xff0c;下方元素上移&#xff0c;自身不受影响&#xff1b; 1. margin top left为负数 <st…

0095 贪心算法,普利姆算法

import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; /* * 贪心算法 * 1.指在对问题进行求解时&#xff0c;在 每一步 选择中都采取最好或最优的选择&#xff0c;希望能够导致结果是最好或最优的算法 * 2.所得到的结果不一定是最优结果&…

【SSH远程登录长时间连接后容易出现自动断开的解决方案】

SSH远程登录长时间连接后容易出现自动断开的解决方案0 问题描述1 方法一1.1 打开ssh_config文件1.2 在文件中添加以下内容1.3 重启ssh2 方法二2.1 打开sshd_config文件2.2 在文件中添加以下内容2.3 重启ssh0 问题描述 使用SSH连接远程服务器的时候 报出 client_loop send disc…

时序分析 48 -- 时序数据转为空间数据 (七) 马尔可夫转换场 python 实践(下)

时序分析 48 – 时序数据转为空间数据 (七) 马尔可夫转换场 python 实践&#xff08;下&#xff09; … 接上 从MTF到图模型 从MTF中我们可以生成图 &#x1d43a;(&#x1d449;,&#x1d438;)&#x1d43a;(&#x1d449;,&#x1d438;)G(V,E) &#xff0c;节点V和时间…

Redis从理论到实战:使用Redis实现商铺查询缓存(逐步分析缓存更新策略)

文章目录一、什么是缓存二、缓存的作用三、添加商户缓存四、分析缓存更新策略1、删除缓存还是更新缓存&#xff1f;2、如何保证缓存与数据库的操作同时成功或失败&#xff1f;3、先操作缓存还是先操作数据库&#xff1f;加油加油&#xff0c;不要过度焦虑(#^.^#) 一、什么是缓存…

ThreadLocal为什么会出现内存泄漏,你真的知道吗?

目录 1 前言 2 ThreadLocal进行线程隔离的小示例 3 原因 1 前言 大家想要搞清楚这个问题&#xff0c;就必须知道内存泄漏和内存溢出的区别 内存泄漏&#xff1a;不就被使用的对象或者变量无法被回收 内存溢出&#xff1a;没有剩余的空间来创建新的对象 2 ThreadLocal进行…

Java中的字符串

&#x1f649; 作者简介&#xff1a; 全栈领域新星创作者 &#xff1b;天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求&#xff0c;把分享变成一种习惯&#xff0c;再小的帆也能远航。 &#x1f3e1; 个人主页&#xff1a;xiezhr的个人主页 java中的字符串一、简…

C++:重定义:符号重定义:变量重定义

概述&#xff1a;在上一篇我们知道 通过 #ifndef....#defin....#endif &#xff0c; 这个解决头文件重复包含的问题 C&#xff1a;重定义&#xff1a;class类型重定义_hongwen_yul的博客-CSDN博客 避免头文件的重复包含可以有效的避免变量的重复定义&#xff0c;其实不光变量…

[附源码]java毕业设计基于web旅游网站的设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

使用Docker开发GO应用程序

根据Stack Overflow的2022开发者调查&#xff0c;Go&#xff08;或Golang&#xff09;是最受欢迎和最受欢迎的编程语言之一。由于与许多其他语言相比&#xff0c;Go的二进制大小更小&#xff0c;开发人员经常使用Go进行容器化应用程序开发。 Mohammad Quanit在他的社区全能课程…

小程序vant-tabbar使用示例,及报错处理

小程序vant-tabbar使用示例&#xff0c;及报错处理1. 配置信息2. 添加 tabBar 代码文件3. 编写 tabBar 代码custom-tab-bar/index.tscustom-tab-bar/index.jsoncustom-tab-bar/index.wxml使小程序使用vant-tabbar组件时&#xff0c;遇到以下报错&#xff1a;Couldn’t found th…

Java基于springboot+vue的儿童玩具销售购物网站 多商家

爱玩儿是所有孩子的天性。尤其是在婴幼儿阶段。选择一个好的玩具&#xff0c;不仅能够让孩子玩儿的开心&#xff0c;而且有助于孩子智力的开发。很多家长在选择玩具的时候&#xff0c;不知道选择什么样的玩具。且当前玩具市场的玩具鱼目混杂&#xff0c;种类繁多&#xff0c;而…

SAR信号处理基础1——线性调频信号

关键字&#xff1a;线性调频信号&#xff0c;LFM信号&#xff0c;chirp信号&#xff0c;驻定相位原理&#xff08;POSP&#xff09;&#xff0c;泰勒展开&#xff0c;Taylor展开&#xff0c;脉冲压缩&#xff0c;匹配滤波&#xff0c;sinc&#xff0c;分辨率&#xff0c;峰值旁…

QProgressDialog.close()失败,进度条关闭感觉失败了,无法彻底关闭

开发环境&#xff1a;我是在deepin&#xff08;深度&#xff09;系统下开发的&#xff0c;在我本机上&#xff0c;一点问题也没有&#xff0c;但是我移植到了ubantu的机子上&#xff0c;就偶尔出现出个问题&#xff0c;出现了一个模态框&#xff0c;需要重启软件才能关闭。 问题…

Vue的computed和watch的区别是什么?

一、computed介绍 computed 用来监控自己定义的变量&#xff0c;该变量在 data 内没有声明&#xff0c;直接在 computed 里面定义&#xff0c;页面上可直接使用。 //基础使用 {{msg}} <input v-model"name" /> //计算属性 computed:{msg:function(){return …

【MySQL】MySQL日志系统以及InnoDB背后的技术(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

Java基于springboot+vue的个人博客网站 前后端分离

随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多网站的之中&#xff0c;随之就产生了“博客网站”&#xff0c;这样就让博客网站更加方便简单。 对于本博客网站的设计来说&#xff0c;系统开发主要是采用java语言技…

2022国产8K摄像机介绍

摄像机是一种把光学图像信号转变为电信号&#xff0c;以便于存储或者传输的设备。当我们拍摄一个物体时&#xff0c;此物体上反射的光被摄像机镜头收集&#xff0c;使其聚焦在摄像器件的受光面&#xff08;例如摄像管的靶面&#xff09;上&#xff0c;再通过摄像器件把光转变为…