Minta opsi komponen - 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.

Minta opsi komponen

Bagian ini menjelaskan komponen permintaan web yang dapat Anda tentukan untuk diperiksa. Anda menentukan komponen permintaan untuk pernyataan aturan kecocokan yang mencari pola di dalam permintaan web. Jenis pernyataan ini termasuk pencocokan string, pencocokan regex, batasan ukuran, dan pernyataan serangan injeksi SQL. Untuk informasi tentang cara menggunakan setelan komponen permintaan ini, lihat pernyataan aturan individual di Pernyataan aturan pertandingan

Kecuali dinyatakan lain, jika permintaan web tidak memiliki komponen permintaan yang ditentukan dalam pernyataan aturan, AWS WAF mengevaluasi permintaan sebagai tidak cocok dengan kriteria aturan.

catatan

Anda menentukan komponen permintaan tunggal untuk setiap pernyataan aturan yang memerlukannya. Untuk memeriksa lebih dari satu komponen permintaan, buat pernyataan aturan untuk setiap komponen.

Dokumentasi AWS WAF konsol dan API memberikan panduan untuk pengaturan komponen permintaan di lokasi berikut:

  • Pembuat aturan di konsol — Dalam pengaturan Pernyataan untuk jenis aturan reguler, pilih komponen yang ingin Anda periksa dalam dialog Inspect di bawah Minta komponen.

  • Isi pernyataan API - FieldToMatch

Sisa bagian ini menjelaskan opsi untuk bagian permintaan web untuk diperiksa.

Metode HTTP

Memeriksa metode HTTP untuk permintaan. Metode HTTP menunjukkan jenis operasi yang permintaan web meminta sumber daya yang dilindungi untuk melakukan, seperti POST atauGET.

Header tunggal

Memeriksa satu header bernama dalam permintaan. Untuk opsi ini, Anda menentukan nama header, misalnya, User-Agent atauReferer. Pencocokan string untuk nama tersebut tidak peka huruf besar/kecil.

Semua header

Memeriksa semua header permintaan, termasuk cookie. Anda dapat menerapkan filter untuk memeriksa subset dari semua header. Untuk opsi ini, Anda memberikan spesifikasi berikut:

  • Pola kecocokan — Filter yang digunakan untuk mendapatkan subset header untuk diperiksa. AWS WAF mencari pola-pola ini di tombol header.

    Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini:

    • Semua — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua header.

    • Header yang dikecualikan - Periksa hanya header yang kuncinya tidak cocok dengan string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil.

    • Header yang disertakan - Periksa hanya header yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil.

  • Lingkup kecocokan — Bagian-bagian dari header yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan Kunci, Nilai, atau Semua untuk memeriksa kunci dan nilai untuk kecocokan.

    Semua tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan AND pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai.

  • Oversize handling — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihatMenangani komponen permintaan web yang terlalu besar di AWS WAF.

Urutan header

Periksa string yang berisi daftar nama header permintaan, diurutkan seperti yang muncul di permintaan web yang AWS WAF menerima untuk inspeksi. AWS WAF menghasilkan string dan kemudian menggunakannya sebagai bidang untuk mencocokkan komponen dalam inspeksinya. AWS WAF memisahkan nama header dalam string dengan titik dua dan tanpa spasi tambahan, misalnya. host:user-agent:accept:authorization:referer

Untuk opsi ini, Anda memberikan spesifikasi berikut:

  • Oversize handling — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih banyak atau lebih besar daripada yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk terus memeriksa header yang tersedia, atau untuk melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihatMenangani komponen permintaan web yang terlalu besar di AWS WAF.

Cookie

Memeriksa semua cookie permintaan. Anda dapat menerapkan filter untuk memeriksa subset dari semua cookie. Untuk opsi ini, Anda memberikan spesifikasi berikut:

  • Pola kecocokan — Filter yang digunakan untuk mendapatkan subset cookie untuk diperiksa. AWS WAF mencari pola-pola ini di kunci cookie.

    Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini:

    • Semua — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua cookie.

    • Cookie yang dikecualikan — Periksa hanya cookie yang kuncinya tidak cocok dengan string apa pun yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat.

    • Cookie yang disertakan — Periksa hanya cookie yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat.

  • Lingkup kecocokan — Bagian-bagian cookie yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan Kunci, Nilai, atau Semua untuk kedua kunci dan nilai.

    Semua tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan AND pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai.

  • Oversize handling — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data cookie yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari cookie permintaan dan paling banyak 200 cookie pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihatMenangani komponen permintaan web yang terlalu besar di AWS WAF.

Jalur URI

Memeriksa bagian URL yang mengidentifikasi sumber daya, misalnya,. /images/daily-ad.jpg Untuk selengkapnya, lihat Uniform Resource Identifier (URI): Generic Syntax.

Jika Anda tidak menggunakan transformasi teks dengan opsi ini, AWS WAF tidak menormalkan URI dan memeriksanya persis seperti yang diterimanya dari klien dalam permintaan. Untuk informasi tentang transformasi teks, lihatTransformasi teks.

Sidik jari JA3

Memeriksa sidik jari JA3 permintaan. Sidik jari JA3 adalah hash 32 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengidentifikasi unik untuk konfigurasi TLS klien. AWS WAF menghitung dan mencatat sidik jari ini untuk setiap permintaan yang memiliki cukup informasi TLS Client Hello untuk perhitungan. Hampir semua permintaan web menyertakan informasi ini.

Cara mendapatkan sidik jari JA3 untuk klien

Anda dapat memperoleh sidik jari JA3 untuk permintaan klien dari log ACL web. Jika AWS WAF mampu menghitung sidik jari, itu termasuk dalam log. Untuk informasi tentang bidang logging, lihatBidang log.

Persyaratan pernyataan aturan

Anda dapat memeriksa sidik jari JA3 hanya di dalam pernyataan pencocokan string yang diatur agar sama persis dengan string yang Anda berikan. Berikan string sidik jari JA3 dari log dalam spesifikasi pernyataan kecocokan string Anda, agar sesuai dengan permintaan future yang memiliki konfigurasi TLS yang sama. Untuk informasi tentang pernyataan kecocokan string, lihatPernyataan aturan kecocokan string.

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status kecocokan yang ingin AWS WAF Anda tetapkan ke permintaan web jika AWS WAF tidak dapat menghitung sidik jari JA3. Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

Untuk menggunakan opsi pencocokan ini, Anda harus mencatat lalu lintas ACL web Anda. Untuk informasi, lihat Pencatatan AWS WAF lalu lintas ACL web.

String kueri

Memeriksa bagian URL yang muncul setelah ? karakter, jika ada.

catatan

Untuk pernyataan pencocokan skrip lintas situs, kami sarankan Anda memilih Semua parameter kueri, bukan string Kueri. Memilih Semua parameter kueri menambahkan 10 WCU ke biaya dasar.

Parameter kueri tunggal

Memeriksa parameter query tunggal yang telah Anda definisikan sebagai bagian dari string query. AWS WAF memeriksa nilai parameter yang Anda tentukan.

Untuk opsi ini, Anda juga menentukan argumen Query. Misalnya, jika URL-nyawww.xyz.com?UserName=abc&SalesRegion=seattle, Anda dapat menentukan UserName atau SalesRegion untuk argumen kueri. Panjang maksimum untuk nama argumen adalah 30 karakter. Nama ini tidak peka huruf besar/kecil, jadi jika Anda menentukanUserName, AWS WAF cocok dengan semua variasiUserName, termasuk username danUsERName.

Jika string kueri berisi lebih dari satu contoh argumen kueri yang telah Anda tentukan, AWS WAF periksa semua nilai untuk kecocokan, menggunakan OR logika. Misalnya, di URLwww.xyz.com?SalesRegion=boston&SalesRegion=seattle, AWS WAF mengevaluasi nama yang telah Anda tentukan terhadap boston danseattle. Jika keduanya cocok, inspeksi adalah pertandingan.

Semua parameter kueri

Memeriksa semua parameter kueri dalam permintaan. Ini mirip dengan pilihan komponen parameter kueri tunggal, tetapi AWS WAF memeriksa nilai semua argumen dalam string kueri. Misalnya, jika URL-nyawww.xyz.com?UserName=abc&SalesRegion=seattle, AWS WAF memicu kecocokan jika nilai UserName atau SalesRegion cocok dengan kriteria inspeksi.

Memilih opsi ini menambahkan 10 WCU ke biaya dasar.

Tubuh

Memeriksa badan permintaan, dievaluasi sebagai teks biasa. Anda juga dapat mengevaluasi tubuh sebagai JSON menggunakan jenis JSON konten.

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir.

  • Di konsol, Anda memilih ini di bawah pilihan Request option Body, dengan memilih pilihan Jenis konten Teks biasa.

  • Di API, dalam FieldToMatch spesifikasi aturan, Anda menentukan Body untuk memeriksa isi permintaan sebagai teks biasa.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi ACL web Anda. Untuk informasi selengkapnya, lihat Mengelola batas ukuran inspeksi tubuh.

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihatMenangani komponen permintaan web yang terlalu besar di AWS WAF.

Anda juga dapat mengevaluasi tubuh sebagai JSON yang diurai. Untuk informasi tentang ini, lihat bagian berikut.

Tubuh JSON

Memeriksa badan permintaan, dievaluasi sebagai JSON. Anda juga dapat mengevaluasi tubuh sebagai teks biasa.

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir.

  • Di konsol, Anda memilih ini di bawah pilihan opsi Request Body, dengan memilih pilihan Jenis konten JSON.

  • Di API, dalam FieldToMatch spesifikasi aturan, Anda menentukanJsonBody.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi ACL web Anda. Untuk informasi selengkapnya, lihat Mengelola batas ukuran inspeksi tubuh.

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihatMenangani komponen permintaan web yang terlalu besar di AWS WAF.

Saat AWS WAF memeriksa badan permintaan web sebagai JSON yang diurai, ia mem-parsing dan mengekstrak elemen dari JSON dan memeriksa bagian-bagian yang Anda tunjukkan menggunakan kriteria pernyataan pencocokan aturan.

Memilih opsi ini menggandakan WCU biaya dasar pernyataan pertandingan. Misalnya, jika biaya dasar pernyataan kecocokan adalah 5 WCU tanpa penguraian JSON, menggunakan penguraian JSON menggandakan biaya menjadi 10 WCU.

Dengan opsi ini, AWS WAF jalankan dua pola kecocokan terhadap badan permintaan web. Output dari pola kecocokan pertama digunakan sebagai masukan ke pola kecocokan kedua:

  1. AWS WAF mem-parsing dan mengekstrak konten JSON dan mengidentifikasi elemen untuk diperiksa. Untuk melakukan ini, AWS WAF gunakan kriteria yang Anda berikan dalam spesifikasi badan JSON aturan.

  2. AWS WAF menerapkan transformasi teks apa pun ke elemen yang diekstraksi dan kemudian mencocokkan elemen JSON yang dihasilkan yang ditetapkan terhadap kriteria pencocokan pernyataan aturan. Jika salah satu elemen cocok, permintaan web cocok untuk aturan.

Anda menentukan kriteria berikut untuk digunakan AWS WAF untuk langkah pencocokan pola pertama, untuk mengidentifikasi elemen JSON untuk diperiksa:

  • Perilaku mundur parsing tubuh — Apa yang AWS WAF harus dilakukan jika gagal mengurai tubuh JSON sepenuhnya. Opsi nya adalah sebagai berikut:

    • Tidak ada (perilaku default) - AWS WAF mengevaluasi konten hanya sampai pada titik di mana ia mengalami kesalahan penguraian.

    • Evaluasi sebagai string - Periksa tubuh sebagai teks biasa. AWS WAF menerapkan transformasi teks dan kriteria inspeksi yang Anda tentukan untuk inspeksi JSON ke string teks isi.

    • Cocokkan - Perlakukan permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan untuk permintaan.

    • Tidak cocok - Perlakukan permintaan web sebagai tidak cocok dengan pernyataan aturan.

    AWS WAF melakukan yang terbaik untuk mengurai seluruh badan JSON, tetapi mungkin terpaksa berhenti karena alasan seperti karakter yang tidak valid, kunci duplikat, pemotongan, dan konten apa pun yang simpul akarnya bukan objek atau array.

    AWS WAF mem-parsing JSON dalam contoh berikut sebagai dua pasangan key:value yang valid:

    • Kehilangan koma: {"key1":"value1""key2":"value2"}

    • Kehilangan titik dua: {"key1":"value1","key2""value2"}

    • Titik dua ekstra: {"key1"::"value1","key2""value2"}

  • JSON match scope — Jenis elemen dalam JSON yang AWS WAF harus diperiksa. Anda dapat menentukan Kunci, Nilai, atau Semua untuk kedua kunci dan nilai.

    Semua tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan AND pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai.

  • Konten untuk diperiksa - Elemen-elemen dalam JSON yang diurai dan diekstraksi yang ingin Anda periksa. AWS WAF

    Anda harus menentukan salah satu dari berikut ini:

    • Konten JSON penuh - Evaluasi semua elemen dalam JSON yang diurai.

    • Hanya elemen yang disertakan - Evaluasi hanya elemen di JSON yang cocok dengan kriteria JSON Pointer yang Anda berikan. Untuk informasi tentang sintaks JSON Pointer, lihat dokumentasi Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

      Jangan gunakan opsi ini untuk menyertakan semua jalur di JSON. Gunakan konten JSON Lengkap sebagai gantinya.

      Misalnya, di konsol, Anda dapat memberikan yang berikut:

      /dogs/0/name /dogs/1/name

      Di API atau CLI, Anda dapat memberikan yang berikut:

      "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
Contoh skenario inspeksi tubuh JSON

Jika pengaturan elemen yang disertakan adalah/a/b, maka untuk badan JSON berikut:

{ "a":{ "c":"d", "b":{ "e":{ "f":"g" } } } }

Daftar berikut menjelaskan apa yang AWS WAF akan mengevaluasi untuk setiap pengaturan lingkup kecocokan. Kuncinyab, yang merupakan bagian dari jalur elemen yang disertakan, tidak dievaluasi.

  • Untuk lingkup kecocokan yang disetel ke semua:e, f, dang.

  • Untuk lingkup kecocokan diatur ke kunci: e danf.

  • Untuk lingkup kecocokan yang disetel ke nilai:g.