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 ringkasannya.

Menyiapkan aturan WAF yang telah dikonfigurasi sebelumnya

Bagian ini menyediakan template aturan WAF yang telah dikonfigurasi sebelumnya yang dapat Anda salin ke dalam konsol Google Cloud dan sesuaikan agar sesuai dengan kasus penggunaan Anda. Di setiap contoh perintah Google Cloud CLI, 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 mengetahui informasi selengkapnya tentang sensitivitas aturan, lihat Memilih tingkat sensitivitas.

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan
  • RULE_NAME: nama aturan WAF yang ingin Anda siapkan
  • SENSITIVITY: tingkat sensitivitas aturan WAF

Contoh kedua mirip dengan contoh pertama, tetapi menonaktifkan tanda tangan aturan SIGNATURE_1 dan SIGNATURE_2. Artinya, kedua tanda tangan ini tidak dievaluasi saat aturan WAF dievaluasi:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan
  • RULE_NAME: nama aturan WAF yang ingin Anda siapkan
  • SENSITIVITY: tingkat sensitivitas aturan WAF
  • SIGNATURE_1: nama tanda tangan WAF yang ingin Anda kecualikan
  • SIGNATURE_2: nama tanda tangan WAF yang ingin Anda kecualikan.

Contoh ketiga mirip dengan contoh kedua, tetapi alih-alih menonaktifkan dua tanda tangan, Anda mengaktifkan dua tanda tangan aturan. Perhatikan bahwa Anda hanya dapat mengaktifkan tanda tangan aturan jika Anda menyetel tingkat sensitivitas ke 0:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan
  • RULE_NAME: nama aturan WAF yang ingin Anda siapkan
  • SIGNATURE_1: nama tanda tangan WAF yang ingin Anda kecualikan
  • SIGNATURE_2: nama tanda tangan WAF yang ingin Anda kecualikan

Dalam semua contoh sebelumnya, Anda hanya menggunakan satu ekspresi per aturan. Meskipun Anda dapat menggabungkan ekspresi menggunakan operator logis OR (||), sebaiknya Anda hanya menggunakan satu ekspresi per aturan sebagai praktik terbaik untuk menghindari melampaui ukuran ekspresi maksimum.

Memperbarui batas pemeriksaan untuk aturan WAF yang telah dikonfigurasi sebelumnya

Aturan WAF yang telah dikonfigurasi sebelumnya oleh Google Cloud Armor hanya dapat memeriksa hingga 64 kB pertama (baik 8 kB, 16 kB, 32 kB, 48 kB, atau 64 kB) dari isi permintaan. Anda dapat mengonfigurasi kebijakan keamanan secara manual untuk menggunakan salah satu batas pemeriksaan ini untuk aturan WAF yang telah dikonfigurasi sebelumnya.

Perintah berikut menetapkan batas pemeriksaan semua aturan WAF yang telah dikonfigurasi sebelumnya yang tersedia dalam kebijakan POLICY_NAME menjadi 8 kB menggunakan tanda --request-body-inspection-size. Untuk mengetahui informasi selengkapnya tentang batasan pemeriksaan aturan WAF yang telah dikonfigurasi sebelumnya, lihat Batasan pemeriksaan isi POST dan PATCH.

gcloud compute security-policies update POLICY_NAME \
    --request-body-inspection-size = 8 kB

Ganti POLICY_NAME dengan nama kebijakan keamanan yang ingin Anda siapkan.

Demikian pula, Anda dapat menggunakan flag --request-body-inspection-size untuk menetapkan batas inspeksi semua aturan WAF yang telah dikonfigurasi sebelumnya yang tersedia dalam kebijakan POLICY_NAME ke 16 kB, 32 kB, 48 kB, atau 64 kB.

Memitigasi risiko pada isi permintaan yang melampaui batas pemeriksaan yang dikonfigurasi

Saat dievaluasi dalam kebijakan keamanan Google Cloud Armor, hingga 64 kB pertama (8 kB, 16 kB, 32 kB, 48 kB, atau 64 kB) isi permintaan diperiksa untuk menemukan kecocokan tanda tangan dengan aturan WAF.

Anda dapat mengurangi risiko dari permintaan yang lebih besar dengan membuat aturan dalam kebijakan keamanan untuk membantu memastikan tidak ada konten yang tidak diperiksa yang mencapai backend Anda. Misalnya, buat aturan untuk menolak traffic yang melebihi batas pemeriksaan yang dikonfigurasi sebesar 8 kB (8.192 byte) dalam ukuran isi permintaan. Perintah berikut menunjukkan cara membuat aturan ini:

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 8192" \
    --action deny-403 \
    --description "Block requests greater than 8 kB"

Demikian pula, Anda dapat membuat aturan untuk menolak traffic yang melebihi batas pemeriksaan yang dikonfigurasi sebesar 16 kB, 32 kB, 48 kB, atau 64 kB dalam ukuran isi permintaan. Misalnya, perintah berikut menunjukkan cara membuat aturan ini untuk batas pemeriksaan 64 kB (65536 byte).

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 65536" \
    --action deny-403 \
    --description "Block requests greater than 64 kB"

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 perintah contoh gcloud CLI, Anda membuat kebijakan keamanan dengan nama POLICY_NAME pada prioritas PRIORITY.

Membuat aturan pada tingkat sensitivitas tertentu

Dalam contoh ini, Anda menggunakan semua tanda tangan dalam aturan WAF sqli-v33-stable dengan tingkat sensitivitas kurang dari 4. Oleh karena itu, Anda membuat aturan di 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 Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan

Membuat aturan yang membatalkan keikutsertaan satu atau beberapa tanda tangan

Dalam contoh ini, Anda 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 di tingkat sensitivitas 2 dan menggunakan argumen opt_out_rule_ids untuk memilih tidak ikut tanda tangan owasp-crs-v030301-id941370-xss:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan

Untuk mengecualikan dua tanda tangan atau lebih dari suatu aturan, berikan daftar tanda tangan yang dipisahkan koma dengan argumen opt_out_rule_ids, sebagai berikut:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan

Membuat aturan yang mengaktifkan satu atau beberapa tanda tangan

Contoh ini hanya menggunakan tanda tangan owasp-crs-v030001-id941150-xss dari aturan WAF xss-v33-stable. Tanda tangan memeriksa atribut HTML yang tidak diizinkan, dan berada di tingkat sensitivitas 2. Oleh karena itu, Anda membuat aturan pada tingkat sensitivitas 0 dan menggunakan argumen opt_in_rule_ids untuk mengaktifkan tanda tangan owasp-crs-v030001-id941150-xss. Perhatikan bahwa Anda hanya dapat mengaktifkan tanda tangan aturan jika Anda menyetel tingkat sensitivitas ke 0:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan

Jika Anda ingin menyertakan dua tanda tangan atau lebih dari suatu aturan, berikan daftar tanda tangan yang dipisahkan koma dengan argumen opt_in_rule_ids, sebagai berikut:

Konsol

Pilih Mode lanjutan, lalu gunakan contoh ekspresi berikut di kolom Cocokkan:

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

Ganti kode berikut:

  • PRIORITY: prioritas kebijakan keamanan
  • POLICY_NAME: nama kebijakan keamanan yang ingin Anda siapkan

Langkah berikutnya