Bagaimana AWS WAF Classic bekerja - 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.

Bagaimana AWS WAF Classic bekerja

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.

Anda menggunakan AWS WAF Classic untuk mengontrol bagaimana API Gateway, Amazon, CloudFront atau Application Load Balancer merespons permintaan web. Anda mulai dengan membuat kondisi, aturan, dan daftar kontrol akses web (ACL web). Anda menentukan kondisi Anda, menggabungkan kondisi Anda ke dalam aturan, dan menggabungkan aturan menjadi ACL web.

catatan

Anda juga dapat menggunakan AWS WAF Classic untuk melindungi aplikasi Anda yang di-host di wadah Amazon Elastic Container Service (Amazon ECS). Amazon ECS adalah layanan manajemen kontainer yang sangat skalabel dan cepat yang memudahkan untuk menjalankan, menghentikan, dan mengelola kontainer Docker di cluster. Untuk menggunakan opsi ini, Anda mengonfigurasi Amazon ECS untuk menggunakan Application Load Balancer yang diaktifkan AWS WAF Klasik untuk merutekan dan melindungi lalu lintas HTTP/HTTPS (lapisan 7) di seluruh tugas dalam layanan Anda. Untuk informasi selengkapnya, lihat topik Service Load Balancing di Amazon Elastic Container Service Developer Guide.

Kondisi

Kondisi menentukan karakteristik dasar yang Anda ingin AWS WAF Classic perhatikan dalam permintaan web:

  • Skrip yang cenderung berbahaya. Penyerang menyematkan skrip yang dapat mengeksploitasi kerentanan dalam aplikasi web. Ini dikenal sebagai cross-site scripting.

  • Alamat IP atau rentang alamat tempat permintaan berasal.

  • Negara atau lokasi geografis tempat permintaan berasal.

  • Panjang bagian tertentu dari permintaan, seperti string query.

  • Kode SQL yang kemungkinan berbahaya. Penyerang mencoba mengekstrak data dari database Anda dengan menyematkan kode SQL berbahaya dalam permintaan web. Ini dikenal sebagai injeksi SQL.

  • String yang muncul dalam permintaan, misalnya, nilai yang muncul di User-Agent header atau string teks yang muncul dalam string kueri. Anda juga dapat menggunakan ekspresi reguler (regex) untuk menentukan string ini.

Beberapa kondisi mengambil beberapa nilai. Misalnya, Anda dapat menentukan hingga 10.000 alamat IP atau rentang alamat IP dalam kondisi IP.

Aturan

Anda menggabungkan kondisi ke dalam aturan untuk secara tepat menargetkan permintaan yang ingin Anda izinkan, blokir, atau hitung. AWS WAF Klasik menyediakan dua jenis aturan:

Aturan reguler

Aturan reguler hanya menggunakan kondisi untuk menargetkan permintaan tertentu. Misalnya, berdasarkan permintaan terbaru yang Anda lihat dari penyerang, Anda dapat membuat aturan yang mencakup kondisi berikut:

  • Permintaan datang dari 192.0.2.44.

  • Berisi nilai BadBot di header User-Agent.

  • Mereka tampaknya menyertakan kode seperti SQL dalam string kueri.

Ketika aturan menyertakan beberapa kondisi, seperti dalam contoh ini, AWS WAF Classic mencari permintaan yang cocok dengan semua kondisi—yaitu, itu AND adalah kondisi bersama-sama.

Tambahkan setidaknya satu kondisi ke aturan reguler. Aturan reguler tanpa kondisi tidak dapat cocok dengan permintaan apa pun, sehingga tindakan aturan (izinkan, hitung, atau blokir) tidak pernah dipicu.

Aturan berbasis tarif

Aturan berbasis tarif seperti aturan reguler dengan batas tarif tambahan. Aturan berbasis tarif menghitung permintaan yang datang dari alamat IP yang memenuhi ketentuan aturan. Jika permintaan dari alamat IP melebihi batas tarif dalam periode lima menit, aturan dapat memicu tindakan. Diperlukan waktu satu atau dua menit untuk memicu tindakan.

Ketentuan bersifat opsional untuk aturan berbasis tarif. Jika Anda tidak menambahkan kondisi apa pun dalam aturan berbasis tarif, batas tarif berlaku untuk semua alamat IP. Jika Anda menggabungkan kondisi dengan batas tarif, batas tarif berlaku untuk alamat IP yang sesuai dengan kondisi.

Misalnya, berdasarkan permintaan terbaru yang Anda lihat dari penyerang, Anda dapat membuat aturan berbasis kecepatan yang mencakup kondisi berikut:

  • Permintaan datang dari 192.0.2.44.

  • Berisi nilai BadBot di header User-Agent.

Dalam aturan berbasis laju ini, Anda juga menentukan batas laju. Dalam contoh ini, katakanlah Anda membuat batas tarif 1.000. Permintaan yang memenuhi kedua kondisi sebelumnya dan melebihi 1.000 permintaan per lima menit memicu tindakan aturan (blokir atau hitung), yang didefinisikan dalam ACL web.

Permintaan yang tidak memenuhi kedua kondisi tidak dihitung terhadap batas tarif dan tidak terpengaruh oleh aturan ini.

Sebagai contoh kedua, misalkan Anda ingin membatasi permintaan ke halaman tertentu di situs web Anda. Untuk melakukan ini, Anda dapat menambahkan kondisi kecocokan string berikut ke aturan berbasis laju:

  • Bagian dari permintaan untuk memfilter adalahURI.

  • Jenis Pertandingan adalahStarts with.

  • Nilai untuk dicocokkan adalahlogin.

Selanjutnya, Anda menentukan 1.000. RateLimit

Dengan menambahkan aturan berbasis tarif ini ke ACL web, Anda dapat membatasi permintaan ke halaman login Anda tanpa mempengaruhi sisa situs Anda.

ACL web

Setelah Anda menggabungkan kondisi Anda ke dalam aturan, Anda menggabungkan aturan menjadi ACL web. Di sinilah Anda menentukan tindakan untuk setiap aturan—izinkan, blokir, atau hitung—dan tindakan default:

Tindakan untuk setiap aturan

Jika permintaan web cocok dengan semua kondisi dalam aturan, AWS WAF Classic dapat memblokir permintaan atau mengizinkan permintaan diteruskan ke API Gateway API, CloudFront distribusi, atau Application Load Balancer. Anda menentukan tindakan yang ingin dilakukan AWS WAF Classic untuk setiap aturan.

AWS WAF Classic membandingkan permintaan dengan aturan di ACL web dalam urutan di mana Anda mencantumkan aturan. AWS WAF Classic kemudian mengambil tindakan yang terkait dengan aturan pertama yang cocok dengan permintaan. Misalnya, jika permintaan web cocok dengan satu aturan yang mengizinkan permintaan dan aturan lain yang memblokir permintaan, AWS WAF Classic akan mengizinkan atau memblokir permintaan tergantung pada aturan mana yang terdaftar terlebih dahulu.

Jika Anda ingin menguji aturan baru sebelum mulai menggunakannya, Anda juga dapat mengonfigurasi AWS WAF Classic untuk menghitung permintaan yang memenuhi semua ketentuan dalam aturan. Seperti aturan yang mengizinkan atau memblokir permintaan, aturan yang menghitung permintaan dipengaruhi oleh posisinya dalam daftar aturan di ACL web. Misalnya, jika permintaan web cocok dengan aturan yang mengizinkan permintaan dan aturan lain yang menghitung permintaan, dan jika aturan yang mengizinkan permintaan dicantumkan terlebih dahulu, permintaan tersebut tidak dihitung.

Tindakan default

Tindakan default menentukan apakah AWS WAF Classic mengizinkan atau memblokir permintaan yang tidak cocok dengan semua kondisi di salah satu aturan di ACL web. Misalnya, Anda membuat ACL web dan hanya menambahkan aturan yang Anda tentukan sebelumnya:

  • Permintaan datang dari 192.0.2.44.

  • Berisi nilai BadBot di header User-Agent.

  • Mereka tampaknya menyertakan kode SQL berbahaya dalam string kueri.

Jika permintaan tidak memenuhi ketiga kondisi dalam aturan dan jika tindakan default adalahALLOW, AWS WAF Classic meneruskan permintaan ke API Gateway, CloudFront atau Application Load Balancer, dan layanan merespons dengan objek yang diminta.

Jika Anda menambahkan dua aturan atau lebih ke ACL web, AWS WAF Classic akan melakukan tindakan default hanya jika permintaan tidak memenuhi semua ketentuan di salah satu aturan. Misalnya, Anda menambahkan aturan kedua yang berisi satu kondisi:

  • Permintaan yang berisi nilai BIGBadBot di User-Agent header.

AWS WAF Classic melakukan tindakan default hanya jika permintaan tidak memenuhi ketiga kondisi dalam aturan pertama dan tidak memenuhi satu syarat dalam aturan kedua.

Pada beberapa kesempatan, AWS WAF mungkin mengalami kesalahan internal yang menunda respons ke Amazon API Gateway, Amazon, CloudFront atau Application Load Balancer tentang apakah akan mengizinkan atau memblokir permintaan. Pada kesempatan itu biasanya CloudFront akan memungkinkan permintaan atau menyajikan konten. API Gateway dan Application Load Balancer biasanya akan menolak permintaan dan tidak menyajikan konten.