Mengamankan lingkungan

Google menawarkan serangkaian API dan layanan untuk membantu mendeteksi apakah aplikasi Anda berjalan di lingkungan yang aman dan tepercaya. Bagian utamanya adalah Play Integrity API, yang membantu memeriksa apakah interaksi 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 antipenipuan, 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 berjalan. Hal ini membantu Anda yakin bahwa pengguna yang tepat mengakses informasi sensitif.

Pengujian ini membantu Anda memeriksa apakah interaksi dan permintaan server berasal dari biner aplikasi asli di lingkungan 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 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.

Bagaimana hal 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 melindungi 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 meminta tidak mendapatkan identitas aplikasi terinstal dan verdict tidak ditautkan ke ID pengguna atau perangkat.

Screenshot ponsel yang mengharuskan pengguna menutup aplikasi tertentu.

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

Risiko Akses Aplikasi memiliki tingkat risiko yang berbeda:

  • Respons perekaman berarti aplikasi lain sedang berjalan dan dapat merekam layar.
  • Respons pengontrol berarti aplikasi lain yang dapat mengontrol perangkat, sehingga aplikasi lain dapat merekam layar dan mengontrol input ke dalam aplikasi Anda.

Risiko akses aplikasi kini tersedia dalam versi beta publik dan akan tersedia secara umum dalam beberapa bulan mendatang.

Penegakan 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 terdapat 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 pengambilan, mengontrol, atau menempatkan verdict.
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 lainnya 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 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 bagi aplikasi atau data pengguna Anda, Anda dapat memeriksa verdict ini dan meminta pengguna untuk mengaktifkan Play Protect atau menghapus aplikasi berbahaya sebelum melanjutkan.

Aktifkan dialog 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 aktif dan belum menemukan masalah apa pun sehingga tidak ada tindakan yang perlu dilakukan pengguna.

MEDIUM_RISK

Play Protect diaktifkan dan telah menemukan bahwa 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 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.

UNEVALUATED

Verdict Play Protect tidak dievaluasi.

Hal ini dapat terjadi karena beberapa alasan, termasuk:

  • Perangkat tidak cukup tepercaya.
  • Khusus game: Akun pengguna tidak BERLISENSI.

Aktivitas perangkat terbaru

Anda juga dapat ikut serta dalam aktivitas perangkat terbaru, yang memberi tahu Anda frekuensi aplikasi meminta token integritas di perangkat tertentu dalam satu jam terakhir. Anda dapat menggunakan aktivitas perangkat terbaru untuk melindungi aplikasi dari perangkat hyperaktif yang tidak terduga yang mungkin merupakan indikasi serangan aktif. Anda dapat memutuskan 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 umum untuk aplikasi Anda di semua perangkat. Kemudian, Anda dapat menentukan cara aplikasi merespons saat perangkat membuat terlalu banyak permintaan. Jika aktivitasnya sedikit tinggi, Anda mungkin perlu meminta pengguna untuk mencoba lagi nanti. Jika aktivitasnya sangat tinggi, Anda mungkin perlu mengambil tindakan penegakan kebijakan yang lebih kuat.

Permintaan standar versus klasik

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

Permintaan klasik

Permintaan standar

Permintaan memerlukan waktu lebih lama dan harus dibuat lebih jarang.

Misalnya, sesekali melakukan pemeriksaan satu kali untuk memeriksa apakah tindakan yang sangat bernilai atau sensitif adalah asli.

Gunakan secara jarang.

Permintaan memiliki latensi rendah dan dapat digunakan sesuai permintaan.

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 memungkinkan hingga 10 ribu permintaan per aplikasi per hari. Untuk menyatakan minat dalam meningkatkan permintaan maksimum harian Anda, ikuti petunjuk berikut. Agar memenuhi syarat untuk meningkatkan jumlah maksimum permintaan harian, aplikasi Anda harus menerapkan Play Integrity API dengan benar dan tersedia di Google Play selain di 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 distribusi ulang yang tidak sah. Alat ini berfungsi tanpa koneksi data dan tidak memerlukan pekerjaan developer sebelum pengujian dan tanpa integrasi server backend.

Bagaimana hal ini membantu memitigasi penipuan

Saat Anda mengaktifkan Perlindungan Integritas Otomatis, Google Play akan menambahkan pemeriksaan ke kode aplikasi Anda dan membuatnya sulit dihapus dengan teknik obfuscation lanjutan dan anti rekayasa balik. Saat runtime, perlindungan akan memeriksa apakah aplikasi Anda telah dirusak 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 menjaga keamanan pengguna dari versi aplikasi yang dimodifikasi.

Penerapan

Saat ini, Perlindungan Integritas Otomatis hanya tersedia untuk Partner Play tertentu. 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 setiap peningkatan error
  • Anda dapat melaporkan versi crack aplikasi Anda ke Google Play