今月中旬のこと。私は2テラのハードディスクを買溜めするため秋葉原の街に出た。しかし、どの店が最安か調べずに出たため、やむなく携帯電話で調べることにし、価格.comのサイトを探した。すると、携帯電話用のサイト m.kakaku.com があり、私は初めてそこを使った。
サイトはとても使いやすく、すぐに意中の製品を見つけることができた。が、ここで、画面に「履歴」というリンクがあることに気づいた。「履歴」の画面に入ると、なんと、閲覧した製品が既に記録されていた。ログインしていないのに。いや、アカウントさえないのに。
これはたしかに便利な機能ではあるが、契約者固有IDを用いて実現されていることにギョッとした。同様の機能は普通のPCのインターネットでもcookieを使って実現できるわけだけども、契約者固有IDの取得と保管は、個人情報の取得と同程度に慎重さが求められるべきと考えている私にとっては、予告と同意なく記録されたことにギョッとした*1。そして、契約者固有IDがもはやこんな用途にまで使われ始めてしまっていることに落胆した。(加えて言えば、契約者固有IDはちゃんとハッシュ化(鍵付きで)してから使っているのだろうかといった疑問もわくが、これは今回のテーマではない。)
まさか去年夏のはてなのようにオッピロゲってことはあるまいなと、調べてみたところ、ちゃんとIPアドレス制限されていた*2が、これも今回のテーマではない。
ここで私は、1月12日の読売新聞夕刊の記事の件を思い出した。
NTTドコモでは、公式サイトを運営する約3000社には注意喚起したが、それ以外の無数にある「勝手サイト」には「ジャバスクリプトの安全な利用はサイトを作る側にとって基本的知識であり、具体的に説明はしていない」という。
カカクコムといえば、CSIRTを整備している数少ない企業の1つで、「Kakaku.com Security Incident Response Team (KKCSIRT)」がある。他の企業よりもセキュリティ脆弱性に関する情報には敏感に対応しているに違いない。NTTドコモが「基本的知識」というくらいだから、カカクコムはこの問題に対応済みだろうか。
それが気になった私は、ホスト m.kakaku.com のIPアドレス 202.218.193.79 を用いて、http://202.218.193.79/ のURLに携帯電話でアクセスしてみた。すると、図2のように、画面にアクセスできてしまった。
履歴を閲覧できていて、閲覧後のURLが http://202.218.193.79/history/ になっている。http://202.218.193.79/history/ から http://m.kakaku.com/history/ にリダイレクトされて表示されたわけではない。図2ではauでテストした画面だが、NTTドコモの端末でアクセスすると、「履歴」のページは「http://202.218.193.79/history/?guid=ON」となり、履歴を閲覧できた。
この結果から、読売新聞の記事の問題に対策していないと推定できる。*3
このままでは、(iモード2.0の携帯電話の利用者は)履歴を他人に見られる危険があるし、このサイトには「かんたんログイン」の機能もあるのだから、それも、なりすましてログイン*4*5されてしまうだろう。
私は、2月18日に、KKCSIRT にメールでこのことを伝えた。すると、その日のうちに、対策したとの連絡があった。m.kakaku.com 以外のホストでは 404 Not Found となるように対策された。*6
さすがは、CSIRTを持つ企業だけのことはある。しかし、そんなセキュリティに敏感な企業でさえ、「契約者固有ID + iモード2.0 + DNS rebinding」で生ずるこの脆弱性に対応できていなかった。
これは、NTTドコモの責任だろう。NTTドコモは、「かんたんログイン」用途で「iモードID」を開始すると自ら発表*7しておきながら、その安全な実装方法について要件を公表していない。
NTTドコモは、新聞紙上で「作る側にとって基本的知識であり」などと、まるでサイト側が自発的に対処するのが当然であるかのように言っているが、それはまったく事実でない。iモードIDのないガラパゴスの外の一般世界では、DNS rebinding の問題は、イントラサイト等で問題になり得るものであって、一般のWebサイトには無用な話である。
同様の事例は、他にもあった。
まだ他にもあるのではないか。これは、NTTドコモの責任で解決にあたるべきことだ。尻は自分でぬぐってほしい。
*1 もっとも、図1の画面に「履歴のクリア・機能停止」というリンクが用意されているように、後から削除することはできるし、「履歴機能を停止」というボタンも用意されている。また、「履歴は登録より30日を超えた情報から消去されます」とある。カカクコムは配慮して設計してくれているのだなと感じるが、本来は、最初に履歴に記録する時点で説明の上の同意を得るべきだと思う。cookieを用いた実装と違って、他の情報と突き合わせることができればサイト運営者はそれが誰なのかを調べることが可能だから。
*2 一般のインターネットからのアクセスでは、「履歴機能はご利用頂けません」「携帯端末の個体識別番号が確認できない場合は、当機能がご利用頂けません」と表示される。ところで、「個体識別番号」という下品な言葉遣いはやめられないだろうか。これはワンクリック詐欺業者が広めた言葉で、「個体」は動物用の言葉であって人間に使う言葉じゃない。「個体」じゃなくて「個人」だろう。
*3 この問題への対策は、m.kakaku.com 以外のホストでのアクセスを拒否することである。もしかすると、m.kakaku.com と 202.218.193.79 の2つを許可しているかもしれないから、確実に対策していないとは断定できないが、まあ、そういう設定をしていることは普通はないので、ほぼ対策していないと推定できる。
*4 正確に言えば、かんたんログイン設定中の本人のブラウザに(罠サイトを通じて)自動ログインさせて、その結果の画面を盗んだり、操作したりする。
*5 価格.comのアカウントを作成してログインしてみたところ、「かんたんログイン」を利用していても、ログイン中に重要な操作(設定の変更など)をする画面に進もうとすると、パスワードが要求されるようになっていた。さすが、よく設計されたサイトだなと思った。それでも、パスワードなしでなりすまされると問題のある機能はあるだろう。
*6 修正済みではあるが、統計用に役立つと思い、IPAの脆弱性届出窓口にも出しておいた。
*7 「『iモードID』の提供開始について」参照。