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

什么是DNS劫持?

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

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劫持类型

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缓存中将错误的解析记录返回,从而将用户引导至错误的网站。

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等。

浅析DNS劫持及应对方案相关推荐

  1. 什么是DNS劫持?如何应对DNS劫持?

    什么是DNS劫持? DNS劫持是一种非常常见且有效的互联网攻击方式,供给制通过攻击域名解析服务器(DNS)或伪造域名解析服务器的方法,篡改目标网站的解析结果,将目标网站的域名解析到错误的地址,导致访问 ...

  2. ICANN敦促业界使用DNSSEC,应对DNS劫持攻击

    HTTPS加密 可以有效帮助服务器应对DNS欺骗.DNS劫持.ARP攻击等安全威胁.DNS是什么?DNS如何被利用?HTTPS如何防止DNS欺骗? DNS如何工作? 如果您想访问www.example ...

  3. 什么是DNS劫持?如何进行有效应对?

    今年6月份,美国政府以"违反制裁"为由关闭了伊朗30多个新闻媒体网站,将目标网站解析转移到了美国控制的IP上.此次事件中,美国"制裁"伊朗网站所采用的技术手段正 ...

  4. 手机被DNS劫持后的更改方案

    首先说什么是DNS劫持 DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的 ...

  5. 互联网安全威胁及应对方案

    一,互联网web应用面临的主要威胁 1. XSS 跨站脚本攻击(Cross Site Scripting), 即A站点的网页想办法跑到B站点上. 因为我们的网页都是javascript驱动的,所以js ...

  6. 互联网主要安全威胁解读及应对方案大讨论 | 高可用架构系列

    本次分享主题 据Gartner调查,绝大多数信息安全攻击都发生在Web应用层,而超过60%的Web网站都相当脆弱,在如此严峻的安全形势下,如何才能构建一个相对安全的网站成为大家关心的一个话题,蒋首席结 ...

  7. 第33篇:DNS劫持攻击原理讲解及溯源分析的常规步骤

     Part1 前言  在世界杯举办期间,DNS劫持事件估计会和链路劫持事件一样,风险提升很多.上期分享了一篇<第32篇:某运营商链路劫持(被挂博彩页)溯源异常路由节点(上篇)>,本期就讲一 ...

  8. domain,DNS,冗余,DNS劫持的大致原理

    一.domain 解释:域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建 ...

  9. DNS劫持DNSmasq详细解析及详细配置

    2019独角兽企业重金招聘Python工程师标准>>> 常用于测试使用,安装环境为MacOS 一.Dnsmasq介绍 Dnsmasq 提供 DNS 缓存和 DHCP 服务功能.作为域 ...

最新文章

  1. python实现nginx图形界面管理
  2. 福利 | 放送AI华人库试用名额!专项代码找到领域专家
  3. 讨论计算机在学术领域的应用,BGPLUS实地科研 | 卡内基梅隆大学 | 计算机、人工智能:在科学实验领域的应用...
  4. [原]排错实战——使用process explorer替换任务管理器
  5. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(执行安装_07)
  6. python求线段长度_python微元法计算函数曲线长度的方法
  7. 拉氏变换及复域传递函数
  8. 学习Azure Functions:在Visual Studio 2017中创建Azure Functions
  9. C++中常量指针,指针常量(const 和*)的使用方法和理解方法
  10. mysql查询优化~group by知多少
  11. Smplayer播放wmv视频文件
  12. KeyCue Mac 快捷键辅助工具
  13. android方法不混淆,Android 混淆时不混淆注解方法
  14. 图基(Tukey)检验
  15. Word中批量更新域的两个小方法;更新角标;更新引用
  16. 口袋妖怪lets go服务器维护中,口袋妖怪lets go攻略 口袋妖怪lets go新手攻略(中)...
  17. autojs之语音识别
  18. 《枯野抄》--奇妙的人性窥视抄
  19. PyQt:桌面程序设计的饕餮盛宴
  20. 基于bootstrap的富文本框——wangEditor【欢迎增加开发】

热门文章

  1. 百度彩蛋 - 要调皮,要捣蛋
  2. 彩蛋!springboot自定义banner
  3. Python笔记 之 计算商品复购
  4. 【远景能源】截取字符串
  5. 294页工业互联网基本概念及关键技术(附下载)
  6. 【原】Qone Mysql性能优化-实战篇
  7. unix服务器日志文件,16.6.8 配置UNIX系统日志服务器
  8. 嵌入式团队培训_数据结构和算法概述
  9. 最近有些怠慢了松懈了~~~
  10. mongoTemplate时间范围查询