削除されたGoogle APIキーがGemini、BigQuery、Maps APIへのアクセスを継続

GoogleのAPIキー失効プロセスに重大な欠陥が存在し、削除された認証情報が最大23分間有効なままとなることが判明した。これにより、漏洩したキーを保持する攻撃者に悪用可能な時間的窓口が生まれている。

Google APIキーがGoogle Cloud Platform(GCP)コンソールから削除された際、UIには「削除後はAPIリクエストに使用できなくなります」と表示される。しかし研究者たちはこの説明が明らかに誤りであることを実証した。

Aikidoによると、Googleのインフラは「結果整合性」モデルを採用しており、更新情報は分散サーバー全体に同時ではなく段階的に伝播するという。

この設計はグローバルなスケーラビリティを実現する一方で、認証情報の失効処理に適用した場合に危険な不整合をもたらす。失効シグナルをまだ受信していないサーバーでは、削除されたキーによる認証が継続して成功してしまうのだ。

10回の制御実験において、研究者たちは最短約8分、中央値約16分、最長約23分という失効までの時間を記録した。

この時間窓内において、ある試行では削除からわずか1分後にリクエストの79%が成功した一方、別の試行では5%にとどまるなど、防御側・攻撃側いずれの観点からも挙動は非常に予測困難であった。

漏洩したGoogle APIキーを入手した攻撃者は、被害者がそれを削除した後も認証済みリクエストを送り続けることができる。

プロジェクトでGeminiが有効になっている場合、そのアクセスにはアップロードされたファイルのダンプやキャッシュされた会話の窃取も含まれる。同様の遅延は、BigQueryおよびMaps APIにスコープされたキーにも適用される。

さらに深刻なのは、GCPコンソールには削除済みキーがまだ有効かどうかを確認する手段がなく、失効を早めたり完了を確認したりするメカニズムも存在しないことだ。

研究者たちはGCPの3つのリージョン(us-east1europe-west1asia-southeast1)のVMから並行試験を実施し、キー削除直後に顕著なリージョン間差異を確認した。

ある試行では、削除後1分以内にus-east1がリクエストの82%を認証し、europe-west1は60%、asia-southeast1は32%を受け入れた。

直感に反して、米国地理的に近いサーバーほど失効の伝播が遅いという結果となった。

すべてのGoogle認証情報がこの挙動を示すわけではない。研究者たちは2つの代替手段を検証した。

いずれの認証情報タイプもGoogleのスケールで動作しており、迅速な失効が技術的に実現可能であることを示している。それだけに、標準のGoogle APIキーに23分もの時間窓が存在することはアーキテクチャ上正当化しがたい。

フォレンジック分析の際、調査担当者はGCPの「認証情報別トラフィック」グラフ上でapikey:UNKNOWNというラベルの付いた紛らわしいアーティファクトに遭遇することがある。

研究者たちは、このラベルがすべての削除済みAPIキーからのリクエストを単一のバケットに集約していることを確認した。これにより、特定の失効済み認証情報にトラフィックを帰属させることが不可能になっている。

この曖昧さは、攻撃者が削除済みキーを能動的に悪用しているかどうかを判断するインシデント対応を妨げる。

Aikidoの研究者たちはこの調査結果をGoogleに報告したが、Googleは「修正しない」として報告を却下し、伝播遅延はIAMシステムの既知かつドキュメント化された特性であると説明した。

GoogleはIAM APIの結果整合性について広く文書化しているが、標準のGoogle APIキーにおけるこの挙動を具体的に説明したドキュメントは存在しない。

Googleが修正を提供するまでの間、セキュリティチームは以下の対策を早急に講じるべきだ。

本研究は、より広範な原則を浮き彫りにしている。結果整合性はデータレプリケーションやキャッシングにおいては許容可能なトレードオフだが、認証情報の失効は即時であるべきというユーザーの期待とセキュリティ要件とは根本的に相容れない。

翻訳元: https://cyberpress.org/deleted-google-api-keys/

ソース: cyberpress.org