9月25日、Facebookのエンジニアリングチームが、約5000万のアカウントに影響があるFacebookのセキュリティ脆弱性を発見しました。本件について弊社では極めて重大なことと認識しており、なにが起きたのか、そして私たちが利用者の皆様のセキュリティ保護のためどのようなアクションをとっているかにつきご報告申し上げます。

まだ調査の初期段階ですが、現時点で明確にわかっていることは、攻撃者が 「View As(特定のユーザーへのプレビュー)」 の機能(特定の人に対して利用者のプロフィールがどのように表示されているかを確認する機能)に関連するFacebookのコードの脆弱性に目をつけ利用したことです。これにより、攻撃者はFacebookのアクセストークンの情報を不正に入手し、それによってアカウントを乗っ取ることもできました。アクセストークンは、Facebookにログインし続けるためのデジタル暗号で、それがあることで利用者はパスワードを毎回入力する必要はなくなります。

弊社がすでに取っているアクションは以下のとおりです。
第1に、すでにこの脆弱性を修復し、捜査当局に報告しております。

第2に、影響があったと思われる約5000万のアカウントのアクセストークンをリセット、予備的措置としてさらに約4000万のアカウントもリセットいたしました。これにより約9000万人の利用者の皆様がFacebookあるいはファミリーアプリの利用にあたり再度ログインする必要があります。対象の利用者の皆様にはニュースフィードの上部に、なにが起きたのかを説明するお知らせ画面が表示されます。

第3に「View As(特定のユーザーへのプレビュー)」 の機能は、セキュリティの監査のため、当分の間使えないようにします。

この攻撃はFacebookのコードのいくつかの問題点が複雑に関連していることに乗じて行われたものです。動画をアップロードする機能を2017年の7月に変更、それが「View As(特定のユーザーへのプレビュー)」の機能に影響したことに発しています。まだ調査が初期の段階のため、アカウントの不正使用、または情報の不正アクセスがあったかはまだわかっておりません。またこの攻撃の背後に誰がいるのか、どこからなのかもまだ判明していません。詳細の究明に全力で取り組むとともに、進捗があり次第ご報告いたします。また、影響するアカウントが増えれば、アクセストークンをすぐにリセットします。

利用者の皆様のプライバシーとセキュリティ保護は極めて重大なことであり、そのため、影響を受けたアカウントの安全を確保し、利用者の皆様に何が起きたのかをお知らせするという緊急対応をいたしました。ここに今回の件について心よりお詫び申し上げます。利用者の皆様のパスワード変更は不要です。ただ、もしパスワードを忘れてしまった等でFacebookへのログインにお困りの場合はヘルプセンターをご確認ください。また、利用者の皆様でFacebookへのログアウトなどの予防措置をしたい方は「セキュリティとログイン」からご確認いただけます。一回のクリックで全てのFacebookからログアウトできる機能を提供しております。

9/28 4:45 PM PT 追加
技術的な詳細について

上記でお伝えした件について、技術的な部分の詳細を補足します。今週のはじめ、私たちは外部の攻撃者が私たちのシステムを攻撃し、「View As(特定のユーザーへのプレビュー)」 の機能で特定のコンポーネントを表示した際の脆弱性を利用し、HTML上の利用者の皆様のアカウントのアクセストークンの情報を不正に入手できたことを発見しました。この脆弱性の問題は下記3つの個別のバグの相互作用により発生しました。

  1. View As(特定のユーザーへのプレビュー)」 の機能は利用者の皆様がご自身のプロフィールが他の利用者の皆様にどう見られているのかを確認するプライバシー機能です。「View As(特定のユーザーへのプレビュー)」 の機能は表示のみのインターフェイスとされてきました。しかし、一種のComposer(Facebook上にコンテンツを投稿するための入力欄)、特に利用者の皆様が友人の誕生日をお祝いする際のバージョンにおいて、「View As(特定のユーザーへのプレビュー)」 の機能にて、動画を投稿することができるようになっていました。
  2. 2017年7月に発表された新しいバージョンの動画をアップロードする機能(①のバグの結果表示されたインターフェイス)が、誤ってFacebookのモバイルアプリへのアクセスの許可を持つアクセストークンを発行しました。
  3. その動画をアップロードする機能が「View As(特定のユーザーへのプレビュー)」 の機能の一部として表示された際、プロフィールの表示を確認している利用者の皆様ご自身のためではなく、表示される相手側の利用者のためのアクセストークンが発行されていました。

これら3つのバグの組み合わせが、今回の脆弱性の原因となりました。友人にご自身のプロフィールがどう見えているかを確認する「View As(特定のユーザーへのプレビュー)」 の機能を使用した際、友人がその利用者の誕生日を祝うためのコードがコンポーザーに残っていたこと、動画のアップロード機能が誤ってアクセストークンを発行したこと、そしてアクセストークンが発行された際、それは本人のためではなく、その利用者のプロフィールを見ている相手のものが発行されていたこと、の組み合わせです。そのアクセストークンはページのHTMLにおいてアクセス可能となり、攻撃者が別のユーザーとしてログインするために不正に入手できるようになっていました。
そして、その攻撃者は最初のアクセストークンを辿って他のアカウントにて同様のアクションをし、さらなるアクセストークンの情報を入手することができました。
利用者の皆様のアカウントを保護するために、私たちはその脆弱性を修復しました。また、影響があったと思われる約5000万のアカウントのアクセストークンをリセットし、予備措置として昨年「View As(特定のユーザーへのプレビュー)」 の機能の対象であったさらに約4000万のアカウントのアクセストークンをリセットしました。そして、セキュリティの監査のため、「View As(特定のユーザーへのプレビュー)」 の機能を一時的に使えないようにします。