主人がFacebookアカウントを剥奪されて3週間が過ぎました

http://ma.la/fb/ というのを書いたので、経緯と補足を書きます。

読むのが面倒くさい人向けに、ものすごく簡単に要約しておきます。

  • Facebookにはリンクを他人と共有するいいねボタン(likeボタン)というのがある。
  • Facebookの「ファンページ」なるものをつくると、いいねボタンを押したのが誰だか分かる機能がある。
  • ユーザーに気付かれないように細工したiframe内のボタンをクリックさせたりするクリックジャッキングという攻撃手法があり、いいねボタンを強制的に押させることが出来る
  • これによって悪意のあるサイトは、訪問者のFacebookアカウントを特定することが出来る
    • この手の問題はFacebookに限った話ではない。CSRFやクリックジャッキングで行われたアクションの結果が第三者から観測可能な全てのサービスにある。
    • 例えば強制的にはてなブックマークさせたりはてなスターを押させる方法があるなら、はてなのアカウントが分かる。
    • 通常ならそのサービスのidと、公開状態のプロフィールが分かることになる。
  • Facebookの場合は実名登録の利用規約を強く徹底しているので、本名を登録してるならば(例えば日本の法律においては個人情報と定義されているところの)本名が分かる

クリックジャッキングは方法の一つでしか無くて、主旨ではありません。これはFacebookの設計上の問題の一面にしか触れておらず、あとでサードパーティCookieについての問題を書く予定です。

アカウント停止後の経緯とかやり取りとか

今までの経緯をさらりと書く。

  • 3/2 Facebookアカウントが停止される、自動確認のメール送る、返事を出す
  • 3/3 facebook -> me Facebookから最初の返事、テンプレっぽい。身分証を送れというもの
  • 3/3 me -> facebook 免許持ってないよ。この写真じゃ駄目か、と年賀状の写真送る。
    • アカウントは個人利用、ハンドルネームじゃなくて実世界で使ってる名前だと強調。
    • いくつかma.laで実世界での活動実績が分かるリンク貼る
  • 3/8 facebook -> me 大体5日程度で返事が来るようだ。
    • 不便をかけて謝るが政府発行の写真付き証明書じゃないと駄目
    • そうじゃないとあなたのリクエストを処理できない
  • 3/9 me -> facebook このようなメールを送る https://gist.github.com/859854
    • 要約すると、お前のサイトのセキュリティがダメダメだから今の状態で個人情報を入れたくないよ、セキュリティ担当者と代われ
  • 3/15 facebook -> me 返事が来る。長いが主に利用規約のコピペ。言ってることは同じ。
    • セキュリティ担当者に転送しろと言ったのにスルーされる。

ここまでが前回のあらすじで、Cookpadごはん日記までチェックしている俺の熱心なストーカーの皆さんは御存知のとおりです。

  • 3/16 このままでは進展しないので、もっとマシな方法で連絡を取ろうと試みる。
    • twitterのtaroooという人がFacebook日本法人の代表者だと教えてもらう
  • 3/17 2つほど@を飛ばすが返事なし。
  • 3/17 Facebookの問題点について英語で書くの大変なので取り敢えず日本語で書く。後で誰かに翻訳してもらおう。
  • 3/18 Facebook日本法人代表から相変わらず返事なし。その間、東京電力公式アカウントをフォローしたのを確認したのでtwitterを見ているがreplyを無視してるのだろうと推測する。
  • 3/18 Facebook日本法人代表がフォローしている誰かを経由してtwitterのDMを送ってらうことを画策する。
  • 3/18 mixiのCTOに送る。mixiにも関係する内容なので。すぐに転送してもらう。
  • 3/19 児玉太郎氏連絡が取れてtwitterのDMが来る。メールを送る。
    • 停止されたアカウントについて
    • セキュリティ上の問題点については、必要だったら認証かけるよ
  • 3/19 児玉太郎氏からメールの返信が来る。
    • セキュリティについて:問題を認識しており調査中 アカウントについて:特別対応可能か調整してみるとのこと。
  • 3/22 本社のユーザーオペレーションから日本語のメール。
    • 「お客様の実名をお知らせいただき次第、こちらでお客様のお名前を変更し、アカウントを再開いたします。」
    • プライバシー設定についてのコピペが付いてくる。
    • 実名を知らせたくない場合はファンページを作れるとか、検索エンジン向けの公開設定が出来るとか。
  • 3/22 すぐにMa Laが本名ですと送る
    • 今まで送ったメールの内容をまるで無視して日本語で書きなおしただけに思われたので、再度情報共有するようにと書く。
    • こちらが指摘したセキュリティ上の問題点に対しての解決策になってない。
    • 自分はユーザーとして「私のプライバシーが心配、不安」ということではなく技術者として「脆弱性がある」と主張している。
  • 3/25 すぐに対応するみたいに書いてあるのに返事が来ない。
  • 3/25 http://ma.la/fb/twitterに張る。
  • 3/26 だいたい8時間後にFacebookから返事が来る。

まだやりとり中なので仔細は省くけど、大まかな流れはこんなところ。この手の問題に対するサービス側、ユーザー側で取れる対策方法とサードパーティCookieの問題についても別途書かないといけない。さて日本法人代表とコンタクトを取ることによって、本名だと主張して利用規約のコピペが返ってくるという、アカウントの復帰もできないし脆弱性についての議論もできないというループ状況から一歩前進したわけであった。

児玉太郎氏への私信、公開質問状

今さっき、Facebook日本法人代表の児玉太郎氏から「対策が完了している」という主旨のメールがあった。
そして案内されたURLがこちらだ http://forum.developers.facebook.net/viewtopic.php?pid=327314

私が指摘した問題は解決していません。また、対策完了の連絡を受ける前にFacebook本社ユーザーオペレーションの人から「クリックジャッキングが行われていると疑われるページ」を検知する改良を行っているという連絡を受けています。そして、そういった対策方法の問題点は既にこちらから送ったメールに書いた通りで、問題について正しく認識していないようなので大変残念に思っています。

問題について正確に理解していないようなので補足します。

  • ユーザーにリンクを強制的に投稿させることで、宣伝リンクを拡散させるspam行為や、ブラウザやプラグイン脆弱性を利用したマルウェアの配布に使われるといった問題があります。
  • そしてこういった問題は、過去にも指摘されていますし、幾つかのニュースサイトが取り上げたのも記憶にあります。
  • 3/17に書いた文章内に書いてあるとおりですが、クリックジャッキング対策のコードがFacebook内に含まれているのを認識しています、その上で書いています。

自分が指摘しているのは、linkが他者と共有されることによってspam行為やマルウェアの配布に使われる、という点ではなく「誰がボタンを押したのかが分かる」ということです。今のところ私が認識しているのはファンページの管理者が、誰がいいねボタンを押したのかを把握することができます。そして、クリックジャッキングによって強制的にボタンを押すことが出来る、あるいは、iframeのデザインによって「自分が何についていいねボタンを押そうとしているのかを認識できない状態」でボタンを押すことが出来るのが問題だと主張しています。これによってユーザーは自分のFacebookアカウントが第三者に通知されることを認識しないままでlikeボタンをクリックします。

そこのところを取り違えないようにしてもらいたいと思います。また「全力で取り組む」「真剣に考えている」といった精神論ではなく、具体的な対策や問題が解決したか(する予定があるか)どうかを確認したいと思っています。

継続中なので

何か進展があったらまた書きます。