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 lanjutan untuk membedakan antara pengguna manusia dan klien otomatis. reCAPTCHA menilai pengguna berdasarkan konfigurasi kunci situs WAF reCAPTCHA. Kemudian, token terenkripsi akan diterbitkan dengan atribut yang mewakili risiko terkait. Google Cloud Armor mendekripsi token ini secara inline, tanpa permintaan atau respons tambahan ke layanan reCAPTCHA. Berdasarkan atribut token, Google Cloud Armor memungkinkan Anda mengizinkan, menolak, membatasi kapasitas, atau mengalihkan permintaan yang masuk. Untuk mengetahui informasi selengkapnya, lihat ringkasan integrasi Google Cloud Armor dan reCAPTCHA.
Pengelolaan bot Google 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 Anda sendiri dan mengaitkannya dengan kebijakan keamanan Anda. Sebaiknya Anda melakukannya. Untuk mengetahui informasi selengkapnya, lihat Menerapkan tantangan reCAPTCHA.
- Anda hanya dapat mengizinkan pengguna akhir yang lulus tantangan manual reCAPTCHA dengan mengalihkan pengguna akhir untuk penilaian reCAPTCHA.
Menerapkan penilaian reCAPTCHA tanpa hambatan
- Anda dapat melakukan tindakan yang berbeda pada permintaan yang masuk berdasarkan penilaian reCAPTCHA tentang 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 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 Google Cloud Armor juga mencakup kemampuan berikut.
- Pengalihan (302)
- Anda dapat mengalihkan permintaan ke URL alternatif yang dikonfigurasi dengan mengonfigurasi Google Cloud Armor untuk menayangkan respons HTTP 302 ke klien.
- Menghias permintaan
- Anda dapat menyisipkan header kustom dalam permintaan, dan nilai statis ke dalam header tersebut, sebelum melakukan proxy permintaan ke backend.
Kasus penggunaan
Bagian ini menjelaskan cara menggunakan kemampuan pengelolaan bot Google Cloud Armor untuk mengurangi risiko bot dan mengontrol akses dari klien otomatis.
Menggunakan verifikasi manual untuk membedakan antara pengguna yang sah dan klien otomatis
Anda dapat mengalihkan permintaan ke reCAPTCHA untuk menilai klien akhir dan menampilkan tantangan manual jika diperlukan, tanpa implementasi reCAPTCHA tambahan. Jika pengguna manusia memiliki tanda tangan yang sama (seperti jalur URL atau tanda tangan L7 lainnya) dengan bot atau sistem penyalahgunaan, tindakan ini akan 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:
Misalnya, pengguna Maya dan bot sedang 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
dari jenis GOOGLE_RECAPTCHA
. Pengalaman pengguna menyeluruh
adalah sebagai berikut:
- Pengguna akhir mengunjungi situs Anda untuk pertama kalinya.
- Google Cloud Armor mengevaluasi permintaan, dan menentukan untuk mengalihkannya ke reCAPTCHA.
- reCAPTCHA merespons dengan halaman HTML yang berisi JavaScript reCAPTCHA yang disematkan.
- Saat respons dirender, JavaScript tersemat akan berjalan untuk menilai pengguna,
dan menayangkan 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 berakhir masa berlakunya.
- 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 verifikasi manual, sebaiknya buat kunci situs reCAPTCHA WAF Anda sendiri dan kaitkan dengan kebijakan keamanan. Hal ini memungkinkan Anda melihat metrik reCAPTCHA yang terkait dengan kunci situs dan melatih model keamanan khusus untuk kunci situs. Untuk informasi selengkapnya, lihat Membuat kunci situs reCAPTCHA WAF challenge.
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 tidak Anda miliki, termasuk kunci situs yang dikelola Google.
Menerapkan penilaian reCAPTCHA
Jika ada token reCAPTCHA yang dilampirkan ke permintaan masuk, Google Cloud Armor akan mengevaluasi permintaan dan menerapkan tindakan yang dikonfigurasi berdasarkan setiap atribut dalam token. Evaluasi kebijakan keamanan Google Cloud Armor terjadi di edge jaringan Google, sehingga backend Anda tidak terlibat dalam mendekripsi token.
Token reCAPTCHA
reCAPTCHA menerbitkan 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 mewakili risiko yang terkait dengan pengguna. File tersebut 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 menentukan keputusan Anda. Untuk mengetahui informasi selengkapnya, lihat perbandingan kasus penggunaan reCAPTCHA.
Setelah menentukan jenis token yang ingin digunakan, Anda akan menerapkan reCAPTCHA agar token dilampirkan dengan permintaan. Untuk informasi tentang cara menerapkan token di reCAPTCHA, lihat halaman berikut:
- Aplikasi web
- Aplikasi seluler
Terakhir, gunakan bahasa aturan Google 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. Saat Anda mengaitkan kunci reCAPTCHA dengan aturan kebijakan keamanan, Google Cloud Armor akan melakukan validasi tambahan pada token dengan membandingkan kunci reCAPTCHA dalam token dengan kunci reCAPTCHA yang dikaitkan dengan aturan. Google Cloud Armor menganggap token dengan kunci reCAPTCHA yang tidak dikenal tidak valid. Untuk mengetahui informasi selengkapnya, lihat menerapkan penilaian reCAPTCHA tanpa hambatan.
Gambar berikut menunjukkan alur penerapan token reCAPTCHA.
Pengalihan (respons 302)
Anda dapat menggunakan tindakan pengalihan berbasis URL untuk mengalihkan permintaan secara eksternal ke endpoint yang berbeda. Anda memberikan target pengalihan dalam bentuk URL, dan Google Cloud Armor mengalihkan permintaan dengan menayangkan respons HTTP 302 ke klien.
Permintaan dekorasi
Google Cloud Armor dapat menyisipkan header permintaan kustom dengan nilai statis yang ditentukan pengguna sebelum melakukan proxy terhadap permintaan ke aplikasi Anda. Opsi ini memungkinkan Anda memberi tag pada permintaan yang mencurigakan untuk pemrosesan downstream alternatif, seperti menayangkan honeypot, atau untuk analisis dan pemantauan tambahan. Perhatikan bahwa parameter tindakan
ini harus ditambahkan ke tindakan allow
yang ada.
Header khusus
Jika Anda telah mengonfigurasi Google 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 ditimpa oleh nilai yang ditentukan pengguna yang diberikan ke aturan Google Cloud Armor.
Mengintegrasikan dengan pembatasan kapasitas
Aturan pembatasan kapasitas Google Cloud Armor kompatibel dengan kemampuan pengelolaan bot. Misalnya, Anda dapat mengalihkan permintaan untuk penilaian reCAPTCHA atau mengalihkan ke URL lain jika jumlah permintaan melebihi nilai minimum yang dikonfigurasi. Selain itu, Anda dapat mengidentifikasi klien untuk pembatasan kecepatan berdasarkan cookie atau token pengecualian reCAPTCHA, untuk mengoreksi permintaan atau melarang klien yang menggunakan kembali atau menyalahgunakan cookie atau token yang sama dengan kecepatan yang melebihi nilai minimum yang dikonfigurasi pengguna.
Batasi kapasitas token atau cookie pengecualian reCAPTCHA
Untuk keamanan, sebaiknya konfigurasikan aturan pembatasan kapasitas untuk mencegah penyalahgunaan token melalui beberapa penggunaan per token tindakan, token sesi, atau cookie pengecualian reCAPTCHA yang unik. Tabel berikut mengilustrasikan cara Anda dapat mengidentifikasi token atau cookie pengecualian reCAPTCHA sebagai kunci dalam aturan pembatasan kapasitas.
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 melebihi nilai minimum yang dikonfigurasi. Untuk informasi selengkapnya tentang parameter pembatasan kapasitas, lihat Menerapkan pembatasan kapasitas.
Contoh pembatasan kapasitas
Pertama, anggaplah Anda hanya menggunakan verifikasi manual di URL yang dipilih
(misalnya, /login.html
) di situs Anda. Untuk melakukannya, konfigurasikan
aturan kebijakan keamanan sebagai berikut:
- Aturan 1: Jika ada cookie pengecualian yang valid yang disertakan dengan permintaan dan jumlah penggunaan untuk cookie pengecualian berada di bawah nilai minimum yang Anda tentukan, izinkan permintaan tersebut.
- Aturan 2: Alihkan 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 penting,
seperti /login.html
. Untuk melakukannya, ambil tindakan berdasarkan skor dari
token tindakan sebagai berikut:
- Aturan 1: Jika skor dari token tindakan lebih tinggi dari nilai minimum yang telah ditentukan
(misalnya,
0.8
), izinkan permintaan jika jumlah penggunaan untuk 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 yang dipilih (seperti /login.html
) di situs Anda, dan Anda ingin mengambil tindakan
berdasarkan skor dari token tindakan. Dan Anda ingin memberi pengguna kesempatan kedua
dengan menyelesaikan tantangan jika skornya tidak cukup memuaskan. Untuk melakukannya,
konfigurasi aturan kebijakan keamanan sebagai berikut:
- Aturan 1: Jika skor dari token tindakan lebih tinggi dari nilai minimum yang telah ditentukan
(misalnya,
0.8
), izinkan permintaan jika jumlah penggunaan untuk token tindakan berada di bawah nilai minimum yang Anda tentukan. - Aturan 2 dan 3: Jika skor dari token tindakan lebih tinggi dari nilai minimum yang telah ditentukan sebelumnya (misalnya,
0.5
), alihkan permintaan untuk penilaian reCAPTCHA, kecuali jika ada cookie pengecualian yang valid yang dilampirkan ke permintaan dan jumlah penggunaan untuk 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 kapasitas, Google Cloud Armor tidak akan memberlakukan batasan 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 valid selama 30 menit). Sebaiknya tentukan nilai minimum berdasarkan statistik traffic Anda.