Google Firebaseプラットフォーム上の多数のアプリが機密データを露呈、大規模な脆弱性が明らかに

包括的なセキュリティ分析により、Google Firebaseを利用するモバイルアプリケーションに広範な脆弱性が存在することが判明しました。150以上の人気アプリが、誤って設定されたGoogle Firebaseサービスを通じて、意図せず機密性の高いユーザーデータを公開していることが明らかになりました。

このセキュリティ危機は過去のインシデントをはるかに上回る規模であり、世界中で数百万ダウンロードされている数千のアプリケーションに影響を与える可能性があります。

セキュリティ研究者がわずか3つのアプリカテゴリから約1,200のモバイルアプリケーションを分析した結果、Firebaseの実装に驚くべきセキュリティ上の欠陥があることが判明しました。全モバイルアプリケーションの約80%を占めるFirebaseサービスを使用しているアプリのうち、150以上がRealtime Databases、Storage Buckets、Firestoreデータベース、Remote Configurationのシークレットを含む重要なデータストアへの認証なしでのアクセスを許可していることが確認されました。

公開されたアプリは、ユーザーベースが少ない無名のプログラムではありません。脆弱なアプリの多くは10万回以上のダウンロード数を誇り、中には100万、500万、1000万、5000万、さらには1億回以上のダウンロードに達しているものも多数あります。この規模は、50万回以上のダウンロードに影響を与えたTeaアプリのデータ侵害を大幅に上回ります。

すべてのアプリカテゴリにわたってこの状況を外挿すると、その影響はさらに深刻になります。分析された32〜34の全アプリカテゴリのうち、わずか3つのカテゴリの分析から、約4,800のFirebaseサービスが認証なしでアクセス可能であり、膨大な量の機密ユーザーデータを含んでいる可能性があると研究者は推定しています。

### 露呈した機密情報の種類

露呈したデータの種類と機密性は驚くべきものです。研究者たちは、決済処理の詳細、包括的なユーザー個人情報、数百万の一意の識別子、プライベートメッセージの会話、暗号化された認証情報と並ぶ平文パスワード、ユーザーのプロンプトとクエリ、そして高権限のGitHubおよびAmazon Web Servicesトークンを発見しました。

これらの発見は、Firebaseの誤設定がユーザーデータだけでなく、より広範な組織的侵害を可能にする可能性のある重要なインフラストラクチャのアクセス認証情報も露呈させることを浮き彫りにしています。

主な脆弱性は、Firebaseの「テストモード」設定オプションに起因しています。開発者がFirebase Storage、Realtime Database、またはFirestoreサービスを初期化する際、データがデフォルトでプライベートに保たれる「プロダクションモード」と、迅速な開発を容易にするために30日間データを公開する「テストモード」を選択できます。特に懸念されたのは、AWSルートアカウントのアクセストークンや、完全なリポジトリ制御を提供するGitHubトークンが見つかったことです。Firebaseは開発者に対し、テストモードのセキュリティルールが「ストレージバケット参照を持つ誰もが、今後30日間、ストレージバケット内のすべてのデータを表示、編集、削除することを許可する」と明示的に警告しています。しかし、多くの開発者は適切なセキュリティ設定を実装する代わりに、これらの緩いルールを30日を超えて延長しているのが現状です。

その他の要因としては、Firebaseのセキュリティルールに関するベストプラクティスの理解不足や、テスト目的で過度に緩いアクセス制御を推奨する安全でないコード例への依存が挙げられます。

既存のFirebaseセキュリティツールの限界に対処するため、研究者たちはOpenFirebaseを開発しました。これは、モバイルアプリパッケージ(APK)からFirebase設定を抽出し、複数のサービスにわたる不正アクセスを同時にテストできる自動セキュリティスキャナーです。既存のツールが限られた方法で単一のサービスのみをチェックするのに対し、OpenFirebaseはさまざまなURL形式と権限の組み合わせでFirebase Storage、Realtime Databases、Remote Config、Firestoreサービスを包括的にスキャンできます。このツールは、個々のアプリを処理することも、数千のアプリケーションにわたる一括分析を実行することも可能です。

### サービス固有の脆弱性の発見

* **Firebase Storage**: スキャンされた937のプロジェクトのうち、44のストレージバケットが公開アクセスを許可しており、386は適切に保護され、507は「見つかりません」エラーを返しました。特筆すべきケースとして、1億回以上ダウンロードされたアプリケーションが、認証なしでアクセス可能なユーザーID写真を保存していたことが挙げられます。
* **Realtime Databases**: 分析により、937のプロジェクトのうち35のデータベースが公開アクセス可能であることが判明しました。277は適切に保護され、467は見つからず、158はロックまたは非アクティブ化されていました。露呈したデータベースには、ユーザー認証情報、チャットの会話、位置情報、その他の機密性の高い個人情報が含まれていました。
* **Remote Config**: 最も広範な露呈は、383の公開アクセス可能なリモート設定に見られました。適切に保護されていたのはわずか61でした。Remote Configの露呈自体は本質的に問題ではありませんが、約30のインスタンスにはハードコードされたシークレット、APIキー、認証トークンが含まれていました。
* **Firestore**: スキャンされた929のプロジェクトのうち、50のプロジェクトで公開アクセス可能なFirestoreデータベースが確認されました。675は適切に保護され、122はDatastoreモードでした。24の特定のコレクションが公開アクセス可能であることが特定されました。

Firebaseのセキュリティ危機は、モバイルアプリエコシステムの基盤に影響を与えるシステム的な問題を表しています。Firebaseがモバイルアプリケーションの約80%を支えていることを考えると、これらの広範な誤設定は、数百万のユーザーの機密データを脅かす広大な攻撃対象領域を生み出しています。Firebaseを使用する組織は、直ちにセキュリティ設定を監査し、不正なデータ露呈を防ぐために適切なアクセス制御を実装する必要があります。

元記事: [https://gbhackers.com/firebase-platform-exposing-sensitive-data/](https://gbhackers.com/firebase-platform-exposing-sensitive-data/)