Google Cloud Armor dan reCAPTCHA menyediakan alat untuk membantu Anda mengevaluasi dan menindaklanjuti permintaan masuk yang mungkin berasal dari klien otomatis.
reCAPTCHA menggunakan teknik analisis risiko canggih untuk membedakan pengguna manusia dan klien otomatis. reCAPTCHA menilai pengguna berdasarkan konfigurasi kunci situs WAF reCAPTCHA. Kemudian, Chrome akan mengeluarkan token terenkripsi dengan atribut yang merepresentasikan risiko terkait. Cloud Armor menguraikan token ini secara inline, tanpa permintaan atau respons tambahan ke layanan reCAPTCHA. Berdasarkan atribut token, Cloud Armor memungkinkan Anda mengizinkan, menolak, membatasi laju, atau mengalihkan permintaan masuk. Untuk mengetahui informasi selengkapnya, lihat Ringkasan integrasi Cloud Armor dan reCAPTCHA.
Pengelolaan bot Cloud Armor mencakup kemampuan terintegrasi berikut.
Tantangan manual (halaman tantangan reCAPTCHA)
- Anda harus mengonfigurasi aturan kebijakan keamanan untuk mengalihkan permintaan penilaian reCAPTCHA.
- Anda dapat membuat kunci situs reCAPTCHA WAF sendiri dan mengaitkannya dengan kebijakan keamanan Anda. Sebaiknya Anda melakukannya. Untuk mengetahui informasi selengkapnya, lihat Menerapkan tantangan reCAPTCHA.
- Anda dapat mengizinkan hanya pengguna akhir yang lulus tantangan manual reCAPTCHA dengan mengalihkan pengguna akhir untuk penilaian reCAPTCHA.
Menerapkan penilaian tanpa hambatan reCAPTCHA
- Anda dapat melakukan berbagai tindakan pada permintaan masuk berdasarkan penilaian reCAPTCHA terhadap risiko bahwa permintaan tersebut berasal dari bot. Anda dapat menulis aturan kebijakan keamanan untuk mengevaluasi dan memfilter traffic berdasarkan skor token dan atribut token lainnya.
- Anda harus menerapkan token tindakan reCAPTCHA, token sesi, atau keduanya. Token tindakan reCAPTCHA didukung di aplikasi yang berjalan di situs, iOS, dan Android. Token sesi reCAPTCHA hanya didukung di situs. Untuk mengetahui informasi selengkapnya tentang token reCAPTCHA, lihat token tindakan reCAPTCHA dan token sesi reCAPTCHA.
- Anda harus mengonfigurasi aturan kebijakan keamanan yang mengevaluasi token reCAPTCHA.
- Untuk mencegah pencurian token, sebaiknya kaitkan kunci reCAPTCHA Anda sendiri untuk WAF dengan aturan kebijakan keamanan Anda.
Pengelolaan bot Cloud Armor juga mencakup kemampuan berikut.
- Pengalihan (302)
- Anda dapat mengalihkan permintaan ke URL alternatif yang dikonfigurasi dengan mengonfigurasi Cloud Armor untuk menampilkan respons HTTP 302 kepada klien.
- Permintaan dekorasi
- Anda dapat menyisipkan header kustom dalam permintaan, dan nilai statis ke dalam header tersebut, sebelum melakukan proxy permintaan ke backend Anda.
Kasus penggunaan
Bagian ini menjelaskan cara menggunakan kemampuan pengelolaan bot Cloud Armor untuk memitigasi risiko bot dan mengontrol akses dari klien otomatis.
Menggunakan tantangan manual untuk membedakan antara pengguna yang sah dan klien otomatis
Anda dapat mengalihkan permintaan ke reCAPTCHA untuk menilai klien akhir dan menyajikan tantangan manual jika diperlukan, tanpa penerapan reCAPTCHA tambahan. Jika pengguna manusia berbagi tanda tangan yang sama (seperti jalur URL atau tanda tangan L7 lainnya) dengan bot atau sistem yang menyalahgunakan, tindakan ini memberikan cara bagi mereka untuk membuktikan bahwa mereka adalah manusia. Hanya pengguna yang lulus penilaian yang dapat memperoleh akses ke layanan Anda.
Diagram berikut menunjukkan cara tantangan manual membedakan apakah permintaan berasal dari manusia atau klien otomatis:
Misalkan pengguna Maya dan bot sama-sama menjelajahi halaman login
(/login.html
) di situs Anda. Untuk mengizinkan akses ke Maya tanpa memberikan akses ke bot, Anda dapat mengonfigurasi aturan kebijakan keamanan dengan ekspresi kecocokan lanjutan request.path.matches("/login.html")
, dengan tindakan redirect
berjenis GOOGLE_RECAPTCHA
. Pengalaman pengguna dari awal hingga akhir adalah sebagai berikut:
- Pengguna akhir mengunjungi situs Anda untuk pertama kalinya.
- Cloud Armor mengevaluasi permintaan, dan menentukan untuk mengarahkan ulang permintaan ke reCAPTCHA.
- reCAPTCHA merespons dengan halaman HTML yang menyematkan JavaScript reCAPTCHA.
- Saat respons dirender, JavaScript yang disematkan akan berjalan untuk menilai pengguna,
dan menyajikan tantangan manual jika diperlukan.
- Jika pengguna lulus penilaian, reCAPTCHA akan mengeluarkan cookie pengecualian, yang otomatis dilampirkan oleh browser ke setiap permintaan berikutnya ke situs yang sama hingga cookie tersebut berakhir.
- Jika tidak, reCAPTCHA tidak akan mengeluarkan cookie pengecualian.
Dalam contoh ini, hanya Maya yang lulus penilaian reCAPTCHA dan menerima cookie pengecualian, sehingga mendapatkan akses ke situs Anda.
Saat menggunakan tantangan manual, sebaiknya buat kunci situs WAF reCAPTCHA Anda sendiri dan kaitkan dengan kebijakan keamanan. Dengan begitu, Anda dapat melihat metrik reCAPTCHA yang terkait dengan kunci situs dan melatih model keamanan khusus untuk kunci situs tersebut. Untuk mengetahui informasi selengkapnya, lihat Membuat kunci situs tantangan WAF reCAPTCHA.
Jika Anda tidak membuat dan mengaitkan kunci situs, reCAPTCHA akan menggunakan kunci situs yang dikelola Google selama penilaian. Anda tidak dapat melihat metrik reCAPTCHA yang terkait dengan kunci situs yang bukan milik Anda, termasuk kunci situs yang dikelola Google.
Menerapkan penilaian reCAPTCHA
Jika ada token reCAPTCHA yang dilampirkan pada permintaan masuk, Cloud Armor akan mengevaluasi permintaan dan menerapkan tindakan yang dikonfigurasi berdasarkan atribut individual dalam token. Evaluasi kebijakan keamanan Cloud Armor terjadi di edge jaringan Google, sehingga backend Anda tidak terlibat dalam menguraikan token.
Token reCAPTCHA
reCAPTCHA mengeluarkan dua jenis token: token tindakan dan token sesi. Kedua jenis token menampilkan skor untuk setiap permintaan berdasarkan interaksi dengan situs atau aplikasi Anda. Kedua jenis token berisi atribut, termasuk skor yang menunjukkan risiko yang terkait dengan pengguna. Token ini juga berisi informasi tentang kunci reCAPTCHA yang Anda gunakan saat token dibuat.
Sebelum mengonfigurasi aturan kebijakan keamanan, Anda harus memutuskan apakah akan menggunakan token tindakan, token sesi, atau keduanya. Sebaiknya baca dokumentasi reCAPTCHA untuk membantu Anda mengambil keputusan. Untuk mengetahui informasi selengkapnya, lihat perbandingan kasus penggunaan reCAPTCHA.
Setelah menentukan jenis token yang ingin digunakan, Anda menerapkan reCAPTCHA agar token dilampirkan dengan permintaan. Untuk mengetahui informasi tentang cara menerapkan token di reCAPTCHA, lihat halaman berikut:
- Aplikasi web
- Aplikasi seluler
Terakhir, gunakan bahasa aturan Cloud Armor untuk mengonfigurasi aturan kebijakan keamanan guna mengevaluasi token reCAPTCHA yang dilampirkan dengan permintaan. Untuk mencegah pencurian token, sebaiknya Anda mengaitkan kunci reCAPTCHA dengan aturan kebijakan keamanan Anda. Saat Anda mengaitkan kunci reCAPTCHA dengan aturan kebijakan keamanan, Cloud Armor akan melakukan validasi tambahan pada token dengan membandingkan kunci reCAPTCHA dalam token dengan kunci reCAPTCHA yang dikaitkan dengan aturan. Cloud Armor menganggap token dengan kunci reCAPTCHA yang tidak diketahui sebagai tidak valid. Untuk mengetahui informasi selengkapnya, lihat menerapkan penilaian tanpa hambatan reCAPTCHA.
Gambar berikut menunjukkan alur penerapan token reCAPTCHA.
Pengalihan (respons 302)
Anda dapat menggunakan tindakan pengalihan berbasis URL untuk mengalihkan permintaan secara eksternal ke endpoint lain. Anda memberikan target pengalihan dalam bentuk URL, dan Cloud Armor mengalihkan permintaan dengan menayangkan respons HTTP 302 ke klien.
Permintaan dekorasi
Cloud Armor dapat menyisipkan header permintaan kustom dengan nilai statis yang ditentukan pengguna sebelum melakukan proxy permintaan ke aplikasi Anda. Dengan opsi ini, Anda dapat memberi tag pada permintaan yang mencurigakan untuk pemrosesan hilir alternatif, seperti menyajikan honey-pot, atau untuk analisis dan pemantauan tambahan. Perhatikan bahwa parameter
tindakan ini harus ditambahkan ke tindakan allow
yang ada.
Header khusus
Jika Anda telah mengonfigurasi Cloud Armor untuk menyisipkan header atau nilai kustom dengan nama header yang sama dengan salah satu header kustom untuk Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik, nilai header akan ditimpa oleh load balancer. Untuk mengetahui informasi selengkapnya, lihat Membuat header kustom di layanan backend.
Selain itu, jika Anda memilih nama header yang sudah ada dalam permintaan, termasuk header HTTP standar, nilai asli dalam header tersebut akan digantikan oleh nilai yang ditentukan pengguna yang diberikan ke aturan Cloud Armor.
Berintegrasi dengan pembatasan kapasitas
Aturan pembatasan frekuensi Cloud Armor kompatibel dengan kemampuan pengelolaan bot. Misalnya, Anda dapat mengalihkan permintaan untuk penilaian reCAPTCHA atau mengalihkan ke URL lain saat jumlah permintaan melebihi nilai minimum yang dikonfigurasi. Selain itu, Anda dapat mengidentifikasi klien untuk pembatasan frekuensi berdasarkan cookie atau token pengecualian reCAPTCHA, untuk membatasi permintaan atau melarang klien yang menggunakan kembali atau menyalahgunakan cookie atau token yang sama pada frekuensi yang melebihi batas yang dikonfigurasi pengguna.
Membatasi kecepatan cookie atau token pengecualian reCAPTCHA
Untuk keamanan, sebaiknya konfigurasi aturan pembatasan kecepatan untuk mencegah penyalahgunaan token melalui beberapa penggunaan per token tindakan reCAPTCHA, token sesi, atau cookie pengecualian yang unik. Tabel berikut mengilustrasikan cara Anda dapat mengidentifikasi cookie atau token pengecualian reCAPTCHA sebagai kunci dalam aturan pembatasan kecepatan.
Resource | enforce_on_key |
enforce_on_key_name |
---|---|---|
Cookie pengecualian | HTTP-COOKIE |
recaptcha-ca-e |
Token tindakan | HTTP-HEADER |
X-Recaptcha-Token |
Token sesi | HTTP-COOKIE |
recaptcha-ca-t |
Anda dapat membatasi permintaan atau melarang klien yang bergantung pada cookie atau token pengecualian yang sama, dan yang melampaui nilai minimum yang dikonfigurasi. Untuk mengetahui informasi selengkapnya tentang parameter pembatasan kapasitas, lihat Menerapkan pembatasan kapasitas.
Contoh pembatasan kapasitas
Pertama, misalkan Anda hanya menggunakan tantangan manual di URL tertentu
(misalnya, /login.html
) di situs Anda. Untuk melakukannya, konfigurasi
aturan kebijakan keamanan sebagai berikut:
- Aturan 1: Jika ada cookie pengecualian yang valid terlampir pada permintaan dan jumlah penggunaan cookie pengecualian berada di bawah nilai minimum yang Anda tetapkan, izinkan permintaan.
- Aturan 2: Mengalihkan permintaan untuk penilaian reCAPTCHA.
Kedua, misalkan Anda hanya menggunakan token tindakan atau token sesi di situs Anda.
Misalnya, Anda dapat menggunakan token tindakan untuk melindungi tindakan pengguna yang penting,
seperti /login.html
. Untuk melakukannya, ambil tindakan berdasarkan skor dari
action-token sebagai berikut:
- Aturan 1: Jika skor dari token tindakan lebih tinggi daripada nilai minimum yang telah ditentukan sebelumnya
(misalnya,
0.8
), izinkan permintaan jika jumlah penggunaan token tindakan berada di bawah nilai minimum yang Anda tentukan. - Aturan 2: Tolak permintaan.
Anda dapat mengonfigurasi aturan kebijakan keamanan serupa untuk menerapkan penilaian token sesi reCAPTCHA.
Ketiga, misalkan Anda menggabungkan token tindakan atau token sesi dengan tantangan manual
di URL tertentu (seperti /login.html
) di situs Anda, dan Anda ingin mengambil tindakan
berdasarkan skor dari token tindakan. Selain itu, Anda ingin memberi pengguna kesempatan
kedua dengan memecahkan tantangan jika skornya tidak cukup memuaskan. Untuk melakukannya,
konfigurasi aturan kebijakan keamanan sebagai berikut:
- Aturan 1: Jika skor dari token tindakan lebih tinggi daripada nilai minimum yang telah ditentukan sebelumnya
(misalnya,
0.8
), izinkan permintaan jika jumlah penggunaan token tindakan berada di bawah nilai minimum yang Anda tentukan. - Aturan 2 dan 3: Jika skor dari token tindakan lebih tinggi daripada nilai minimum yang telah ditentukan sebelumnya (misalnya,
0.5
), alihkan permintaan untuk penilaian reCAPTCHA kecuali jika ada cookie pengecualian yang valid yang dilampirkan pada permintaan dan jumlah penggunaan cookie pengecualian berada di bawah nilai minimum yang Anda tentukan. - Aturan 4: Tolak permintaan.
Anda dapat mengonfigurasi aturan kebijakan keamanan serupa untuk menerapkan penilaian token sesi reCAPTCHA dengan tantangan manual.
Jika Anda tidak menyesuaikan aturan pembatasan frekuensi, Cloud Armor tidak akan membatasi jumlah penggunaan untuk setiap cookie pengecualian reCAPTCHA, token tindakan, dan token sesi. Untuk token tindakan, sebaiknya gunakan
nilai minimum yang rendah (misalnya, 1
) dan interval waktu yang tinggi (misalnya, 30
menit,
karena token tindakan berlaku selama 30 menit). Sebaiknya Anda menentukan
nilai minimum berdasarkan statistik traffic Anda.