Apple、「Appleでサインイン」システムの深刻なアカウント乗っ取りの欠陥を修正

Apple は、ハッカーにユーザー アカウントへの完全なアクセスを許可する可能性がある「Sign in with Apple」アカウント認証ページの重大なゼロデイ脆弱性を修正しました。

ご存じない方のために説明すると、Sign in with Apple は 2019 年 6 月に開始され、アプリや Web サイトにサインインするための「よりプライベートな方法」として宣伝されました。これは、ユーザーが最小限の個人情報でサードパーティ サービスのアカウントを作成できるように設計されており、ユーザーは名前と電子メール アドレスを入力するだけで済みます。 

「Apple でサインイン」システムの欠陥を発見したインドのフルスタック開発者兼研究者である 27 歳のバブク・ジェイン氏は、そのバグがユーザーの Apple ID を使用するサードパーティのアプリや Web サイトに影響を与えていることを発見しました。のために認証を行っていましたが、独自の追加のセキュリティ対策を実装していませんでした。

「この脆弱性の影響は、完全なアカウント乗っ取りを可能にする可能性があったため、非常に重大でした。他のソーシャル ログインをサポートするアプリケーションには Apple でサインインが必須であるため、多くの開発者が Apple でサインインを統合しました。」書きましたパッチが適用された脆弱性についてのブログ投稿で。

「Apple でサインインを使用しているものをいくつか挙げると、Dropbox、Spotify、Airbnb、Giphy (現在は Facebook に買収) です。これらのアプリケーションはテストされていませんでしたが、ユーザーの確認中に他のセキュリティ対策が講じられていなかった場合、完全なアカウント乗っ取りに対して脆弱になる可能性があります。」 

Jain氏によると、「Sign in with Apple」は「OAuth 2.0」と同様に機能するという。

「ユーザーを認証するには、JWT (JSON Web Token) を使用するか、Apple サーバーによって生成されたコードを使用する 2 つの方法が考えられます。次に、そのコードを使用して JWT が生成されます。以下の図は、JWT の作成と検証がどのように機能するかを表しています」と Jain 氏は説明しました。 

「2 番目のステップでは、認証中に、Apple は Apple 電子メール ID をサードパーティのアプリと共有するかどうかのオプションをユーザーに与えます。ユーザーが電子メール ID を非表示にすると、Apple は独自のユーザー固有の Apple リレー電子メール ID を生成します。ユーザーの選択に応じて、認証が成功した後、Apple はこの電子メール ID を含む JWT を作成します。この JWT は、サードパーティ アプリによってユーザーのログインに使用されます。

「Apple から任意の電子メール ID の JWT をリクエストできることがわかり、これらのトークンの署名が Apple の公開鍵を使用して検証されると、有効であることがわかりました。これは、攻撃者が任意の電子メール ID を JWT にリンクし、被害者のアカウントにアクセスすることで JWT を偽造できることを意味します。」 

4月にこの欠陥を発見したJain氏は、同社のセキュリティ報奨金プログラムに基づいてこのバグをAppleに非公開で報告した。彼は、脆弱性を発見して報告したことで Apple から 10 万ドルという高額の支払いを受けました。

このバグを修正する前に、Apple はログを独自に調査し、この脆弱性による悪用やアカウントの侵害がないことを確認しました。