Mengamankan lingkungan

Google menawarkan serangkaian API dan layanan untuk membantu Anda mendeteksi apakah aplikasi Anda berjalan di lingkungan yang aman dan tepercaya. Inti dari program ini adalah Play Integrity API, yang membantu memeriksa apakah interaksi bersifat asli dengan mendeteksi interaksi yang berpotensi berisiko dan menipu. Selain integritas aplikasi dan perangkat, Play Integrity API kini menawarkan informasi tentang risiko akses dan aksesibilitas, Google Play Protect, dan aktivitas perangkat terbaru. Untuk lebih meningkatkan strategi anti-penipuan, platform Android menawarkan API untuk skenario tertentu yang mungkin relevan dengan aplikasi Anda.

Play Integrity API

Fitur Play Integrity API

Play Integrity API memungkinkan Anda mempelajari status keamanan perangkat tempat aplikasi mereka berjalan. Hal ini membantu Anda yakin bahwa pengguna yang tepat mengakses informasi sensitif.

API ini membantu Anda memeriksa apakah interaksi dan permintaan server berasal dari biner aplikasi asli di lingkungan yang tepercaya:

  • Biner aplikasi asli: Menentukan apakah Anda berinteraksi dengan biner yang tidak dimodifikasi dan dikenali Google Play.
  • Penginstalan Play asli: Menentukan apakah akun pengguna saat ini memiliki lisensi, yang berarti pengguna telah menginstal atau membayar aplikasi atau game Anda di Google Play.
  • Perangkat Android asli: Menentukan apakah aplikasi Anda berjalan di perangkat yang didukung Android asli yang didukung oleh layanan Google Play.
  • Bebas dari malware yang diketahui: Menentukan apakah Google Play Protect telah diaktifkan dan apakah Google Play Protect telah menemukan aplikasi berisiko atau berbahaya yang diinstal di perangkat.
  • Risiko akses rendah oleh aplikasi lain: Menentukan apakah aplikasi lain sedang berjalan yang dapat merekam layar atau mengontrol perangkat dan input ke aplikasi Anda.

Cara ini membantu memitigasi penipuan

Saat pengguna melakukan tindakan penting di aplikasi, Anda dapat memanggil Play Integrity API. Jika tidak, server backend aplikasi Anda dapat memutuskan tindakan yang harus dilakukan untuk mengatasi serangan dan penipuan. Misalnya, Anda dapat mewajibkan verifikasi pengguna tambahan atau menolak akses ke fungsi sensitif.

Alur keputusan Play Integrity API

Risiko Akses Aplikasi

Sinyal Risiko Akses Aplikasi diperkenalkan untuk membantu Anda menilai apakah aplikasi lain di perangkat dapat melihat dan merekam layar saat aplikasi Anda berjalan atau mengakses aplikasi Anda menggunakan izin aksesibilitas. Aplikasi aksesibilitas terverifikasi otomatis dikecualikan dari verdict ini. Risiko akses aplikasi membantu developer melindungi aplikasi sekaligus menjaga privasi pengguna karena aplikasi yang memintanya tidak mendapatkan identitas aplikasi yang diinstal dan verdictnya tidak ditautkan ke ID pengguna atau perangkat.

Screenshot ponsel yang mengharuskan pengguna menutup aplikasi tertentu.

Berkat upaya kolaboratif ini, kami dapat memperoleh sinyal yang diperlukan untuk memberikan insight yang lebih mendalam guna melindungi pelanggan kami secara lebih efektif.
—Nubank, partner akses awal

Risiko Akses Aplikasi memiliki tingkat risiko yang berbeda:

  • Respons pengambilan berarti aplikasi lain sedang berjalan dan dapat mengambil screenshot.
  • Respons pengontrol berarti aplikasi lain sedang berjalan dan dapat mengontrol perangkat, sehingga dapat merekam layar dan mengontrol input ke aplikasi Anda.

Penerapan Risiko Akses Aplikasi

Identifikasi tindakan bernilai tinggi atau sensitif di aplikasi atau game Anda untuk melindungi dengan Play Integrity API, bukan untuk langsung menolak akses. Jika memungkinkan, tantang traffic berisiko sebelum mengizinkan tindakan bernilai tinggi untuk dilanjutkan. Misalnya, jika risiko akses aplikasi menunjukkan bahwa aplikasi sedang berjalan dan dapat merekam layar, minta pengguna untuk menonaktifkan atau meng-uninstal aplikasi yang dapat merekam layar sebelum mengizinkannya melanjutkan ke fungsi yang ingin Anda lindungi.

Tabel ini berisi beberapa contoh verdict:

Contoh respons verdict risiko akses aplikasi Interpretasi
appsDetected:
["KNOWN_INSTALLED"]
Hanya ada aplikasi terinstal yang dikenali oleh Google Play atau yang dimuat sebelumnya di partisi sistem oleh produsen perangkat. Tidak ada aplikasi yang berjalan yang akan menghasilkan verdict pengambilan, kontrol, atau overlay.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Ada aplikasi yang diinstal oleh Google Play atau dimuat sebelumnya di partisi sistem oleh produsen perangkat. Ada aplikasi lain yang berjalan dengan izin diaktifkan yang dapat digunakan untuk melihat layar atau merekam input dan output lainnya.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
Ada aplikasi Play atau sistem yang berjalan dengan izin diaktifkan yang dapat digunakan untuk melihat layar atau merekam input dan output lainnya. Ada juga aplikasi lain yang berjalan dengan izin diaktifkan yang dapat digunakan untuk mengontrol perangkat dan mengontrol input ke aplikasi Anda secara langsung.
appAccessRiskVerdict: {} Risiko akses aplikasi tidak dievaluasi karena persyaratan yang diperlukan tidak terpenuhi. Misalnya, perangkat tidak cukup tepercaya.

Sinyal Play Protect

Sinyal Play Protect memberi tahu aplikasi Anda apakah Play Protect diaktifkan dan apakah Play Protect telah menemukan aplikasi berbahaya yang diketahui diinstal di perangkat.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

Jika malware menjadi masalah khusus untuk aplikasi atau data pengguna Anda, Anda dapat memeriksa verdict ini dan meminta pengguna untuk mengaktifkan Play Protect atau menghapus aplikasi berbahaya sebelum melanjutkan.

Dialog Aktifkan Play Protect

playProtectVerdict dapat memiliki salah satu nilai berikut:

Verdict Penjelasan Aksi yang Disarankan

NO_ISSUES

Play Protect diaktifkan dan tidak menemukan masalah aplikasi apa pun di perangkat.

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan yang perlu dilakukan pengguna.

NO_DATA

Play Protect diaktifkan, tetapi belum ada pemindaian yang dilakukan. Perangkat atau aplikasi Play Store mungkin baru saja direset.

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan yang perlu dilakukan pengguna.

POSSIBLE_RISK

Play Protect dinonaktifkan.

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan yang perlu dilakukan pengguna.

MEDIUM_RISK

Play Protect diaktifkan dan telah menemukan aplikasi yang berpotensi membahayakan diinstal di perangkat.

Bergantung pada toleransi risiko, Anda dapat meminta pengguna untuk meluncurkan Play Protect dan mengambil tindakan terhadap peringatan Play Protect. Jika pengguna tidak dapat memenuhi persyaratan ini, Anda dapat memblokirnya dari tindakan server.

HIGH_RISK

Play Protect diaktifkan dan telah menemukan aplikasi berbahaya terinstal di perangkat.

Bergantung pada toleransi risiko, Anda dapat meminta pengguna untuk meluncurkan Play Protect dan mengambil tindakan terhadap peringatan Play Protect. Jika pengguna tidak dapat memenuhi persyaratan ini, Anda dapat memblokirnya dari tindakan server.

UNEVALUATED

Verdict Play Protect tidak dievaluasi.

Hal ini dapat terjadi karena beberapa alasan, termasuk:

  • Perangkat tidak cukup tepercaya.
  • Khusus game: Akun pengguna tidak memiliki LISENSI.

Aktivitas perangkat terbaru

Anda juga dapat ikut serta dalam aktivitas perangkat terbaru, yang memberi tahu berapa kali aplikasi Anda meminta token integritas di perangkat tertentu dalam satu jam terakhir. Anda dapat menggunakan aktivitas perangkat terbaru untuk melindungi aplikasi dari perangkat hiperaktif yang tidak terduga yang mungkin merupakan indikasi serangan aktif. Anda dapat menentukan seberapa besar tingkat kepercayaan terhadap setiap level aktivitas perangkat terbaru berdasarkan berapa kali aplikasi Anda diinstal di perangkat standar untuk meminta token integritas setiap jamnya.

Jika Anda memilih untuk menerima recentDeviceActivity, kolom deviceIntegrity akan memiliki dua nilai:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

Pertama, Anda harus memeriksa data untuk melihat tingkat aktivitas perangkat standar untuk aplikasi Anda di semua perangkat. Kemudian, Anda dapat menentukan cara aplikasi merespons saat perangkat membuat terlalu banyak permintaan. Jika aktivitas sedikit tinggi, sebaiknya minta pengguna untuk mencoba lagi nanti. Jika aktivitas sangat tinggi, Anda mungkin ingin mengambil tindakan penegakan yang lebih kuat.

Permintaan standar versus klasik

Sebagai bagian dari penerapan Play Integrity, penting untuk mempertimbangkan dua jenis permintaan. Anda harus menggunakan permintaan standar dalam sebagian besar kasus, untuk memberikan respons tercepat - dan permintaan klasik harus digunakan jika permintaan yang baru dibuat terhadap catatan pengesahan perangkat diperlukan.

Permintaan klasik

Permintaan standar

Permintaan memerlukan waktu lebih lama dan harus dibuat lebih jarang.

Misalnya sebagai permintaan satu kali untuk memeriksa apakah tindakan yang sangat bernilai atau sensitif adalah asli.

Gunakan sesekali.

Permintaan memiliki latensi rendah dan dapat digunakan on demand.

Permintaan standar terdiri dari dua bagian:

  • Menyiapkan penyedia token integritas (satu kali saja)
  • Meminta token integritas (on demand)

Gunakan on-demand.

Baca dokumentasi Play Integrity untuk mengetahui informasi selengkapnya tentang permintaan standar dan klasik.

Implementasi

Untuk mulai menggunakan Play Integrity API:

Secara default, Play Integrity API mengizinkan hingga 10 ribu permintaan per aplikasi per hari. Untuk menyatakan minat dalam meningkatkan permintaan maksimum harian, ikuti petunjuk ini. Agar memenuhi syarat untuk meningkatkan jumlah maksimum permintaan harian, aplikasi Anda harus menerapkan Play Integrity API dengan benar dan tersedia di Google Play selain saluran distribusi lainnya.

Hal-hal yang perlu diingat untuk Play Integrity API

Perlindungan Integritas Otomatis (API >= 23)

Perlindungan integritas otomatis adalah layanan perlindungan kode anti-modifikasi yang melindungi aplikasi Anda dari penyalahgunaan integritas dalam bentuk modifikasi dan pendistribusian ulang yang tidak sah. Perlindungan ini berfungsi tanpa koneksi data dan tidak memerlukan pekerjaan developer sebelum pengujian dan tanpa integrasi server backend.

Cara ini membantu memitigasi penipuan

Saat Anda mengaktifkan perlindungan integritas otomatis, Google Play akan menambahkan pemeriksaan ke kode aplikasi Anda dan membuatnya sulit dihapus dengan obfuscation lanjutan dan teknik anti-rekayasa balik. Saat runtime, perlindungan akan memeriksa apakah aplikasi Anda telah dimodifikasi atau didistribusikan ulang:

  • Jika tidak lolos pemeriksaan penginstal, pengguna akan diminta untuk mendapatkan aplikasi Anda di Google Play
  • Jika tidak lolos pemeriksaan modifikasi, aplikasi tidak akan berjalan

Hal ini membantu melindungi pengguna dari versi aplikasi yang dimodifikasi.

Implementasi

Perlindungan Integritas Otomatis hanya tersedia untuk Partner Play tertentu saat ini. Hubungi dukungan developer Google Play jika fitur ini tidak tersedia di Konsol Google Play dan Anda ingin menyatakan minat untuk mendapatkan akses.

Anda dapat mengaktifkan perlindungan saat membuat rilis atau di halaman Integritas aplikasi (Rilis > Integritas aplikasi). Perlindungan integritas otomatis mengharuskan aplikasi Anda menggunakan Penandatanganan Aplikasi Play.

Pastikan untuk menguji aplikasi yang dilindungi sebelum mempromosikan rilis ke produksi.

Hal-hal yang perlu diingat

  • Jangan merilis versi aplikasi yang tidak dilindungi
  • Berhati-hatilah saat menggabungkan solusi perlindungan dari modifikasi tidak sah
  • Menguji aplikasi yang dilindungi sebelum merilisnya ke produksi
  • Pantau statistik seperti biasa untuk mengetahui apakah ada peningkatan error
  • Anda dapat melaporkan versi crack aplikasi Anda ke Google Play