Proofpoint社は、脆弱なOAuth 2.0の実装に対してURLリダイレクト攻撃を仕掛ける、これまで知られていなかった一連の手法を発見したと発表しました。
サードパーティのクラウドアプリケーションは、Microsoft 365やGoogle Workspaceなどの主要プラットフォームにおいて、保護されたユーザーのリソースへの限定的なアクセスを得るためにOAuth2.0を使用しています。
Proofpointの研究者は、2020年2月にMicrosoft 365環境に対するこれらのリダイレクト攻撃の検出し始めました。
この攻撃は、フィッシング検知やメールセキュリティソリューションの回避につながると同時に、フィッシングURLに正当性のある偽装を行い、攻撃を行うことができます、
Proofpoint社が検出したグループは、Outlook Web Access、PayPal、Microsoft 365、Google Workspaceを対象としています。
攻撃の仕組み
OAuth 2.0は、広く採用されている認証プロトコルで、エンドユーザーが管理するリソース(電子メール、連絡先、プロフィール情報、ソーシャルアカウントなど)へのウェブアプリケーションやデスクトップアプリケーションのアクセスを可能にします。
この認証機能は、ユーザーが特定のアプリケーションにアクセスを許可することで、他のサイトがユーザーのリソースにアクセスするために使用できるアクセストークンが作成されます。
OAuthアプリケーションを開発する際、開発者はニーズに応じてさまざまな種類のフローを自由に選択することができます
これらのフローで、アプリ開発者は、固有のクライアントID、スコープ、認証成功後に開くリダイレクトURLなど、特定のパラメータを定義する必要があります。
しかし、Proofpointは、攻撃者が有効な認証フローのパラメータの一部を変更することで登録された悪意のあるOAuthアプリで、攻撃者が提供するサイトやリダイレクトURLに被害者をリダイレクトさせるトリガーとなることを発見しました。
この現象は、被害者がマイクロソフトの正規のURLをクリックした後に発生するため、被害者は悪意のあるサイトにリダイレクトされているにもかかわらず、そのURLが正規のものであると誤認してしまいます。
このリダイレクトは、「response_type」クエリパラメータに無効な値を含むように変更することで引き起こされ、被害者は認証後にMicrosoftによるフィッシングページに誘導されます。
また、「scope」パラメータを編集して「invalid_resource」エラーを引き起こした場合も同様です。
この攻撃では、悪意のあるリダイレクトURLが定義された数十種類のMicrosoft 365サードパーティアプリケーションが使用されています
すべてのサードパーティアプリケーションは、無防備なユーザーを異なるフィッシングURLにリダイレクトさせる目的で、response_typeクエリパラメータが欠落したMicrosoftのURLを介して配信されていました。
3つ目の攻撃シナリオは、ユーザーが同意画面で「キャンセル」ボタンをクリックすることで、悪意のあるアプリケーションのURLへのリダイレクトが誘発されるというものです。
Proofpoint社は、Azure Portalのように選択されたOAuthフローによっては、認証前にリダイレクトをトリガーすることも可能であると説明しています。
認証フローでエラーが発生するように変更されたOAuth URLを使用することで、フィッシング攻撃では正規のように見えるURLを記載し、最終的にはログイン認証情報を盗もうとするランディング・ページにリダイレクトさせることができます。
Proofpoint社では、このバグを悪用してユーザーをフィッシング・ランディング・ページにリダイレクトさせている例を実際に確認しています。
データを分析したところ、この攻撃を使用した大規模な標的型攻撃が見つかりました。この攻撃では、悪意のあるリダイレクトURLが定義された、数十種類のMicrosoft 365サードパーティアプリケーションが使用されています。
彼らは、Proofpointの顧客であるテナントの何百人ものユーザーを標的にすることに成功しており、その数は日々増え続けています
広範囲にわたる課題
他のOAuthプロバイダも同様のバグの影響を受けており、悪意のあるサイトにリダイレクトする信頼できるURLを簡単に作成することができます。
例えば、GitHubでは、誰でもOAuthアプリを登録することができますが、その中には、リダイレクトURLがフィッシングのランディングページにつながるアプリを作成する攻撃者も含まれています。
攻撃者は、リダイレクトURLを含むOAuth URLを作成しますが、GitHubはこれを無視し、アプリが定義したリダイレクトを使用します。しかし、ユーザーにとっては、このURLは正当なものに見え、クリックしても信頼できるように見えてしまいます。
Googleの場合はさらに簡単で、脅威をもたらす者がサインイン用のOAuthアプリケーションを登録し、「redirect_uri」パラメータに悪意のあるURLを設定することで、認証後すぐに被害者をそこに連れて行くことができます。
GoogleはこのURLを検証していないため、フィッシングページやマルウェアを仕掛けるサイトなど、あらゆる可能性があります。
解決策
Proofpoint社のレポートでは、これらのバグに対する複数の緩和策が紹介されています。最も効果的なのは、無効なパラメータを無視せず、代わりにエラーページを表示することです。
また、自動リダイレクトを行う前に長い時間をかけてリダイレクトを行うか、リダイレクトを行うために追加のクリックを導入することで、多くの人がフィッシングに遭わずに済みます。
知識のないユーザーを対象としたフィッシング攻撃は、ユーザーの認証情報を盗み出し、その組織のネットワークに侵入するための最も成功率の高い攻撃方法です。電子メール保護システムは、これらの攻撃に対して無力です
これらの攻撃は、OAuthインフラを悪用することで、検出されずに悪意のあるメールをターゲットに配信します。このようなPayPalへの攻撃は、クレジットカードなどの金融情報の窃取につながります。マイクロソフトへのフィッシング攻撃は、詐欺や知的財産の窃盗などにつながる可能性があります。
インターネット技術タスクフォース(IETF)は、認証用OAuthサーバーを導入する人のために、追加のセキュリティ勧告を行っています。
Comments