Menggunakan transformasi teks 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.

Menggunakan transformasi teks di AWS WAF

Bagian ini menjelaskan cara memberikan transformasi untuk AWS WAF untuk mendaftar sebelum memeriksa permintaan.

Dalam pernyataan yang mencari pola atau menetapkan batasan, Anda dapat memberikan transformasi untuk AWS WAF untuk mendaftar sebelum memeriksa permintaan. Transformasi memformat ulang permintaan web untuk menghilangkan beberapa format yang tidak biasa yang digunakan penyerang dalam upaya untuk mem-bypass AWS WAF.

Saat Anda menggunakan ini dengan pemilihan komponen permintaan JSON tubuh, AWS WAF menerapkan transformasi Anda setelah mengurai dan mengekstraksi elemen untuk diperiksa dari. JSON Untuk informasi selengkapnya, lihat JSONtubuh.

Jika Anda memberikan lebih dari satu transformasi, Anda juga mengatur pesanan untuk AWS WAF untuk menerapkannya.

WCUs- Setiap transformasi teks adalah 10WCUs.

Bagian AWS WAF konsol dan API dokumentasi juga memberikan panduan untuk pengaturan ini di lokasi berikut:

  • Pembuat aturan di konsol — Transformasi teks. Opsi ini tersedia saat Anda menggunakan komponen permintaan.

  • APIisi pernyataanTextTransformations

Opsi untuk transformasi teks

Setiap daftar transformasi menunjukkan konsol dan API spesifikasi diikuti oleh deskripsi.

Base64 decode – BASE64_DECODE

AWS WAF menerjemahkan string yang dikodekan Base64.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF mendekode string yang dikodekan Base64, tetapi menggunakan implementasi pemaaf yang mengabaikan karakter yang tidak valid.

Command line – CMD_LINE

Opsi ini mengurangi situasi di mana penyerang mungkin menyuntikkan perintah baris perintah sistem operasi dan menggunakan format yang tidak biasa untuk menyamarkan beberapa atau semua perintah.

Gunakan opsi ini untuk melakukan transformasi berikut:

  • Hapus karakter berikut: \ " ' ^

  • Hapus spasi sebelum karakter berikut: / (

  • Ganti karakter berikut dengan spasi: , ;

  • Ganti spasi ganda dengan satu spasi

  • Ubah huruf besar,, ke huruf kecilA-Z, a-z

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF kompres spasi putih dengan mengganti beberapa spasi dengan satu spasi dan mengganti karakter berikut dengan karakter spasi (ASCII32):

  • Formfeed (ASCII12)

  • Tab (ASCII9)

  • Baris baru (ASCII10)

  • Pengembalian kereta (ASCII13)

  • Tab vertikal (ASCII11)

  • Ruang tidak pecah (ASCII160)

CSS decode – CSS_DECODE

AWS WAF menerjemahkan karakter yang dikodekan menggunakan aturan escape CSS 2.x. syndata.html#characters Fungsi ini menggunakan hingga dua byte dalam proses decoding, sehingga dapat membantu untuk mengungkap ASCII karakter yang dikodekan menggunakan CSS pengkodean yang biasanya tidak dikodekan. Ini juga berguna dalam melawan penghindaran, yang merupakan kombinasi dari garis miring terbalik dan karakter non-heksadesimal. Misalnya, ja\vascript untuk javascript.

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF menerjemahkan urutan escape ANSI C berikut:\a,,,,\b,\f,\n,,\r, \t \v \\\?, \xHH (heksadesimal) \'\", (oktal). \0OOO Pengodean yang tidak valid tetap dalam output.

Hex decode – HEX_DECODE

AWS WAF menerjemahkan string karakter heksadesimal menjadi biner.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF menggantikan karakter yang diwakili dalam format heksadesimal &#xhhhh; atau format desimal dengan karakter yang sesuai. &#nnnn;

AWS WAF menggantikan karakter HTML -encoded berikut dengan karakter yang tidak dikodekan. Daftar ini menggunakan HTML pengkodean huruf kecil, tetapi penanganannya tidak peka huruf besar/kecil, misalnya &QuOt; dan " diperlakukan sama.

HTML-karakter yang dikodekan

diganti dengan...

"

"

&

&

<

<

&gt;

>

&nbsp; atau &NonBreakingSpace;

spasi tanpa pindah baris, desimal 160

&NewLine;

\n, desimal 10

&Tab;

\t, desimal 9

&lcub; atau &lbrace;

{

&verbar;,&vert;, atau &VerticalLine;

|

&rcub; atau &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; atau &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; atau &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; atau &DiacriticalTilde;

~

&minus;

-

&lsqb; atau &lbrack;

[

&bsol;

\\

&rsqb; atau &rbrack;

]

&hat;

^

&lowbar; atau &underbar;

_

&grave; atau &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF menerjemahkan urutan JavaScript pelarian. Jika \uHHHH kode berada dalam rentang ASCII kode lebar penuhFF01-FF5E, maka byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah yang digunakan dan byte yang lebih tinggi dinolkan, yang menyebabkan kemungkinan hilangnya informasi.

Lowercase – LOWERCASE

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

MD5 – MD5

AWS WAF menghitung MD5 hash dari data dalam input. Hash dihitung dalam bentuk biner mentah.

None – NONE

AWS WAF memeriksa permintaan web seperti yang diterima, tanpa transformasi teks apa pun.

Normalize path – NORMALIZE_PATH

AWS WAF menormalkan string input dengan menghapus beberapa garis miring, referensi mandiri direktori, dan referensi balik direktori yang tidak ada di awal input.

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF mengubah karakter garis miring terbalik menjadi garis miring maju dan kemudian memproses string yang dihasilkan menggunakan transformasi. NORMALIZE_PATH

Remove nulls – REMOVE_NULLS

AWS WAF menghapus semua NULL byte dari input.

Replace comments – REPLACE_COMMENTS

AWS WAF menggantikan setiap kemunculan komentar gaya-C (/*... */) dengan satu spasi. Itu tidak memampatkan beberapa kejadian berturut-turut. Ini menggantikan komentar yang tidak dihentikan dengan spasi (ASCII0x20). Itu tidak mengubah penghentian komentar secara mandiri (*/).

Replace nulls – REPLACE_NULLS

AWS WAF menggantikan setiap NULL byte dalam input dengan karakter spasi (ASCII0x20).

SQL hex decode – SQL_HEX_DECODE

AWS WAF menerjemahkan data SQL hex. Misalnya, AWS WAF menerjemahkan (0x414243) ke (ABC).

URL decode – URL_DECODE

AWS WAF menerjemahkan nilai URL -encoded.

URL decode Unicode – URL_DECODE_UNI

SepertiURL_DECODE, tetapi dengan dukungan untuk pengkodean khusus Microsoft%u. Jika kode berada dalam rentang ASCII kode lebar penuhFF01-FF5E, byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah digunakan dan byte yang lebih tinggi dinolkan.

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF mengonversi semua UTF -8 urutan karakter ke Unicode. Ini membantu menormalkan input dan meminimalkan positif palsu dan negatif palsu untuk bahasa non-Inggris.