Minta komponen di AWS WAF - 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 komponen di AWS WAF

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 SQL pernyataan serangan injeksi. Untuk informasi tentang cara menggunakan setelan komponen permintaan ini, lihat pernyataan aturan individual di Menggunakan pernyataan aturan kecocokan di AWS WAF

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.

Bagian AWS WAF konsol dan API dokumentasi 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.

  • APIisi pernyataanFieldToMatch

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

HTTPmetode

Memeriksa HTTP metode untuk permintaan. HTTPMetode ini menunjukkan jenis operasi yang diminta permintaan web untuk melakukan sumber daya yang dilindungi, 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 pertandingan - Bagian-bagian dari header yang AWS WAF harus memeriksa dengan kriteria inspeksi 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.

  • Penanganan kebesaran - Bagaimana AWS WAF harus menangani permintaan yang memiliki data header yang lebih besar dari AWS WAF dapat memeriksa. 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 oleh AWS WAF sampai 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

Memeriksa string yang berisi daftar nama header permintaan, diurutkan seperti yang muncul dalam 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:

  • Penanganan kebesaran - Bagaimana AWS WAF harus menangani permintaan yang memiliki data header yang lebih banyak atau lebih besar dari AWS WAF dapat memeriksa. 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 oleh AWS WAF sampai batas pertama yang tercapai. Anda dapat memilih untuk terus memeriksa header yang tersedia, 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.

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 memeriksa dengan kriteria inspeksi 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.

  • Penanganan kebesaran - Bagaimana AWS WAF harus menangani permintaan yang memiliki data cookie yang lebih besar dari AWS WAF dapat memeriksa. 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 oleh AWS WAF sampai 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.

URIjalan

Memeriksa bagian dari a 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, lihatMenggunakan transformasi teks di AWS WAF.

JA3sidik jari

Memeriksa JA3 sidik jari permintaan.

catatan

JA3pemeriksaan sidik jari hanya tersedia untuk CloudFront distribusi Amazon dan Application Load Balancer.

JA3Sidik jari adalah hash 32 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengenal unik untuk TLS konfigurasi 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 JA3 sidik jari untuk klien

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

Persyaratan pernyataan aturan

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

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku mundur adalah status kecocokan yang Anda inginkan AWS WAF untuk menetapkan permintaan web jika AWS WAF tidak dapat menghitung JA3 sidik jari. 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 ACL lalu lintas web Anda. Untuk informasi, lihat Pencatatan log AWS WAF ACLlalu lintas 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 WCUs 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 adalahwww.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 memeriksa 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 kecocokan.

Semua parameter kueri

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

Memilih opsi ini WCUs menambah 10 biaya dasar.

Tubuh

Memeriksa badan permintaan, dievaluasi sebagai teks biasa. Anda juga dapat mengevaluasi tubuh JSON menggunakan JSON jenis 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 opsi Permintaan pilihan Badan, dengan memilih pilihan Jenis konten Teks biasa.

  • DalamAPI, 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 ACL konfigurasi web Anda. Untuk informasi selengkapnya, lihat Mengelola batas ukuran inspeksi tubuh untuk AWS WAF.

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data tubuh yang lebih besar dari AWS WAF dapat memeriksa. 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 diurai. JSON Untuk informasi tentang ini, lihat bagian berikut.

JSONtubuh

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.

  • DalamAPI, 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 ACL konfigurasi web Anda. Untuk informasi selengkapnya, lihat Mengelola batas ukuran inspeksi tubuh untuk AWS WAF.

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data tubuh yang lebih besar dari AWS WAF dapat memeriksa. 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.

Memilih opsi ini menggandakan biaya WCUs dasar pernyataan pertandingan. Misalnya, jika biaya dasar pernyataan pertandingan adalah 5 WCUs tanpa JSON parsing, menggunakan JSON parsing menggandakan biaya menjadi 10. WCUs

Untuk opsi ini, Anda memberikan spesifikasi tambahan, seperti yang dijelaskan di bagian berikut.

Bagaimana AWS WAF menangani inspeksi JSON tubuh

Saat AWS WAF memeriksa badan permintaan web karenaJSON, ia melakukan langkah-langkah untuk mengurai tubuh dan mengekstrak JSON elemen untuk diperiksa. AWS WAF melakukan langkah-langkah ini sesuai dengan pilihan konfigurasi Anda.

Berikut ini mencantumkan langkah-langkah yang AWS WAF melakukan.

  1. Mengurai isi tubuh — AWS WAF mem-parsing isi badan permintaan web untuk mengekstrak JSON elemen untuk inspeksi. AWS WAF melakukan yang terbaik untuk mengurai seluruh isi tubuh, tetapi penguraian dapat gagal untuk berbagai status kesalahan dalam konten. Contohnya termasuk karakter yang tidak valid, kunci duplikat, pemotongan, dan konten yang simpul akarnya bukan objek atau array.

    Opsi Body parsing fallback behavior menentukan apa AWS WAF lakukan jika gagal mengurai JSON tubuh sepenuhnya:

    • 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 tetapkan untuk JSON inspeksi 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.

    catatan

    Perilaku mundur ini hanya terpicu ketika AWS WAF menemukan kesalahan saat mengurai string. JSON

    Parsing tidak sepenuhnya memvalidasi JSON

    AWS WAF penguraian tidak sepenuhnya memvalidasi JSON string input, sehingga penguraian dapat berhasil bahkan untuk tidak valid. JSON

    Misalnya, AWS WAF mem-parsing berikut ini tidak valid tanpa kesalahanJSON:

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

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

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

    Untuk kasus-kasus seperti ini di mana penguraian berhasil tetapi hasilnya tidak sepenuhnya validJSON, hasil dari langkah-langkah selanjutnya dalam evaluasi dapat bervariasi. Ekstraksi mungkin kehilangan beberapa elemen, atau evaluasi aturan mungkin memiliki hasil yang tidak terduga. Kami menyarankan Anda memvalidasi JSON yang Anda terima dalam aplikasi Anda dan menangani tidak valid JSON sesuai kebutuhan.

  2. Ekstrak JSON elemen - AWS WAF mengidentifikasi subset JSON elemen untuk memeriksa sesuai dengan pengaturan Anda:

    • Cakupan JSON pencocokan opsi menentukan jenis elemen dalam JSON AWS WAF harus memeriksa.

      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.

    • Pilihan Konten untuk memeriksa menentukan bagaimana untuk menyaring elemen diatur ke subset yang Anda inginkan AWS WAF untuk memeriksa.

      Anda harus menentukan salah satu dari berikut ini:

      • JSONKonten lengkap - Evaluasi semua elemen.

      • Hanya elemen yang disertakan - Evaluasi hanya elemen yang jalurnya cocok dengan kriteria JSON Pointer yang Anda berikan. Jangan gunakan opsi ini untuk menunjukkan semua jalur diJSON. Sebagai gantinya, gunakan JSONKonten lengkap.

        Untuk informasi tentang sintaks JSON Pointer, lihat dokumentasi Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

        Misalnya, di konsol, Anda dapat memberikan yang berikut:

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

        Di API atauCLI, Anda dapat memberikan yang berikut:

        "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]

    Misalnya, katakan bahwa pengaturan Konten untuk memeriksa hanya elemen yang disertakan, dan pengaturan elemen yang disertakan adalah/a/b.

    Untuk contoh JSON badan berikut:

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

    Elemen menetapkan bahwa AWS WAF akan memeriksa untuk setiap pengaturan lingkup JSON pertandingan tercantum di bawah ini. Perhatikan bahwa kuncib, yang merupakan bagian dari jalur elemen yang disertakan, tidak dievaluasi.

    • Semua:e, f, dang.

    • Kunci: e danf.

    • Nilai:g.

  3. Periksa set JSON elemen - AWS WAF menerapkan transformasi teks apa pun yang telah Anda tentukan ke JSON elemen yang diekstraksi dan kemudian mencocokkan elemen yang dihasilkan yang ditetapkan terhadap kriteria pencocokan pernyataan aturan. Ini adalah perilaku transformasi dan evaluasi yang sama seperti untuk komponen permintaan web lainnya. Jika salah satu JSON elemen yang diekstraksi cocok, permintaan web cocok untuk aturan.