由于博主公司是从事金融行业的, 所以在安全方面还是很重视的。而且现在iOS基本全部的应用都改用HTTPS
协议了, 那还有必要针对DNS劫持
做出安全措施吗? 今天咱们来谈一谈。
关于DNS劫持
DNS劫持
又称域名劫持
,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。一般的, 域名劫持通常相伴的措施——封锁正常DNS的IP。
DNS劫持案例
2009年, 巴西一家最大银行Bandesco巴西银行,曾遭受DNS缓存病毒攻击,1%用户被钓鱼。 2010年, “百度域名被劫持”事件。 2012年,日本三家银行各自提供的网上银行服务都被钓鱼网站劫持,出现要求用户输入信息的虚假页面。 2013年,DNS钓鱼攻击已经突破国内安全防线,可能已经导致数百万用户感染, 黑客可在安全软件无感知情况下篡改DNS并将用户引导到钓鱼网站,轻易骗取用户账号密码等信息。
关于DNS
DNS
(Domain Name System,域名系统
),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
通常 Internet 主机域名的一般结构为:主机名
.三级域名
.二级域名
.顶级域名
。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。
全世界现有三个大的网络信息中心:
1.位于美国的 Inter-NIC
,负责美国及其他地区。
2.位于荷兰的RIPE-NIC
,负责欧洲地区。
3.位于日本的APNIC
,负责亚太地区。
DNS劫持的流程
- 攻击者黑下一批网站。
- 攻击者往这批网站里植入路由DNS劫持代码。
- 攻击者等待目标用户访问这批网站。
- 用户访问这些网站后,就会执行“路由DNS劫持代码”。
- 用户的路由器如果存在漏洞就会中招。
- 用户上网流量被劫持。
HTTPS的DNS劫持的原理
HTTPS
是以安全为目标的HTTP
通道,简单讲是HTTP
的安全版。即HTTP
下加入SSL
层,HTTPS
的安全基础是SSL
,因此加密的详细内容就需要SSL
。之所以大家都认为不能嗅探HTTPS
请求的原因是来自对加密SSL层
的信任,那么黑客是怎么做到的嗅探HTTPS
?
当然, HTTPS
也是可以被黑客劫持的, 简单的说黑客为了绕过HTTPS
,采用了SSL层
剥离的技术,黑客阻止用户和使用HTTPS
请求的网站之间建立SSL
连接,使用户和代理服务器(攻击者所控服务器)之间使用了未加密的HTTP
通信。
HTTPS为例的DNS劫持原理
黑客可以使用一款工具来实施攻击, 比如SSLStrip
,他能够阻止用户和使用HTTPS
请求的网站之间建立SSL层
连接,进行中间人劫持。因为使用SSLStrip
会提醒用户连接没有使用SSL
加密,黑客为了迷惑用户,重写了URL,在域名前加了“ssl-.”的前缀,当然这个域名是不存在的,只能在黑客的恶意DNS
才能解析。
这种攻击往往不是基于服务端,特别是SSL Stripping
技术,其攻击手法不是针对相应固件也不是利用固件漏洞。
SSLStrip的工作原理
- 进行中间人攻击来劫持
HTTP
请求流量。 - 将出现的
HTTPS
链接全部替换为HTTP
,同时记录所有改变的链接。 - 使用
HTTP
与受害者机器链接。 - 同时与合法的服务器建立
HTTPS
。 - 受害者与合法服务器之间的全部通信请求经过代理(攻击者服务器)转发。
- 完成劫持请求
原理图如下:

DNS劫持的变种
- 攻击者黑下一批网站 ,往这批网站里植入路由DNS劫持代码。
- 攻击者传播或坐等目标用户访问这批网站。
- 用户访问这些网站后,浏览器就会执行“路由DNS劫持代码”。
- 用户的家庭/公司路由器如果存在漏洞就会中招。
- 然后用户上网流量被“假DNS服务器”劫持。
如何预防DNS劫持
拿TP-Link
举例,浏览器访问192.168.1.1
,输入账号密码登陆 -> 网络参数 -> WAN口设置 -> 高级设置 -> 看看里面DNS的IP是否勾选了“手动设置DNS服务器”。
- 如果你没有人工设置过,但勾选了,那就要警惕是否被黑客篡改了。
- 如果没勾选,一般情况下没有问题。
- 检查
DNS IP
是否正常:在百度上搜索下里面的DNS IP
看看是不是国内的,如果是国外的则需要警惕了! 除非是Google
的8.8.8.8
这个,看看百度的搜索结果有没有谁讨论过这个DNS IP
的可疑情况,有些正常DNS IP
也会有人讨论质疑,这个需要大家自行判断一下,实在没把握就设置DNS IP
如下: - 主DNS服务器:
114.114.114.114
,备用DNS服务器为:8.8.8.8
App的安全应对措施
对于做金融行业的App来说, 甚至涉及到本应用内自主支付的App(比如说可以直接从本应用的账户余额中直接支付的应用), 这样的App其实都需要做好这样的安全应对措施, 以防止用户账户信息泄露, 造成用户的财产损失。
这里说针对DNS劫持
后的应对措施, 至于如何预防, 在此不会介绍。根本的原理是替换被劫持DNS的域名, 将服务切换至另外的服务器上。
在另外的服务器上以IP地址方式直接请求获取用户正常请求域名。由于DNS劫持
是基于DNS解析的, 所以如果以IP地址直接为URL进行请求是不会发生此问题的。比如说你的请求地址为https://www.abc.com
, 这里请求直接使用IP地址 https:115.135.222
。 当然一般的, 这个服务器不是用户正常请求的服务器, 而是另外的一个, 最好是单独的, 因为这个IP地址已经将此服务器的IP地址暴露了。
当然, 你如果在本地设置几个备用域名也是可以的, 只是这样可能更加灵活, 具体的方式, 你要根据和后台及运维的协商。
DNS解析过程

相关资料
DNS(域名系统)
DNS解析过程详解
DNS解析完整流程
DNS劫持
使用 HTTPS 的网站也能被黑客监听到数据吗?
欢迎指正, wangyanchang21.