Gunakan petunjuk ini untuk menyiapkan dan menyesuaikan aturan firewall aplikasi web (WAF) yang telah dikonfigurasi sebelumnya oleh 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 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 nonaktifkanSIGNATURE_2: nama tanda tangan WAF yang ingin Anda nonaktifkan.
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 nonaktifkanSIGNATURE_2: nama tanda tangan WAF yang ingin Anda nonaktifkan
Pada 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 untuk menghindari
melebihi ukuran ekspresi maksimum.
Memperbarui batas pemeriksaan untuk aturan WAF yang telah dikonfigurasi sebelumnya
Aturan WAF yang telah dikonfigurasi sebelumnya oleh Cloud Armor hanya dapat memeriksa hingga 64 kB pertama (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 ke 8 kB menggunakan flag --request-body-inspection-size. Untuk mengetahui informasi selengkapnya tentang
batas pemeriksaan aturan WAF yang telah dikonfigurasi sebelumnya, lihat
Batasan pemeriksaan isi permintaan.
gcloud compute security-policies update POLICY_NAME \
--request-body-inspection-size=8kB
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.
Mengurangi risiko pada isi permintaan yang melampaui batas pemeriksaan yang dikonfigurasi
Saat aturan WAF yang telah dikonfigurasi sebelumnya dievaluasi dalam kebijakan keamanan 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 melampaui 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 memperjelas aspek penting dalam membuat dan menyesuaikan
aturan WAF yang telah dikonfigurasi sebelumnya, termasuk tingkat sensitivitas dan pengecualian tanda tangan.
Di semua contoh perintah gcloud CLI, Anda membuat kebijakan keamanan dengan
nama POLICY_NAME pada prioritas
PRIORITY.
Membuat aturan pada tingkat sensitivitas tertentu
Pada 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 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 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 menonaktifkan satu atau beberapa signature
Pada 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 menonaktifkan 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
comma separated list dari tanda tangan 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 pada 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
comma separated list dari tanda tangan 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 Cloud Armor