Mengamankan lingkungan

Google menawarkan serangkaian API dan layanan untuk membantu mendeteksi apakah aplikasi berjalan di lingkungan yang aman dan tepercaya. Intinya adalah Play Integrity API, yang membantu memeriksa keaslian interaksi dengan mendeteksi dan interaksi yang berisiko serta bersifat 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 melakukan hardening lebih lanjut 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 yang menjalankan aplikasi mereka. Hal ini membantu Anda menjadi yakin bahwa pengguna yang tepat mengakses informasi sensitif.

Alat 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 yang dikenali Google Play.
  • Penginstalan Play asli: Menentukan apakah akun pengguna saat ini berlisensi, yang berarti pengguna menginstal atau membayar aplikasi atau game Anda di di Google Play.
  • Perangkat Android asli: Menentukan apakah aplikasi Anda berjalan di versi asli Perangkat yang didukung Android didukung oleh layanan Google Play.
  • Bebas dari malware yang diketahui: Menentukan apakah Google Play Protect diaktifkan atau tidak dan apakah server telah menemukan aplikasi berisiko atau berbahaya yang diinstal di perangkat.
  • Risiko akses rendah oleh aplikasi lain: Menentukan apakah aplikasi lain sedang berjalan atau tidak 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 aplikasi Integrity API. Jika tidak, maka server backend aplikasi Anda dapat memutuskan apa yang untuk melindungi Anda dari serangan dan penipuan. Misalnya, Anda bisa mengharuskan 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 di perangkat dapat melihat dan merekam layar saat aplikasi Anda menjalankan atau mengakses aplikasi Anda menggunakan izin aksesibilitas. Telah Diverifikasi aplikasi aksesibilitas akan otomatis dikecualikan dari verdict ini. 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 dibutuhkan untuk memberi kami wawasan yang lebih dalam untuk 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 pengendali berarti aplikasi lain sedang berjalan yang dapat mengontrol perangkat, sehingga mereka bisa menangkap layar dan mengontrol input ke dalam aplikasi Anda.

Risiko akses aplikasi kini tersedia dalam versi beta publik dan akan tersedia secara umum akan tersedia 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 ada aplikasi terinstal yang dikenali oleh Google Play atau dimuat sebelumnya di partisi sistem oleh produsen perangkat. Tidak ada aplikasi yang berjalan yang akan melakukan perekaman, mengontrol, atau menempatkan verdict (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 lain yang berjalan dengan izin akses diaktifkan yang dapat digunakan untuk melihat layar atau merekam input dan {i>output <i}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 menangkap {i>input<i} dan {i>output<i} lainnya. Ada juga aplikasi lain yang berjalan dengan izin diaktifkan yang dapat digunakan untuk mengontrol perangkat dan langsung mengontrol input ke aplikasi Anda.
appAccessRiskVerdict: {} Risiko akses aplikasi tidak dievaluasi karena persyaratan yang diperlukan telah terlewat. Misalnya, perangkat tidak cukup tepercaya.

Sinyal Play Protect

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

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

Jika malware menjadi perhatian khusus bagi aplikasi atau pengguna Anda data, Anda dapat periksa verdict ini dan minta pengguna Anda untuk mengaktifkan Play Protect atau menghapus konten 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 seluler.

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan pengguna tidak diperlukan.

NO_DATA

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

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan pengguna tidak diperlukan.

POSSIBLE_RISK

Play Protect dinonaktifkan.

Play Protect diaktifkan dan belum menemukan masalah apa pun sehingga tidak ada tindakan pengguna tidak diperlukan.

MEDIUM_RISK

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

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

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 ambil 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, di antaranya:

  • 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 berapa kali aplikasi Anda meminta token integritas di perangkat tertentu dalam satu jam terakhir. Anda dapat menggunakan aktivitas perangkat terbaru untuk melindungi aplikasi Anda dari hal yang perangkat hiperaktif yang bisa menjadi indikasi serangan aktif. Anda dapat memutuskan seberapa besar kepercayaan setiap level aktivitas perangkat terbaru berdasarkan berapa banyak frekuensi aplikasi Anda diinstal di perangkat biasa untuk meminta integritas token tersebut 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 yang biasa untuk aplikasi Anda di semua perangkat. Kemudian, Anda dapat memutuskan bagaimana aplikasi Anda harus merespons ketika perangkat membuat terlalu banyak permintaan. Jika aktivitas tersebut adalah sedikit tinggi, Anda mungkin ingin meminta pengguna untuk mencoba lagi nanti. Jika aktivitas sangat tinggi, Anda mungkin ingin mengambil tindakan penegakan kebijakan yang lebih kuat.

Permintaan standar versus klasik

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

Permintaan klasik

Permintaan standar

Permintaan memerlukan waktu lebih lama dan harus dibuat lebih jarang.

Misalnya, untuk sesekali memeriksa apakah suatu penawaran tindakan sensitif itu 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 informasi selengkapnya tentang standar dan permintaan klasik.

Implementasi

Untuk mulai menggunakan Play Integrity API:

Secara default, Play Integrity API memungkinkan hingga 10 ribu permintaan per aplikasi per hari. Kepada nyatakan minat untuk meningkatkan permintaan maksimum harian Anda, ikuti berikut petunjuk khusus. Agar memenuhi syarat untuk meningkatkan jumlah maksimum harian Anda aplikasi Anda harus menerapkan Play Integrity API dengan benar dan yang 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 redistribusi. Alat ini bekerja tanpa koneksi data dan membutuhkan tidak ada pekerjaan pengembang sebelum pengujian dan tidak ada integrasi server backend.

Bagaimana hal ini membantu memitigasi penipuan

Jika Anda mengaktifkan Perlindungan Integritas Otomatis, Google Play akan menambahkan pemeriksaan ke kode aplikasi Anda dan membuatnya sulit untuk dihapus dengan obfuscation lanjutan dan teknik anti-rekayasa balik. Saat runtime, perlindungan akan memeriksa apakah aplikasi 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.

Implementasi

Perlindungan Integritas Otomatis hanya tersedia untuk Partner Play tertentu di tempat ini baik. Menghubungi 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 Aplikasi integritas aplikasi (Rilis > Integritas aplikasi). Integritas otomatis perlindungan 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