Google API を介したトークン窃取:OAuth MultiLogin 問題は軽視されている?

Google: Malware abusing API is standard token theft, not an API issue

2024/01/06 BleepingComputer — Google は、先日に発見されたマルウェアの報告を軽視している。このマルウェアは、Google Chrome の文書化されていない API を悪用して、以前に盗まれた認証クッキーの有効期限が切れた際に新しい認証クッキーを生成するものだ。2023年11月下旬に、BleepingComputer は、攻撃で盗まれた期限切れの Google 認証クッキーを復元する2つの情報窃盗マルウェア・オペレーション Lumma/Rhadamanthys について報告をしている。これらのクッキーは、感染したユーザーの Google アカウントへの不正アクセスのために、脅威アクターに悪用される可能性がある。


Lumma/Rhadamanthys 以降にも、4つの情報窃盗グループが同じ手法を採用していることが確認されている。具体的には、12月1日に Stealc/12月11日に Medusa/12月12日に RisePro/12月26日に Whitesnake である。

2024年1月4日に、サイバー・セキュリティ企業の CloudSEK が明らかにしたのは、これらの情報窃取マルウェアが、Google OAuth MultiLogin API エンドポイントを悪用しているという事実である。この API エンドポイントを悪用する攻撃者たちは、被害者から盗まれたオリジナルの Google Cookie が期限切れになった際に、新たに動作する認証 Cookie を生成していた。

この  API は、アカウント ID と認証ログイントークンのベクターを受け入れることにより、複数の Google サービス間でアカウントを同期するために設計されているようだ。

BleepingComputer は Google に対して、この API に関する詳細な情報を要求したが、満足できる回答は得られなかった。現時点において、唯一のドキュメントは Google Chrome のソースコードのみである。

Google Chrome source code for the MultiLogon endpoint
MultiLogon エンドポイントの Google Chrome ソースコード

CloudSEK の研究者である Pavan Karthick が BleepingComputer に語ったところによると、この機能を悪用する情報窃取マルウェアは、Google Chrome から複数のトークンを盗み出すという。これらのトークンには、Google サイトのあらゆる認証クッキーと、新しい認証トークンを、リフレッシュ/生成できる特別なトークンが含まれている。

一般的な認証クッキーは、一定の時間が経過すると失効するため、脅威アクターが悪用することは不可能になる。しかし、ユーザーが Google Chrome からログアウトしたり、アカウントに関連する全てのセッションを無効にしていない限り、脅威アクターたちは、この特別なリフレッシュ・トークンを使用して、以前のトークンの有効期限が切れたときを狙って、まったく新しい認証トークンを生成できるという。

この不正なトークンにより、通常に許可されるよりも遥かに長い期間において、対象アカウントへの継続的なアクセスが可能になる。

一般的なクッキーの窃盗とは異なる

残念なことに Google は、この API の悪用を、ありふれた Cookie の窃盗と見なしているようだ。

先週に Google は、「我々は、近頃のマルウェア・ファミリーによるセッション・トークンの窃取の報告を受けている。クッキーやトークンを盗み出すという、マルウェアによる攻撃は新しいものではない。Google では、このような手法に対する防御を日常的にアップグレードし、マルウェアの被害に遭ったユーザーを保護してる。今回のインシデントでは、侵害されたアカウントを保護するための措置を講じている」と、 BleepingComputer に述べている。

しかし、この問題に詳しい情報筋が BleepingComputer に語ったところによると、Google の認識は、この API が意図したとおりに動作しており、マルウェアにより脆弱性は悪用されていないというものだ。

この問題に対して Google が挙げている解決策は、影響を受けたデバイスの Chrome ブラウザからユーザーがログアウトする、もしくは、g.co/mydevices 経由でアクティブなセッションを全て終了させるというものである。そうすることで、リフレッシュ・トークンが無効になり、API を使用できなくなるという。

情報窃取マルウェアは認証情報を盗むものである。他のサイトで同じ認証情報を使用している場合は、用心して Google のパスワードも変更する必要がある。また Google は、「フィッシングやマルウェアのダウンロードから保護するために、Chrome の Enhanced Safe Browsing をオンにすることを推奨する」と述べている。

これらの推奨される措置は、情報を盗むマルウェア感染の影響を軽減するが、この種のマルウェアに感染した多くのユーザーは、どのようなタイミングで、これらの手順を実行すれば良いのか分からないだろう。

情報窃取マルウェアに感染した場合には、自分のアカウントが許可なくアクセスされ、何らかの悪用が検知されるまで気づかないのが一般的だ。

たとえば、スペイン国内第2位の携帯電話プロバイダーである Orange Espana の従業員のパスワードが、情報窃取マルウェアによって盗まれた件がある。このインシデントでは、盗まれた認証情報が、同社の RIPE アカウントへのログインに悪用され、BGP コンフィグレーションが変更されるまで、パスワードが盗まれていたことに誰も気づかなかった。

Google は、この API 悪用の影響を受けた人々を検出し、通知したと述べているが、今後の被害者はどうなるのだろうか?

さらに、感染したことすら知らないユーザーは、認証トークンを無効にするためにブラウザからログアウトすべきことを、どうやって知るのだろうか。

このような理由から、より良い解決策は、Malware-as-a-Service による悪用を防ぐために、何らかの方法でこの API へのアクセスを制限することだろう。しかし残念ながら、このような試みは行われていないようだ。

BleepingComputer は、この API の悪用を軽減するために、どのような計画があるのか Google に尋ねたが、現時点において回答は得られていない。