Firebase Cloud Messaging(FCM)の公開サーバーキーの修正

この情報は、Firebase Cloud Messaging(FCM)の公開サーバーキーを使用しているアプリのデベロッパーが対象です。

状況

FCM 公開サーバーキーを使用しているアプリの場合、悪意のある攻撃者が、公開されているキーを使用して、脆弱なアプリのすべてのユーザーにプッシュ通知を送信するおそれがあります。攻撃者はこのような通知を操作して、攻撃的なメッセージや刺激の強い画像、不快感を与える画像など、さまざまなコンテンツを送信してくるおそれがあります。下記の詳細な手順を確認して、アプリの問題を解決してください。アプリ内で FCM サーバーキーが公開されている場所は、アプリの Google Play Console 通知で確認できます。

必要なご対応

  1. 下記でハイライト表示されている手順に沿って、アプリと FCM 公開キーを更新します。

    1. アプリで以前の FCM API を有効にしていても、プッシュ通知の送信には使用していない場合は、以前の FCM API を無効にしてください。
    2. 以前の FCM API を有効にしていて、プッシュ通知の送信にも使用している場合は、次の 2 つの手順のいずれかで修正できます。
      1. (推奨)FCM v1 API を使用するように移行し、以前の FCM API を無効にします。
      2. 以前の FCM API の使用を次のように保護します。
        1. FCM API のみにその公開キーを使用している場合:
          1. Firebase コンソール > [プロジェクトを設定] > [Cloud Messaging] に移動し、[サーバーキーを追加] をクリックして、新しいキーを生成します。この新しいサーバーキーを使用して、安全なサーバー環境から FCM メッセージを送信します。このキーは必ず、安全なサーバー環境からのみ使用し、クライアント コード(アプリ、バイナリ)には含めないようにしてください。
          2. 新しく生成したサーバーキーを使用して FCM メッセージを送信するように移行が完了したら、GCP Console から公開サーバーキーを削除します。アプリ内で FCM サーバーキーを公開している箇所は、Google Play からの通知メールで確認できます。その箇所から公開されているキーを取得する方法については、ステップ c で説明しています。
        2. FCM などの他の API にもその公開キーを使用している場合:
          1. FCM v1 API を使用するように移行し、以前の FCM API を無効にします。
          2. 他の API も今後使い続けられるように、他の API でも公開キーの使用を取りやめることを検討し、最終的に GCP Console から公開キーを削除するようにします。
    3. 上記の手順のいずれかを完了したら、FCM 公開サーバーキーをアプリコードから削除します。アプリ内で FCM サーバーキーを公開している箇所は、Google Play からの通知メールで確認できます。公開キーを取得するには、その脆弱な箇所でアプリのコードを確認します。キーはそこに文字列として埋め込まれているか、アプリの XML リソースからそこに読み込まれている可能性があります。後者の場合は、アプリの res/values/strings.xml ファイルを確認し、公開キーを取得します。以下の点にご注意ください。
      • 上記の手順を行っても、アプリから公開キーを削除しなかった場合、引き続き脆弱性の通知がメールと Google Play Console で届きます。
      • 公開キーをアプリから削除しても、上記の手順を行わなかった場合、攻撃者はアプリの古いバージョンからキーを簡単に見つけて、それを使ってアプリを攻撃できるので、問題は実際には解決しません。

2. 更新した APK を送信する

更新した App Bundle または APK を送信するには:

  1. Google Play Console にアクセスします。
  2. アプリを選択します。
  3. App Bundle エクスプローラに移動します。
  4. 右上のプルダウン メニューで、ポリシーを遵守していない APK または App Bundle のアプリのバージョンを選択し、該当するリリースを書き留めます。
  5. ポリシーに関する問題があるトラックに移動。4 つのページ([内部テスト]、[クローズド テスト]、[オープンテスト]、[製品版])のいずれかになります。
  6. ページの右上にある [新しいリリースを作成] をクリック(場合によっては、先に [トラックを管理] をクリックする必要があります)
    • 違反している APK を含むリリースが未公開の状態の場合は、リリースを破棄
  7. ポリシーを遵守したバージョンの App Bundle または APK を追加
    • ポリシーを遵守していないバージョンの App Bundle または APK がこのリリースの [含まれない APK] セクションに表示されていることを確認します。詳しくは、Google Play Console ヘルプセンターのこちらの記事の「含まれない(App Bundle と APK)」を参照してください。
  8. リリースの変更内容を保存するには、[保存] を選択します。
  9. リリースの準備が完了したら、[リリースのレビュー] を選択します。

ポリシーを遵守していない APK が複数のトラックでリリースされている場合は、トラックごとにステップ 5~9 を繰り返してください。

再送信すると、アプリは再度審査されます。審査には数時間ほどかかることがあります。アプリが審査に合格して正常に公開された場合は、これ以上の対応は不要です。アプリが審査に不合格となった場合、アプリの更新バージョンは公開されず、メールで通知が届きます。

サポートのご案内

この脆弱性に関する技術的なご質問は、「android-security」タグを付けて Stack Overflow にご投稿ください。この問題の解決手順にご不明な点がありましたら、デベロッパー サポートチームにお問い合わせください。

メインメニュー
14537199146154255374
true
ヘルプセンターを検索
true
true
true
true
true
5016068
false