Gunakan petunjuk ini untuk menyiapkan dan menyesuaikan aturan firewall aplikasi web (WAF) yang telah dikonfigurasi sebelumnya oleh Google Cloud Armor untuk membantu melindungi aplikasi Anda dari serangan. Jika Anda belum memahami aturan WAF yang telah dikonfigurasi sebelumnya, lihat ringkasan.
Menyiapkan aturan WAF yang telah dikonfigurasi sebelumnya
Bagian ini menyediakan template aturan WAF yang telah dikonfigurasi sebelumnya yang dapat Anda salin ke
konsol Google Cloud dan sesuaikan agar sesuai dengan kasus penggunaan Anda. Dalam setiap contoh
perintah gcloud
, Anda mengonfigurasi kebijakan keamanan dengan nama
POLICY_NAME dan prioritas PRIORITY.
Contoh pertama menyiapkan aturan dengan nama aturan RULE_NAME dan tingkat sensitivitas SENSITIVITY, yang mengaktifkan semua tanda tangan dengan sensitivitas kurang dari atau sama dengan SENSITIVITY. Untuk informasi selengkapnya tentang sensitivitas aturan, lihat Memilih tingkat sensitivitas.
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})" \ --action deny-403
Contoh kedua mirip dengan contoh pertama, tetapi memilih untuk tidak menggunakan tanda tangan aturan SIGNATURE_1 dan SIGNATURE_2. Hal ini berarti bahwa kedua tanda tangan ini tidak dievaluasi saat aturan WAF dievaluasi:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \ --action deny-403
Contoh ketiga mirip dengan contoh kedua, tetapi Anda memilih untuk mengaktifkan dua
tanda tangan, bukan menonaktifkannya. Perhatikan bahwa Anda hanya dapat mengaktifkan tanda tangan
aturan saat menetapkan tingkat sensitivitas ke 0
:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \ --action deny-403
Dalam semua contoh sebelumnya, Anda hanya menggunakan satu ekspresi per aturan. Meskipun
Anda dapat menggabungkan ekspresi menggunakan operator logika ||
, sebaiknya
Anda hanya menggunakan satu ekspresi per aturan sebagai praktik terbaik untuk menghindari melebihi
ukuran ekspresi maksimum.
Contoh
Contoh di bagian ini menyoroti aspek penting dalam membuat dan menyesuaikan
aturan WAF yang telah dikonfigurasi sebelumnya, termasuk tingkat sensitivitas dan pengecualian tanda tangan.
Di semua contoh perintah gcloud
, Anda membuat kebijakan keamanan dengan
nama POLICY_NAME pada prioritas
PRIORITY.
Membuat aturan pada tingkat sensitivitas tertentu
Dalam contoh ini, Anda ingin menggunakan semua tanda tangan dalam aturan WAF sqli-v33-stable
dengan tingkat sensitivitas kurang dari 4. Oleh karena itu, Anda membuat aturan pada tingkat sensitivitas 3, yang mencakup semua tanda tangan dengan tingkat sensitivitas kurang dari atau sama dengan tiga:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})" \ --action deny-403
Membuat aturan yang menonaktifkan satu atau beberapa tanda tangan
Dalam contoh ini, Anda ingin menggunakan hampir semua tanda tangan pada tingkat sensitivitas
1 dan 2 dalam aturan WAF xss-v33-stable
, tetapi Anda ingin mengecualikan tanda tangan
owasp-crs-v030301-id941370-xss
, yang memeriksa variabel global JavaScript.
Oleh karena itu, Anda membuat aturan pada tingkat sensitivitas 2 dan menggunakan argumen opt_out_rule_ids
untuk memilih tidak menggunakan tanda tangan owasp-crs-v030301-id941370-xss
:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})" \ --action deny-403
Jika Anda ingin mengecualikan dua tanda tangan atau lebih dari aturan, berikan
daftar tanda tangan yang dipisahkan koma dengan argumen opt_out_rule_ids
, seperti
contoh berikut:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})" \ --action deny-403
Membuat aturan yang mengaktifkan satu atau beberapa tanda tangan
Dalam contoh ini, Anda hanya ingin menggunakan tanda tangan
owasp-crs-v030001-id941150-xss
dari aturan WAF xss-v33-stable
. Tanda tangan
memeriksa atribut HTML yang tidak diizinkan, dan berada pada tingkat sensitivitas 2.
Oleh karena itu, Anda membuat aturan pada tingkat sensitivitas 0 dan menggunakan
argumen opt_in_rule_ids
untuk memilih menyertakan tanda tangan
owasp-crs-v030001-id941150-xss
. Perhatikan bahwa Anda hanya dapat mengaktifkan tanda tangan aturan saat
menetapkan tingkat sensitivitas ke 0
:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})" \ --action deny-403
Jika Anda ingin menyertakan dua atau beberapa tanda tangan dari aturan, berikan
daftar tanda tangan yang dipisahkan koma dengan argumen opt_in_rule_ids
, seperti
contoh berikut:
Konsol
Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Pencocokan:
evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})
gcloud
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})" \ --action deny-403
Langkah berikutnya
- Untuk mengetahui informasi selengkapnya tentang penyesuaian aturan WAF, lihat Menyesuaikan aturan WAF yang telah dikonfigurasi sebelumnya oleh Google Cloud Armor