中国国内で発生しているwpkg.orgへのリダイレクト問題考察

このエントリーをはてなブックマークに追加

いま中国国内からyahoo.co.jpのコンテンツとか海外系のコンテンツ開くと一回開いた後にwpkg.orgへリダイレクトされちゃう問題が流行ってる。
結論から言うといつもどおりのDNSポイズニング「だけ」のようだ。

※ 4/28 下部に中国国内DNSの追記情報あり

▽ 現象

  1. facebookのjsが呼ばれる

    http://connect.facebook.net/ja_JP/sdk.js

  2. なぜか下記にリダイレクトされる

    http://wpkg.org/my.js

  3. 結果が戻ってくる
    window.location.href = 'http://wpkg.org/';
  4. ブラウザで読み込んでる場合はこのJSにより、wpkg.orgへリダイレクトされる

▽ 何が起きてるか

  1. DNSポイズニングでconnect.facebook.netのIPが書き換えられてる
    # みんな大好きGoogleDNSにつなぐ
    > server 8.8.8.8
    Default server: 8.8.8.8
    Address: 8.8.8.8#53
    > connect.facebook.net
    Server:         8.8.8.8
    Address:        8.8.8.8#53
    
    Non-authoritative answer:
    connect.facebook.net    canonical name = connect.facebook.net.edgekey.net.
    connect.facebook.net.edgekey.net        canonical name = e3821.dspe1.akamaiedge.net.
    Name:   e3821.dspe1.akamaiedge.net
    Address: 23.67.175.139
    
    # 中国電信の糞DNSに変更する
    > server 202.96.209.133
    Default server: 202.96.209.133
    Address: 202.96.209.133#53
    > connect.facebook.net
    Server:         202.96.209.133
    Address:        202.96.209.133#53
    
    Non-authoritative answer:
    Name:   connect.facebook.net
    Address: 148.251.0.55
    
  2. wpkg.orgのサーバーの設定の問題
    wpkg.org以外のドメイン(例外あるっぽいけど)でアクセスされたらwpkg.orgへリダイレクトする

    http://148.251.0.55/aaaaaaaaaaaaaaaaaaaaaaaaaa

    更に、拡張子がjsだとどんなURLであっても必ず/my.jsへリダイレクトする

    http://148.251.0.55/a/b/c/d/e/f/g.js

  3. 結果としてDNSポイズニングで148.251.0.55に書き換えられたドメインのJSは全てmy.jsへと書き換えられるので、Facebookコネクトを導入しているサイトは全てwpkg.orgへと飛ばされてしまう

▽ 対応方法

一度ブラウザキャッシュとDNSキャッシュが汚染されるとVPN使ってもダメなので下記2点を実施すると良い

  1. ブラウザのコンテンツキャッシュをクリアする(Cookieとかはそのままで問題ない)
  2. DNSをGoogleのDNS(8.8.8.8 / 8.8.4.4)など信頼のおけるDNSに設定する
    追記分: アリババが公開DNS(233.5.5.5 / 233.6.6.6)の提供をしている。少なくとも電信のDNSよりはずっと信頼できるのでオフィスではこれを採用することにした。

▽ 誰がこのクソッタレな真似をしてるのか

多分軍とか政府だと思う。電信のデータセンターを運営してる組織とそういう組織がつながってんじゃないかと同僚とかは言ってるでどどこまで本当なのかわからない。

▽ 参考