Anda dapat menyesuaikan aturan dengan mengecualikan kolom permintaan dari evaluasi untuk mengurangi positif palsu.
Saat mengonfigurasi pengecualian untuk aturan, Anda dapat mengecualikan kolom berikut dari pemeriksaan:
Mengecualikan kolom permintaan dari evaluasi aturan
Untuk mengonfigurasi pengecualian kolom permintaan untuk suatu aturan, kaitkan konfigurasi dengan aturan kebijakan keamanan.
Aturan ini tidak menggunakan ID aturan. Sebagai gantinya, Anda dapat mengonfigurasi
flag --target-rule-set dengan salah satu nilai berikut:
cel(--target-rule-set "cel"): menerapkan pengecualian hanya ke aturan CEL kustom dalam aturan kebijakan keamanan tersebut.*(--target-rule-set "*", pengecualian global): menerapkan pengecualian ke semua aturan yang dilampirkan ke kebijakan keamanan tersebut, termasuk aturan CEL kustom dan aturan yang menggunakanevaluatePreconfiguredWaf().
Pada kebijakan keamanan backend (global dan regional), Anda dapat mengonfigurasi hingga
100 dari setiap hal berikut per target (cel atau *):
- Header permintaan
- Cookie permintaan
- Parameter kueri permintaan
- URI permintaan
- Isi permintaan
Operator kolom yang tersedia adalah:
EQUALS: cocok jika nilai kolom sama dengan nilai yang ditentukan.STARTS_WITH: cocok jika nilai kolom diawali dengan nilai yang ditentukan.ENDS_WITH: cocok jika nilai kolom diakhiri dengan nilai yang ditentukan.CONTAINS: cocok jika nilai kolom berisi nilai yang ditentukan.EQUALS_ANY: cocok jika nilai kolom adalah nilai apa pun.
Header permintaan
Anda dapat mengecualikan header permintaan tertentu dari pemeriksaan selama evaluasi aturan dengan menggunakan nama headernya di kolom pengecualian.
Jika header permintaan cocok dengan pengecualian, seluruh entri header (nama dan nilainya) akan dihapus dari peta request.headers sebelum evaluasi aturan.
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk mengecualikan header permintaan yang dimulai dengan
abc atau diakhiri dengan xyz dari evaluasi aturan (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc" \
--request-header-to-exclude "op=ENDS_WITH,val=xyz"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan
Cookie permintaan
Anda dapat mengecualikan cookie permintaan tertentu dari pemeriksaan selama evaluasi aturan dengan menggunakan nama cookie-nya di kolom pengecualian.
Jika cookie permintaan cocok dengan pengecualian, seluruh entri cookie (nama dan nilainya) akan dikecualikan dari atribut permintaan sebelum evaluasi aturan.
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk mengecualikan cookie
permintaan yang dimulai dengan session_ dari evaluasi aturan (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-cookie-to-exclude "op=STARTS_WITH,val=session_"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan
Parameter kueri permintaan
Anda dapat mengecualikan parameter permintaan tertentu dari pemeriksaan selama evaluasi aturan dengan menggunakan nama parameternya di kolom pengecualian. Flag --request-query-param-to-exclude berlaku untuk parameter kueri URL dan parameter isi permintaan yang diurai (JSON, data formulir, dan GraphQL).
Jika parameter cocok dengan pengecualian, seluruh entri parameter (kunci dan nilainya) akan dihapus dari request.params sebelum evaluasi aturan, sehingga has(request.params.param_name) dievaluasi ke false.
Untuk isi permintaan yang diuraikan, Anda dapat menggunakan notasi titik untuk menargetkan kolom bertingkat dan item array:
- Kolom tingkat teratas:
val=user - Kolom bertingkat:
val=user.name - Item array:
val=items.0.name
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk mengecualikan
parameter kueri URL bad-param, kolom JSON bertingkat user.name, dan
kolom item array JSON items.0.name dari evaluasi aturan (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-query-param-to-exclude "op=EQUALS,val=bad-param" \
--request-query-param-to-exclude "op=EQUALS,val=user.name" \
--request-query-param-to-exclude "op=EQUALS,val=items.0.name"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan
URI permintaan
Anda dapat mengecualikan URI dari baris permintaan (tidak termasuk data string kueri) dari pemeriksaan selama evaluasi aturan.
Saat mengecualikan URI, seluruh kolom URI akan dikecualikan dari pemeriksaan.
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk mengecualikan URI
permintaan yang berisi /bad-path dari evaluasi aturan (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-uri-to-exclude "op=CONTAINS,val=/bad-path"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan
Isi permintaan
Anda dapat mengecualikan nilai isi permintaan tertentu dari pemeriksaan selama evaluasi aturan.
Jika isi permintaan cocok dengan pengecualian, atribut request.body akan
dikecualikan dari evaluasi aturan.
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk mengecualikan isi
permintaan yang berisi bad-body-value dari evaluasi aturan (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-body-to-exclude "op=CONTAINS,val=bad-body-value"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan
Nilai kolom
Anda harus menentukan nilai kolom jika menggunakan operator kolom selain
EQUALS_ANY.
Untuk header permintaan, cookie permintaan, dan parameter kueri permintaan, himpunan karakter yang diizinkan untuk nilai kolom mencakup karakter berikut:
!,#,$,%,&,*,+,-,.,^,_,`,|,~- Karakter alfa
AhinggaZ(huruf besar dan huruf kecil) - Karakter digit
0hingga9
Untuk isi permintaan, himpunan karakter yang diizinkan untuk nilai kolom mencakup semua karakter ASCII yang dapat dicetak kecuali ', \`,(, and)`:
- Spasi (
) dan karakter khusus:!,",#,$,%,&,*,+,,,-,.,/,:,;,<,=,>,?,@,[,],^,_,`,{,|,},~ - Karakter alfa
AhinggaZ(huruf besar dan huruf kecil) - Karakter digit
0hingga9
Saat Anda menerapkan pengecualian untuk kolom permintaan ini, nilai kolom konfigurasi (val=) dibandingkan tidak peka huruf besar/kecil (setelah transformasi) dengan hal berikut untuk menentukan entitas yang akan dikecualikan dari pemeriksaan:
- Header permintaan: cocok dengan nama header (kunci) untuk mengecualikan seluruh header (nama dan nilai).
- Cookie permintaan: cocok dengan nama cookie untuk mengecualikan seluruh cookie (nama dan nilai).
- Parameter kueri permintaan: cocok dengan nama parameter atau jalur JSON bertingkat (kunci) untuk mengecualikan seluruh parameter (kunci dan nilai).
- Isi permintaan: cocok dengan string konten isi permintaan untuk mengecualikan seluruh atribut
request.body.
Anda tidak perlu melakukan encoding tambahan jika ingin mengecualikan karakter tertentu yang tidak ada dalam himpunan karakter yang diizinkan.
Untuk URI permintaan, nilai kolom harus diberikan dalam format URI dengan batasan komponen berikut:
| Komponen | Batasan |
|---|---|
| Skema | Diizinkan, tetapi dibatasi untuk http atau https |
| Host | Diizinkan (bisa berupa alamat IP) |
| Port | Diizinkan |
| Alur | Diizinkan |
| Kueri | Tidak diizinkan |
| Fragmen | Tidak diizinkan |
Saat Anda menerapkan pengecualian untuk URI permintaan, nilai kolom konfigurasi dibandingkan tanpa peka huruf besar/kecil (setelah transformasi) dengan URI dari baris permintaan, tidak termasuk string kueri. URI dari baris permintaan dapat berupa relatif atau absolut. Pertimbangkan hal ini saat mengonfigurasi pengecualian untuk URI permintaan.
Menghapus pengecualian
Untuk menghapus pengecualian kolom permintaan dari aturan kebijakan keamanan, gunakan perintah remove-preconfig-waf-exclusion. Anda dapat menghapus pengecualian kolom tertentu dengan menentukan flag pengecualian kolom yang sesuai, atau menghilangkan flag kolom untuk menghapus semua pengecualian untuk set aturan target tersebut (cel atau *).
Contoh
Contoh berikut memperbarui aturan dalam kebijakan keamanan
POLICY_NAME di PRIORITY untuk menghapus
pengecualian header permintaan yang dimulai dengan abc dari evaluasi aturan
(cel):
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc"
Contoh berikut menghilangkan flag kolom untuk menghapus semua pengecualian kolom permintaan yang dikonfigurasi untuk evaluasi aturan (cel) pada aturan di PRIORITY:
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel"
Ganti kode berikut:
PRIORITY: prioritas aturanPOLICY_NAME: nama kebijakan keamanan