2014年5月8日

OpenIDとOAuthにぜい弱性 – 慌てることなかれ

ヒント 脅威

Heartbleedバグの発見からまだ数週間ですが、私たちインターネット民は、またしても大規模な影響が見込まれ修正の難しい問題に直面することになりました。シンガポールのNanyang Technological Universityの博士課程に籍を置く学生、Wang Jing氏が先日公表した「Covert Redirection」(密かにリダイレクト、の意味)バグがそれです。問題は、一般的に使われているインターネットプロトコルであるOpenIDおよびOAuthの内部に見つかりました。OpenIDは、GoogleやFacebookやLinkedInなどのログイン情報を使ってWebサービスにログインするのに使われます。OAuthは、FacebookやGoogle+などでアプリやサービスを認証するのに使われます。

oauth-openid

何がどう危ないのか

この問題の技術的な説明や、元の調査結果へのリンクは、Threatpostにて紹介されています。詳細を知りたい人にはそちらを見ていただくとして、ここでは、どういった攻撃パターンが考えられるか、どんな結果が想定されるかを見ていきましょう。攻撃が成り立つには、まず、よくある[Facebookでログイン]などのボタンが置いてあるフィッシングサイトにユーザーがアクセスすることが前提となります。フィッシングサイトは、よく知られた実在のサービスのWebサイトに似せて作ってあったり、新しいWebサービスのページを装っていたりします。ボタンをクリックすると、実際のFacebook/Google+/LinkedInのポップアップウィンドウが開き、「サービスがユーザーのプロフィールにアクセスすることを許可する」名目でログインIDとパスワードを入力するように求められます。入力したログインIDとパスワードは、不正なリダイレクトによって不正なWebサイト(フィッシングサイト)へと送られます。

攻撃のスタートは、ユーザーがフィッシングサイトにアクセスして[Facebookでログイン]などのボタン を使ってログインするところからです

サイバー犯罪者はこうして、そのユーザーのプロフィールへアクセスするための認証情報(OAuthトークン)を手に入れます。ユーザーの基本情報にアクセスするのはもちろん、最悪のケースでは、連絡先リストの読み取りができたり、メッセージの送信も可能となったりします。

修正は、まだ

この問題は、すぐには過去のものとならないでしょう。プロバイダー側(Facebook/Google/LinkedInなど)とクライアント側(サードパーティのアプリやサービス)の両方で修正が必要なためです。OAuthプロトコルはまだベータ版であり、各プロバイダーが利用しているバージョンはさまざまです。そのため、先に述べたような攻撃への対応能力にも違いが出てきます。たとえば、LinkedInは比較的修正がしやすいでしょう。元々、正しいリダイレクトを行うために、「ホワイトリスト」の提出をサードパーティアプリ/サービスの開発者に求めているのです。現時点では、LinkedInの認証を使うアプリは、安全か、機能しないかのどちらかです。Facebookの場合は事情が違います。もっと幅広いサードパーティアプリを抱えており、OAuthのバージョンも若干古いものを使用しています。そのため、FacebookはJing氏に対して、ホワイトリスティングは「短期でできるようなものではない」と回答しているのです。

他にもぜい弱性を抱えるとみられるプロバイダーが多く存在しています。いずれかのサービスを使ってWebサイトにログインしている皆さんは、なんらかの手を打つ必要があります。

openid-oauth-ぜい弱なプロバイダー

やるべきこと

とにかく危険を避けたいという人に一番のお勧めは、OpenIDを使うのを止め、[xxでログイン]ボタンをしばらく(数ヶ月)は使わないことです。この方法は、プライバシー保護の点からもお勧めです。SNSからログインすると、オンラインで自分がとった行動が追跡されますし、自分の人口統計学的データのあれこれが読み取り可能な状態になるためです。膨大なパスワードを覚える手間は、パスワードマネージャー(パスワード管理ツール)を使うことで避けられます。今どきのパスワードマネージャーはマルチプラットフォーム対応しており、クラウドでの同期も可能なため、自分の持っているデバイスのどれからでもパスワードを参照できます。

とはいえ、OpenID認証を使い続けたい人もあるでしょう。使うことで直ちに危険にさらされるわけではありません。ただし、利用の際には大いに慎重になり、フィッシング詐欺にひっかからないようにしましょう。フィッシング詐欺は、FacebookなどのSNSへのリンクが貼ってある、気がかりな内容のメールが来るところから始まるのがよくあるパターンです。FacebookやGoogleなどを使ってサービスへログインするときには、メールやメッセンジャーで受信したリンクをクリックするのではなく、URLを手入力するか、あらかじめ設定しておいたブックマークからアクセスするようにしましょう。また、あやしいWebサイトへうっかりログインしてしまわないように、アドレスバーの表示が正しいかどうか再確認しましょう。新しいサービスにOpenIDでサインインするときは、そのサービスが本当に信頼できるものであること、そのサービスの正しいWebサイトにアクセスしていること、を完全に把握してからにしてください。なお、カスペルスキー マルチプラットフォーム セキュリティのような製品には、フィッシングサイトなどの怪しいWebサイトにアクセスするのを回避するための機能が備わっています。

ここに挙げたのは、インターネット利用者なら日常的に気をつけるべき、ごく普通の注意事項です。フィッシング詐欺はあちこちで見られるようになり、効果のほども高く、クレジットカード情報やメールのログイン情報をはじめとするデジタル資産が盗まれる被害が出ています。OpenIDとOAuthに見つかった「Covert Redirect」バグは、気をつけるべき理由を増やしただけです。これら注意事項は、例外なく当てはめてください。