专栏首页八点半技术站教懂你什么是 “ 流量劫持 ”

教懂你什么是 “ 流量劫持 ”

概述 :

Wo - 公号「八点半技术站」的创作者 - Bruce.D (姓氏:豆)。

今日主题:流量劫持、大家经常会看到公司的一些首页被插入一些小广告,这也就是流量劫持,今儿分享一下当前劫持的几个方法以及防劫持知识。

欢迎各位加入社群,技术交流不分语言、不分高低 。(本篇阅读预计花费:7分钟)

内容 :

流量劫持划分成3大部分:DNS劫持、数据劫持、劫持监控。

DNS劫持:

首先聊聊这个,域名劫持是互联网一种攻击方式,通过攻击 DNS服务器 或者 伪造DNS 服务器方法,把目标服务器网站域名解析到错误地方,让用户无法正常访问真正的地址。

这里提问一个问题:那么 DNS是如何工作的呢?

客户端访问服务端的时候,首先要根据域名获取对应的IP地址,这一步要在 DNS服务器进行获取。请求DNS服务器的时候,需要通过UDP协议去寻找当地网络的运营商提供的公共域名服务器中查找IP。

如果没有找到,就会继续请求上级域名服务器进行处理,一直到返回IP为止。

域名劫持,即使是在请求 DNS解析域名时候出现的问题,目标域名被恶意解析到其他IP地址,造成用户无法正常使用服务。

为了减少 DNS 查询时间,HTTP协议栈中会缓存域名解析:

  • 浏览器可能会缓存域名解析。
  • 用户系统中的域名映射表(hosts)会缓存域名解析。
  • 公共域名服务器通常由 ISP(互联网服务商)提供。
  • 公共域名服务器会缓存上一级域名服务器的结果。
  • 公共域名服务器 TTL 到期后,会向顶级域名服务器获取信息。

那么再提一个问题:如何污染 DNS?

常见的污染 DNS 方式有:

  • 篡改 Hosts 文件;
  • 污染中间链路设备(路由器等);
  • 修改 UDP内容,影响 DNS查询的结果;
  • 入侵 DNS服务器(成本高)。

那么再提一个问题:如何抵御 DNS 劫持?

解决域名劫持的一个办法就是绕开安全性较差的 UDP协议,通过一个可信的源头来解析域名,解析方式不需要拘泥于 UDP协议,也可以通过 HTTP方式。

  • 在 TLS 协议之上传输 DNS内容;
  • 用 HTTP协议来传输 DNS;
  • 用 HTTPS协议来传输 DNS;
  • 使用自己维护的 DNS服务器(成本高)。

数据劫持:

接下来聊聊数据劫持,数据劫持最基本针对明文传输的内容发生。用户发起 HTTP请求,服务器返回页面时候,经过中间的运营商网络,页面内容的篡改或者内容加塞,强行插入弹窗或者广告。

那么问题又来了:如何抵御数据劫持?

目前行业内解决的办法是对内容进行 HTTPS加密,实现密文传输,彻底避免劫持问题。MD5校验同样能起到防止数据劫持的作用,MD5校验是指内容返回前,应用层对返回的数据进行校验,生成校验值。

同时内容接收方接收到内容后,也对内容进行校验,同样生成校验值,将这俩个校验值进行对比,倘若一致,则证明判断数据无劫持。

注意:HTTPS 也能被运营商劫持

1、伪造证书,通过病毒或者其他方式将伪造证书的根证书安装在用户系统中(较少)。

2、代理也有客户的证书与私钥,或者客户端与代理认证的时候不校验合法性,即可通过代理来与我们服务端进行数据交互(较多)。

下面说几款方法对数据劫持起到监控作用,但是并不能对劫持后的页面进行修复。

Content-Security-Policy (CSP)

实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。

  • 指定每种资源类型可以加载执⾏的条件。
  • 还可以防御 XSS 攻击。
  • 也可以⽤于强迫资源使用 HTTPS 加载,降低劫持可能性。

两种方式开启 CSP:

// 通过 http 头信息 
Content-Security-Policy: default-src https:

// 通过 meta  标签 
<meta http-equiv="Content-Security-Policy" content="default-src https:" />

缺点:

  • 由于 CSP 标识本身存在于 HTML 标签或者 HTTP 请求头中,可以被攻击者可以直接移除掉。
  • 规则⽐较复杂。
  • 影响动态创建脚本的使⽤。

Subresource Integrity (SRI)

将使用 base64 编码过后的文件哈希值写入你所引用的 <script> 或 <link> 标签的 integrity 属性值中即可启用子资源完整性功能。

如果校验不成功,则不会执行对应的 script 或 link 内容。

<script crossorigin="anonymous" integrity=“sha256-+Ec97...E=“ src=“https://a.com"></script>

缺点:

  • 由于 SRI 标识 本身存在于 HTML 标签中,可以被攻击者可以直接移除掉。
  • 影响动态创建脚本的使⽤。
  • 校验失败时影响可⽤性。
  • 兼容性有限,iOS Safari 不支持

劫持监控:

此方案参考了美团点评 2018 前端分享上的防治方案。

  • ⽅案 A:在某些省份、地区⾃建监测站,定期抓取固定资源(资源太固定,监测站数量也远远不够)。
  • ⽅案 B:业务⽅在⾃己的 HTML 中监听资源的 Error 事件(⽆法确认问题在于劫持,也可能只是普通的 JS 出错)。
  • ⽅案 C:使⽤用第三⽅方企业服务进⾏监控(服务越多成本越⾼)。
  • ⽅案 D:CSP、SRI(兼容性和灵活性差,⽆法进行⾃定义逻辑)。

上述方案可以看出,无论哪种方案,都有它的不足,于是搭建了下图的方案:

优势如下:

  • 监控的级别是业务级甚至页面级,而不是某个固定的资源。
  • 在业务方的 Node.js 中内置逻辑,给予了业务方自己进行降级和响应的能力。
  • 监控层如果出现故障,不影响业务方的代码执行。

总结:

DNS 劫持是属于违法行为,已经在严厉打击,为了我们干净安全的上网浏览环境,我们也要做好一系列预防措施。

本文分享自微信公众号 - 八点半技术站(gtcarry),作者:八点半技术站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 什么是流量劫持,如何防止流量劫持?

    流量劫持,是利用各种恶意软件修改浏览器、锁定主页或不停弹出新窗口,强制用户访问某些网站,从而造成用户流量损失的情形。流量劫持是一种古老的***方式,比如早已见惯...

    迅达集团
  • 百度全面开放HTTPS的几个重要问题

    百度从 14 年开始对外开放了 https 的访问,并于 3 月初正式对全网用户进行了 https 跳转。

    哲洛不闹
  • 2017-NSCTF-PWN

    这次比赛值得吐槽的地方很多,但是我要忍住,先讲正经的。 这次总结比赛的两道pwn,都是栈溢出类型的,比较简单。先放上题目链接:http://pan.baidu....

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

    网络优化是客户端几大技术方向中公认的一个深度领域,所以百度App给大家带来网络深度优化系列文章。

    JackJiang
  • 如何应对和防御网站劫持

    很久以前我们说过网站劫持的问题,劫持很伤心有没有,明明好不容易来的流量,起早贪黑SEO什么的,广告什么的各种来的流量,人家小小的一操作什么都没了。劫持有DNS劫...

    乐网网络
  • Windows平台本地DNS自动检测与设置工具

    Youngxj
  • 手把手教你DNS劫持挂马

    他可以将网站的域名转换为ip地址。nternet 上的每个设备都被分配了一个 IP 地址,必须有该地址才能找到相应的 Internet 设备 - 就像使用街道地...

    Ms08067安全实验室
  • 百度烽火计划升级,推出烽火算法2.0

    一年前,百度针对移动搜索后退操作被劫持到非百度站点曾推出过一个烽火行动计划,用于打击非法劫持。这个烽火行动计划最开始是非常有限的应用场景,即针对劫持百度自身流量...

    世纪访客
  • 谁劫持了我的DNS:全球域名解析路径劫持测量与分析

    或许你已知道网络中几乎所有的DNS请求都是通过明文进行传输的,但是你是否相信,这一协议设计的缺陷,已经开始被用于域名解析路径劫持了?

    C4rpeDime
  • 渗透测试:内网DNS投毒技术劫持会话

    本文仅供渗透测试技术学习及教学用途,禁止非法使用 最近一段时间一直在研究内网中嗅探的一些方法,各种方式的尝试,才找到一个比较靠谱的一种方式。dns投毒与中间人。...

    FB客服
  • 网站被劫持攻击以及流量攻击如何解决

    目前越来越多的服务器被DDOS流量攻击,尤其近几年的DNS流量攻击呈现快速增长的趋势,DNS受众较广,存在漏洞,容易遭受到攻击者的利用,关于DNS流量攻击的详情...

    网站安全专家
  • 网站被劫持攻击以及流量攻击如何解决

    目前越来越多的服务器被DDOS流量攻击,尤其近几年的DNS流量攻击呈现快速增长的趋势,DNS受众较广,存在漏洞,容易遭受到攻击者的利用,关于DNS流量攻击的详情...

    技术分享达人
  • 美图App的移动端DNS优化实践:HTTPS请求耗时减小近半

    本文引用了颜向群发表于高可用架构公众号上的文章《聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例》的部分内容,感谢原作者。

    JackJiang
  • 一年半前端人总结的大厂高频面经(附学习资源)

    作者:俊劫 https://juejin.cn/post/6942988170208215076

    用户4456933
  • 如何给个人网站添加免费的SSL

    版权声明:转载注明出处 https://blog.csdn.net/weixin_42514...

    叉叉敌
  • 如何给个人网站添加免费的SSL

    最近站点总是被劫持,劫持什么意思喃?按照官方的说法就是所谓的网站劫持就是打开一个网站,出现一个不属于网站范畴的广告,或者是无法跳转到某个不属于这个范畴的网页。 ...

    叉叉敌
  • 【安恒信息每日资讯2016.04.04】

    1.直击Black Hat Asia黑帽亚洲峰会:无人机又飞走了 http://www.freebuf.com/news/100625.html 没...

    安恒信息
  • 全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等

    本文引用了腾讯工程师廖伟健发表于“鹅厂网事”公众号上的《【鹅厂网事】全局精确流量调度新思路-HttpDNS服务详解》一文部分内容,感谢原作者的分享。

    JackJiang
  • 他写出了 Vue,却做不对这十道 Vue 笔试题

    请原谅我起了这么个浓浓营销号味道的标题。但这可丝毫没有夸大宣传,而是前端娱乐圈今日份的瓜——

    苏南

扫码关注云+社区

领取腾讯云代金券