本文介紹了阿里雲雲盾Web Application Firewall的Web攻擊防護最佳實務,主要從應用情境、防護策略、防護效果、規則更新四個方面進行介紹。
應用情境
Web Application Firewall(Web Application Firewall,簡稱WAF)主要提供針對Web攻擊的防護,例如SQL注入、XSS、遠程命令執行、Webshell上傳等攻擊。關於Web攻擊的詳細資料,請參考
OWASP 2017 Top 10。
说明 主機層服務的安全問題(例如Redis、MySQL未授權訪問等)導致的伺服器入侵不在WAF的防護範圍之內。
防護策略
Web應用攻擊防護功能預設開啟,並使用正常模式的防護規則策略。其中,
- 狀態
- 開啟表示WAF的Web應用攻擊防護模組已開啟。
- 關閉表示該防護模組處於關閉狀態。
- 模式:分為防護和預警兩種模式。
- 防護模式表示當遭受Web攻擊時,WAF自動攔截攻擊請求,並在後台記錄攻擊日誌。
- 預警模式表示當遭受Web攻擊時,WAF不會攔截攻擊請求,僅在後台記錄攻擊日誌。
- 防護規則策略:分為寬鬆、正常、嚴格三種模式,僅在啟用防護模式後生效。
- 寬鬆防護規則策略的防護粒度較粗,只攔截攻擊特徵比較明顯的請求。
- 正常防護規則策略的防護粒度較寬鬆且防護規則策略精準,可以攔截常見的具有繞過特徵的攻擊請求。
- 嚴格防護規則策略的防護粒度最精細,可以攔截具有複雜的繞過特徵的攻擊請求。
使用建議:
- 如果您對自己的業務流量特徵還不完全清楚,建議先切換到預警模式進行觀察。一般情況下,建議您觀察一至兩周,然後分析預警模式下的攻擊日誌。
- 如果沒有發現任何正常業務流量被攔截的記錄,則可以切換到防護模式啟用攔截防護。
- 如果發現攻擊日誌中存在正常業務流量,可以聯絡阿里雲安全專家溝通具體的解決方案。
- PHPMyAdmin、開發技術類論壇接入WAF防護可能會存在誤攔截的問題,建議聯絡阿里雲安全專家溝通具體的解決方案。
- 業務操作方面應注意以下問題:
- 正常業務的HTTP請求中盡量不要直接傳遞原始的SQL語句、JAVA SCRIPT代碼。
- 正常業務的URL盡量不要使用一些特殊的關鍵字(UPDATE、SET等)作為路徑,例如
www.example.com/abc/update/mod.php?set=1
。 - 如果業務中需要上傳檔案,不建議直接通過Web方式上傳超過50M的檔案,建議使用OSS或者其他方式上傳。
-
開啟WAF的Web應用攻擊防護功能後,不要禁用預設精準存取控制規則中的Web防護通用防護模組,如圖所示。
防護效果
開啟WAF的Web應用攻擊防護功能後,您可以在
頁面,查看攻擊的攔截日誌,如圖所示。
在
安全報表頁面,您可以查看昨天、當天、7天以及一個月內的攻擊詳情。同時,單擊
查看攻擊詳情,可以查看具體的攻擊資訊,如圖所示。
該截圖中的攔截日誌即為一條已被WAF攔截的SQL注入攻擊請求。
说明 如果您發現WAF誤攔截了正常業務流量,建議您先通過精準存取控制功能對受影響的URL配置白名單策略,然後聯絡阿里雲安全專家溝通具體解決方案。
規則更新
對於互連網披露的已知漏洞和未披露的0day漏洞,雲盾WAF將及時完成防護規則的更新,並發布防護公告。
該截圖中公告欄展示了針對weblogic遠程命令執行漏洞的防護規則的更新公告。
说明 Web攻擊往往存在不止一種概念證明方法(Proof of Concept,簡稱PoC),阿里雲安全專家會對漏洞原理進行深度分析從而確保發布的Web防護規則覆蓋已公開和未公開的各種漏洞利用方式。