太っ腹。
でもApple(アップル)にしてみれば、仮に被害が現実のものとなったときに及んだ被害や補償額を考えると、かえって安上がりだったのかも。バグ褒賞ってよく見るけど、ほんとにお金もらえるんですね(失礼)。いや、助かりました。一攫千金のアメリカンドリームですね。デベロッパーのみなさま、お小遣い稼ぎにバグハントいかがですか~。
米ギズモードの報告です。
「Appleでサインイン」にバグが
重大なバグを見つけてくれたのは外部プログラマーBhavuk Jainさん。AppleがJainさんに、なんと10万ドル(約1077万3000円)もの報奨金の支払いを行なったことが話題となっています。このバグはAppleのログインシステム「Appleでサインイン」で見つかったもので、この脆弱性によりユーザーのアカウントが悪意ある攻撃者の手にかかったら、特定のサイトやアプリへと誘導され悪事の温床となる危険性があったとのこと...。
Here’s my first 6 digit bounty from @Apple. Blog post will be up next week. #bugbountypic.twitter.com/QygxvtGYJb
— Bhavuk Jain (@bhavukjain1) May 24, 2020
報奨金をもらったJainさんがブログにつづっているように、バグは 「Appleでサインイン」を使用したユーザーをAppleが検証する部分に発生していたようです。 「Appleでサインイン」はAppleが2019年にリリースしたログインサービスで、Apple IDと組み合わせて使用でき、Facebook(フェイスブック)やGoogle(グーグル)によるログインサービスを使うと有効になるトラッキング回避を目的として設計されたものでありました。「Appleでサインイン」のセールスポイントはサードパーティーのアプリやサービスにも自分のメールアドレスを開示しなくていい点にありました。
大事故につながる深刻度
「Appleでサインイン」はユーザーの許可にJWT (JSON Web Token)を使うか、Appleサーバーで生成されたプログラムを使います。このユーザー許可の段階で、ユーザーのApple IDをサードパーティーアプリと共有するか、非表示にするかを選ぶことができます。ユーザーが特定のアプリでメールアドレスの共有を許可しない場合には、そのアプリに対してはユーザー固有のAppleのメールIDが生成されます。
許可が完了すると、ユーザーの選択肢に応じてApple側でメールIDが含まれるJWTが生成されます。生成後はこのIDがユーザーのログインに使用されるというわけです。
バグが発生したのはこの部分です。Jainさんの話によれば、実質的にはどのAppleメールIDを使ってもJWTのリクエストが可能であったことに気づいたとのこと。
これらのトークンの署名はAppleの公開キーを使用することで検証されていました。悪意ある攻撃者の手にかかれば、例えば任意のメールIDをJWTに関連づけることで、JWTを好きなように生成させる、などのようなことが可能になっていたのです。こうすればユーザーのアカウントに好きなようにアクセスできるようになってしまうんです。
ブログには詳細が説明されています。
アメリカのメディア「Hacker News」でのインタビューでJainさんは、Appleは許可リクエストを開始する前に、ユーザーがAppleアカウントにログインすることを求めてはいたものの、次のステップで同じ人がJWTを許可サーバーからリクエストしているかどうかの検証を怠っていたと言います。
この脆弱性はこのログインを使用するが自前のセキュリティ対策を置いていなかったサードパーティーアプリに影響が及んだというわけです。
Hacker Newsでは、悪意ある攻撃者はユーザーがAppleのメールIDをサードパーティーアプリに対して非表示にした場合にもこの脆弱性を利用できたと報告しており、被害を受けたユーザーのApple IDを使用して新しいアカウントを作成することも可能だったかもしれないとしています。
脆弱性はすでにパッチ済み
この脆弱性が及ぼしたかもしれない影響はたいへん深刻なもので、アカウントを乗っ取ることすらできてしまうほどのものでした。ソーシャルメディアのログインをサポートするアプリは 「Appleでサインイン」ログインの実装が必須になっているため、多くのデベロッパーが 「Appleでサインイン」のインテグレーションを導入していたのです。
とJainさん。これらのアプリの中にはDropbox、Spotify、Airbnb、Giphyも含まれているのだとか。
これらのアプリはテストされておらず、ユーザーの認証中に特段の措置が敷かれていなかった場合には、アカウントをまるまる乗っ取られる可能性もあったわけです。
Jainさんによれば、 Appleはこの脆弱性による不正な使用やアカウントの乗っ取りがないことを十分に検証し、難を免れたといいます。 Appleではすでに複数の方向より、この脆弱性のパッチをリリースして当てています。ほっ。
新型コロナ禍で世界中が混乱する中、心温まるニュースですね。