Mengamankan lingkungan

Google menawarkan serangkaian API dan layanan untuk membantu Anda mendeteksi apakah aplikasi Anda berjalan di lingkungan yang aman dan tepercaya. Intinya adalah Play Integrity API, yang membantu memeriksa apakah interaksi itu 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 memperkuat strategi anti-penipuan Anda, 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 yang menjalankan aplikasi mereka. Hal ini membantu Anda merasa yakin bahwa pengguna yang tepat sedang mengakses informasi sensitif.

Hal ini membantu Anda memeriksa apakah interaksi dan permintaan server berasal dari biner aplikasi asli Anda 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 artinya pengguna telah menginstal atau membayar aplikasi atau game Anda di Google Play.
  • Perangkat Android asli: Menentukan apakah aplikasi Anda berjalan di perangkat berdaya 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 rendah akses oleh aplikasi lain: Menentukan apakah aplikasi lain sedang berjalan yang dapat merekam layar atau mengontrol perangkat dan input ke aplikasi Anda.

Cara ini membantu mengurangi penipuan

Saat pengguna melakukan tindakan penting di aplikasi Anda, Anda dapat memanggil Play Integrity API. Jika tidak, server backend aplikasi Anda dapat memutuskan tindakan yang harus dilakukan untuk melindungi aplikasi dari 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 mendapatkan 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 ada aplikasi lain yang sedang berjalan dan dapat merekam layar.
  • Respons yang mengontrol berarti aplikasi lain sedang berjalan dan dapat mengontrol perangkat, sehingga aplikasi tersebut 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 putusan:

Contoh respons verdict risiko akses aplikasi Penafsiran
appsDetected:
["KNOWN_INSTALLED"]
Hanya ada aplikasi terinstal yang dikenali oleh Google Play atau dimuat sebelumnya di partisi sistem oleh produsen perangkat. Tidak ada aplikasi yang berjalan yang akan menghasilkan verdict merekam, mengontrol, atau overlay.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Ada aplikasi yang diinstal oleh Google Play atau yang 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 terinstal di perangkat.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

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

Dialog Aktifkan Play Protect

playProtectVerdict dapat memiliki salah satu nilai berikut:

Putusan Penjelasan Tindakan 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 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.

HIGH_RISK

Play Protect diaktifkan dan telah menemukan bahwa 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 Anda 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 menjadi pertanda serangan aktif. Anda dapat menentukan seberapa besar tingkat kepercayaan terhadap setiap level aktivitas perangkat terbaru berdasarkan perkiraan jumlah 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 Anda. Kemudian, Anda dapat memutuskan cara aplikasi merespons saat perangkat membuat terlalu banyak permintaan. Jika aktivitasnya agak tinggi, Anda mungkin ingin meminta pengguna untuk mencoba lagi nanti. Jika aktivitasnya 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. Sebaiknya gunakan 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 dengan jarang.

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.

Penerapan

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 Anda, 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. Fitur ini berfungsi tanpa koneksi data dan tidak memerlukan pekerjaan developer sebelum pengujian dan tanpa integrasi server backend.

Cara ini membantu mengurangi penipuan

Saat Anda mengaktifkan perlindungan integritas otomatis, Google Play akan menambahkan pemeriksaan ke kode aplikasi Anda dan mempersulit penghapusannya menggunakan teknik obfuscation lanjutan dan anti-rekayasa balik. Saat runtime, perlindungan 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 Anda yang dimodifikasi.

Penerapan

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 Anda dan Anda ingin menyatakan minat untuk mendapatkan akses.

Anda dapat mengaktifkan perlindungan saat membuat rilis atau di halaman Dilindungi dengan Google Play. Perlindungan Integritas Otomatis mewajibkan 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