包括的なセキュリティ分析により、Firebaseを利用するモバイルアプリケーションに広範な脆弱性が存在することが明らかになりました。150以上の人気アプリが、誤って設定されたGoogle Firebaseサービスを通じて機密ユーザーデータを意図せず露呈していることが判明しました。
このセキュリティ危機は、以前のインシデントをはるかに上回る規模であり、世界中で数百万ダウンロードされている数千のアプリケーションに影響を与える可能性があります。セキュリティ研究者がわずか3つのアプリカテゴリから約1,200のモバイルアプリケーションを分析したところ、Firebaseの実装に驚くべきセキュリティ上の欠陥が発見されました。モバイルアプリケーション全体の約80%を占めるFirebaseサービスを使用しているアプリのうち、150以上がRealtime Databases、Storage Buckets、Firestoreデータベース、Remote Configurationのシークレットを含む重要なデータストアへの認証なしのアクセスを完全に許可していることが判明しました。
露呈したアプリケーションは、ユーザーベースが最小限の無名のプログラムではありません。脆弱なアプリの多くは10万回以上のダウンロード数を誇り、数百万、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/multiple-apps-on-google-firebase-platform-exposing-sensitive-data/