OAuth の欠陥とフィッシング:Microsoft/Google/PayPal もリダイレクトの対象だ

Microsoft, Google OAuth flaws can be abused in phishing attacks

2021/12/09 BleepingComputer — 研究者たちが発見したのは、脆弱な OAuth 2.0 実装に対して URL リダイレクト攻撃を仕掛けるという、これまで知られていなかった一連の手法である。これらの攻撃により、フィッシグ検知やメール・セキュリティの回避が生じると同時に、フィッシング URL が正当であるかのような錯覚により、被害者を増やすことにつながる。Proofpoint が検出したキャンペーンは、Outlook Web Access/PayPal/Microsoft 365/Google Workspace を対象としている。

この攻撃の仕組み

OAuth 2.0は、広く採用されている認証プロトコルであり、エンドユーザーが管理するリソースである、電子メール/コンタクト/プロファイル情報/ソーシャルア・カウントなどへの、Web や デスクトップ・アプリからの安全なアクセスを実現するものだ。この認証機能は、特定のアプリケーションへのアクセスを、ユーザーに依存するかたちで許可する。それにより、ユーザーのリソースに対するアクセスを、他のサイトが可能にするためのアクセス・トークンが作成される。

OAuth アプリケーションを開発する際に、開発者はニーズに応じた各種のフローを自由に選択できる。これらのフローでは、アプリ開発者は、固有のクライアント ID/スコープ/認証成功後に開くリダイレクト URL などの、特定のパラメータを定義する必要がある。しかし、Proofpoint は、攻撃者が有効な認証フローのパラメータの一部を変更することで、攻撃者が登録した悪意の OAuth アプリ内のサイトや URL へと、被害者をリダイレクトさせるトリガーが成立することを発見した。

この現象は、たとえば Microsoft の正規 URL を、被害者がクリックした後に発生するため、悪意のサイトにリダイレクトされているにもかかわらず、その URL が正規のものであると誤認してしまう。このリダイレクトは、response_type クエリ・パラメータに無効な値を含むように変更することで引き起こされ、被害者は認証後にフィッシング・ページへと誘導される。また、scope パラメータを編集して、invalid_resource エラーを引き起こした場合も、同様の状況に陥る。

Proofpoint は、「この攻撃では、悪意のリダイレクト URL が定義された、数十種類のMicrosoft 365 サードパーティ・アプリが使用されている。すべてのサードパーティ・アプリは、response_type クエリ・パラメータが欠落している Microsoft の URL を介して配信されており、無防備なユーザーを異なるフィッシング URL にリダイレクトさせることを意図していた」とレポートで説明している。

それとは別の攻撃シナリオとしては、ユーザーが同意画面で「キャンセル」ボタンをクリックしたときに、悪意のアプリ URL へのリダイレクトが誘発されるというものもあった。

Proofpoint は、Azure Portal の場合、選択された OAuth フローによっては、認証前にもリダイレクトがトリガーされる可能性があると説明している。認証フローでエラーが発生するように変更された OAuth URL を使用することで、フィッシング・キャンペーンでは、合法的に見える URL を提示し、最終的にはログイン認証情報を盗むためのランディング・ページへとリダイレクトさせることが可能となる。

Proofpoint では、フィッシング・ランディング・ページへとユーザーをリダイレクトさせる、このバグの悪用例を実際に確認しており、このような攻撃は机上の空論ではない。Proofpoint のデータを分析したところ、このブログ記事で後ほど詳しく説明する、モディ・オペランディ (MO: modi operandi) を使用した大規模な標的型攻撃も見つかった。この攻撃では、悪意のリダイレクト URL が定義された、数十種類の Microsoft 365 サードパーティ・アプリが使用されている。

Proofpoint の研究者である David Krispin と Nir Swartz は、「攻撃者たちは、何百人もの Proofpoint 顧客であるテナント・ユーザーを、標的にすることに成功しており、その数は日々増え続けている」と説明している。

広範囲にわたる問題

他の OAuth プロバイダも、このバグの影響を同様に受けており、悪意のサイトへとリダイレクトする、信頼できる URL を簡単に作成されている。たとえば、GitHub では、誰でも OAuth アプリを登録できるが、その中には脅威アクターも含まれ、リダイレクト URL がフィッシングのランディング・ページにつながるアプリを作成している。

脅威アクターは、正当に見えるリダイレクト URL を含んだ、OAuth URL を作成できる。そかし、それは GitHub により無視され、アプリが定義したリダイレクトが用いられる。しかし、ユーザーにとっては、この URL は正当なものに見え、クリックしても信頼できるように見える。

Google の場合は、さらに簡単である。脅威アクターがサインイン用の OAuth アプリケーションを登録し、redirect_uri パラメータに悪意の URL を設定することで、認証した被害者を、そこに連れて行くことが可能だ。Google は、この URL を検証していないため、フィッシング・ページやマルウェアを仕掛けるサイトなどの、あらゆる可能性がある。

考えられる対策

Proofpoint のレポートでは、これらのバグに対する複数の緩和手法が紹介されている。最も効果的なのは、無効なパラメータを無視せず、代わりにエラー・ページを表示することだ。また、自動リダイレクトを行う前に、長い時間をかけてリダイレクトを行うか、リダイレクトを行うための追加クリックを導入することで、多くの人がフィッシングに遭わずに済むだろう。

Proofpoint は、「この、一般的なユーザーを対象としたフィッシングは、ユーザーの認証情報を盗み出すことで、その個人が所属する組織のネットワークに侵入するための、最も成功している攻撃方法である。電子メール保護システムは、これらの攻撃に対して無力だ。これらの攻撃は、OAuth インフラを悪用することで、検出を避けながら悪意のメールをターゲットに配信する。たとえば、PayPal への攻撃は、クレジットカードなどの金融情報の窃取につながる。また、Microsoft への攻撃は、詐欺や知的財産の窃盗などにつながる可能性がある」と結論づけている。

Internet Engineering Task Force (IETF) は、認証用 OAuth サーバーを導入する人のために、追加のセキュリティ勧告を行っている。

最近の、似たようなトピックとしては、「14種類の XS-Leaks 攻撃:Chrome/Edge/Safari/Firefox などに影響する」や、「Eltima SDK の複数の脆弱性:Amazon WorkSpaces などのクラウドに影響をおよぼす」や、「Magnat マルウェア:バックドア/パスワード侵害を仕掛ける悪意の Chrome エクステンション」などがあります。いずれも、偽サイトでユーザーを騙し、悪意のソフトウェアなどを注入するというものでう。ご注意ください。