关于dns劫持:面对DNS劫持只能坐以待毙吗

作者:白玙审核&校对:少焉编辑&排版:雯燕 DNS 劫持作为最常见的网络攻击形式,是每个站长或者运维团队最为头疼的事件。苦心经营的网站受到 DNS 劫持后,不仅会影响网站流量、权重,还会让用户置身于危险之中,泄露隐衷造成财产损失。 就是这样一个简略到不能再简略的攻击方式,在 2009 年制作了轰动寰球的“银行劫持案”,导致巴西最大银行 Banco Bradesco 银行近 1% 客户受到攻打而导致账户被盗。黑客利用宽带路由器缺点对用户 DNS 进行篡改——用户浏览黑客所制作的 Web 页面,其宽带路由器 DNS 就会被黑客篡改,因为该 Web 页面设有奇妙设计的恶意代码,胜利躲过安全软件检测,导致大量用户被 DNS 钓鱼欺骗。 网站被黑、被恶意镜像、被植入垃圾代码,景象不足为奇,其危害还包含: 钓鱼欺骗网上购物,网上支付有可能会被歹意指向别的网站,更加加大了个人账户泄密的危险;网站内呈现歹意广告;轻则影响网速,重则不能上网。但面对DNS劫持时,只能束手就擒吗? 知己知彼,什么是 DNS?DNS 即 Domain Name System 的缩写,域名零碎以分布式数据库的模式将域名和 IP 地址互相映射。简略的说,DNS 是用来解析域名的,在失常环境下,用户的每一个上网申请会通过 DNS 解析指向到与之相匹配的 IP 地址,从而实现一次上网行为。DNS 作为应用层协定,次要是为其余应用层协定工作的,包含不限于 HTTP、SMTP、FTP,用于将用户提供的主机名解析为 IP 地址,具体过程如下: (1)用户主机(PC 端或手机端)上运行着 DNS 的客户端; (2)浏览器将接管到的 URL 中抽取出域名字段,即拜访的主机名,比方 http://www.aliyun.com/ , 并将这个主机名传送给 DNS 利用的客户端; (3)DNS 客户机端向 DNS 服务器端发送一份查问报文,报文中蕴含着要拜访的主机名字段(两头包含一些列缓存查问以及分布式 DNS 集群的工作); (4)该 DNS 客户机最终会收到一份答复报文,其中蕴含有该主机名对应的 IP 地址; (5)一旦该浏览器收到来自 DNS 的 IP 地址,就能够向该 IP 地址定位的 HTTP 服务器发动 TCP 连贯。 ...

November 17, 2021 · 2 min · jiezi

关于dns劫持:前端面试每日-31-第498天

明天的知识点 (2020.08.26) —— 第498天 (我也要出题)[html] html哪个标签属性能够通过预解析DNS?[css] 你最不喜爱css的哪些个性是什么?为什么?[js] 列举出JS的全局函数[软技能] 你比去年的这个时候有哪些成长呢?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

August 26, 2020 · 1 min · jiezi

聊一聊DNS劫持那些事

作为《DNS攻击防范科普系列》的最后一篇,今天我们来好好聊聊DNS劫持。先回顾一下DNS劫持的概念?DNS劫持即通过某种技术手段,篡改正确域名和IP地址的映射关系,使得域名映射到了错误的IP地址,因此可以认为DNS劫持是一种DNS重定向攻击。DNS劫持通常可被用作域名欺诈,如在用户访问网页时显示额外的信息来赚取收入等;也可被用作网络钓鱼,如显示用户访问的虚假网站版本并非法窃取用户的个人信息。那DNS劫持到底有多大的危害呢?我们来看两个真实的大事件: DNS劫持大事记事件1、《AWS route53 BGP路由泄漏事件》事件危害:据不完全统计,DNS劫持导致两个小时内有多个用户的以太坊钱包被转账清空,共计至少13000美元的资产被黑客盗取。事件还原: 事件发生在2018年4月24日。黑客针对四段分配给AWS,本应作为AWS route53 DNS服务器服务地址的IP空间(205.251.192.0/23, 205.251.194.0/23, 205.251.196.0/23, 205.251.198.0/23)发布了虚假的BGP路由,导致在BGP泄漏的两个小时期间,本应该AWS route53 DNS服务器的DNS查询都被重定向到了黑客的恶意DNS服务器。且黑客DNS劫持的目标十分明确,恶意DNS服务器只响应对myetherwallet.com的查询,其他域名的查询均返回SERVFAIL。一旦用户没有注意“网站不安全”的提示而访问myetherwallet.com登录自己的以太坊钱包,黑客就可以轻易获取用户的私钥进而窃取用户的数字货币资产。正常情况的DNS,和劫持后的DNS的情况,请参考如下攻击示意图(来自cloudflare博客):正常情况: BGP泄漏后: 事件2、《巴西银行钓鱼事件》事件危害:黑客诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息。事件还原:事件发生在2018年。黑客利用D-Link路由器的漏洞,入侵了至少500个家用路由器。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上,最终诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息。 图片参考:bankinfosecurity 上面两个案例都是触目惊心啊。接下来我们来介绍一下黑客们是怎么做到DNS劫持的? DNS解析原理介绍劫持原理前,你需要先了解典型的DNS解析流程。 客户端发起递归DNS请求,本地递归DNS(大多数情况下为运营商DNS)或者公共DNS通过迭代查询请求多级的DNS权威服务器,并最终将查询结果返回给客户端。可以看到,一次完整的DNS查询:• 链路长。查询过程包含多次,多级的网络通信。• 参与角色多。查询过程涉及客户端,DNS递归服务器,权威服务器等角色。 在一次完整DNS查询链路的各个环节,其实都有可能被DNS劫持,下面的章节会逐一分析各种类型的DNS劫持。 DNS劫持分类我们按照客户端侧--递归DNS服务器--权威DNS服务器的路径,将DNS劫持做如下分类: 【一、本地DNS劫持】客户端侧发生的DNS劫持统称为本地DNS劫持。本地DNS劫持可能是: 黑客通过木马病毒或者恶意程序入侵PC,篡改DNS配置(hosts文件,DNS服务器地址,DNS缓存等)。黑客利用路由器漏洞或者破击路由器管理账号入侵路由器并且篡改DNS配置。一些企业代理设备(如Cisco Umbrella intelligent proxy)针对企业内部场景对一些特定的域名做DNS劫持解析为指定的结果。【二、DNS解析路径劫持】DNS解析过程中发生在客户端和DNS服务器网络通信时的DNS劫持统一归类为DNS解析路径劫持。通过对DNS解析报文在查询阶段的劫持路径进行划分,又可以将DNS解析路径劫持划分为如下三类: • DNS请求转发通过技术手段(中间盒子,软件等)将DNS流量重定向到其他DNS服务器。案例: ![图片来自《巫俊峰, 沈瀚. 基于旁路抢答机制的异网DNS管控实践. 电信技术[J]》](https://upload-images.jianshu... • DNS请求复制利用分光等设备将DNS查询复制到网络设备,并先于正常应答返回DNS劫持的结果。 案例:一个DNS查询抓包返回两个不同的应答。 • DNS请求代答网络设备或者软件直接代替DNS服务器对DNS查询进行应答。 案例:一些DNS服务器实现了SERVFAIL重写和NXDOMAIN重写的功能。 【三、篡改DNS权威记录】篡改DNS权威记录 我们这里指的黑客非法入侵DNS权威记录管理账号,直接修改DNS记录的行为。 案例:黑客黑入域名的管理账户,篡改DNS权威记录指向自己的恶意服务器以实现DNS劫持。 黑客黑入域名的上级注册局管理账户,篡改域名的NS授权记录,将域名授权给黑客自己搭建的恶意DNS服务器以实现DNS劫持。 黑客黑入域名的上级注册局管理账户,篡改域名的NS授权记录,将域名授权给黑客自己搭建的恶意DNS服务器以实现DNS劫持。(以上参考fireeye博客) DNS劫持应对策略DNS劫持在互联网中似乎已经变成了家常便饭,那么该如何应对各种层出不穷的DNS劫持呢?如果怀疑自己遇到了DNS劫持,首先要做的事情就是要确认问题。 如何确认DNS劫持查看路由器DNS配置是否被篡改。可以使用一些全网拨测的工具确认DNS劫持和其影响范围。在此隆重介绍一下,阿里的DNS域名检测工具于国庆后已经正式上线,地址是:https://zijian.aliyun.com/#/domainDetect  通过工具查看回复DNS应答的DNS服务器,确认DNS解析是否被重定向。• whatismydnsresolver http://whatismydnsresolver.com/移动端可以安装一些DNS相关的测试工具进行排查:• 安卓 ping & dns• IOS IOS iNetTools DNS劫持防范• 安装杀毒软件,防御木马病毒和恶意软件;定期修改路由器管理账号密码和更新固件。• 选择安全技术实力过硬的域名注册商,并且给自己的域名权威数据上锁,防止域名权威数据被篡改。• 选择支持DNSSEC的域名解析服务商,并且给自己的域名实施DNSSEC。DNSSEC能够保证递归DNS服务器和权威DNS服务器之间的通信不被篡改。阿里云DNS作为一家专业的DNS解析服务厂商,一直在不断完善打磨产品功能,DNSSEC功能已经在开发中,不日就会上线发布。• 在客户端和递归DNS服务器通信的最后一英里使用DNS加密技术,如DNS-over-TLS,DNS-over-HTTPS等。 ...

October 14, 2019 · 1 min · jiezi

百度APP移动端网络深度优化实践分享(一):DNS优化篇

本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为《百度App网络深度优化系列《一》DNS优化》,感谢原作者的无私分享。 一、前言网络优化是客户端几大技术方向中公认的一个深度领域,所以百度App给大家带来网络深度优化系列文章。 本系列文章目录如下: 《百度APP移动端网络深度优化实践分享(一):DNS优化篇》(* 本文)《百度APP移动端网络深度优化实践分享(二):网络连接优化篇》《百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇》 希望对大家在网络方向的学习和实践有所帮助。 百度起家于搜索,整个公司的网络架构和部署都是基于标准的internet协议,目前已经是全栈HTTPS,来到移动互联网时代后,总的基础架构不变,但在客户端上需要做很多优化工作。 DNS(Domain Name System),它的作用是根据域名查出IP地址,它是HTTP协议的前提,只有将域名正确的解析成IP地址后,后面的HTTP流程才能进行,所以一般做网络优化会首选优化DNS。 (本文同步发布于:http://www.52im.net/thread-24...) 二、相关文章《TCP/IP详解 卷1:协议 - 第14章 DNS:域名系统》 《全面了解移动端DNS域名劫持等杂症:技术原理、问题根源、解决方案等》 《美图App的移动端DNS优化实践:HTTPS请求耗时减小近半》 《现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》 《移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”》 《移动端IM开发者必读(二):史上最全移动弱网络优化方法总结》 三、技术背景DNS优化核心需要解决的问题有两点: 1)由于DNS劫持或故障造成的服务不可用,进而影响用户体验,影响公司的收入; 2)由于DNS调度不准确导致的性能退化,进而影响用户体验。 百度App承载着亿级流量,每年都会遇到运营商DNS劫持或运营商DNS故障,整体影响非常不好,所以DNS优化刻不容缓,通过下图会更直观的了解运营商劫持或故障的原理。 ▲ 运营商劫持或故障的原理 有关移动端DNS劫持等各种疑难杂症,详见文章《全面了解移动端DNS域名劫持等杂症:技术原理、问题根源、解决方案等》。 四、HTTPDNS4.1 概述 既然我们面临这么严峻的问题,那么我们如何优化DNS呢?答案就是HTTPDNS。 大部分标准DNS都是基于UDP与DNS服务器交互的,HTTPDNS则是利用HTTP协议与DNS服务器交互,绕开了运营商的Local DNS服务,有效防止了域名劫持,提高域名解析效率,下图是HTTPDNS的原理。 ▲ HTTPDNS原理 百度App HTTPDNS端上的实现是基于百度SYS团队的HTTPDNS服务,下图介绍了HTTPDNS的服务端部署结构。 ▲ HTTPDNS部署结构 HTTPDNS服务是基于BGP接入的,BGP英文Border Gateway Protocol,即边界网关协议,是一种在自治系统之间动态的交换路由信息的路由协议,BGP可以根据当前用户的运营商路由到百度服务点的对应集群上,对于第三方域名,服务点会通过百度部署在运营商的CDN节点向其他域名权威DNS发起查询,查询这个运营商下域名的最优IP。 百度App独立实现了端的HTTPDNS SDK,下图介绍了端HTTPDNS的整体架构。 ▲ 端HTTPDNS的整体架构 更多HTTPDNS的资料,请见:《全面了解移动端DNS域名劫持等杂症:技术原理、问题根源、解决方案等》、《美图App的移动端DNS优化实践:HTTPS请求耗时减小近半》。 4.2 DNS接口层 DNS接口层解决的问题是屏蔽底层的细节,对外提供简单整洁的API,降低使用者的上手成本,提高开发效率。 4.3 DNS策略层 DNS策略层通过多种策略的组合,使HTTPDNS服务在性能,稳定性,可用性上均保持较高的水准,下面讲解下每个策略设计的初衷和具体实现。 【4.3.1 容灾策略】: 这是一个非常关键的策略,主要解决HTTPDNS服务可用性的问题,实践证明,这个策略帮助百度App在异常情况下挽救回很多流量。 (1)当HTTPDNS服务不可用并且本地也没有缓存或者缓存失效的时候,会触发降级策略,降级成运营商的localDNS方案,虽然存在运营商事故或者劫持的风险,但保障了DNS服务的可用性。 (2)当HTTPDNS服务和localDNS服务双双不可用的情况下,会触发backup策略,使用端上的backup IP。 什么是backup IP?backup IP是多组根据域名分类的IP列表,可云端动态更新,方便后续运维同学调整服务端的节点IP,不是所有域名都有对应的backup IP列表,目前百度App只能保证核心域名的可用性。 既然是一组IP,便有选取问题,backup IP选取机制是怎样的呢?我们的中心思想就是要在端上利用最小的代价,并且考虑服务端的负载均衡,得到相对正确或者合理的选取结果。通过运营商和地理信息,可以选择一个相对较优的IP,但获取地理信息需要很大耗时,外加频次很高,代价很大,所以我们选择了RR算法来代替上面的方法(RR算法是Round-Robin,轮询调度),这样客户端的代价降低到最小,服务端也实现了负载均衡。 【4.3.2 安全策略】: ...

April 22, 2019 · 1 min · jiezi