technine.io
夜間一排不銹鋼自動閘機,每部閘機都亮着紅色交叉燈號,後面是玻璃閘板和昏暗的車站。

指南

網站應用程式防火牆(WAF)是甚麼?如何過濾網站流量

網站應用程式防火牆(WAF)設於網站或網上應用程式前面,檢查每個進入的請求,在攻擊到達程式之前加以攔截。了解 WAF 的作用、與網絡防火牆的分別、它做不到的事,以及如何穩妥地設定。

更新於

網站應用程式防火牆(Web Application Firewall,簡稱 WAF)是設於網站或網上應用程式前面的過濾層,會逐一檢查進入的網絡請求,在可疑請求到達應用程式之前加以攔截或標記。對於經營網店、預約系統或客戶平台的企業,WAF 可以多加一層防護,抵擋常見的網站攻擊;但它應與良好的程式碼、定期更新和監察一併使用,而不是取代它們。

WAF 做甚麼

每當有人開啟網頁、提交表格或呼叫 API,瀏覽器或應用程式都會發出一個 HTTP 請求。WAF 會讀取這些請求的內容,包括網址、標頭、Cookie 和表格欄位,再與一套規則比對。對每個請求,WAF 可以:

  • 放行,讓請求如常到達網站
  • 攔截,並顯示錯誤頁面
  • 驗證,例如確認訪客是真正的瀏覽器
  • 記錄,留待檢視而不攔截

規則通常有兩個來源:WAF 供應商維護的託管規則,針對廣為人知的攻擊類型;以及團隊為自己網站加設的自訂規則,例如限制同一地址嘗試登入的次數。

WAF 與網絡防火牆的分別

傳統的網絡防火牆按 IP 地址和連接埠等條件,決定哪些連線可以進入。它一般不會打開網絡請求的內容,判斷某次表格提交是否屬於攻擊。

WAF 在應用層運作。它假設網站流量本身是容許的,再檢查每個請求想做甚麼。大部分企業兩者都需要:網絡防火牆限制哪些服務可以從外部連接,WAF 則看守必須公開的服務所收到的流量。

WAF 可以幫上甚麼忙

  • 常見的注入攻擊,例如藏在表格欄位或網址中的 SQL 注入和跨網站腳本(XSS)。
  • 已知漏洞:廣泛使用的軟件一旦公開漏洞,WAF 供應商往往會加入規則,攔截已知的攻擊手法,這做法有時稱為「虛擬修補」。它可以在更新完成前降低風險,但不能代替更新。我們的 PHP2Shell 文章就是近期一例:供應商加入了防護規則,同時仍然要求客戶盡快修補。
  • 自動化濫用,例如機械人不斷嘗試密碼、大量抓取網頁或提交垃圾表格,可以用流量限制和機械人驗證處理。

WAF 做不到的事

  • 修正你自己程式碼的漏洞。如果已登入的客戶只要改動網址中的一個號碼,就能看到其他客戶的訂單,這個請求看來完全正常,WAF 通常會放行。
  • 阻止使用被盜密碼的登入。這類登入與一般登入無異,多重身份驗證是更合適的措施。
  • 保護可以被直接連接的伺服器。如果攻擊者找到源伺服器的地址並繞過 WAF,規則就不起作用。
  • 無需調校就運作完美。規則太嚴會誤擋真正的客戶(誤報),太鬆則會讓攻擊通過。

WAF 的部署方式

  • 雲端或邊緣 WAF:流量先經過供應商的網絡,再到達你的伺服器。這類服務常與內容傳遞網絡(CDN)一併提供,通常需要修改 DNS 設定。
  • 雲端平台 WAF:附加在雲端主機的負載平衡器或閘道上。
  • 伺服器或應用程式層面:網頁伺服器上的模組,或 CMS 內的安全插件。這類方案容易加裝,但與它所保護的網站在同一部伺服器上運行。

哪一種合適,視乎你的主機安排、預算和由誰管理。你的主機供應商或開發商可以說明現有方案已包括甚麼。

穩妥設定的要點

  • 先用記錄或監察模式,檢視哪些請求會被攔截,再把規則改為攔截。
  • 啟用規則後測試結帳、登入、表格和 API 呼叫,最好先在 Staging 環境測試。
  • 在設定許可的情況下,限制源伺服器只接受來自 WAF 的流量。
  • 繼續更新軟件和插件。WAF 只是爭取時間,並沒有消除漏洞。
  • 把重要的 WAF 警報納入網站監察流程,並議定由誰跟進。
  • 把 WAF 納入滲透測試範圍,了解它能擋住甚麼、擋不住甚麼。

可以向開發商或主機供應商問的問題

  • 我們的網站前面有沒有 WAF?它正在攔截,還是只作記錄?
  • 啟用了哪些規則?由誰負責更新?
  • 如果客戶被誤擋,由誰處理?
  • 源伺服器能否在不經 WAF 的情況下被連接?
  • WAF 的檢視工作是否包括在我們的支援安排內?

如需一併檢視 WAF、主機和存取權限設定,可參閱 technine.io 的網絡安全及合規服務。

常見問題

小型企業網站需要 WAF 嗎?

任何設有登入、付款或表格的公開網站,不論規模,都可能成為自動化攻擊的目標。不少主機和 CDN 方案已包含基本的 WAF 功能,購買新服務前可先查看現有方案。

WAF 會令網站變慢嗎?

檢查請求需要額外處理,但設定得宜的 WAF 一般影響不大。與其假設,不如在啟用前後量度網頁速度。

有了 WAF,還需要更新和測試嗎?

需要。WAF 減低已知攻擊手法帶來的風險;更新修正的是漏洞本身,測試則找出通用規則無法辨認的問題。

諮詢WhatsApp