当前位置: 首页 > other, 互联网, 移动互联, 系统安全 > 正文

国内运营商DNS劫持严重,企业网站尽快转到HTTPS

[摘要] 国内运营商DNS劫持现象真的很严重,今天在家从 redis 官网下载 redis 最新版本时居然下载失败,稍微瞅了眼,尼玛,居然又是被运营商(歌华有线)劫持了,小爷正好今天闲着,把我曾经遇到的运营商DNS劫持现象列举一下,对不良运营商劫持的可耻行为予以严正声明和谴责。

案例一:
也就是今天遇到的情况,我从redis官网下载stable版本,发现居然给劫持到了这样一个地址:http://119.90.25.22/download.redis.io/redis-stable.tar.gz
下面是几个当时的截图:

下载被劫持的效果:

DNS劫持browser

DNS劫持 broswer

看一下运营商缓存的webserver http header:

DNS劫持header

DNS劫持 header

劫持 https baidu的效果

DNS劫持baidu

DNS劫持baidu

劫持 https 支付宝的效果(一不小心发现了支付宝用的Tengine-2.1.0 嘻嘻)

DNS劫持alipay

劫持https的alipay

案例二:
我们曾经对公司的一款手机端App应用做过分析,通过App的访问行为进行日志打点,由于下载域名走的CDN,重点是对该产品的CDN下载失败情况做了统计分析,下面是下载被劫持情况:

IP              失败次数   占比           运营商
117.146.116.26	1229	0.093343%	中国  新疆维吾尔自治区  乌鲁木齐市 运营商	: 移动
117.146.116.21	1170	0.0888619%	中国  新疆维吾尔自治区  乌鲁木齐市 运营商	: 移动
10.2.254.51	299	0.0227091%	局域网 | 对方和您在同一内部网   (客户端IP:43.240.57.73 天津市联通)
60.191.124.236	135	0.0102533%	中国  浙江省  杭州市 运营商	: 电信 (客户端IP:125.116.215.18 浙江省  宁波市 电信ADSL)
60.191.124.247	46	0.00349372%	中国  浙江省  杭州市 运营商	: 电信
219.233.31.83	31	0.00235446%	中国  上海市 运营商	: 有线通 (122.225.36.255 浙江省  嘉兴市 电信)
219.233.31.84	29	0.00220256%	中国  上海市 运营商	: 有线通

(1)能看到中国移动劫持现象非常严重,为了节约网间流量,各省移动分公司分别找了不同的CDN厂商或者自己做了一层 cache 缓存,针对一些大文件的下载进行了可耻的DNS劫持,主要是针对.zip .apk .ipa .exe .png .jpg等后缀的文件进行劫持。如果说为了节约运营商的网间结算成本,我们也能理解,但是你这层cache好用也行,我们测试的情况是经常域名给劫持到你们缓存节点了,但是cache不工作,用户根本下载不了,严重影响了用户的体验,一些偏远省份的移动分公司劫持现象尤为严重,新疆移动就更不必说了。

(2)从IP地址看居然还有局域网的,这种IP是如何来的我就不得而知了。

案例三:
教育网也有劫持现象,之前记录过这样一个下载,通过跟踪下载路径,很明显是被教育网劫持了。

$ wget -S http://www.sudops.com/Packages.bz2
--2016-12-12 17:14:05--  http://www.sudops.com/Packages.bz2
Resolving www.sudops.com... xxx.xxx.xxx.xxx
Connecting to www.sudops.com|xxx.xxx.xxx.xxx|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.0 302 Found
  Location: http://58.135.196.199:80/AESd/MLPhCwEZRV-i71-IOJkw41h_/Packages.bz2
  Connection: Close
Location: http://58.135.196.199:80/AESd/MLPhCwEZRV-i71-IOJkw41h_/Packages.bz2 [following]
--2016-12-12 17:14:06--  http://58.135.196.199/AESd/MLPhCwEZRV-i71-IOJkw41h_/Packages.bz2
Connecting to 58.135.196.199:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Server: ATS/3.2.0
  Date: Wed, 12 Dec 2016 09:14:06 GMT
  Content-Type: application/octet-stream
  Content-Length: 280210
  Last-Modified: Wed, 12 Dec 2016 12:14:17 GMT
  ETag: "5655a619-44692"
  Expires: Fri, 31 Dec 1970 16:00:00 GMT
  Cache-Control: no-cache
  Age: 0
  Connection: keep-alive
  Via: http/1.1 ts-lx-edu (ApacheTrafficServer/3.2.0 [c sSf ])
Length: 280210 (274K) [application/octet-stream]
Saving to: ‘Packages.bz2’

100%[============================================================================>] 280,210     --.-K/s   in 0.08s

2016-12-12 17:14:06 (3.37 MB/s) - ‘Packages.bz2’ saved [280210/280210]

$ curl cip.cc/58.135.196.199
IP	: 58.135.196.199
地址	: 中国  北京市
数据二	: 北京市 | 教育信息网

还有一些令人深恶痛绝劫持现象:
(1)一些小运营商 ISP(小区宽带)也是劫持大户。这些运营商劫持更为恶劣,有时候会通过劫持将原下载包进行替换,严重干扰的一些公司产品的正常运营行为,属于恶意推广,必须进行严惩。
(2)一些免费的Wifi也是劫持大户,有些公司会为一些公共场所(商场、酒店、餐馆等等)提供免费的wifi设备,无线AP接入等等,当然他们是不会做亏本买卖的,这些设备提供方或者施工方会通过wifi进行劫持或者推送他们的广告或者推广应用,也有可能搜集用户信息,所以那些不可信任免费的wifi尽量少用。

对于如何规避劫持现象目前没有什么特别好的办法,我了解的可行方案的有两个:
(1)HTTPDNS
一些大公司的APP产品使用的比较多。简单的说,用户下载一个地址(URL)的时候首先会请求一个ip地址,这个地址会根据用户的所属地、运营商网络情况等返回最快的下载地址,由于这个请求的流量非常小,而且是动态生成,运营商一般不会进行劫持,然后用户通过返回的结果再进行第二次请求,这次是真正的下载,这样就避免了DNS解析这层,也就防止了运营商的劫持。
(2)HTTPS
使用HTTPS的话,由于没有对应的证书,所以按照目前运营商的能力是无法劫持的,所以建议所有的web站点、下载地址、api接口等等全部走HTTPS,绝不给运营商可乘之机。

本文固定链接: https://sudops.com/isp-dns-hijacked.html | 运维速度

该日志由 u2 于2016年12月13日发表在 other, 互联网, 移动互联, 系统安全 分类下,
原创文章转载请注明: 国内运营商DNS劫持严重,企业网站尽快转到HTTPS | 运维速度
关键字:

报歉!评论已关闭.