mixi の行動ターゲティング

no extension

セキュリティに詳しい方々には「何を今更」な話かもしれないが,自分用の覚書として残しておく。 まずは以下の Google+ の記事を参照あれ。

「imgタグで読み込まれた場合でも自分の訪問履歴に記録されているのがわかる。 つまり、mixiのログインCookieさえ送っていれば実際にはmixiを訪問していなくても、足あとをつけることができた。 例えばアダルトサイトが訪問者のmixiアカウントを収集したりすることができた。 mixiは不審なアクセスパターンやリファラがあれば弾く、といったような対策を取ることは出来るだろうが、根本的な解決にはならない。」

ただし現在の mixi は「友人、友人の友人、同級生、同僚以外の足あとが記録されなくなった」そうで,上述のように画像データを踏んでも赤の他人の行動を収集することはできなくなったらしい。 個人的には mixi は放置プレイ中(mixi ボイスに tweets を転送するとか,たまにマイミクの友人の日記を見るとかくらい)なので大した脅威ではないのだが,それ以前に「これって古典的な web bug の話だよな」と思ったのだが,そういう単純な話ではないらしい。

まず mixi の件について言えば

「足あと機能はGETリクエストだけで書き込み操作が行われる典型的なCSRF脆弱性と見なすことも出来ます。 CSRF脆弱性を残したままで「サードパーティCookie有効でログイン状態のまま外部サイトを訪問する機能を提供」していたことがそもそもの誤りです。」

ということで脆弱性問題と絡めた議論が必要らしい。

また, Cookie の送信についてはブラウザごとに挙動が違っていて

「サードパーティCookieをブロックする、という設定にしても保存済みのCookieが送られるブラウザが殆どなので。 サードパーティCookieの設定をオフにして送信もブロックするのはFirefox3以降のみで、Chromeはabout:flagsで設定する必要があります。 自分が知る限りsafariでは受信をブロックはできますが送信をオフにする設定ができません。 サードパーティCookieの送信をデフォルトで無効にしつつ、指定したドメインにはホワイトリスト方式で許可、という設定ができるブラウザは皆無です。」

ということらしい。 私はほとんど Firefox しか使ってないので(仕事は別),プライバシー・オプションで「サードパーティの Cookie も保存する」を無効にすることで問題なく運用できているのだが(サードパーティ Cookie を許可するには「例外サイト」でサイトを許可すればいい),他のブラウザは違うらしい。

サードパーティ Cookie の送信を無効にすると Facebook の [Like!] ボタンや Google の [+1] ボタンのような機能までブロックされてしまう。

「ぜなら彼ら自身が外部サイト向けの埋め込みウィジェットでサードパーティCookieに依存した機能を提供しているからです。 これらの機能を使うためにはサードパーティCookieが送信されている必要があり、ブラウザの設定をデフォルトに戻したりCookieをブロックしないように案内する必要があります。」

とあるが,これはブラウザ側の設計の欠陥じゃないだろうか。 言っておくがセキュリティはセキュリティとしかトレードオフにならない。 もしセキュリティが利便性とトレードオフになってしまう状況があるとしたら,それは設計(または実装)の欠陥なのだ。

(他にもブラウザの実装には問題があるようで,例えば

「XMLHttpRequestでも対応ブラウザであればクロスドメイン通信ができます」

というのには驚いてしまった。 あかんやろ!)

とはいえ,実際にはなかなか難しい。 その辺の怪しい出会い系サイトなら問答無用でブロックすればいいだろうけど, mixi のような大手のサービスについては簡単に「ブロックすればいい」と言うわけにはいかなだろう(個人的には mixi はブロックして構わないと思うが)。 またケータイやタブレット機に搭載されたブラウザでは Cookie の細かい制御はできない。 しかもアプリでは機能がブラックボックス化されているので,ユーザは内部でどのような通信が行われているか普通は分からない。 となると,せいぜい「怪しいサイトへは近づかない」「怪しいアプリは使わない」程度の防衛しかなくなってしまう。

それに行動ターゲティングの問題は Cookie だけにとどまらない。 ローカルに情報を格納し取り出す方法は Cookie 以外にもあるのだ。 有名なところでは Flash Cookie (ローカル記憶領域; 最新版ではユーザによる制御が可能になっている。 Windows ではコンパネの Flash Player から可能)がある。 また HTML5 では様々なストレージが利用可能だ。 他にも色々ある。

もっと言うなら docomo のiモード ID のようにキャリアや ISP 側で情報を埋めこまれた場合,ユーザからはますます制御しづらくなる。

月並みだけど,ネットにおいてはユーザの行動を追跡することはそれほど難しくないし,これから様々なツールやサービスが登場するたびにユーザを繋ぐ鎖は増えていくだろう。 私たちはそういった縛りから「いつでも降りれる自由」を担保しておかなければならない。