全部產品
Search
文件中心

Web Application Firewall:基礎防護規則

更新時間:Feb 22, 2025

接入Web Application Firewall (WAF)3.0後,您可以通過設定引擎配置和規則庫管理,協助Web業務防禦SQL注入、XSS跨站、代碼執行、WebShell上傳、命令注入等常見的Web應用攻擊。本文介紹如何設定基礎防護規則。

重要

北京時間2024年11月7日基礎防護規則功能更新,參見【公告】WAF 3.0基礎防護規則功能更新。本文介紹的是新版本的基礎防護,如果您使用的是舊版本的基礎防護功能請參照基礎防護規則和規則群組

模組功能概述

基礎防護規則中每個模板使用獨立的檢測引擎。根據業務經驗,把眾多系統防護規則劃分成各個檢測模組,每個檢測模組各自負責識別不同類型的攻擊。規則模板、檢測引擎、檢測模組、規則之間的關係圖如下。

公用雲端防護情境

混合雲防護情境

功能特性

支援多種解碼

基礎防護規則支援多種不同格式的解碼,包括:

  • 支援JSON、XML、Multipart等資料格式的解析,用以提升檢測的準確率。

  • 支援識別使用特殊編碼(如Unicode和HTML實體)繞過安全檢查的方法,以提升攻擊的檢出率。

支援智能加白引擎

為了有效降低誤攔截風險,WAF將根據歷史業務流量進行AI學習,發現URL粒度不適用的規則,並自動添加白名單。

支援混合雲情境下的自訂防護規則

自訂防護規則僅對混合雲接入的防護對象生效。如需添加自訂防護規則,並在規則模板中使用,請參見規則庫管理

前提條件

建立規則模板

  1. 登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地非中国内地在左側導覽列,選擇防护配置 > Web 核心防护基礎防護規則地區,單擊建立模板

  2. 建立模板 - 基礎防護規則面板,請按照以下步驟完成模板配置,配置完成後,單擊確定

    1. 步驟一:配置模板資訊

      配置項

      配置欄位

      說明

      模板資訊

      模板名稱

      支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。

      是否設定為預設範本

      預設範本無需設定生效對象,預設應用於所有未關聯到自訂規則模板的防護對象和對象組(包括後續新增、從自訂規則模板中移除的防護對象和對象組)。一個防護模組只允許設定一個預設範本並只能在建立模板的時設定。

    2. 步驟二:引擎設定

      配置項

      配置欄位

      說明

      引擎設定

      檢測引擎自動更新

      預設為開啟狀態,開啟後未來阿里雲安全團隊預設規則中新增或移除的規則(如0day應急規則或不再適用的規則)將對當前檢測引擎中的規則自動同步。

      引擎配置

      系統防護規則:基於阿里雲安全內建的檢測模組,包含超嚴格嚴格中等寬鬆四種等級規則,其中超嚴格等級和嚴格等級的規則狀態預設關閉,中等等級和寬鬆等級的規則狀態預設開啟。

      說明

      所支援的檢測模組可以參考檢測模組說明

      防護規則支援如下配置:

      • 規則動作:選擇當請求命中該規則時,要執行的防護動作。

        • 拦截:表示攔截命中規則的請求,並向發起請求的用戶端返回攔截響應頁面。

          說明

          WAF預設使用統一的攔截響應頁面,您可以通過自訂響應功能,自訂攔截響應頁面。更多資訊,請參見設定自訂響應規則配置攔截響應頁面

        • 观察:表示不攔截命中規則的請求,只通過日誌記錄請求命中了規則。您可以通過WAF日誌,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。

          重要

          只有開通Log Service,您才可以使用日誌查詢功能。更多資訊,請參見開啟或關閉Log Service

          观察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截後,再將規則設定為拦截模式。

        說明

        您可以通過安全报表,查詢攔截類、觀察類防護規則的命中詳情。更多資訊,請參見安全報表

      • 規則狀態:可選擇開啟或關閉。若關閉,請求將不會再命中該規則。

      自適應引擎

      智能加白引擎:預設為關閉狀態。

      自動添加的白名單規則會在白名單規則列表的AutoTemplate模板中顯示。更多資訊,請參見查看白名單

      說明

      僅隨用隨付版、訂用帳戶企業版或旗艦版支援該功能。

    3. 步驟三:確認生效範圍

      從已添加的防護對象及對象組中,選擇要應用該模板的防护对象防护对象组

      一個防護對象或對象組只能關聯一個基礎防護規則模板。關於添加防護對象和對象組的具體操作,請參見配置防護對象和防護對象組

查看規則模板

在後續使用過程中,您可以單擊規則模板名稱左側的展開表徵圖 表徵圖,查看規則模板包含的引擎資訊。您可以單擊引擎配置,進入引擎配置頁面查看詳細規則的規則動作與規則狀態等資訊。

編輯規則模板

開啟與關閉規則模板

成功建立規則模板後,您可以通過模板开关,開啟或關閉模板。

更改規則模板

可以單擊目標模板操作列的編輯。完成調整後,點擊下方確認,儲存此次變更。

說明

在混合雲防護情境下,引擎配置面板的自訂防護規則支援如下配置:

  • 規則動作:當請求命中該規則時,要執行的防護動作。可選觀察或者攔截

  • 規則狀態:預設關閉,可選擇開啟或關閉。若開啟,則該設定將對規則模板生效。

刪除規則模板

您可以刪除不需要的規則模板,刪除之前請確認該模板沒有關聯的防護對象。請單擊目標模板操作列中的刪除按鈕,並在彈出提示中點擊確定

重要
  • 一旦模板被刪除,系統將自動使用預設範本來保護之前由該模板防護的對象。

  • 刪除預設範本,如果預設範本中還存在防護對象,這些防護對象將不再受到基礎防護規則保護。

查看命中記錄

您可以在安全報表頁面的基礎防護規則頁簽,查詢具體防護規則的命中記錄。更多資訊,請參見基礎防護規則Web 核心防护頁面不支援通過規則ID搜尋具體的基礎防護規則。如需查詢具體的規則資訊可參考規則庫管理

重要

如果您認為某個規則誤攔截了正常業務流量,可通過白名單模組設定針對該規則的白名單規則。關於配置白名單規則的具體操作,請參見設定白名單規則允許存取特定請求

相關文檔及說明

檢測模組說明

檢測模組中的規則能夠識別和攔截針對Web應用的各種攻擊。

支援防護的攻擊類型

攻擊類型

說明

SQL注入

SQL注入是一種通過將惡意SQL代碼注入到查詢語句中,來操縱資料庫執行攻擊者希望的操作的攻擊方式。

跨站指令碼(XSS)

跨站指令碼(XSS)攻擊是一種通過在網頁中嵌入惡意指令碼,使其他使用者在瀏覽網頁時執行這些指令碼的攻擊方式。

代碼執行

代碼執行攻擊是指利用注入的惡意代碼,使伺服器執行這些代碼,從而實現攻擊目的。

CRLF注入

一種通過在HTTP頭部插入斷行符號符(CR, \r)和分行符號(LF, \n),以操縱HTTP響應或進行HTTP響應分割攻擊(HTTP Response Splitting)的攻擊方式。

本地檔案包含(LFI)

是指當伺服器開啟allow_url_include選項時,就可以通過PHP的某些特性函數(include(),require()和include_once(),requir_once())利用URL去動態包含檔案,此時如果沒有對檔案來源進行嚴格審查,就會導致任意檔案讀取或者任意命令執行。

遠程檔案包含(RFI)

遠程檔案包含(RFI)攻擊通過包含遠程伺服器上的檔案,使得攻擊者能夠在本機伺服器上執行遠程惡意代碼。

Webshell

Webshell是一種惡意指令檔,通過上傳或注入這些檔案,攻擊者可以遠端控制伺服器。

OS命令注入

作業系統命令注入攻擊通過在程式中嵌入惡意作業系統命令,使伺服器執行這些命令,從而實現攻擊目的。

掃描器行為

這通常指的是Web應用程式掃描器的行為和特點。這些工具自動化地掃描Web應用以發現潛在的安全性漏洞。它們定位常見的漏洞如SQL注入、跨站指令碼(XSS)等,通過產生並發送大量請求來分析應用的響應。

商務邏輯缺陷

商務邏輯缺陷是應用程式在實現其商務程序時存在的漏洞。這些漏洞通常不能通過傳統的輸入驗證和輸出編碼來防禦。它們可能允許攻擊者通過操縱應用程式的正常工作流程來實現未授權訪問或其他惡意行為。

任意檔案讀取

任意檔案讀取漏洞允許攻擊者讀取系統上任何檔案,通常通過HTTP請求中的檔案路徑參數。利用這種漏洞,攻擊者可以訪問敏感資訊,如設定檔、憑證和個人資料。

任意檔案下載

任意檔案下載漏洞類似於任意檔案讀取,但它專註於允許攻擊者下載系統上的任意檔案。這可能導致敏感資訊泄露,甚至使攻擊者擷取系統的完整備份以進行離線分析。

外部實體注入

XXE漏洞利用XML解析器在解析外部實體時的特性,允許攻擊者讀取系統檔案、執行伺服器端請求(SSRF)或導致拒絕服務(DoS)。這種攻擊通常通過包含惡意外部實體的XML輸入實現。

跨站請求偽造

CSRF攻擊通過欺騙認證使用者向Web應用程式發送未經授權的請求來執行惡意操作。通常,攻擊者會誘騙使用者點擊惡意連結或訪問惡意網頁,從而在使用者的身份下執行某些操作,如更改設定或提交表單。

運算式注入

運算式注入攻擊是指通過嵌入惡意運算式,使伺服器執行這些運算式,從而實現攻擊目的。

.net還原序列化

還原序列化是將資料從一種格式(例如JSON、XML或二進位)轉換回對象的過程。在.NET應用中,不安全的還原序列化可能導致任意代碼執行。如果攻擊者能夠控制還原序列化的資料,他們可能會注入惡意資料,從而執行任意代碼。

Java還原序列化

Java還原序列化攻擊通過還原序列化惡意對象,使伺服器在還原序列化過程中執行惡意代碼。

PHP還原序列化

PHP還原序列化攻擊通過還原序列化惡意對象,使伺服器在還原序列化過程中執行惡意代碼。

SSRF(伺服器端請求偽造)

伺服器端請求偽造(SSRF)攻擊通過偽造伺服器端請求,使伺服器訪問內部或外部資源,從而實現攻擊目的。

路徑穿透

路徑穿透攻擊通過注入相對路徑(如../),訪問伺服器上的不應公開的檔案。

協議違背

協議違背是通過惡意操縱協議(如HTTP、HTTPS等)的方式,進行攻擊或繞過安全機制。

任意檔案上傳

任意檔案上傳攻擊通過上傳惡意檔案,使伺服器執行這些檔案,從而實現攻擊目的。

相關文檔