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 keamananPOLICY_NAME
: nama kebijakan keamanan yang ingin Anda siapkanRULE_NAME
: nama aturan WAF yang ingin Anda siapkanSENSITIVITY
: 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 keamananPOLICY_NAME
: nama kebijakan keamanan yang ingin Anda siapkanRULE_NAME
: nama aturan WAF yang ingin Anda siapkanSENSITIVITY
: tingkat sensitivitas aturan WAFSIGNATURE_1
: nama tanda tangan WAF yang ingin Anda kecualikanSIGNATURE_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 keamananPOLICY_NAME
: nama kebijakan keamanan yang ingin Anda siapkanRULE_NAME
: nama aturan WAF yang ingin Anda siapkanSIGNATURE_1
: nama tanda tangan WAF yang ingin Anda kecualikanSIGNATURE_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 keamananPOLICY_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 keamananPOLICY_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 keamananPOLICY_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 keamananPOLICY_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 keamananPOLICY_NAME
: nama kebijakan keamanan yang ingin Anda siapkan
Langkah berikutnya
- Untuk mengetahui informasi selengkapnya tentang penyesuaian aturan WAF, lihat Menyesuaikan aturan WAF yang telah dikonfigurasi sebelumnya oleh Google Cloud Armor.