自動保護で不正な再配布を防ぎ、アプリを Google Play で入手するよう求めるメッセージを表示する

Google Play の自動保護は、不正な再配布や著作権侵害からアプリやゲームを保護するためのサービスです。保護対象のアプリを不明な配信チャネルから入手したユーザーには、Google Play から正式なアプリを入手するよう求めるメッセージが表示されます。自動保護は、データ接続がなくてもアプリで機能します。Google Play Console でワンクリックで有効にすることができ、テスト前のデベロッパーの作業やバックエンド サーバーとの統合は不要です。

仕組み

自動保護を利用すると、アプリに次の機能を追加できます。

インストーラ チェック

アプリのコードに Google Play インストーラ チェックを追加できます。このチェックはアプリの起動時に行われ、インストーラ チェックに失敗した場合、アプリを Google Play で入手するよう求めるメッセージがユーザーに表示されます。

利点: Google Play から正式なアプリ アップデートを入手するユーザーを増やすことができます。

改ざん対策

注: この機能は一部の Play パートナーのみご利用いただけます。

アプリのコードにランタイム チェックを追加して改変を検出できます。さらに、高度な難読化手法を使用してチェックの削除やリバース エンジニアリングも防ぐことができます。このチェックが失敗した場合、アプリを Google Play で入手するよう求めるメッセージがユーザーに表示され、アプリは実行されません。

利点: Google Play インストーラ チェックと組み合わせることで、攻撃者が不正な改変、再パッケージ化、再配布、著作権侵害を通じてデベロッパーによる配布や収益化の設定を回避するのを防止できます。

: 改ざん対策は、すべての改変や再配布を防ぐことを保証するものではありませんが、これによって、不正行為がより複雑でコストがかかるようになり、成功する可能性が低くなります。Google Play では改ざん対策を継続的に強化していくため、新しいリリースには自動的に最新かつ最強の保護機能が適用されます。

アプリのテレメトリー(匿名化した環境データやパフォーマンス データなど)を Google Play と共有することで、改ざん対策のレジリエンスとパフォーマンスを強化できます。アプリのテレメトリーの共有を無効にするには、[自動保護の設定] ページ([テストとリリース] > [アプリの完全性] に移動し、[自動保護] まで下にスクロール)で [アプリのテレメトリーを Google と共有する] をオフにします。詳しくは、Google サービスの開発に使用されるデータについての説明をご覧ください。

デバイス チェック

注: この機能は一部の Play パートナーのみご利用いただけます。

自動保護により、Google Play からのみアプリをインストールできるようにし、かつ完全性チェックに合格したデバイスでのみ利用できるようにすることができます。また、最小 API レベル 28 以上を対象とするアプリの場合、デバイスの完全性チェックとハードウェア格納型の暗号化を追加して、ランタイムで実行されるアプリの改ざん対策を強化できます。 

 

利点: デバイス チェックにより、認定済みの Android デバイスに Google Play によってアプリがインストールされることが保証され、攻撃者が不明な環境やエミュレートされた環境でアプリを実行して保護対策を回避しようとする試みを防ぐことができます。

 

: デバイス チェックを行うには、改ざん対策を有効にする必要があります。最小 API レベルが 28 以上のアプリの場合、デバイス チェックによってハードウェア格納型の暗号化が追加され、アプリの改ざん対策が強化されます。コールド スタートでアプリを起動すると、Android のスプラッシュ画面が短時間表示されることがあります。

設定

自動保護の使用を開始するために必要な作業は以下のとおりです。

要件

自動保護により、Google Play には、変更された APK を作成してデベロッパーに代わって署名することが求められます。そのため、デベロッパーは次の要件を満たす必要があります。

次の点にもご注意ください。

  • 自動保護を利用するには、アプリが最小 API レベル 21 以上を対象にしている必要があります。
  • 自動保護はオフラインで動作します。ただし、デバイス上の Google Play ストア アプリが長時間オフラインになっている場合、インストーラ チェックでは定期的にデータ接続が必要になります。
  • 自動保護を使用する場合は、Play ライセンス ライブラリを使用する必要はありません。
  • アプリを内部アプリ共有にアップロードする場合、保護機能は適用されません。内部アプリ共有のリンクは信頼できるチームメンバーとのみ共有し、保護されていないバージョンを外部と共有しないでください。
  • 自動保護は App Bundle のコード透明性に対応していません。

改ざん対策の使用における追加要件

注: この機能は一部の Play パートナーのみご利用いただけます。

改ざん対策を使用する場合、アプリは次の要件を満たしている必要があります。

  • 最小 API レベル 23 以上を対象にしている。23 以上の midSDKVersion を対象にすることで、アクティブな Android デバイスの 99% 以上にリーチできます。
  • x86、x86_64、armeabi-v7a、arm64-v8a のいずれかの ABI を対象にしている。アプリの対象 ABI を更新するには、Gradle の設定を更新します。アクティブな Android デバイスで使用されていないその他の ABI は、アプリの可用性に影響を与えることなく対象から削除できます。
ステップ 1: 保護を有効にする

「リリースを準備して公開する」のステップ 1 の説明に沿って、リリースを作成します。

リリースを作成するときに保護機能を有効にするか(リリースを準備して公開するステップ 2 を参照)、[アプリの完全性] ページ([テストとリリース ] > [アプリの完全性])で有効にします。[アプリの完全性] ページには、アプリやゲームで意図したとおりのユーザー エクスペリエンスを実現するための完全性と署名のサービスが含まれています。

リリースを準備するときに、[整合性保護を有効にする] または [完全性の保護の管理] というボタンが表示されます。次に、[自動保護] で [オンにする] をクリックすると、完全性の保護を有効にできます。Google Play でリリースへの署名とインストーラ チェックの追加が行われ、不正な配布が制限されます。これは、自動保護がオンになっていることを表します。

リリースの準備を完了し、変更を保存します。

ステップ 2: 保護されたアプリをテストする

テストトラックを使用して、保護されたアプリ バージョンをテストし、ユーザー エクスペリエンスやパフォーマンスに予期しない影響が生じないことを確認します。

確認には以下の手順を含めることをおすすめします。

  • ゲームの起動をテストして、起動時のクラッシュや起動時間の速度低下がないか確認します。

テストプロセス中に問題が見つかった場合は、自動保護を無効にすることができます。保護されていないバージョンをオープン トラックや製品版に昇格させないことをおすすめします。

個々のリリースで完全性保護機能をオフにする方法は次のとおりです。

  1. リリースを準備するときに、[完全性の保護の管理] をクリックします。
  2. [自動保護] で [このリリースの保護をオフにする] を選択します。
  3. 変更内容を保存します。変更はこのリリースに適用されます。次回リリースをアップロードするときに、リリースに自動保護が再び適用されます。
ステップ 3: アプリを製品版トラックに昇格する

準備が整ったら、Google Play Console でリリースを製品版トラックに公開できます。選択した国のすべての Google Play ユーザーに保護されたアプリが公開されます。

ユーザーが自動保護のメッセージからアクセスしたときのストアの掲載情報をカスタマイズする

自動保護では、アプリを非公式に入手したユーザーに対して、Google Play でアプリを入手するよう求めるメッセージを表示できます。ユーザーはこのメッセージをタップするとストアの掲載情報にリダイレクトされます。ストアの掲載情報に表示されてい���、Google Play からアプリを入手するためのインストール(または購入や更新)ボタンをタップすると、ユーザーの Google Play ライブラリにアプリが追加されます。

メッセージをタップしたユーザー向けに、ストアの掲載情報のアセット(アプリの名前、アイコン、説明、画像、映像など)をカスタマイズできます。手順は以下のとおりです。

  1. Google Play Console を開き、[アプリの完全性] ページ([テストとリリース ] > [アプリの完全性])に移動します。
  2. [自動保護] セクションまでスクロールします。
  3. [設定] をクリックします。
  4. [ストアの掲載情報のカスタマイズ] セクションまでスクロールします。
  5. [掲載情報の作成] をクリックします。
  6. [ストアのカスタム掲載情報を作成] ページの指示に沿って操作し、[保存] をクリックします。

[ストアのカスタム掲載情報] ページから、自動保護メッセージ用のストアのカスタム掲載情報を直接作成することもできます。

  1. Google Play Console を開き、[ストアのカスタム掲載情報] ページ([ユーザーを増やす] > [ストアのカスタム掲載情報])に移動します。
  2. [掲載情報の作成] をクリックし、新しい掲載情報を作成するか既存のリスティングを複製するかを選択して、[次へ] をクリックします。
  3. [掲載情報] で [ターゲット ユーザー] までスクロールします。
  4. [URL] を選択し、テキスト ボックスに「playintegrity」と入力します。
  5. その他の情報をすべて入力して、[保存] をクリックします。
ヒント: URL パラメータ「playintegrity」は完全性のディープリンク用に予約されている特殊なキーワードであるため、ストアのカスタム掲載情報を設定する際に一字一句正確に入力する必要があります。
: デバイス チェックを使用している場合、ストアの掲載情報の公開設定は変更できません。これは、デバイスの完全性チェックに合格した正規の Android デバイス以外の環境のみでアプリがインストールされ、実行されることを確認する一環として、ストアの掲載情報の公開設定がデベロッパーに代わって管理されているためです。ストアの掲載情報の公開設定を変更するには、デバイス チェックをオフにしてください。

改ざん対策に対するおすすめの方法

注: この機能は一部の Play パートナーのみご利用いただけます。

以下に、Google Play の改ざん対策を最大限有効に活用するためのおすすめの方法をご紹介します。

保護されたアプリをテストする

Google Play はすべてのトラック(内部テスト版、クローズド テスト版、オープンテスト版、製品版)にわたって、保護されたビルドを自動的に配布します。これらのバージョンを通常どおりに十分にテストする必要があります。具体的には、次のとおりです。

  • ゲームの起動をテストして、起動時のクラッシュや起動時間の速度低下がないか確認します。これは、デバイス チェックで特に重要です。
  • ネイティブ コード(C / C++)が(独自のコードまたはサードパーティ ライブラリの)Java にコールバックする時点をテストします。たとえば、広告、ロギング、ソーシャルとの統合、認証、Android 固有の機能(権限の処理など)が挙げられます。

テストプロセス中に問題が見つかった場合は、(以前のリリースですでに使用していた)以前のバージョンの自動保護に戻すことができます。または、Automatic Integrity Protection を無効にすることもできます。保護されていないバージョンをオープン トラックや製品版に昇格させないことをおすすめします。

アプリのビルドを内部アプリ共有に直接アップロードした場合、Google Play は保護機能を追加しません。これは、内部アプリ共有を使用して、デバッグビルドやその他の類似のビルドをアップロードできるようにするためです。

改ざん対策を組み合わせる際は注意する

自動保護は、ランタイムで実行される他の改ざん対策との互換性がない可能性があるため、併用するとユーザーに問題が発生する恐れがあります。アプリで他のランタイム チェックが実行される場合は、オープン トラックに公開する前に、保護されたアプリを十分にテストしてください。

保護されていないアプリのバージョンをリリースしない

保護されていないバージョンをオープン トラックに公開したり、Google Play 以外のチャネルで公開したりすると、アプリの保護機能は動作しなくなります。アプリの完全性保護機能を維持するには、アプリの保護されたバージョンをオープン トラックと製品版にのみ公開する必要があります。

クラッシュをモニタリングする

アプリが保護されている結果としてクラッシュ数が増えることがあります。これはおそらく、自動保護が想定どおりに機能していることを示しています。攻撃者がアプリの改変に失敗した場合、ランタイム チェックは主にアプリをクラッシュさせることで、アプリの実行を停止します。

Google Play に起因しないクラッシュは、Android Vitals の安定性の指標には影響を与えません。他のツール(Crashlytics など)を使用してクラッシュを分析していて、インストール元でフィルタする際にパッケージ名が必要になる場合、Google Play ストアのパッケージ名は「com.android.vending」です。

クラッシュ数の異常な増加について懸念されている場合は、できるだけ詳しい情報を記載して Google までお知らせください。担当チームが調査いたします。クラッシュが保護機能に関連していることが判明した場合は、適切に対応いたします。

アプリのクラッキングされたバージョンを報告する

クラッキングされたバージョンとは、改変された場合または Google Play からのインストールが要求される状況で Google Play の外部からインストールされた場合においても、機能しているアプリのバージョンのことです。

アプリのクラッキングされたバージョンを特定した場合は、Google までお知らせください

改ざん対策の利用条件

注: この機能は一部の Play パートナーのみご利用いただけます。

改ざん対策などの高度な機能は、以下の利用条件を満たしているアプリやゲームに対して、自動保護機能を通じてご利用いただけます。

  • 過去 3 か月の MAU が毎日 80 万以上、かつアクティブなインストールが 80 万以上。
  • 前月の MAU が毎日 100 万以上、かつアクティブなインストールが 100 万以上。
  • 過去 3 暦月のユーザー支出額が毎月 $20,000 USD 以上、または過去 1 暦月のユーザー支出額が $25,000 USD 以上。

以下の Google Play プログラムに参加しているアプリやゲームも対象になります。

  • Google Play Games Level Up+
  • ゲーム向け Google Play パートナー プログラム
  • Google Play メディア エクスペリエンス プログラム
  • Google Play Pass

利用条件は変更される可能性があります。利用条件を満たしているパートナーには、Google Play Console および [アプリの完全性] ページに通知が表示されます。

改ざん対策の対象外となったために攻撃の増加が懸念される場合は、デベロッパー サポートにお問い合わせのうえ、できるだけ詳しい情報をお知らせください。担当チームが調査いたします。お知らせいただいた内容に応じて、適切に対応させていただきます。

関連コンテンツ

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
Google アプリ
メインメニュー
17896635934678718154
true
ヘルプセンターを検索
false
true
true
true
true
true
92637
false
false
false
false