浅谈DNS劫持及安全应对措施

xiaoxiao2021-02-28  42

由于博主公司是从事金融行业的, 所以在安全方面还是很重视的。而且现在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 的网站也能被黑客监听到数据吗?

转载请注明原文地址: https://www.6miu.com/read-645969.html

最新回复(0)