上一篇我們介紹了防火牆(FW)的基本概念與運作原理,不過防火牆主要在保護網絡層方面。而除了傳統防火牆外,還有一種更高級的防護工具,也就是 Web 應用防火牆(WAF),它專門針對應用層的安全威脅,進一步強化了網絡防禦體系。所以今天會來介紹關於WAF的內容與應用,及如何繞過這層防禦。
WAF (Web Application Firewall)
WAF主要是用於是保護網站應用程式,透過監控網站傳輸的 HTTP 流量,比對病毒與惡意程式資料庫,過濾出可疑流量並拒絕惡意流量進入,保護網站免受駭客攻擊。
WAF 的主要目的是保護 Web 應用程式免受常見的攻擊,如 SQL 注入、跨站腳本攻擊(XSS)、跨站請求偽造(CSRF) 等。
工作原理
- **規則過濾:**基於預定義的規則集來過濾流量,這些規則針對常見攻擊行為進行識別和阻止。
- **行為分析:**一些高級 WAF 會使用行為分析技術來識別異常流量,通過學習正常流量模式,發現異常行為並進行阻擋。
- **簽名檢查:**WAF 會根據已知的攻擊簽名來比對流量,當發現類似的惡意行為時,會自動阻止這些請求。
WAF類型
WAF根據部署方式和實現技術可以分為三種主要類型:硬體 WAF、軟體 WAF 和雲端 WAF。這三種 WAF 各自有不同的特點與優缺點,適用於不同規模和需求的網站與應用環境。
1. 硬體WAF
通常以物理設備的形式部署在 Web 伺服器前端,負責檢測並攔截異常流量。
實現方式 : 透過代理技術,將所有外部流量引導至該設備,並根據內置的安全規則庫對請求進行解析和匹配。如果發現請求符合攻擊規則,硬體 WAF 會立即阻止該請求,保護伺服器免受攻擊。
優點
- 簡單易用,通常即插即用,部署方便
- 支持高吞吐量,能夠處理大量請求
- 覆蓋範圍廣,能防禦多種攻擊
缺點
- 成本較高
- 可能導致誤判,攔截合法請求
- 存在繞過機率
2. 軟體WAF
安裝在伺服器上的防護軟體,通常與應用程式一同運行,用於監控並保護特定 Web 應用。
實現方式 : 通過監聽特定端口或與 Web 伺服器整合的方式來檢測並攔截異常流量。它會根據自定義規則或預設的安全策略來分析請求,並攔截潛在威脅。
優點
- 成本較低,部分軟體 WAF 是免費的
- 通常有友好的操作界面
- 功能豐富
缺點
- 誤殺&漏報
- 占用較多伺服器資源,可能影響性能
- 適合中小型網站,對大型流量的網站不太適用
3. 雲端WAF
通過雲服務提供商進行部署的,不需要在用戶的伺服器上安裝軟體或部署硬體設備。
實現方式 : 利用DNS技術,通過移交域名解析權來實現安全防護。用戶的請求首先發送到雲端節點進行檢測,如存在異常請求則進行攔截否則將請求轉發至真實伺服器。
優點
- 部署簡單,用戶無需維護硬體或軟體
- 雲端提供商會自動更新安全規則,用戶無需自行更新
- 可充當CDN
缺點
駭客如何攻擊破解WAF
-
模糊請求(Evasion Techniques)
利用異常格式的請求,來讓 WAF 無法正確解析,從而避開 WAF 的檢查規則。
-
編碼規避: 使用 URL 編碼、十六進制編碼或混合編碼來改變惡意數據的表現形式。如:將 / 用 %2F 或 ..%2F.. 等方式來隱藏目標路徑。
-
大小寫變換: 某些 WAF 無法識別不同大小寫的關鍵字,因此可以故意改變關鍵字的大小寫來繞過檢查。例如,把 select 改成 SeLeCt,可能繞過 SQL 注入檢測。
-
分段攻擊(Fragmentation Attack)
將攻擊請求拆分成多個片段,這些片段單獨檢查時不會觸發 WAF 的規則,但在伺服器上重新組裝後形成有效的攻擊。
-
分段注入: 駭客將一個完整的攻擊語句分成多個 HTTP 請求發送,WAF 可能無法辨別這些片段中的惡意內容,但伺服器在組裝後執行時會受到攻擊。很多人在遊戲內罵人為了躲避審查也會這樣做。
-
HTTP 協議異常使用
通過使用不常見的 HTTP 方法或特定的協議變種,來混淆 WAF 的檢測邏輯。
-
非標準 HTTP 方法: 例如使用 HTTP TRACE 或 OPTIONS 方法來發送惡意請求,因為 WAF 可能只針對 GET 或 POST 請求進行檢查,忽略其他方法。
-
HTTP 協議錯誤處理: 利用不標準的 HTTP 協議,例如非法的行結束符、異常的編碼等,讓 WAF 無法正確解析請求,從而避開檢查。
-
混合合法流量(Blending Attack)
將惡意請求隱藏在大量合法流量中,讓 WAF 難以區分出惡意請求。
-
高流量隱藏: 發送大量正常請求,並在其中混入少量惡意請求。這樣,WAF 可能難以有效區分和檢測,導致攻擊請求得以通過。
-
合法數據污染: 使用合法的參數夾帶惡意代碼,讓 WAF 以為這是一個合法請求。例如,在正常的查詢參數中混入一段經過巧妙編碼的惡意 SQL 查詢。
-
利用 WAF 的漏洞
WAF 本身可能存在漏洞,可以利用這些漏洞來發動攻擊。
-
WAF 配置錯誤: 如果 WAF 的規則過於寬鬆或配置不當,可以針對這些缺陷來發起攻擊。例如,一些 WAF 可能僅對公共 API 進行保護,而忽略了後端管理介面。
-
WAF 漏洞利用: WAF 本身的安全漏洞,例如某些 WAF 可能有遠程代碼執行漏洞,便可以利用這些漏洞來癱瘓 WAF,繞過其防禦。
-
內部攻擊
如果已經取得內部網絡的訪問權限,可以直接發起來自內部的攻擊。因為 WAF 通常用來保護外部流量,對內部流量的監控較弱。
-
內部後門: 一旦成功在內部安裝後門或獲得內部權限,便可以發起內部攻擊。
-
利用已授權用戶: 利用已取得合法憑證的帳號進行攻擊,這類流量通常被視為合法,不會受到 WAF 的攔截。
-
DOS 攻擊
使用大規模的 DOS(拒絕服務攻擊)來癱瘓 WAF,讓其無法正確處理請求。當 WAF 超負荷運作時,可能會放行某些本應該被攔截的惡意請求。