規劃及實作 Web 應用程式防火牆 (WAF)

已完成

Web 應用程式防火牆 (WAF) 可以集中保護 Web 應用程式,使其免於遭遇常見的攻擊和弱點。 Web 應用程式已逐漸成為利用常見已知弱點進行惡意攻擊的目標。 SQL 插入式和跨網站指令碼攻擊更是其中最常見的攻擊。

此圖顯示 Web 應用程式防火牆 (WAF) 如何集中保護 Web 應用程式,使其免於遭遇常見的攻擊和弱點。

防止應用程式程式碼發生此類攻擊是一項挑戰。 這可能需要在多層應用程式拓撲上進行嚴謹的維護、修補及監控。 集中式 Web 應用程式防火牆,有助於大幅簡化安全性管理。 WAF 也提供應用程式系統管理員更好的保證,以防範威脅和入侵。

相較於保護個別的 Web 應用程式,WAF 解決方案可透過集中修補已知弱點,更快回應安全性威脅。

支援的服務

您可以使用 Microsoft 的 Azure 應用程式閘道、Azure Front Door 與 Azure 內容傳遞網路 (CDN) 服務來部署 WAF。 Azure CDN 上的 WAF 目前為公開預覽。 WAF 具有專為各特定服務訂製的功能。 如需每個服務 WAF 功能的詳細資訊,請參閱每個服務的概觀。

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

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

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

此圖顯示 Web 應用程式防火牆和 Web 應用程式閘道功能的範例。

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

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

保護

  • 保護您的 Web 應用程式免於 Web 弱點和攻擊,不需要修改後端程式碼。
  • 同時保護多個 Web 應用程式。 應用程式閘道的執行個體可以裝載最多 40 個受 Web 應用程式防火牆保護的網站。
  • 為相同 WAF 後方的不同網站建立自訂 WAF 原則。
  • 使用 IP 信譽規則集保護您的 Web 應用程式免於惡意聊天機器人。
  • 保護您的應用程式免於遭受 DDoS 攻擊。

監視

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

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

自訂

  • 自訂 WAF 規則和規則群組,以符合您的應用程式需求,並消除誤判為真。
  • 為 WAF 後方的每個網站建立 WAF 原則的關聯,以允許網站特定的設定
  • 建立自訂規則以符合應用程式的需求

功能

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

WAF 原則和規則

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

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

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

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

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

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

核心規則集

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

自訂規則

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

Bot 保護規則集

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

支援三個 Bot 類別:

  • 不良 - 不良 Bot 包含來自惡意 IP 位址的 Bot,以及偽造其身分識別的 Bot。 具有惡意 IP 的不良 Bot 來自 Microsoft 威脅情報摘要的高信賴度 IP 入侵指標。
  • 良好 - 良好 Bot 包含已驗證的搜尋引擎,例如 Googlebot、bingbot 和其他受信任的使用者代理程式。
  • 未知 - 未知 Bot 會透過已發行的使用者代理程式進行分類,而不會進行更多驗證。 例如,市場分析器、摘要擷取器和資料收集代理程式。 未知 Bot 也包含來自 Microsoft 威脅情報摘要中信賴度 IP 指標的惡意 IP 位址。

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

顯示 Bot 簽章範例的螢幕擷取畫面。

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

顯示如何指派受控規則集範例的螢幕擷取畫面。

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

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

WAF 模式

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

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

WAF 引擎

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

WAF 動作

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

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

異常評分模式

Open Web Application Security Project (OWASP) 有兩種模式可決定是否封鎖流量:傳統模式和異常評分模式。

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

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

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

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

組態

您可以使用 Azure 入口網站、REST API、Azure Resource Manager 範本和 Azure PowerShell 來設定及部署所有 WAF 原則。

WAF 監視

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

此圖顯示 Azure Web 應用程式防火牆監視功能的範例。

Azure 監視器

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