OAuth+XSS Attack Threatens Millions of Web Users With Account Takeover
2024/07/29 DarkReading — Web ユーザーの行動を追跡/記録するサービスの Hotjar と、人気のニュース・サイト Business Insider の API に、重大なセキュリティ欠陥が存在することが判明した。最新の認証規格が悪用され、長年の脆弱性が復活させられたことで、数百万人のユーザーがアカウント乗っ取りの危険にさらされている。API のセキュリティ会社である Salt Security の Salt Labs が、7月29日に公開したブログによると、認証規格の OAuth と、2つのサイトの XSS (cross-site scripting) の欠陥を組み合わせることで、攻撃者は機密データの窃取が可能になり、100万以上の Web サイトの正規ユーザーを装う悪質な活動の可能性が生じているという。

Google Analytics を補完する Hotjar は、ユーザーの行動を記録/分析するツールであり、Adobe/Microsoft/Panasonic/Columbia/RyanAir/Decathlon/T-Mobile/任天堂などの有名ブランドを含む、100万以上の Web サイトにサービスを提供している。
Salt Labs は、「Hotjar の性質上、収集されるデータには、氏名/Eメール/住所/プライベート・メッセージ/銀行情報/特定の状況下での認証情報などの、膨大な量の個人情報や機密データが含まれる可能性がある」と述べている。
その一方で、Business Insider の Web サイトで見つかった、別種の危険な脆弱性を悪用する XSS 攻撃が発生すると、数百万人のグローバル・ユーザーを抱える同サイトのアカウントを乗っ取ることができる。
さらに憂慮すべきことに、同じ問題の組み合わせがインターネット全体に蔓延し、潜んでいる可能性が高いと、研究者は警告している。
最新の認証規格が古い欠陥と出会う
シームレスなクロス Web サイト認証のために使用され始めてきた、比較的に新しい標準が OAuth であり、多くの Web サイトで表示される “Facebook でログイン” や “Google でログイン” といった機能を支えるエンジンとして、多くの人に親しまれている。この標準は、サイト間の認証ハンドオフを担うメカニズムを駆動し、ユーザー・データをサイト間で共有することを可能にする。その一方で、この規格の実装時に設定を誤ると、多数のサイトにまたがる深刻な脆弱性が発生することでも知られている。
もう一方の XSS は、最も頻繁に悪用されてきた、古い Web 脆弱性の1つである。この脆弱性を悪用することで、攻撃者は正規の Web ページやアプリに悪意のコードを注入し、サイト訪問者のブラウザ上でスクリプトを実行させ、データ窃取などを行える。
Salt の VP of Research である Yaniv Balmas は、「この2つを組み合わせた攻撃ベクターの悪用に成功した攻撃者は、被害者と同じ権限と機能を得ることになる。つまり、通常のシステム・ユーザーが実際に行えることと、同じレベルでリスクが発生する」と、Dark Reading に対して語っている。
Business Insider サイトの脆弱性は、3月20日に Salt Labs により発見/報告され、3月30日までに修正された。その一方で Hotjar の脆弱性は 、4月17日に発見され、公開から2日後に修正されている。
しかし、この OAuth の実装と XSS の脆弱性を連鎖させる攻撃者が、発見されることなく他のサイトに潜んでいる可能性が高く、何百万人もの無防備なユーザーをアカウント乗っ取りの可能性にさらしていると、Salt の研究者たちは考えている。
Balmas は、「我々は、これは問題は、きわめて一般的な問題であると強く感じており、他の多くのオンライン・サービスも、同じ問題に悩まされている可能性が高い」と指摘する。
Hotjar 攻撃
XSS は古くから存在しているため、大半の Web サイトには、この脆弱性の悪用に対する保護機能が組み込まれている。Salt の研究者たちは、Hotjar と Business Insider のサイトの両方において、2種類のインスタンスで OAuth を使用することで、それらの保護機能を回避することに成功した。
Hotjar のケースでは、研究者は Hotjar のソーシャル・ログインを操作し、Google にリダイレクトさせ、OAuth を通じてシークレット・トークンを受け取り、Hotjar での認証を完了させた。このトークンは、シークレットコードを含む URL であり、JavaScript コードが読み取れるものであるため、XSS の欠陥が生じる。
Salt Labs の研究者たちは、「XSS 脆弱性を、この新しいソーシャル・ログイン機能と組み合わせて上手く悪用するためには、新しいウィンドウで新しい OAuth ログイン・フローを開始し、そのウィンドウからトークンを読み取る JavaScript コードを使用する。この方法では、JavaScript コードは Google に新しいタブを開き、Google は自動的にユーザーを Hotjar サイトにリダイレクトする」と詳述している。
このコードは、新しいタブから URL を読み取り、そこから OAuth 認証情報を抽出するものだ。ひとたび、攻撃者が被害者のコードを手に入れると、彼らは Hotjar で新しいログイン・フローを開始することが可能になる。そして、自分のコードを被害者のコードに置き換えることで、完全なアカウントの乗っ取りを達成し、ひいては Hotjar により収集された、すべての個人データの暴露につながる可能性がある。
モバイル・ログインの悪用
さらに研究者たちは、Business Insider サイトのコードに統合された、ソーシャル・サインイン機能の悪用にも成功した。特にモバイル認証においては、ユーザーを認証するために新しい Web ブラウザが開かれる。その Web 上でユーザーが認証を完了すると、Web からモバイル・サイトに送信される認証情報をパラメータとする、エンドポイントへとリダイレクトされることが判明した。
Salt Labs の研究者たちは、「このエンドポイントは、モバイル・アプリケーションを使用した認証をサポートするためだけに作成されており、XSS に対して脆弱である」と指摘している。つまり、攻撃者が URL から認証情報を読み取ることができれば、アカウントの乗っ取りが可能になるということだ。
彼らは、「必要なのは、ログイン・フローを開始する JavaScript コードを書き、トークンが URL に表示されるのを待ち、その URL を読み取ることだ。そのリンクを被害者がクリックすると、認証情報が悪意のドメインに渡される」と説明している。
Balmas が指摘するのは、Hotjar と Business Insider で発見された欠陥は対処されているが、他のサイトでも同様の攻撃シナリオが発生する可能性があるため、サイト管理者は、OAuth の実装方法に注意する必要があるというものだ。
彼は、「新しい技術を導入する際には、もちろんセキュリティも含めて、多くのことを考慮する必要がある。あらゆる可能性を考慮した堅実な実装は安全であり、この攻撃ベクターを悪用する機会を、攻撃者に与えないはずだ」と述べている。
とても便利な OAuth ですが、実装に問題があり、このような XSS との連鎖を引き起こされると、とても恐ろしい結果が生じるとのことです。 この記事ですが、事実の確認と、問題の背景から、取り組みのための方法論にいたるまで、Salt Labs のレポートをベースに、きちっと整理されていて、さすがは DarkReading と感心できるものとなっています。なお文中のリンク先からは、最近の代表的な XSS の脆弱性として、Joomla の CVE-2024-21726 が紹介されていました。 よろしければ、OAuth で検索も、ご利用ください。
You must be logged in to post a comment.