Azure Web 應用程式防火牆的運作方式
您已熟悉 Azure Web 應用程式防火牆的基本功能和優點。 現在讓我們探討 Azure Web 應用程式防火牆的運作方式。 特別是,讓我們考慮規則集和規則群組等功能,如何讓 Azure Web 應用程式防火牆協助保護 Web 應用程式免於遭受常見的攻擊。 這項資訊有助評估 Azure Web 應用程式防火牆是否為適合您公司的解決方案。
部署選項
您可以將 Azure Web 應用程式防火牆,當作您 Web 應用程式的 Azure 前端解決方案一部分進行部署。 首先您將建立 Azure Web 應用程式防火牆原則,其中包含下列設定:
- 您想要使用的產品整合
- 您想要使用哪個受控規則集
- 您想要新增的任何自訂規則
- 您想要使用哪種模式
Microsoft 管理的規則集、規則群組和規則
Azure Web 應用程式防火牆會將規則套用至應用程式的傳入 HTTP/HTTPS 要求,藉此防堵已知的惡意探索。 規則是專為辨識和防止特定威脅而設計的防火牆程式碼。
Azure Web 應用程式防火牆用來偵測和封鎖常見弱點的規則大多是屬於不同規則群組的受控規則。 每個規則群組都是規則的集合,而受控規則集則是規則群組的集合。 受控規則集包括 Microsoft 威脅情報型規則群組、CVE (常見弱點和暴露) 規則群組,以及核心規則群組 (CRS)。
CRS 規則是由 Open Web Application Security Project (OWASP) 所定義。 Microsoft 的安全性專家小組會撰寫受控規則的程式碼,並進行維護和更新。 這些規則可視需要進行修改或新增。 當受控規則變更時,Microsoft 會自動更新 Azure Web 應用程式防火牆,而不會造成應用程式停機。
下列螢幕擷取畫面顯示 Microsoft 預設規則集 2.1 (DRS2.1) 中的一些規則和規則群組。 如此應可讓您了解 Azure Web 應用程式防火牆所提供的保護深度。
Bot 規則
Bot 規則會根據 Microsoft 威脅情報和專屬 WAF 規則,識別錯誤的 Bot、良好的 Bot 以及未知的 Bot。
自訂規則
Azure Web 應用程式防火牆所提供的受控規則可能未涵蓋您 Web 應用程式所遇到的特定威脅。 若是如此,您可以建立自訂規則。 您可以透過建立包含下列元件的條件,建置自訂規則:
- 比對類型,例如地理位置、IP 位址、大小、字串
- 比對 RequestHeader、QueryString、RequestUri、RequestBody、Cookie 或 PostArgs 等變數
- HTTP/HTTPS 要求方法,例如 POST 或 PUT
- 等於、包含、RegEx、開始於、任何、結束於等運算子
- 允許、封鎖、記錄或重新導向等動作
地理位置篩選
無論要求的來源位置為何,WAF 依預設會回應所有使用者要求。 在某些情況下,您可能會想要依國家/地區限制對 Web 應用程式的存取。 地區篩選自訂規則可讓您針對端點定義特定路徑,以允許或封鎖來自指定國家/地區的存取。 地區篩選規則會使用感興趣的兩個字母國家/地區代碼。
針對地區篩選規則,比對變數可為 RemoteAddr 或 SocketAddr。 RemoteAddr 通常為以 X-Forwarded-For 要求標頭傳送的原始用戶端 IP 位址。 SocketAddr 是 WAF 會看到的來源 IP 位址。 如果您的使用者位於 Proxy 後方,則 SocketAddr 通常是 Proxy 伺服器位址。
您可以結合 GeoMatch 條件與 REQUEST_URI 字串比對條件,以建立基於路徑的地區篩選規則。
IP 限制
Azure Web 應用程式防火牆自訂規則會藉由指定 IP 位址或 IP 位址範圍的清單來控制對 Web 應用程式的存取。
IP 限制自訂規則可讓您控制對 Web 應用程式的存取。 其做法是指定無類別網域間路由 (CIDR) 格式的 IP 位址或 IP 位址範圍。
根據預設,Web 應用程式可從網際網路存取。 不過,有時候您想要從已知的 IP 位址或 IP 位址範圍清單中限制對用戶端的存取。 您可以建立 IP 比對規則來封鎖從自訂規則中未列出的 IP 位址對 Web 應用程式存取的 IP 比對規則來達成此目的。
速率限制
Azure Web 應用程式防火牆自訂規則支援速率限制,以根據比對條件和傳入要求的速率來控制存取。
此自訂規則可讓您偵測異常高的流量,並封鎖某些應用程式層阻斷服務的攻擊類型。 速率限制也會保護您免於意外的用戶端設定錯誤,而在短時間內傳送大量要求。 自訂規則是由速率限制計數持續時間 (一分鐘或五分鐘間隔) 與速率限制閾值 (速率限制持續時間所允許的要求數目上限) 所定義。
偵測模式與預防模式的比較
Azure Web 應用程式防火牆可以在兩種模式的其中一個運作。 您所選擇模式取決於您希望防火牆如何處理符合其中一項規則的傳入 HTTP/HTTPS 要求:
- 偵測模式:記錄要求,但允許要求通過。
- 預防模式:記錄要求,但不允許要求通過。
一個常見案例是在測試應用程式時,使用偵測模式執行 Azure Web 應用程式防火牆。 在偵測模式中,您可以檢查兩種問題:
- 誤判為真:防火牆標幟為惡意的合法要求。
- 誤判為否:防火牆允許的惡意要求。
一旦應用程式準備好開始進行部署,您就可以切換為預防模式。
搭配 Azure WAF 使用 Microsoft Sentinel
Azure WAF 與 Microsoft Sentinel 結合,可為 WAF 資源提供安全性資訊事件管理。 使用 Microsoft Sentinel,您可以使用 Log Analytics 存取 WAF 資料連線器至 Sentinel。 WAF 活頁簿會顯示 Azure Front Door 上的 WAF 分析,以及應用程式閘道上的 WAF。 WAF 分析規則會偵測來自 AFD 和應用程式閘道記錄的 SQLi 與 XSS 攻擊。 WAF Notebook 允許調查 Azure Front Door 上的 SQL 插入事件。