定義
WAF(Web Application Firewall)是一種安全防護層,會檢查每一個傳送至網站的 HTTP 請求,並在惡意模式觸及應用程式之前將其過濾或封鎖。它位於應用程式前端,以反向代理或 CDN 邊緣節點的形式運作,並依據規則集檢查每個請求的標頭、URL 參數與內容,通常能攔截 OWASP Top 10 類型的攻擊:SQL injection、跨站指令碼攻擊、檔案包含漏洞、身分驗證繞過濫用,以及憑證填充攻擊的機器人、爬蟲程式與已知的漏洞利用特徵。如今多數 WAF 皆以託管雲端服務形式提供(Cloudflare、AWS WAF、Imperva、Sucuri),而非安裝於伺服器上,因此在新漏洞公開後數小時內即可完成規則更新,無需對應用程式本身進行任何變更。許多 CDN 會將 WAF 整合於其安全性方案中。其取捨在於:規則可能誤判合法流量(誤判為攻擊),而且 WAF 無法修補不安全的應用程式本身,它只能降低能觸及應用程式的攻擊面。
運作方式
WAF 會針對每個請求套用一組規則(廠商管理的規則加上自訂規則):封鎖已知的惡意酬載、對可疑 IP 進行速率限制、對看似自動化的瀏覽器發出驗證挑戰,並記錄所有活動以供檢視。最強大的 WAF 會將規則集與以攻擊流量訓練而成的機器學習模型結合使用。
這點為何重要
WAF 是提升網站安全性價格最實惠的重大升級方案,能防禦新安裝的 WordPress 或未修補函式庫所容易遭受的攻擊。它無法取代良好的程式碼品質,但能在漏洞被發現時爭取應對時間,並吸收網際網路上持續不斷的背景攻擊流量。