如何使用 AWS WAF 以封鎖特定副檔名上傳?

2 分的閱讀內容
0

我想限制使用特定副檔名的檔案上傳 (HTTP POST 請求) 到我的 Web 伺服器。

簡短描述

您分析 HTTP 請求的 POST 資料時,上傳的內容可以是以下兩種類型之一:

  • 表單資料
  • 二進制

注意: AWS WAF 會檢查請求本文的前 8 KB (8,192 位元組)。這是硬性服務限制,您無法變更。

要限制使用特定副檔名 (例如 .pdf、.docx 或 .exe) 的檔案上傳,請完成以下步驟:

1.    建立自訂 Web 存取控制清單 (Web ACL) 規則以檢查請求內文。

2.    在規則內建立 regex 比對條件。使用此 regex 模式,以設定限制多個檔案附檔名的規則。

3.    將規則動作設定為「封鎖」。

4.    定義規則優先順序,讓此自訂規則的優先順序比任何可封鎖此規則的 Web ACL 規則要高。

5.    驗證規則是否成功封鎖特定副檔名。

解決方法

識別 POST 資料使用的內容類型

HTTP 請求中的 POST 資料通常使用表單資料或二進制。

  • 表單資料包括使用者在網頁 (或「HTML 表單」) 中輸入並由 HTTP 傳送 (或「貼文」) 到 Web 伺服器的任何資料。
  • 二進制有效負載是除了文字有效負載之外的任何內容。例如,二進制有效負載可以是 .jpeg 檔案、.gzip 檔案或 .xml 檔案。這包括一般二進制資料,例如 .pdf 應用程式、.jpeg 影像或 .zip 應用程式。如需所有副檔名類型的資訊,請參閱網際網路號碼分配局 (IANA) 網站的媒體類型

要識別 POST 請求的類型,請參閱 HTTP POST 標頭的 Content-Type 值。以下範例包含 multipart/form-dataContent-Type

Content-Type: multipart/form-data

如果標頭 "Content-Type" 的值為 "multipart/form-data",則完成以下步驟以建立規則:

1.    開啟 AWS WAF 主控台

2.    在導覽窗格的 AWS WAF 下,選擇 Web ACL

3.    在區域中,選擇您在其中建立 Web ACL 的 AWS 區域。
注意:如果您設定 Amazon CloudFront 的 Web ACL,請選取全域

4.    選取您的 Web ACL。然後,選擇規則標籤。

5.    選擇新增規則下拉式清單,然後選擇新增我自己的規則和規則群組

6.    針對規則類型,選擇規則建置器

7.    針對名稱,輸入可識別此規則的名稱。

8.    針對類型,選擇一般規則

9.    針對如果請求,選擇比對****陳述。然後,完成陳述的下列欄位:
針對檢查,選擇內文
針對內容類型,選擇 JSON
針對 JSON 比對範圍,選擇
針對如果請求內文中的 JSON 無效,AWS WAF 應如何處理請求,選擇適合您使用案例的相關選項。
針對要檢查的內容,選擇完整 JSON 內容
針對比對類型,選擇比對規則表達式
針對規則表達式,請輸入要比對的 regex 模式。請參閱以下範例:

(?:.pdf|.doc|.docx|.ppt)

10.    (選用) 針對文字轉換,您可以新增文字轉換,或將這些欄位保留為

11.    針對加大處理,選擇適合您使用案例的相關選項。

12.    針對動作,選擇封鎖

13.    選擇新增規則

14.    (選用) 針對設定規則優先順序,選取您的規則並移動其優先順序。AWS WAF 會依照規則顯示的順序處理規則。如需詳細資訊,請參閱 Web ACL 中處理規則和規則群組的順序

15.    選擇儲存

驗證規則是否如預期般運作。

如果標頭 "Content-Type" 為二進制值,如 "application/pdf" 或 "application/ppt"則完成以下步驟以建立規則:

1.    開啟 AWS WAF 主控台

2.    在導覽窗格的 AWS WAF 下,選擇 Web ACL

3.    在區域中,選擇您在其中建立 Web ACL 的 AWS 區域。
注意:如果您設定 Amazon CloudFront 的 Web ACL,請選取全域

4.    選取您的 Web ACL。然後,選擇規則標籤。

5.    選擇新增規則下拉式清單,然後選擇新增我自己的規則和規則群組

6.    針對規則類型,選擇規則建置器

7.    針對名稱,輸入可識別此規則的名稱。

8.    針對類型,選擇一般規則

9.    針對如果請求,選擇比對****陳述。然後,完成陳述的下列欄位:
針對檢查,選擇單一標頭
針對標頭欄位名稱,輸入 Content-Type
針對比對類型,選擇比對規則表達式
針對規則表達式,請輸入要比對的 regex 模式。請參閱以下 .pdf.jpeg 檔案範例:

(?:pdf|jpeg)   

10.    (選用) 針對文字轉換,您可以新增文字轉換,或將這些欄位保留為

11.    針對動作,選擇封鎖

12.    選擇新增規則

13.    (選用) 針對設定規則優先順序,選取您的規則並移動其優先順序。AWS WAF 會依照規則顯示的順序處理規則。如需詳細資訊,請參閱 Web ACL 中處理規則和規則群組的順序

14.    選擇儲存

驗證規則是否如預期般運作。

**注意:**要限制特定上傳 URI 路徑的規則,請使用可檢查路徑的 Web ACL 規則內的 AND 陳述式

AWS 官方
AWS 官方已更新 1 年前