OAuth セキュリティ勧告: 2009.1

23-4 月 2009

OAuth 要求トークンの承認フロー(OAuth コア 1.0 第 6 条)に対するセッション固定攻撃が発見されました。

影響

OAuth 承認フロー(「3 レッグ OAuth」としても知られる)を使用する OAuth コア 1.0 プロトコルのすべての規格に準拠した実装に影響があります。

詳細情報

攻撃は、攻撃者が(誠実な)コンシューマサイトにアクセスし、オプションでそのサイトで所有するアカウントにログインすることから始まります。攻撃者は OAuth 承認プロセスを開始しますが、コンシューマからリダイレクトされて承認を取得するのではなく、攻撃者はその代わりに承認リクエスト URI(リクエストトークンを含む)を保存します。その後、攻撃者は被害者が承認リクエスト URI から構成されるリンクをクリックし、(誠実な)コンシューマに対する被害者の保護されたリソースへのアクセスを承認するように説得します。

リンクをクリックすると、被害者は攻撃者が開始したリクエストを継続します。これには、(誠実な)コンシューマが攻撃者に発行したリクエストトークンが含まれます。被害者がサービスプロバイダの正当な承認ページにリダイレクトされ、サービスプロバイダから(誠実な)コンシューマを承認するように求められます。被害者が進行中の攻撃を検出することはできません。

被害者が承認を与えると、攻撃者は保存されたリクエストトークンを使用して承認フローを完了し、サービスの一部として(誠実な)コンシューマサイトによって公開されたあらゆる保護されたリソースにアクセスできます。攻撃者が(誠実な)コンシューマサイトでアカウントを持っている場合、アクセスは将来の訪問でも継続する可能性があります。

XSRF コンシューマサイトでの保護はこの攻撃を軽減しません。

アドバイス

サービスプロバイダは、悪用された企てを検出するために適切な監視を直ちに実装することが推奨されます。

OAuth コア 1.0 改訂 A仕様はこの問題に対処するために公開されました。すべての導入がこの新しい改訂版に更新されることを強く推奨します。

サービスプロバイダは、信頼できない場所から承認フローを開始するリスクについてユーザーに十分なメッセージを提供することが推奨されます(推奨される文言については下記を参照)。この警告は、この問題を修正する仕様のバージョンにアップグレードされていないコンシューマサイトの承認インターフェイスに表示する必要があります。サービスプロバイダとコンシューマが他の軽減手順について合意している場合は、この警告を抑制できます。

承認ページの推奨される文言

「この Web サイトは承認リクエストを行うために SERVICE_PROVIDER_DOMAIN_NAME に登録されていますが、リクエストを安全に送信するように構成されていません。あなたがこのリクエストを CONSUMER_DOMAIN_NAME で開始していなかったのにアクセスを許可すると、CONSUMER_DOMAIN_NAME の他のユーザーがあなたのデータにアクセスできる可能性があります。このリクエストを CONSUMER_DOMAIN_NAME に直接開始したことを確認していない場合は、アクセスを拒否することをお勧めします。」

報告された攻撃

この攻撃の悪用は報告されていません。