Bekerja dengan kondisi kecocokan string - AWS WAF, AWS Firewall Manager, dan AWS Shield Advanced

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan kondisi kecocokan string

catatan

Ini adalah dokumentasi AWS WAF Klasik. Anda hanya boleh menggunakan versi ini jika Anda membuat AWS WAF sumber daya, seperti aturan dan ACL web, AWS WAF sebelum November 2019, dan Anda belum memigrasikannya ke versi terbaru. Untuk memigrasikan sumber daya Anda, lihatMemigrasi sumber daya AWS WAF Klasik Anda ke AWS WAF.

Untuk versi terbaru AWS WAF, lihatAWS WAF.

Jika Anda ingin mengizinkan atau memblokir permintaan web berdasarkan string yang muncul dalam permintaan, buat satu atau beberapa kondisi pencocokan string. Kondisi pencocokan string mengidentifikasi string yang ingin Anda cari dan bagian dari permintaan web, seperti header tertentu atau string kueri, yang Anda ingin AWS WAF Classic untuk memeriksa string. Kemudian dalam proses, ketika Anda membuat ACL web, Anda menentukan apakah akan mengizinkan atau memblokir permintaan yang berisi string.

Membuat kondisi kecocokan string

Saat Anda membuat kondisi pencocokan string, Anda menentukan filter yang mengidentifikasi string yang ingin Anda cari dan bagian dari permintaan web yang Anda ingin AWS WAF Classic untuk memeriksa string tersebut, seperti URI atau string kueri. Anda dapat menambahkan lebih dari satu filter ke kondisi kecocokan string, atau Anda dapat membuat kondisi pencocokan string terpisah untuk setiap filter. Inilah cara setiap konfigurasi memengaruhi perilaku AWS WAF Klasik:

  • Satu filter per kondisi kecocokan string - Saat Anda menambahkan kondisi pencocokan string terpisah ke aturan dan menambahkan aturan ke ACL web, permintaan web harus cocok dengan semua kondisi untuk AWS WAF Classic untuk mengizinkan atau memblokir permintaan berdasarkan kondisi.

    Misalnya, Anda membuat dua kondisi. Satu cocok dengan permintaan web yang berisi nilai BadBot di User-Agent header. Yang lain cocok dengan permintaan web yang berisi nilai BadParameter dalam string kueri. Saat Anda menambahkan kedua kondisi ke aturan yang sama dan menambahkan aturan ke ACL web, AWS WAF Classic mengizinkan atau memblokir permintaan hanya jika berisi kedua nilai tersebut.

  • Lebih dari satu filter per kondisi kecocokan string - Saat Anda menambahkan kondisi kecocokan string yang berisi beberapa filter ke aturan dan menambahkan aturan ke ACL web, permintaan web hanya perlu mencocokkan salah satu filter dalam kondisi pencocokan string untuk AWS WAF Klasik untuk mengizinkan atau memblokir permintaan berdasarkan satu kondisi.

    Misalkan Anda membuat satu kondisi, bukan dua, dan satu kondisi berisi dua filter yang sama seperti pada contoh sebelumnya. AWS WAF Classic memungkinkan atau memblokir permintaan jika berisi baik BadBot di User-Agent header atau BadParameter dalam string kueri.

catatan

Saat menambahkan kondisi kecocokan string ke aturan, Anda juga dapat mengonfigurasi AWS WAF Classic untuk mengizinkan atau memblokir permintaan web yang tidak cocok dengan nilai dalam kondisi tersebut.

Untuk membuat kondisi kecocokan string
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

  3. Pilih Buat kondisi.

  4. Tentukan pengaturan filter yang berlaku. Untuk informasi selengkapnya, lihat Nilai yang Anda tentukan saat Anda membuat atau mengedit kondisi kecocokan string.

  5. Pilih Tambahkan filter.

  6. Jika Anda ingin menambahkan filter lain, ulangi langkah 4 dan 5.

  7. Setelah selesai menambahkan filter, pilih Buat.

Nilai yang Anda tentukan saat Anda membuat atau mengedit kondisi kecocokan string

Saat Anda membuat atau memperbarui kondisi kecocokan string, Anda menentukan nilai berikut:

Nama

Masukkan nama untuk kondisi kecocokan string. Nama hanya dapat berisi karakter alfanumerik (A-Z, a-z, 0-9) atau karakter khusus berikut: _-!” #`+*}, ./. Anda tidak dapat mengubah nama kondisi setelah Anda membuatnya.

Tipe

Pilih String match.

Bagian dari permintaan untuk memfilter

Pilih bagian dari setiap permintaan web yang Anda inginkan AWS WAF Classic untuk memeriksa string yang Anda tentukan di Nilai yang cocok:

Header

Sebuah header permintaan tertentu, misalnya, User-Agent atau Referer header. Jika Anda memilih Header, tentukan nama header di bidang Header.

Metode HTTP

Metode HTTP, yang menunjukkan jenis operasi yang diminta permintaan asal untuk dilakukan. CloudFront mendukung metode berikut:DELETE,GET,HEAD,OPTIONS,PATCH,POST, danPUT.

String kueri

Bagian dari URL yang muncul setelah ? karakter, jika ada.

URI

Jalur URI permintaan, yang mengidentifikasi sumber daya, misalnya,/images/daily-ad.jpg. Ini tidak termasuk string kueri atau komponen fragmen URI. Untuk selengkapnya, lihat Uniform Resource Identifier (URI): Generic Syntax.

Kecuali Transformasi ditentukan, URI tidak dinormalisasi dan diperiksa sama seperti AWS menerimanya dari klien sebagai bagian dari permintaan. Transformasi akan memformat ulang URI seperti yang ditentukan.

Tubuh

Bagian dari permintaan yang berisi data tambahan yang ingin Anda kirim ke server web Anda sebagai badan permintaan HTTP, seperti data dari formulir.

catatan

Jika Anda memilih Body untuk nilai Bagian dari permintaan untuk difilter, AWS WAF Classic hanya memeriksa 8192 byte pertama (8 KB). Untuk mengizinkan atau memblokir permintaan yang badannya lebih panjang dari 8192 byte, Anda dapat membuat kondisi batasan ukuran. (AWS WAF Klasik mendapatkan panjang badan dari header permintaan.) Untuk informasi selengkapnya, lihat Bekerja dengan kondisi kendala ukuran.

Parameter kueri tunggal (hanya nilai)

Parameter apa pun yang telah Anda definisikan sebagai bagian dari string kueri. Misalnya, jika URL-nya adalah “www.xyz.com? UserName =abc& SalesRegion =seattle” Anda dapat menambahkan filter ke parameter atau. UserNameSalesRegion

Jika parameter duplikat muncul dalam string kueri, nilai dievaluasi sebagai “OR.” Artinya, salah satu nilai akan memicu kecocokan. Misalnya, di URL “www.xyz.com? SalesRegion =boston& SalesRegion =seattle”, “boston” atau “seattle” di Value to match akan memicu kecocokan.

Jika Anda memilih Parameter kueri tunggal (hanya nilai) Anda juga akan menentukan nama parameter Kueri. Ini adalah parameter dalam string kueri yang akan Anda periksa, seperti UserNameatau SalesRegion. Panjang maksimum untuk nama parameter Query adalah 30 karakter. Nama parameter kueri tidak peka huruf besar/kecil. Misalnya, Anda menentukan UserNamesebagai nama parameter Query, ini akan cocok dengan semua variasi UserName, seperti username dan UserName.

Semua parameter kueri (hanya nilai)

Mirip dengan Parameter kueri tunggal (hanya nilai), tetapi alih-alih memeriksa nilai parameter tunggal, AWS WAF Classic memeriksa nilai semua parameter dalam string kueri agar Nilai cocok. Misalnya, jika URL adalah “www.xyz.com? UserName =abc& SalesRegion =seattle,” dan Anda memilih Semua parameter kueri (hanya nilai), AWS WAF Klasik akan memicu kecocokan jika nilai salah satu UserNameatau SalesRegionditentukan sebagai Nilai yang cocok.

Header (Hanya Ketika “Bagian dari permintaan untuk memfilter” adalah “Header”)

Jika Anda memilih Header dari Bagian permintaan untuk memfilter pada daftar, pilih header dari daftar header umum, atau masukkan nama header yang ingin Anda periksa AWS WAF Classic.

Jenis kecocokan

Di bagian permintaan yang ingin Anda periksa AWS WAF Classic, pilih di mana string dalam Nilai yang cocok harus muncul agar sesuai dengan filter ini:

Contains

String muncul di mana saja di bagian permintaan yang ditentukan.

Berisi kata

Bagian yang ditentukan dari permintaan web harus menyertakan Nilai yang cocok, dan Nilai yang cocok harus hanya berisi karakter alfanumerik atau garis bawah (A-Z, a-z, 0-9, atau _). Selain itu, Nilai yang cocok harus berupa kata, yang berarti salah satu dari yang berikut:

  • Nilai yang cocok persis sama dengan nilai bagian tertentu dari permintaan web, seperti nilai header.

  • Nilai yang cocok adalah di awal bagian tertentu dari permintaan web dan diikuti oleh karakter selain karakter alfanumerik atau garis bawah (_), misalnya,. BadBot;

  • Nilai yang cocok adalah di akhir bagian tertentu dari permintaan web dan didahului oleh karakter selain karakter alfanumerik atau garis bawah (_), misalnya,. ;BadBot

  • Nilai yang cocok berada di tengah bagian tertentu dari permintaan web dan didahului dan diikuti oleh karakter selain karakter alfanumerik atau garis bawah (_), misalnya,. -BadBot;

Persis cocok

String dan nilai bagian yang ditentukan dari permintaan identik.

Starts with

String muncul di awal bagian permintaan yang ditentukan.

Ends with

String muncul di akhir bagian permintaan yang ditentukan.

Transformasi

Transformasi memformat ulang permintaan web sebelum AWS WAF Classic memeriksa permintaan. Ini menghilangkan beberapa format yang tidak biasa yang digunakan penyerang dalam permintaan web dalam upaya untuk melewati AWS WAF Classic.

Anda hanya dapat menentukan satu jenis transformasi teks.

Transformasi dapat melakukan operasi berikut:

Tidak ada

AWS WAF Classic tidak melakukan transformasi teks apa pun pada permintaan web sebelum memeriksanya agar string di Nilai cocok.

Mengkonversi ke lowercase

AWS WAF Klasik mengkonversi huruf besar (A-Z) ke huruf kecil (a-z).

Dekode HTML

AWS WAF Klasik menggantikan karakter yang dikodekan HTML dengan karakter yang tidak dikodekan:

  • Mengganti " dengan &

  • Mengganti   dengan ruang yang tidak pecah

  • Mengganti &lt; dengan <

  • Mengganti &gt; dengan >

  • Mengganti karakter yang diwakili dalam format heksadesimal, &#xhhhh;, dengan karakter yang sesuai

  • Mengganti karakter yang diwakili dalam format desimal, &#nnnn;, dengan karakter yang sesuai

Menormalkan ruang putih

AWS WAF Klasik menggantikan karakter berikut dengan karakter spasi (desimal 32):

  • \ f, formfeed, desimal 12

  • \ t, tab, desimal 9

  • \ n, baris baru, desimal 10

  • \ r, pengembalian pengangkutan, desimal 13

  • \ v, tab vertikal, desimal 11

  • spasi tanpa pindah baris, desimal 160

Selain itu, opsi ini menggantikan beberapa spasi dengan satu spasi.

Sederhanakan baris perintah

Jika Anda khawatir penyerang menyuntikkan perintah baris perintah sistem operasi dan menggunakan pemformatan yang tidak biasa untuk menyamarkan beberapa atau semua perintah, gunakan pilihan ini untuk melakukan perubahan berikut:

  • Menghapus karakter berikut: \ " ' ^

  • Menghapus spasi sebelum karakter berikut: / (

  • Mengganti karakter berikut dengan spasi: , ;

  • Mengganti spasi ganda dengan satu spasi

  • Mengonversi huruf besar (A-Z) ke huruf kecil (a-z)

Dekode URL

Mendekode permintaan yang dikodekan URL.

Nilai dikodekan base64

Jika nilai dalam Nilai yang cocok dikodekan base64, pilih kotak centang ini. Gunakan pengkodean base64 untuk menentukan karakter yang tidak dapat dicetak, seperti tab dan linefeed, yang disertakan penyerang dalam permintaan mereka.

Nilai untuk dicocokkan

Tentukan nilai yang ingin Anda cari AWS WAF Classic dalam permintaan web. Panjang maksimum adalah 50 byte. Jika Anda mengkodekan nilai base64, panjang maksimum 50-byte berlaku untuk nilai sebelum Anda menyandikannya.

Menambahkan dan menghapus filter dalam kondisi kecocokan string

Anda dapat menambahkan filter ke kondisi kecocokan string atau menghapus filter. Untuk mengubah filter, tambahkan yang baru dan hapus yang lama.

Untuk menambah atau menghapus filter dalam kondisi kecocokan string
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

  3. Pilih kondisi yang ingin Anda tambahkan atau hapus filter.

  4. Untuk menambahkan filter, lakukan langkah-langkah berikut:

    1. Pilih Tambahkan filter.

    2. Tentukan pengaturan filter yang berlaku. Untuk informasi selengkapnya, lihat Nilai yang Anda tentukan saat Anda membuat atau mengedit kondisi kecocokan string.

    3. Pilih Tambahkan.

  5. Untuk menghapus filter, lakukan langkah-langkah berikut:

    1. Pilih filter yang ingin Anda hapus.

    2. Pilih Hapus Filter.

Menghapus kondisi kecocokan string

Jika Anda ingin menghapus kondisi kecocokan string, Anda harus terlebih dahulu menghapus semua filter dalam kondisi dan menghapus kondisi dari semua aturan yang menggunakannya, seperti yang dijelaskan dalam prosedur berikut.

Untuk menghapus kondisi kecocokan string
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Hapus kondisi kecocokan string dari aturan yang menggunakannya:

    1. Di panel navigasi, pilih Aturan.

    2. Pilih nama aturan yang menggunakan kondisi pencocokan string yang ingin Anda hapus.

    3. Di panel kanan, pilih Edit aturan.

    4. Pilih X di sebelah kondisi yang ingin Anda hapus.

    5. Pilih Perbarui.

    6. Ulangi untuk semua aturan yang tersisa yang menggunakan kondisi pencocokan string yang ingin Anda hapus.

  3. Hapus filter dari kondisi yang ingin Anda hapus:

    1. Di panel navigasi, pilih String dan regex matching.

    2. Pilih nama kondisi kecocokan string yang ingin Anda hapus.

    3. Di panel kanan, pilih kotak centang di sebelah Filter untuk memilih semua filter.

    4. Pilih filter Hapus.

  4. Di panel navigasi, pilih String dan regex matching.

  5. Di panel Kondisi pencocokan String dan regex, pilih kondisi kecocokan string yang ingin Anda hapus.

  6. Pilih Hapus untuk menghapus kondisi yang dipilih.