Mediumは2月27日(米国時間)、「0-Click Account Takeover on Facebook|by Samip Aryal|Feb, 2024|InfoSec Write-ups」において、Facebookアカウントのパスワードリセット処理に脆弱性が存在したと伝えた。この脆弱性を悪用することで、認証されていない攻撃者はアカウントを乗っ取ることができたという。

  • 0-Click Account Takeover on Facebook|by Samip Aryal|Feb、2024|InfoSec Write-ups

    0-Click Account Takeover on Facebook|by Samip Aryal|Feb, 2024|InfoSec Write-ups

Facebookのパスワードリセット処理に脆弱性

Facebookのパスワードリセットには「Send code via Facebook notification」オプションが存在する。攻撃者がこのオプションを悪用してパスワードリセットを要求すると、6桁のコード入力を求められる。Facebookはこのコード入力の待ち時間を最大2時間に設定しており、試行回数の上限を設けていなかったためすべてのパターン(000000から999999まで)を試すことで誰でもパスワードをリセット可能な状態にあった。

  • 脆弱なリセットオプション - 提供:Medium

    脆弱なリセットオプション 引用:Medium

手作業ですべてのパターンを試した場合は1日かけても終わらないが、発見者のSamip Aryal氏によるとツールを使用して並列処理することで正しいコードを約1時間以内に発見できるという。これは最大2時間の待ち時間内に完了できることを意味しており、ユーザー操作を必要としないゼロクリックの脆弱性となる。

なお、Samip Aryal氏はこの実験後にリセットオプションから「Send code via Facebook notification」が表示されなくなったと報告している。これはFacebookのセキュリティ機能によるものとされるが、IPアドレスを変更するだけで回避できたとしている。

また、一部のユーザーは通知に反応した後にコードが生成される仕組みになっているが、ほとんどのユーザーは通知に反応するとみられているため、Facebookのこの動作は軽減策として評価されていない。

対策

この脆弱性はすでにFacebookにより修正されている。このような攻撃を回避するため、Facebookユーザーにはフィッシング耐性のある多要素認証(MFA: Multi-Factor Authentication)を設定することが推奨されている。攻撃者がパスワードリセットに成功しても多要素認証を回避することは困難とされる。なお、さまざまなオンラインサービスにおいてプラットフォーム間のログイン認証を共有する仕組みが提供されているが、この機能を利用することは推奨されていない。