简介: 借助 ARMS-云拨测,我们可实时对网站进行监控,实现分钟级别的监控,及时发现 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 中抽取出域名字段,即访问的主机名,比如 阿里云-上云就上阿里云 , 并将这个主机名传送给 DNS 应用的客户端;

(3)DNS 客户机端向 DNS 服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式 DNS 集群的工作);

(4)该 DNS 客户机最终会收到一份回答报文,其中包含有该主机名对应的 IP 地址;

(5)一旦该浏览器收到来自 DNS 的 IP 地址,就可以向该 IP 地址定位的 HTTP 服务器发起 TCP 连接。

(图片源自网络,仅作示意)

可以看到想要获取目标网站 IP,除了在本机中查找行为,还需要第三方服务器(DNS)参与。但只要经过第三方服务,网络就不属于可控制范围,那么就有可能产生 DNS 挟持,比如获取的 IP 并不是实际想要的 IP,从而打开非目标网站。网站在经过本地 DNS 解析时,黑客将本地 DNS 缓存中的目标网站替换成其他网站的 IP 返回,而客户端并不知情,依旧按照正常流程寻址建并立连接。如果一些黑客想要盗取用户账号及密码时,黑客可以做跟目标网站一模一样的木马页面,让用户登录,当用户输入完密码提交的时候就中招了。

常见 DNS 劫持手段又有哪些?

(1)利用 DNS 服务器进行 DDoS 攻击

正常 DNS 服务器递归询问过程被利用,变成 DDoS 攻击。假设黑客知晓被攻击机器 IP 地址,攻击者使用该地址作为发送解析命令的源地址。当使用 DNS 服务器递归查询后会响应给最初用户。如果黑客控制了足够规模的肉鸡进行上述操作。那么,这个最初用户就会受到来自于 DNS 服务器的响应信息 DDoS 攻击,成为被攻击者。

(2)DNS 缓存感染

黑客使用 DNS 请求将数据注入具有漏洞的 DNS 服务器缓存中。这些缓存信息会在客户进行 DNS 访问时返回给用户,把用户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,或通过伪造邮件和其他服务获取用户口令信息,导致客户遭遇进一步侵害。

(3)DNS 信息劫持

原则上 TCP/IP 体系通过序列号等多种方式避免仿冒数据插入,但黑客通过监听客户端和 DNS 服务器对话,就可以解析服务器响应给客户端的 DNS 查询 ID。每个 DNS 报文包括一个相关联的 16 位 ID,DNS 服务器根据这个 ID 获取请求源位置。黑客在 DNS 服务器之前将虚假响应交给用户,欺骗客户端去访问恶意网站。假设当提交给某个域名服务器域名解析请求的数据包被截获,然后按黑客的意图将虚假 IP 地址作为应答信息返回给请求者。这时,原始请求者就会把这个虚假 IP 地址作为它所要请求的域名而进行连接,显然它被引导到了别处而根本连接不上自己想要连接的那个域名。

(4)ARP 欺骗

通过伪造 IP 地址和 MAC 地址实现 ARP 欺骗,在网络中产生大量 ARP 通信量使网络阻塞,黑客只要持续不断发出伪造的 ARP 响应包就能更改目标主机 ARP 缓存中的 IP-MAC 条目,造成网络中断或中间人攻击。ARP 攻击主要是存在于局域网网络中,局域网中若有一台计算机感染 ARP 木马,则感染该 ARP 木马的系统将会试图通过"ARP 欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。ARP 欺骗通常是在用户局网中,造成用户访问域名的错误指向,但在 IDC 机房被入侵后,则也可能出现攻击者采用 ARP 包压制正常主机、或者压制 DNS 服务器,以使访问导向错误指向。

DNS 劫持对业务造成哪些影响?

一旦被劫持,相关用户查询就没办法获取到正确 IP 解析,这就很容易造成:

(1)很多用户习惯依赖书签或者易记域名进入,一旦被劫持会使这类用户无法打开网站,更换域名又没办法及时告知变更情况,导致用户大量流失。

(2)用户流量主要是通过搜索引擎 SEO 进入,DNS 被劫持后会导致搜索引擎蜘蛛抓取不到正确 IP,网站就可能会被百度 ban 掉。

(3)一些域名使用在手机应用 APP 调度上,这些域名不需要可以给客户访问,但这些域名的解析关系到应用 APP 访问,如果解析出现劫持就会导致应用 APP 无法访问。这时候更换域名就可能会导致 APP 的下架,重新上架需要审核并且不一定可以重新上架。这就会导致应用 APP 会有用户无法访问或者下载的空窗期。

可以看到,DNS 劫持对业务有着巨大影响,不仅仅是用户体验的损失,更是对用户资产安全、数据安全的造成潜在的巨大风险。

我们该如何监测网站是否被 DNS 劫持?

借助 ARMS-云拨测,我们实时对网站进行监控,实现分钟级别的监控,及时发现 DNS 劫持以及页面篡改。

劫持检测

  • DNS 劫持监测

利用域名白名单、元素白名单,有效探测域名劫持以及元素篡改情况。在建立拨测任务时,我们可以设置 DNS 劫持白名单。比如,我们配置 DNS 劫持格式的文件内容为 www.aliyun.com:201.1.1.22|250.3.44.67。这代表 www.aliyun.com 域名下,除了 201.1.1.22 和 250.3.44.67 之外的都是被劫持的。

  • 页面篡改监测

我们把原始页面的元素类型加入页面篡改白名单,在进行拨测时将加载元素与白名单对比,判断页面是否被篡改。比如,我们配置页面篡改的文件内容为 www.aliyun.com:|/cc/bb/a.gif|/vv/bb/cc.jpg,这代表着 www.aliyun.com 域名下,除了基础文档 、/cc/bb/a.gif 和 /vv/bb/cc.jpg 之外的元素都属于页面被篡改。再比如,我们配置页面篡改的文件内容为 www.aliyun.com:*,代表:www.aliyuyn.com 域名下所有的元素都不认为是被篡改。

劫持告警

在持续监测的同时,及时告警也至关重要。通过灵活配置劫持告警比例,当任务的劫持比例大于阈值,即迅速通知相关运维团队,对网站进行维护,确保用户的数据安全以及网站的正常浏览。

在提升用户体验的同时,确保网站以及用户资产安全对于企业而言同样至关重要。云拨测为你的网站安全与用户体验保驾护航!

关于云拨测

云拨测作为面向业务的非侵入式云原生监测产品,成为最佳的选择。通过阿里云遍布全球的服务网络,模拟真实用户行为,全天候持续监测网站及其网络、服务、API 端口可用性与性能。实现页面元素级、网络请求级、网络链路级细颗粒度问题定位。丰富的监测关联项与分析模型,帮助企业及时发现与定位性能瓶颈与体验暗点,压降运营风险,提升服务体验与效能。

原文链接

本文为阿里云原创内容,未经允许不得转载。

面对DNS劫持,只能坐以待毙吗?的更多相关文章

  1. openwrt-智能路由器hack技术(1)---"DNS劫持"

    openwrt-智能路由器hack技术(1)---"DNS劫持" 1   导读 PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整 ...

  2. 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击

    有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...

  3. 关于全站https必要性http流量劫持、dns劫持等相关技术

    关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...

  4. DNS劫持(网页打不开的解决方法)

    我们上网,必不可少的就是DNS,在这里先介绍下DNS的相关知识. DNS 是域名系统 (Domain NameSystem) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

  5. dns劫持分析

    最近在做dns解析,关注的重点在查询域名ns记录上,异常日志中捕获到一个域名,dig查询: 查询请求类型为ns,dig结果确只有一条A记录.处于好奇,查询类型改为a类型: 这个域名dig 查询A记录, ...

  6. DNS 劫持、HTTP 劫持与 DNS 污染

    本文为本人的学习笔记,不保证正确. DNS 劫持 指DNS服务器被控制,查询DNS时,服务器直接返回给你它想让你看的信息.这种问题常为 ISP 所为. 由于一般的的电脑的 DNS 服务器 的配置都为自 ...

  7. 告别DNS劫持,一文读懂DoH

    如果评选一个差评服务器榜单,除去育碧高居榜首外,一定也少不了 Nintendo Switch 让人头秃的联网服务.尽管任天堂已经架设了香港 CDN 服务器用于加速,但是更新安装的速度也没有什么大幅改变 ...

  8. 一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持

    目录 XSS 攻击 SQL 注入 CSRF 攻击 DDOS 攻击 DNS 劫持 XSS 攻击 全称跨站脚本攻击 Cross Site Scripting 为了与重叠样式表 CSS 进行区分,所以换了另 ...

  9. DNS劫持解决方法

    刚在家上网,发自己的浏览器竟然还会弹出页面广告(我浏览器装了屏蔽广告的浏览器应用,理论上就不会出现什么弹出来的广告). 于是自己仔细研究了下,发现在易迅的页面竟然嵌套了一个iframe,首先易迅肯定不 ...

  10. DNS劫持和DNS污染的区别

    我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...

随机推荐

  1. FFmpeg命令行之ffprobe

    一.简述 ffprobe是ffmpeg命令行工具中相对简单的,此命令是用来查看媒体文件格式的工具. 二.命令格式 在命令行中输入如下格式的命令: ffprobe [文件名] 三.使用ffprobe查看 ...

  2. 使用docker-compose管理freeswitch容器

    概述 之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器. 但是当我们需要同时管理多个docker容器的时候,还是使用docker-c ...

  3. [pyplot]在同一画面上绘制不同大小的多个图像

    一.背景 做计算机应用数学作业时要求使用matplotlib库在同一张图上绘制两个图像,但是这两个图像的大小不同,百度之后发现大部分只是转载的同一篇博客,而且只能实现部分子图比例排版,并不能随意设置各 ...

  4. 利用kali自带的msfvenom工具生成远程控制软件

    一.首先还是得打开postgresql service postgresql start 然后让我们看看它有哪些功能 部分参数 -p 选择一个载荷,或者说一个模块吧. -i 载荷列表 -f 生成的文件 ...

  5. C# 调用C++DLL时释放非托管内存

    方法一 改变非托管内存的分配方法,将其修改成采用COM的内存分配方法CoTaskMemAlloc来分配内存.这样封送拆收器在释放非托管内存时,就能自动调用COM的内存释放方法CoTaskMemFree ...

  6. WC-Write Combining 合并写技术

    WC-Write Combining 合并写技术 为了提高写效率: CPU在写入L1时,同时用WC写入L2 实验代码: public class WriteCombining { private st ...

  7. 鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)

    一.mediaquery 1.概述 媒体查询(mediaquery)它允许根据设备的不同特性(如屏幕大小.屏幕方向.分辨率.颜色深度等)来动态地调整网页的样式和布局. 通过媒体查询,可以为不同的设备定 ...

  8. KingbaseES 名词解释之timeline

    timeline定义 每当归档文件恢复完成后,创建一个新的时间线用来区别新生成的WAL记录.WAL文件名由时间线和日志序号组成 引入timeline的意义 为了理解引入时间线的背景,我们来分析一下,如 ...

  9. AT-abc347(C,D)

    AtCoder Beginner Contest 347 C - Ideal Holidays 这场做得最头疼的题 分析 容易想到先用$(d_i+a+b-1)%(a+b)+1$把$d_i$映射到$[1 ...

  10. JDK14性能管理工具:jmap和jhat使用介绍

    目录 简介 jmap clstats finalizerinfo histo dump jhat 总结 简介 我们在写代码的过程中,经常会遇到内存泄露的问题,比如某个集合中的对象没有被回收,或者内存出 ...