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
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.
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.
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.
playProtectVerdict
dapat memiliki salah satu nilai berikut:
Verdict | Penjelasan | Aksi yang Disarankan |
---|---|---|
|
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. |
|
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. |
|
Play Protect dinonaktifkan. |
Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan yang perlu dilakukan pengguna. |
|
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. |
|
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. |
|
Verdict Play Protect tidak dievaluasi. Hal ini dapat terjadi karena beberapa alasan, termasuk:
|
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:
Gunakan on-demand. |
Baca dokumentasi Play Integrity untuk mengetahui informasi selengkapnya tentang permintaan standar dan klasik.
Implementasi
Untuk mulai menggunakan Play Integrity API:
- Aktifkan respons Play Integrity API di Konsol Google Play dan tautkan ke project Google Cloud.
- Integrasikan Play Integrity API di aplikasi Anda.
- Tentukan cara Anda akan menangani verdict.
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
- Anda harus menangani error dalam respons Play Integrity API dengan tepat. Ikuti panduan di sini tentang strategi percobaan ulang dan penerapan berdasarkan kode error.
- Play Integrity API menawarkan alat pengujian untuk respons.
- Untuk melihat hasil integritas dari perangkat Anda, ikuti langkah-langkah berikut.
- Baca pertimbangan keamanan ini untuk praktik yang direkomendasikan menggunakan 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