Menyiapkan aturan WAF yang telah dikonfigurasi sebelumnya

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