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

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

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

下列所有 WAF 功能都存在於 WAF 原則內。 您可以建立多個原則,而且這些原則可以與應用程式閘道、個別接聽程式或應用程式閘道上的路徑型路由規則相關聯。 如此一來,您可以視需要針對應用程式閘道後方的每個網站設定個別原則。 如需 WAF 原則的詳細資訊,請參閱建立 WAF 原則

注意

應用程式閘道 有兩個 WAF sku 版本:應用程式閘道 WAF_v1 和 應用程式閘道 WAF_v2。 只有 應用程式閘道 WAF_v2 sku 才支援 WAF 原則關聯。

Application Gateway WAF diagram

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

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

福利

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

保護

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

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

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

  • 使用IP信譽規則集保護您的 Web 應用程式免於惡意 Bot。

  • 保護您的應用程式免於遭受 DDoS 攻擊。 如需詳細資訊,請參閱 應用程式 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 原則。 此原則是所有 Managed 規則、自訂規則、排除專案,以及其他自定義專案,例如檔案上傳限制。

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

  • 您建立的自訂規則

  • 受控規則集,這些集合是 Azure 受控預先設定的規則集合

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

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

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

核心規則集

應用程式閘道 支援多個規則集,包括 CRS 3.2、CRS 3.1 和 CRS 3.0。 這些規則可保護您的 Web 應用程式免於惡意活動。

如需詳細資訊,請參閱 Web 應用程式防火牆 CRS 規則群組和規則

自訂規則

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

地理對應運算子現在可供自定義規則使用。 如需詳細資訊,請參閱 地理對應自定義規則

如需自定義規則的詳細資訊,請參閱 應用程式閘道 的自定義規則。

Bot 保護規則集

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

支援三個 Bot 類別:

  • 不良

    不正確的 Bot 包括來自惡意 IP 位址的 Bot,以及偽造其身分識別的 Bot。 惡意IP的不良 Bot 來自 Microsoft 威脅情報摘要的高信賴IP入侵指標。

  • 很好

    良好的 Bot 包括已驗證的搜尋引擎,例如 Googlebot、bingbot 和其他受信任的使用者代理程式。

  • Unknown

    未知的 Bot 會透過已發行的使用者代理程式進行分類,而不會進行更多驗證。 例如,市場分析器、摘要擷取器和數據收集代理程式。 未知的 Bot 也包含來自 Microsoft 威脅情報摘要中度信賴 IP 指標的惡意 IP 位址。

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

Screenshot of bot rule set.

您可以使用 [受控規則集] 底下的 [指派] 選項來指派 Microsoft_BotManagerRuleSet_1.0:

Screenshot of Assign managed rule sets.

啟用 Bot 保護時,它會根據您設定的動作封鎖、允許或記錄符合 Bot 規則的連入要求。 它會封鎖惡意 Bot、允許經過驗證的搜尋引擎編目程式、封鎖未知的搜尋引擎編目程式,以及預設記錄未知的 Bot。 您可以選擇將自訂動作設定為封鎖、允許或記錄不同類型的 Bot。

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

WAF 模式

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

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

注意

建議您在生產環境中短期內,在偵測模式中執行新部署的WAF。 這可讓您取得 防火牆記錄 ,並在轉換至預防模式之前更新任何例外狀況或 自定義規則 。 這有助於減少非預期的封鎖流量。

WAF 引擎

Azure Web 應用程式防火牆 (WAF) 引擎是檢查流量的元件,並判斷要求是否包含代表潛在攻擊的簽章。 當您使用 CRS 3.2 或更新版本時,您的 WAF 會執行新的 WAF 引擎,以提供更高的效能和改良的功能集。 當您使用舊版 CRS 時,WAF 會在較舊的引擎上執行。 新功能僅適用於新的 Azure WAF 引擎。

WAF 動作

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

  • 允許:要求通過 WAF 並轉送至後端。 沒有更低的優先順序規則可以封鎖此要求。 允許動作僅適用於 Bot Manager 規則集,不適用於核心規則集。
  • 封鎖:封鎖要求,且 WAF 會傳送回應給用戶端,不會將要求轉送至後端。
  • 記錄:要求會記錄在 WAF 記錄中,WAF 會繼續評估較低優先順序的規則。
  • 異常分數:這是 CRS 規則集的默認動作,當符合此動作的規則時,總異常分數會遞增。 異常評分不適用於 Bot Manager 規則集。

異常評分模式

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

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

在異常評分模式中,當防火牆處於預防模式時,不符合任何規則的流量不會立即遭到封鎖。 規則具有特定嚴重性: 重大錯誤警告通知。 該嚴重性會影響要求的數值,稱為異常分數。 例如,一個 警告 規則比對貢獻 3 到分數。 一個 重大 規則比對貢獻 5。

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

異常分數封鎖流量的閾值為 5。 因此,單一重大規則比對足以讓 應用程式閘道 WAF 封鎖要求,即使在預防模式中也是如此。 但一個 警告 規則比對只會增加異常分數 3,這本身不足以封鎖流量。

注意

WAF 規則符合流量時所記錄的訊息包含「相符」動作值。如果所有相符規則的異常分數總計為 5 或更高,且 WAF 原則正在預防模式中執行,則要求會觸發具有動作值 「已封鎖」的強制異常規則,並停止要求。 不過,如果 WAF 原則以偵測模式執行,要求將會觸發動作值「偵測」,並將要求記錄並傳遞至後端。 如需詳細資訊,請參閱針對 Azure 應用程式閘道 的 Web 應用程式防火牆 (WAF) 進行疑難解答。

組態

您可以使用 Azure 入口網站、REST API、Azure Resource Manager 範本和 Azure PowerShell 來設定及部署所有 WAF 原則。 您也可以使用防火牆管理員整合大規模設定和管理 Azure WAF 原則(預覽)。 如需詳細資訊,請參閱使用 Azure 防火牆 管理員來管理 Web 應用程式防火牆 原則(預覽)。

WAF 監視

請務必監視應用程式閘道的健康情況。 您可以將 WAF 及其保護的應用程式與 適用於雲端的 Microsoft Defender、Azure 監視器和 Azure 監視器記錄整合,以支援此功能。

Diagram of Application Gateway WAF diagnostics

Azure 監視器

應用程式閘道 記錄與整合Azure 監視器。 這可讓您追蹤診斷資訊,包括 WAF 警示和記錄。 您可以在入口網站中 應用程式閘道 資源的 [診斷] 索引標籤上,或直接透過 Azure 監視器存取這項功能。 若要深入瞭解如何啟用記錄,請參閱 應用程式閘道 診斷

適用於雲端的 Microsoft Defender

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

Defender for Cloud overview window

Microsoft Sentinel

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

使用內建的 Azure WAF 防火牆事件活頁簿,您可以取得 WAF 上安全性事件的概觀。 這包括事件、相符和封鎖的規則,以及記錄在防火牆記錄檔中所有其他專案。 記錄的詳細資訊如下。

Azure WAF firewall events workbook

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

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

記錄

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

Application Gateway diagnostics logs windows

{
  "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": "52.161.109.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/1496a758-b2ff-43ef-b738-8e9eb5161a86/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/globalWafPolicy",
      "policyScope": "Global",
      "policyScopeName": " Global "
    }
  }
} 

應用程式閘道 WAF SKU 定價

WAF_v1和WAF_v2 SKU 的定價模式不同。 若要深入瞭解,請參閱 應用程式閘道 定價頁面。

最新消息

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

下一步