如何建立 AWS WAF 規則來防止 SQL injection 隱碼攻擊和 XSS 攻擊?
我想建立一個 AWS WAF 規則來防止 SQL injection 隱碼攻擊和跨網站指令碼 (XSS) 攻擊。
簡短描述
若要協助防止 SQL injection 隱碼攻擊和 XSS 攻擊,請使用以下其中一項保護措施:
- 內建 SQL injection 隱碼攻擊和 XSS 引擎
- 針對 SQL injection 隱碼攻擊和 XSS injection 隱碼攻擊的 AWS 受管規則
**注意:**AWS WAF 對請求主體、標頭和 Cookie 的檢查大小有最大限制配額。如需詳細資訊,請參閱 AWS WAF 中的超大網路請求元件。
解決方法
**注意:**最佳實務是在非生產環境中測試規則,將 Action (動作) 設定為 Count (計數)。使用 AWS WAF 日誌上的 Amazon CloudWatch 指標來評估規則。測試規則後,將 Action (動作) 改為 Block (封鎖)。
使用內建 SQL injection 隱碼攻擊和 XSS 引擎
攻擊可能發生在 HTTP 請求的不同部分,例如 HTTP 標頭、查詢字串或 URI。若要根據內建緩解引擎檢查 HTTP 請求的不同部分,請設定您的 AWS WAF 規則。
建立 SQL injection 隱碼攻擊規則陳述式來檢查惡意 SQL 程式碼。建立 XSS 攻擊規則陳述式來檢查 Web 請求元件中的惡意指令碼。
建立 SQL injection 隱碼攻擊或 XSS 攻擊規則陳述式
請完成下列步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 在導覽窗格中,選擇 AWS WAF。
- 選擇 Resources & protection packs (資源和保護套件)。
- 找到您的保護套件,然後選擇 Rules (規則) 旁的 View and edit (檢視和編輯)。
- 在右側窗格中,選擇 Add rules (新增規則)。
選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
再次選擇 Custom rule (自訂規則),然後選取 Next (下一步)。 - 將規則 Action (動作) 設定為 BLOCK (封鎖)。
- 輸入您的規則名稱。
- 在 If a request (如果請求) 中,展開下拉式功能表並選擇 matches all the statements (AND) (符合陳述式)。
- 在 Statement (陳述式)下,於 Inspect (檢查) 選取您希望規則陳述式評估的請求元件。
- 在 Match Type (比對類型),選取 Contains SQL injection attacks (包含 SQL injection 隱碼攻擊) 或 Contains XSS injection attacks (包含 XSS injection 隱碼攻擊)。
(選用) 選擇 text transformation (文字轉換)。 - 選擇 Create Rule (建立規則)。
建立針對多個請求元件進行評估的 SQL injection 隱碼攻擊或 XSS 攻擊規則陳述式
請完成下列步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 在導覽窗格中,選擇 AWS WAF。
- 選擇 Resources & protection packs (資源和保護套件)。
- 找到您的保護套件,然後選擇 Rules (規則) 旁的 View and edit (檢視和編輯)。
- 在右側窗格中,選擇 Add rules (新增規則)。
選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
再次選擇 Custom rule (自訂規則),然後選取 Next (下一步)。 - 將規則 Action (動作) 設定為 BLOCK (封鎖)。
- 輸入您的規則名稱。
- 在 If a request (如果請求) 中,展開下拉式功能表並選擇 matches at least one of the statements (OR) (至少符合一個陳述式 (OR))。
- 在 Statement 1 (陳述式 1)下,於 Inspect (檢查) 選取您希望規則陳述式評估的請求元件。
- 在 Match Type (比對類型),選取 Contains SQL injection attacks (包含 SQL injection 隱碼攻擊) 或 Contains XSS injection attacks (包含 XSS injection 隱碼攻擊)。
(選用) 選擇 text transformation (文字轉換)。 - 在 Statement 2 (陳述式 2)下,於 Inspect (檢查) 選取您希望規則陳述式評估的請求元件。
- 在 Match Type (比對類型),選取 Contains SQL injection attacks (包含 SQL injection 隱碼攻擊) 或 Contains XSS injection (包含 XSS injection 隱碼攻擊)。
(選用) 選擇 text transformation (文字轉換)。 - 選擇 Create Rule (建立規則)。
**注意:**若要使規則發揮作用,您必須套用正確的文字轉換。例如,如果您希望 AWS WAF 檢查 Cookie,則應使用 URL 解碼、HTML 實體解碼和轉換為小寫。
使用 AWS 受管規則來防範 SQL injection 隱碼攻擊和 XSS injection 隱碼攻擊
若要防範應用程式漏洞或其他不必要的流量,但又不想自行編寫規則,請使用適用於 AWS WAF 的 AWS 受管規則。
注意:
- 受管規則群組提供者可能會更新規則群組或讓其過期。如需詳細資訊,請參閱在 AWS WAF 中使用版本控制的受管規則群組。
- 在生產中使用受管規則群組之前,請在非生產環境中進行測試,以減少誤判。
使用 SQL 資料庫受管規則群組來防禦 SQL injection 隱碼攻擊。使用核心規則集 (CRS) 受管規則群組來防範 XSS injection 隱碼攻擊。
將「AWS 受管規則」規則群組新增至您的 Web ACL
請完成下列步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 在導覽窗格中,選擇 AWS WAF。
- 選擇 Resources & protection packs (資源和保護套件)。
- 找到您的保護套件,然後選擇 Rules (規則) 旁的 View and edit (檢視和編輯)。
- 在右側窗格中,選擇 Add rule (新增規則)。
選擇 AWS-managed rule group (AWS 受管規則群組),然後按一下 Next. (下一步)。 - 選取要新增的 SQL 資料庫或核心規則集規則群組。
**注意:**若要使用目前的 AWS 受管規則群組,請選取受管規則群組並進行編輯。如需編輯設定的其他資訊,請參閱使用受管規則群組。 - 選擇 Create rule (建立規則)。
相關資訊
相關內容
- 已提問 3 年前
