Dokumen ini menunjukkan cara menggunakan pelindung akun reCAPTCHA Enterprise untuk mendeteksi dan mencegah aktivitas penipuan terkait akun di situs.
reCAPTCHA Enterprise membantu Anda melindungi tindakan penting, seperti login dan checkout. Namun, ada banyak bentuk penyalahgunaan akun halus yang dapat terdeteksi dengan mengamati perilaku pengguna tertentu di situs selama jangka waktu tertentu. Pelindung akun reCAPTCHA Enterprise membantu mengidentifikasi jenis penyalahgunaan semacam ini dengan membuat model khusus situs untuk situs Anda guna mendeteksi tren perilaku yang mencurigakan atau perubahan aktivitas. Dengan menggunakan model khusus situs, pelindung akun reCAPTCHA Enterprise membantu Anda mendeteksi hal berikut:
- Aktivitas mencurigakan
- Akun dengan perilaku serupa
- Permintaan yang berasal dari perangkat yang ditandai sebagai tepercaya untuk pengguna tertentu
Berdasarkan analisis pelindung akun reCAPTCHA Enterprise dan model khusus situs, Anda dapat melakukan tindakan berikut:
- Batasi atau nonaktifkan akun penipuan.
- Mencegah upaya pengambilalihan akun.
- Mengurangi keberhasilan pengambilalihan akun.
- Berikan akses hanya ke permintaan yang berasal dari akun pengguna yang sah.
- Berikan kemudahan bagi pengguna yang login dari salah satu perangkat tepercaya mereka.
Sebelum memulai
Mengonfigurasi halaman web untuk pelindung akun reCAPTCHA Enterprise
Pelindung akun reCAPTCHA Enterprise memerlukan pemahaman yang komprehensif tentang aktivitas akun untuk memungkinkan deteksi yang efektif. Untuk mulai memasukkan aktivitas terkait akun ke pelindung akun reCAPTCHA Enterprise, serta membuat dan meningkatkan model khusus situs Anda, lakukan hal berikut:
- Mengaktifkan pengumpulan data telemetri horizontal.
- Mendapatkan laporan tentang tindakan penting pengguna.
- Menilai peristiwa pengguna yang penting.
- Beri anotasi peristiwa pengguna untuk menyesuaikan model khusus situs Anda.
Mengaktifkan pengumpulan data telemetri horizontal
Pelindung akun reCAPTCHA Enterprise memerlukan gambaran lengkap tentang tindakan pengguna, seperti apakah pengguna sudah login atau mengarah ke login. Untuk mengaktifkan pengumpulan data telemetri horizontal pasif oleh pelindung akun reCAPTCHA Enterprise, muat skrip JavaScript reCAPTCHA Enterprise dengan kunci situs berbasis skor yang Anda buat di latar belakang semua halaman yang merupakan bagian dari alur kerja pengguna Anda.
Contoh berikut menunjukkan cara memuat skrip JavaScript reCAPTCHA Enterprise di halaman web.
<head> <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script> .... </head>
Melaporkan tindakan penting pengguna
Untuk mendeteksi pola aktivitas yang mencurigakan dan membuat pemahaman yang lebih baik tentang pola aktivitas standar di situs Anda, pelindung akun reCAPTCHA Enterprise memerlukan informasi tentang tindakan yang penting dari pengguna. Oleh karena itu, laporkan tindakan pengguna yang penting di halaman web dengan memanggil grecaptcha.enterprise.execute() pada tindakan pengguna penting tersebut.
Sebaiknya Anda melaporkan semua tindakan pengguna yang penting karena membantu dalam
pengumpulan sinyal tambahan. Untuk setiap tindakan pengguna yang ingin Anda laporkan,
ganti nilai parameter action
dari grecaptcha.enterprise.execute()
dengan nama tindakan yang menjelaskan tindakan pengguna.
Tabel berikut mencantumkan nama tindakan yang dapat Anda gunakan saat melaporkan tindakan penting dari pengguna.
Nama tindakan | Peristiwa atau tindakan pengguna yang dimulai oleh pengguna |
---|---|
LOGIN |
Login ke situs. |
REGISTRATION |
Pendaftaran di situs. |
SECURITY_QUESTION_CHANGE |
Permintaan untuk mengubah pertanyaan keamanan. |
PASSWORD_RESET |
Minta untuk mereset sandi. |
PHONE_NUMBER_UPDATE |
Minta untuk memperbarui nomor telepon. |
EMAIL_UPDATE |
Minta untuk memperbarui alamat email. |
ACCOUNT_UPDATE |
Permintaan untuk memperbarui informasi terkait akun, seperti detail kontak. |
TRIGGER_MFA |
Tindakan yang memicu tantangan MFA. |
REDEEM_CODE |
Minta penukaran kode. |
LIST_PAYMENT_METHODS |
Ambil daftar metode pembayaran. |
Contoh berikut menunjukkan cara memanggil grecaptcha.enterprise.execute()
pada
pembaruan nomor telepon:
<script> function onClick(e) { e.preventDefault(); grecaptcha.enterprise.ready(async () => { const token = await grecaptcha.enterprise.execute('KEY_ID', {action: 'PHONE_NUMBER_UPDATE'}); }); } </script>
Menilai peristiwa pengguna yang penting
Saat Anda memanggil grecaptcha.enterprise.execute()
pada tindakan pengguna, tindakan tersebut akan menghasilkan token. Untuk peristiwa pengguna yang penting, seperti login, pendaftaran, dan tindakan yang berhasil dan gagal, buat penilaian untuk menilai hasil panggilan grecaptcha.enterprise.execute()
. Penilaian
ini memberikan hasil risiko bagi Anda, yang dapat digunakan untuk membuat keputusan tentang cara menangani
aktivitas yang berpotensi menipu. Tindakan yang dapat Anda lakukan antara lain memblokir permintaan
yang mencurigakan, menantang login berisiko, dan menyelidiki akun yang diminati.
Pelindung akun reCAPTCHA Enterprise mengharuskan Anda memberikan ID akun yang stabil untuk mengatribusikan aktivitas pengguna – seperti permintaan login, permintaan login, dan permintaan pendaftaran – ke akun tertentu. Hal ini membantu pelindung akun reCAPTCHA Enterprise memahami pola aktivitas pengguna dan membangun model aktivitas untuk setiap akun agar dapat mendeteksi traffic anomali dan penyalahgunaan dengan lebih baik.
Pilih ID akun stabil accountId
yang tidak sering diubah oleh pengguna dan berikan untuk penilaian di metode
projects.assessments.create
. ID akun stabil ini harus memiliki nilai yang sama untuk semua peristiwa yang terkait dengan pengguna yang sama. Anda dapat memberikan hal berikut sebagai ID akun:
ID pengguna
Jika setiap akun dapat dikaitkan secara unik dengan nama pengguna, alamat email, atau nomor telepon yang stabil, Anda dapat menggunakannya sebagai accountId
. Ketika Anda memberikan ID lintas situs (ID yang dapat digunakan kembali di seluruh situs), reCAPTCHA Enterprise menggunakan informasi ini untuk meningkatkan perlindungan bagi akun pengguna Anda berdasarkan model lintas situs dengan menandai ID akun yang melanggar dan menggunakan pengetahuan tentang pola penyalahgunaan lintas situs yang terkait dengan ID ini.
Atau, jika Anda memiliki ID pengguna internal yang terkait secara unik dengan setiap akun, Anda dapat
memberikannya sebagai accountId
.
Di-hash atau dienkripsi
Jika tidak memiliki ID pengguna internal yang secara unik terkait dengan setiap akun, Anda dapat mengubah ID stabil menjadi ID akun khusus situs yang buram. ID ini masih diperlukan untuk pelindung akun reCAPTCHA Enterprise untuk memahami pola aktivitas pengguna dan mendeteksi perilaku anomali, tetapi tidak dibagikan ke situs lain.
Pilih ID akun stabil dan buat menjadi buram sebelum mengirim ke reCAPTCHA Enterprise dengan menggunakan enkripsi atau hashing:
enkripsi (direkomendasikan): enkripsi ID akun menggunakan metode enkripsi deterministik yang menghasilkan ciphertext yang stabil. Untuk petunjuk mendetail, lihat mengenkripsi data secara deterministik. Jika memilih enkripsi simetris daripada hashing, Anda tidak perlu menyimpan pemetaan antara ID pengguna dan ID pengguna buram yang sesuai. Dekripsi ID buram yang ditampilkan oleh reCAPTCHA Enterprise untuk mengubahnya menjadi ID pengguna.
hashing: sebaiknya lakukan hashing pada ID akun menggunakan metode SHA256-HMAC dengan salt kustom pilihan Anda. Karena hash hanya bersifat satu arah, Anda harus menyimpan pemetaan antara hash yang dihasilkan dan ID pengguna sehingga Anda dapat memetakan ID akun yang di-hash yang dikembalikan ke akun aslinya.
Selain memberikan ID akun yang stabil untuk semua permintaan terkait akun, Anda
dapat memberikan ID akun tambahan, yang berpotensi tidak stabil, untuk beberapa permintaan tertentu.
ID akun khusus konteks yang diberikan selain accountId
membantu
pelindung akun reCAPTCHA Enterprise lebih memahami aktivitas pengguna dan mendeteksi upaya
pengambilalihan akun untuk menjaga keamanan akun pengguna Anda. Jika Anda memberikan ID tambahan,
reCAPTCHA Enterprise akan menggunakan informasi ini untuk meningkatkan perlindungan bagi akun pengguna Anda berdasarkan
model lintas situs dengan menandai ID akun yang melanggar dan menggunakan pengetahuan tentang pola penyalahgunaan lintas situs
yang terkait dengan ID tersebut. Misalnya, Anda dapat menyediakan hal berikut:
Nama pengguna, alamat email, atau nomor telepon yang digunakan sebagai nama sebutan channel untuk permintaan login
Alamat email atau nomor telepon yang telah diverifikasi untuk permintaan autentikasi multi-faktor
Alamat email atau nomor telepon (utama atau sekunder) yang diberikan oleh pengguna saat permintaan pembaruan akun
Alamat email dan nomor telepon yang diberikan oleh pengguna saat permintaan pendaftaran
Tambahkan ID akun stabil yang dipilih ke parameter accountId
dalam metode
projects.assessments.create
untuk semua permintaan terkait akun. Jika ingin,
berikan ID akun tambahan untuk permintaan yang relevan menggunakan kolom
userIds
dalam penilaian.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda
- TOKEN: token yang ditampilkan dari panggilan
grecaptcha.enterprise.execute()
- KEY_ID: Kunci reCAPTCHA yang terkait dengan situs
- ACCOUNT_ID: ID yang secara unik terkait dengan akun pengguna untuk akun pengguna ke situs Anda
- EMAIL_ADDRESS: Opsional. Alamat email yang terkait dengan permintaan ini, jika ada
- PHONE_NUMBER: Opsional. Nomor telepon yang terkait dengan permintaan ini, jika ada
- USERNAME: Opsional. Nama pengguna yang terkait dengan permintaan ini, jika ada
Metode HTTP dan URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
Isi JSON permintaan:
{ "event": { "token": "TOKEN", "siteKey": "KEY_ID", "userInfo": { "accountId": "ACCOUNT_ID", "userIds": [ { "email": "EMAIL_ADDRESS" }, { "phoneNumber": "PHONE_NUMBER" }, { "username": "USERNAME" } ] } } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{ "tokenProperties": { "valid": true, "hostname": "www.google.com", "action": "login", "createTime": "2019-03-28T12:24:17.894Z" }, "riskAnalysis": { "score": 0.6, }, "event": { "token": "TOKEN", "siteKey": "KEY", "userInfo": { "accountId": "ACCOUNT_ID" } }, "name": "projects/PROJECT_NUMBER/assessments/b6ac310000000000", "accountDefenderAssessment": { "labels": ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Contoh kode
Java
Untuk melakukan autentikasi reCAPTCHA Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menafsirkan verdict risiko dari peristiwa pengguna yang kritis
Saat Anda membuat penilaian dengan pelindung akun yang diaktifkan, pelindung akun
akan menampilkan accountDefenderAssessment
sebagai bagian dari respons penilaian.
Nilai accountDefenderAssessment
membantu
Anda menilai apakah aktivitas pengguna sah atau menipu. Metode ini juga menampilkan
ID penilaian yang perlu Anda gunakan saat menganotasi peristiwa pengguna.
Contoh berikut adalah contoh respons JSON:
{ "tokenProperties": { "valid": true, "hostname": "www.google.com", "action": "login", "createTime": "2019-03-28T12:24:17.894Z" }, "riskAnalysis": { "score": 0.6, }, "event": { "token": "TOKEN", "siteKey": "KEY_ID", "expectedAction": "USER_ACTION" }, "name": "projects/PROJECT_ID/assessments/b6ac310000000000X", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Kolom accountDefenderAssessment
dapat memiliki salah satu nilai berikut:
Nilai | Deskripsi |
---|---|
SUSPICIOUS_LOGIN_ACTIVITY |
Menunjukkan bahwa permintaan tersebut berisiko tinggi terkait penjejalan kredensial atau pengambilalihan akun. |
SUSPICIOUS_ACCOUNT_CREATION |
Menunjukkan bahwa permintaan tersebut berisiko tinggi menyebabkan penyalahgunaan akun. |
PROFILE_MATCH |
Menunjukkan bahwa atribut pengguna cocok dengan atribut yang telah dilihat sebelumnya untuk pengguna tertentu ini. Nilai ini merupakan indikator bahwa pengguna ini menggunakan perangkat tepercaya yang digunakan sebelumnya untuk mengakses situs Anda.
|
RELATED_ACCOUNTS_NUMBER_HIGH |
Menunjukkan bahwa permintaan memiliki jumlah akun terkait yang tinggi. Hal ini tidak selalu berarti bahwa akun tersebut buruk, tetapi mungkin memerlukan penyelidikan lebih lanjut. |
Menganotasi peristiwa untuk menyesuaikan model spesifik per situs
Untuk memberikan lebih banyak informasi kepada pelindung akun reCAPTCHA Enterprise dan meningkatkan model deteksi khusus situs, Anda harus menganotasi peristiwa yang Anda nilai dengan membuat penilaian.
Anda memberi anotasi pada penilaian dengan mengirim permintaan ke metode projects.assessments.annotate
beserta ID penilaian. Dalam isi permintaan tersebut, Anda menyertakan label yang memberikan informasi tambahan tentang peristiwa yang dijelaskan dalam penilaian.
Untuk membuat anotasi penilaian, lakukan hal berikut:
-
Tentukan informasi dan label yang akan ditambahkan dalam isi JSON permintaan, bergantung pada kasus penggunaan Anda.
Tabel berikut mencantumkan label dan nilai yang dapat Anda gunakan untuk menganotasi peristiwa:
Label Deskripsi Contoh permintaan reasons
Wajib. Label untuk mendukung penilaian Anda. Berikan detail peristiwa real-time di label
reasons
dalam beberapa detik atau menit setelah peristiwa karena memengaruhi deteksi real-time.Untuk daftar kemungkinan nilai, lihat nilai alasan.
Contoh: Untuk mendeteksi pengambilalihan akun, beri anotasi apakah sandi yang dimasukkan sudah benar dengan nilai
CORRECT_PASSWORD
atauINCORRECT_PASSWORD
. Jika men-deploy MFA Anda sendiri, Anda dapat menambahkan nilai berikut:INITIATED_TWO_FACTOR
, danPASSED_TWO_FACTOR
atauFAILED_TWO_FACTOR
.{ "reasons": ["INCORRECT_PASSWORD"] }
annotation
Opsional. Label untuk menunjukkan keabsahan penilaian. Berikan fakta tentang peristiwa login dan pendaftaran untuk memvalidasi atau memperbaiki penilaian risiko Anda di label
annotation
.Nilai yang mungkin:
LEGITIMATE
atauFRAUDULENT
.Anda dapat mengirim informasi ini kapan saja atau sebagai bagian dari tugas batch. Namun, sebaiknya kirim informasi ini dalam beberapa detik atau menit setelah peristiwa karena akan memengaruhi deteksi real-time.
{ "annotation": "LEGITIMATE" }
accountId
Opsional. Label untuk mengaitkan ID akun dengan peristiwa.
Jika Anda membuat penilaian tanpa ID akun, gunakan label ini untuk memberikan ID akun suatu peristiwa jika tersedia.
{ "accountId": "ACCOUNT_ID" }
Buat permintaan anotasi dengan label yang sesuai.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- ASSESSMENT_ID: Nilai kolom
name
yang ditampilkan dari panggilanprojects.assessments.create
. - ANNOTATION: Opsional. Label untuk menunjukkan apakah penilaian tersebut sah atau menipu.
- REASONS: Opsional. Alasan yang mendukung anotasi Anda. Untuk daftar kemungkinan nilai, lihat nilai alasan.
- ACCOUNT_ID: Opsional. ID yang secara unik terkait dengan akun pengguna di situs Anda.
Untuk informasi selengkapnya, lihat label untuk anotasi.
Metode HTTP dan URL:
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
Isi JSON permintaan:
{ "annotation": ANNOTATION, "reasons": REASONS, "accountId": ACCOUNT_ID }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate"PowerShell
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate" | Select-Object -Expand ContentAnda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.
- ASSESSMENT_ID: Nilai kolom
Contoh kode
Java
Untuk melakukan autentikasi reCAPTCHA Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Aktifkan pelindung akun reCAPTCHA Enterprise
Setelah mengonfigurasi halaman web untuk pelindung akun reCAPTCHA Enterprise, Anda dapat mengaktifkan pelindung akun reCAPTCHA Enterprise.
Di konsol Google Cloud, buka halaman reCAPTCHA Enterprise.
Pastikan nama project Anda muncul di pemilih resource di bagian atas halaman.
Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.
- Klik Setelan.
Di panel Pelindung akun, klik Aktifkan.
Dalam dialog Configure account protection, klik Enable.
Mungkin perlu waktu beberapa jam agar pengaktifan pelindung akun reCAPTCHA Enterprise diterapkan ke sistem kami. Setelah pengaktifan fitur disebarkan ke sistem kami, Anda akan mulai menerima respons terkait pelindung akun sebagai bagian dari penilaian.