最初の試行
- Pythonで書かれた基本的なスキャナーがFirebaseの設定変数をチェック。
- メモリ消費の問題により、1時間以内に動作停止。
2回目の試行
- Go言語で書き直したスキャナーにはメモリリークがない。
- 500万件を超えるドメインのスキャンには、予想より多くの時間を要した。
すべてのドメインを手動確認
- 55万行のテキストファイルの各項目を手動で検査。
- 136サイトと620万件のレコードを確認したが、自動化された方法が必要だと認識。
触媒
- 潜在的に影響を受ける可能性のあるサイトの一覧を、Catalystという補助スキャナーで検査。
- サイトまたは
.jsバンドル内で、共通のFirebaseコレクションへの読み取りアクセスを自動確認。
- データの影響度を評価するため、100件のレコードサンプルを収集し、情報の種類を確認。
- 結果を保存するためにSupabase(オープンソースのFirebase競合)を選択。
数字
- 総レコード数: 1億2460万5664件
- 名前: 8422万1169件
- メールアドレス: 1億626万766件
- 電話番号: 3355万9863件
- パスワード: 2018万5831件
- 決済情報: 2748万7924件
- これらの数字は実際より大きい可能性がある点に注意。
影響を受けたサイト一覧
1. Silid LMS
- 学生と教師向けの学習管理システム。
- 最も多くのユーザーレコードが露出し、2700万人に影響。
2. オンラインギャンブルネットワーク
- 9つのサイトで構成され、すべて異なるデザイン。
- 一部のゲームでは当選確率が0%に操作されていた。
- 問題を報告しようとすると、カスタマーサポートが誘惑を試みた。
- 最も多くの銀行口座情報が露出し、800万件。
- 最も多くの平文パスワードが露出し、1000万件。
3. Lead Carrot
- コールドコール向けのオンラインリード生成ツール。
- 露出したユーザー情報が多い上位3サイトの1つで、2200万人に影響。
4. MyChefTool
- レストラン向けの業務管理アプリおよびPOSアプリケーション。
- 最も多くの氏名と、2番目に多いメールアドレスが露出し、それぞれ1400万件と1300万件。
結果
- 13日間で842通のメールを送信。
- メール到達率85%。
- メールのバウンス率9%。
- サイト所有者の24%が設定ミスを修正。
- サイト所有者の1%が返信。
- 0.2%(2件)のサイト所有者がバグバウンティを提供。
GN⁺の見解
- この調査は、Firebaseのセキュリティ設定の誤構成がどれほど簡単に起こり得るかを示している。これは開発者に対し、セキュリティ設定への警戒を促す重要な事例だ。
- セキュリティ問題が発見された際のサイト所有者の反応がさまざまだったことが分かる。大半は問題を修正したが、一部は無視するか、適切な報酬を提供しなかった。
- こうしたセキュリティ脆弱性を見つけるために使われた自動化ツールは、他のセキュリティ研究者にも有用である可能性がある。同様の機能を提供するツールとしては、OWASP ZAP、Burp Suiteなどがある。
- Firebaseのようなクラウドサービスを利用する際には、セキュリティ設定を正確に理解し適用することが重要だ。誤った設定は大規模なデータ漏えいにつながり得る。
- この事例は、オープンソース代替であるSupabaseを含む他のサービスを検討する際に、セキュリティ機能と使いやすさを比較する助けにもなり得る。SupabaseはPostgreSQLをベースとしており、Firebaseと似た機能を提供するが、オープンソースである。
1件のコメント
Hacker Newsのコメント