共用方式為


什麼是 Azure 應用程式閘道上的 Web 應用程式防火牆?

Azure 應用程式閘道上的 Azure Web 應用程式防火牆 (WAF) 會主動保護您的 Web 應用程式,以防止常見的惡意探索和弱點。 隨著 Web 應用程式成為惡意攻擊的更頻繁目標,這些攻擊通常會利用已知的弱點,例如 SQL 插入式攻擊和跨網站指令碼。

應用程式閘道上的 WAF 會以 Open Web Application Security Project (OWASP) 中的核心規則集 (CRS) 為基礎。

下列所有 WAF 功能都存在於 WAF 原則內。 可以創建多個策略,並將它們與應用程式網關、單個偵聽器或應用程式網關上基於路徑的路由規則相關聯,從而能夠根據需要為應用程式網關後面的每個網站定義單獨的策略。 有關 WAF 策略的更多資訊,請參閱 為應用程式閘道建立 Web 應用程式防火牆策略

注意

應用程式閘道有兩個版本的 WAF SKU:應用程式閘道 WAF_v1 和應用程式閘道 WAF_v2。 僅應用程式閘道 WAF_v2 SKU 支援 WAF 策略關聯。

應用程式閘道 WAF 示意圖。

應用程式閘道是以應用程式傳遞控制器 (ADC) 的形式運作。 提供傳輸層安全性 (TLS),先前稱為安全通訊端層 (SSL)、終止、Cookie 型工作階段親和性、迴圈配置資源負載散發、內容型路由、裝載多個網站的能力,以及安全性增強功能。

應用程式閘道可透過 TLS 原則管理和端對端 TLS 支援來增強安全性。 藉由將 WAF 整合到應用程式閘道中,即可加強應用程式安全性。 此組合會主動保護您的 Web 應用程式免於常見的弱點,並提供可集中管理且易於設定的位置。

福利

本節說明 WAF 在應用程式閘道上提供的核心優點。

保護

  • 保護您的 Web 應用程式免於 Web 弱點和攻擊,不需要修改後端程式碼。

  • 同時保護多個 Web 應用程式。 應用程式閘道的執行個體可以裝載最多 40 個受 Web 應用程式防火牆保護的網站。

  • 為相同 WAF 後方的不同網站建立自訂 WAF 原則。

  • 使用 IP 信譽規則集保護您的 Web 應用程式免於惡意聊天機器人。

  • 保護您的應用程式免於遭受 DDoS 攻擊。 如需詳細資訊,請參閱 應用程式 Azure DDoS 保護

監視

  • 使用即時 WAF 記錄來監視針對 Web 應用程式的攻擊。 記錄會與 Azure 監視器整合,以追蹤 WAF 警示並輕鬆監視趨勢。

  • 應用程式閘道 WAF 已與適用於雲端的 Microsoft Defender 整合。 適用於雲端的 Defender 可讓您集中檢視所有 Azure、混合式和多重雲端資源的安全性狀態。

自訂

  • 自訂 WAF 規則和規則群組,以符合您的應用程式需求,並消除誤判為真。

  • 為 WAF 後方的每個網站建立 WAF 原則的關聯,以允許網站特定的設定

  • 建立自訂規則以符合應用程式的需求

功能

  • SQL 插入式攻擊保護。
  • 跨網站指令碼保護。
  • 防範其他常見的 Web 攻擊,例如命令插入、HTTP 要求走私、HTTP 回應分割,以及遠端檔案包含。
  • 防範 HTTP 通訊協定違規。
  • 防範 HTTP 通訊協定異常,例如遺失主機使用者代理程式並接受標頭。
  • 防範編目程式和掃描程式。
  • 偵測常見的應用程式設定錯誤 (例如 Apache 和 IIS)。
  • 具有下限和上限的可設定要求大小限制。
  • 排除清單可讓您從 WAF 評估中省略特定要求屬性。 常見的範例是用於驗證或密碼欄位的 Active Directory 插入權杖。
  • 建立自訂規則以符合應用程式的特定需求。
  • 異地篩選流量,以允許或封鎖特定國家/地區或區域存取您的應用程式。
  • 使用聊天機器人風險降低規則集為應用程式防範聊天機器人。
  • 檢查要求本文中的 JSON 和 XML

WAF 原則和規則

若要在應用程式閘道上啟用 Web 應用程式防火牆,您必須建立 WAF 原則。 此原則是所有受控規則、自訂規則、排除項目,以及其他自訂內容 (例如檔案上傳限制) 的所在位置。

您可以設定 WAF 原則,並將該原則與一或多個應用程式閘道建立關聯以進行保護。 WAF 原則包含兩種類型的安全性規則:

  • 您建立的自訂規則

  • 受控規則集,一組由 Azure 管理且預先設定的規則集合

當兩者都存在時,在處理受控規則集中的規則之前,會先處理自訂規則。 規則是由比對條件、優先順序和動作所組成。 支援的動作類型如下:ALLOW、BLOCK 和 LOG。 您可以結合受控和自訂規則,建立完全自訂的原則,以符合特定應用程式保護需求。

原則內的規則會依優先順序進行處理。 優先順序是一個唯一的整數,定義要處理的規則順序。 較小的整數值表示較高的優先順序,而且這些規則會在具有較高整數值的規則之前進行評估。 比對規則之後,規則中定義的對應動作會套用至要求。 處理這類比對之後,不會進一步處理優先順序較低的規則。

應用程式閘道所傳遞的 Web 應用程式可以在全域層級、每個站台層級或每個 URI 層級與 WAF 原則建立關聯。

核心規則集

應用程式閘道支援多個規則集,包括 CRS 3.2、CRS 3.1 和 CRS 3.0。 這些規則可保護您的 Web 應用程式免於惡意活動。 有關更多資訊,請參閱 Web Application Firewall DRS 和 CRS 規則組和規則

自訂規則

應用程式閘道也支援自訂規則。 使用自訂規則,您可以建立自己的規則,這會針對通過 WAF 的每個要求進行評估。 這些規則的優先順序高於受控規則集中的其餘規則。 如果符合一組條件,則會採取動作來允許或封鎖。 有關自定義規則的更多資訊,請參閱 應用程式閘道的自定義規則

在自訂規則中,現可供使用 Geomatch 運算子。 有關更多資訊,請參閱 Geomatch 自定義規則

Bot 保護規則集

您可以啟用受控 Bot 保護規則集,對來自所有 Bot 類別的要求採取自訂動作。

支援三個 Bot 類別:

  • 不良

    錯誤的 Bot 是具有惡意 IP 位址的 Bot,以及偽造其身分識別的 Bot。 錯誤的 Bot 包含來自 Microsoft 威脅情報摘要的高信賴 IP 指標和 IP 信譽摘要的惡意 IP 位址。 不正確的 Bot 也包含將自己識別為良好 Bot 的 Bot,但其 IP 位址不屬於合法的 Bot 發行者。

  • 很好

    良好的 Bot 是受信任的使用者代理程式。 良好的 Bot 規則會分類為多個類別,以提供對 WAF 原則設定的細微控制。 這些類別包括:

    • 已驗證的搜尋引擎 Bot(例如 Googlebot 和 Bingbot)
    • 已驗證的連結檢查程式 Bot
    • 已驗證的社交媒體 Bot(例如 Facebookbot 和 LinkedInBot)
    • 已驗證的廣告 Bot
    • 已驗證的內容檢查程式 Bot
    • 已驗證的雜項 Bot
  • 未知

    未知的 Bot 是使用者代理程式,不需要額外的驗證。 未知 Bot 也包含來自 Microsoft 威脅情報摘要中信賴度 IP 指標的惡意 IP 位址。

WAF 平台會主動管理和動態更新 Bot 簽章。

啟用機器人保護后,它會根據配置的作阻止、允許或記錄與機器人規則匹配的傳入請求。 它會封鎖惡意 Bot、允許經過驗證的搜尋引擎編目程式、封鎖未知的搜尋引擎編目程式,以及依預設記錄未知的 Bot。 您可以設置自定義作來阻止、允許或記錄不同類型的機器人。

您可以從儲存體帳戶、事件中樞、記錄分析來存取 WAF 記錄,或將記錄傳送至合作夥伴解決方案。

有關應用程式閘道機器人保護的詳細資訊,請參閱 應用程式閘道機器人保護上的 Web 應用程式防火牆

WAF 模式

應用程式閘道 WAF 可以設定為以下列兩種模式執行:

  • 偵測模式:監視和記錄所有威脅警示。 您應在 [診斷] 區段中開啟應用程式閘道的記錄診斷。 您也必須確定已選取並開啟 WAF 記錄。 Web 應用程式防火牆不會在偵測模式中運作時封鎖傳入要求。
  • 預防模式:封鎖規則偵測到的入侵和攻擊。 攻擊者會收到「403 未經授權存取」例外狀況,且連線會關閉。 預防模式會在 WAF 記錄中記錄此類攻擊。

注意

建議您在生產環境中短時間以檢測模式運行新部署的 WAF。 這樣做提供了在過渡到阻止模式之前獲取 防火牆日誌 並更新任何異常或 自定義規則 的機會。 它還有助於減少意外封鎖流量的情況發生。

WAF 引擎

Web 應用程式防火牆 (WAF) 引擎是檢查流量並檢測請求是否包含指示潛在攻擊的簽名的元件。 當您使用 CRS 3.2 或更高版本時,您的 Web 應用程式防火牆將運行新的 WAF 引擎,該引擎可為您提供更高的性能和一組改進的功能。 當您使用舊版 CRS 時,WAF 會在較舊的引擎上執行。 新功能僅適用於新的 Azure WAF 引擎。

WAF 動作

您可以選擇當要求符合規則條件時要執行的動作。 支援下列動作:

  • 允許:請求通過 WAF 並轉發到後端。 沒有更低的優先順序規則可以封鎖此要求。 允許動作僅適用於 Bot 管理員規則集,而不適用於核心規則集。
  • 封鎖:封鎖要求,且 WAF 會傳送回應給用戶端,不會將要求轉送至後端。
  • 日誌:請求記錄在 WAF 日誌中,WAF 繼續評估優先順序較低的規則。
  • 異常分數:CRS 規則集的預設作,當匹配具有此作的規則時,總異常分數將遞增。 異常評分不適用於 Bot 管理員規則集。

異常評分模式

OWASP 有兩種模式可決定是否封鎖流量: 傳統模式和異常評分模式。

在傳統模式中,符合任何規則的流量會視為獨立於任何其他規則相符項目之外。 此模式易於理解。 但其限制是缺少與特定要求相符的規則數目相關資訊。 因此引進了異常評分模式。 這是 OWASP 3.x 的預設值。

在異常評分模式中,處於預防模式中的防火牆不會立即封鎖符合任何規則的流量。 規則具有特定嚴重性: 重大錯誤警告注意事項。 該嚴重性會影響要求的數值,稱為異常分數。 例如,符合一個「警告」規則的分數為 3 分。 符合一個「重大」規則的分數為 5 分。

嚴重性
重大 5
錯誤 4
警告 3
注意事項 2

而異常分數封鎖流量的閾值為 5。 因此,單個 關鍵 規則匹配就足以讓應用程式閘道 WAF 在阻止模式下阻止請求。 但是符合「警告」規則只會將異常分數提高 3 分,其本身並不足以封鎖流量。

注意

當 WAF 規則與流量匹配時記錄的消息包括作值「Matched」。如果所有匹配規則的總異常分數為5或更高,並且WAF策略在阻止模式下運行,則請求將觸發作值為 Blocked的強制異常規則,並且請求將停止。 但是,如果 WAF 策略在檢測模式下運行,則請求會觸發作值 Detected,並且請求將被記錄並傳遞到後端。 如需詳細資訊,請參閱針對 Azure 應用程式閘道的 Web 應用程式防火牆 (WAF) 進行疑難排解

組態

您可以使用 Azure 入口網站、REST API、Azure Resource Manager 範本和 Azure PowerShell 來設定及部署所有 WAF 原則。 您還可以使用 Firewall Manager 集成大規模配置和管理 Azure WAF 策略。 有關詳細資訊,請參閱 使用 Azure 防火牆管理器配置 WAF 策略

WAF 監視

監視應用程式閘道的運行狀況非常重要,可以通過將 WAF 及其保護的應用程式與 Microsoft Defender for Cloud、Azure Monitor 和 Azure Monitor 日誌集成來實現。

應用程式閘道 WAF 診斷圖。

Azure 監視器

應用程式網關日誌與 Azure Monitor 集成,使你能夠跟蹤診斷資訊,包括 WAF 警報和日誌。 可以在 Azure 門戶中應用程式閘道資源的 「診斷 」選項卡上訪問此功能,也可以直接通過 Azure Monitor 訪問此功能。 若要詳細瞭解如何啟用日誌,請參閱 應用程式網關的診斷日誌

適用於雲端的 Microsoft Defender

適用於雲端的 Defender 可協助您防止、偵測及回應威脅。 它可讓您更了解及控制 Azure 資源的安全性。 應用程式閘道與適用於雲端的 Defender 整合。 適用於雲端的 Defender 會掃描您的環境,以偵測未受保護的 Web 應用程式。 它可以建議應用程式閘道 WAF 來保護這些易受攻擊的資源。 您可以直接從適用於雲端的 Defender 建立防火牆。 這些 WAF 執行個體會與適用於雲端的 Defender 整合。 他們會將警示和健康情況資訊傳送至適用於雲端的 Defender 以進行報告。

Microsoft Sentinel

Microsoft Sentinel 是一種可縮放的雲原生安全資訊事件管理 (SIEM) 和安全業務流程自動回應 (SOAR) 解決方案。 Microsoft Sentinel 提供整個企業的智慧型安全性分析與威脅情報,並針對警示偵測、威脅可見性、積極式搜捕及回應威脅,提供單一的解決方案。

使用內置的 Azure WAF 防火牆事件工作簿,您可以大致瞭解 WAF 上的安全事件,包括事件、匹配和阻止的規則以及所有其他記錄的防火牆活動。

適用於 WAF 的 Azure 監視器活頁簿

適用於 WAF 的 Azure Monitor 工作簿支援跨多個可篩選面板自定義可視化與安全相關的 WAF 事件。 它適用於所有 WAF 類型,包括應用程式閘道、Front Door 和 CDN,而且可以根據 WAF 類型或特定 WAF 實例進行篩選。 透過 ARM 範本或資源庫範本匯入。 若要部署此活頁簿,請參閱 WAF 活頁簿

記錄

應用程式閘道 WAF 會針對其偵測到的每個威脅提供詳細報告。 記錄會與 Azure 診斷記錄整合。 警報以 JSON 格式記錄。 這些記錄可以與 Azure 監視器記錄整合。

{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupId}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{appGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
    {
      "instanceId": "ApplicationGatewayRole_IN_0",
      "clientIp": "203.0.113.145",
      "clientPort": "0",
      "requestUri": "/",
      "ruleSetType": "OWASP",
      "ruleSetVersion": "3.0",
      "ruleId": "920350",
      "ruleGroup": "920-PROTOCOL-ENFORCEMENT",
      "message": "Host header is a numeric IP address",
      "action": "Matched",
      "site": "Global",
      "details": {
        "message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
        "data": "127.0.0.1",
        "file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
        "line": "791"
      },
      "hostname": "127.0.0.1",
      "transactionId": "16861477007022634343"
      "policyId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/globalWafPolicy",
      "policyScope": "Global",
      "policyScopeName": " Global "
    }
  }
} 

應用程式閘道 WAF SKU 價格

WAF_v1 和 WAF_v2 SKU 的定價模式不同。 有關詳細資訊,請參閱 應用程式網關定價

最新功能

若要了解 Azure Web 應用程式防火牆的新功能,請參閱 Azure 更新