租用幫助
過去AWS一直提供一個空白的WAF過濾引擎,然后開放引擎給第三方傳統安全廠家如F5、Fortinet等安全公司。第三方廠家制作 Managed rules subscription,放在 AWS Marketplace 應用市場里邊出售訂閱規則。每個廠家發布的訂閱規則收費10~30USD每個規則。訂閱規則采用“黑盒”模式,即對外不公布規則內部本身有哪些防護能力,屬于廠家機密。這種方式的優勢:彈性好,處理能力強,可以與CDN、ELB等組件關聯,且天然高可用。
AWS WAF V2 Managed Rules :http://www.ukunilife.com/zt/2023-05-06/
注:這種實現方式,中國本土的幾家友商,一直在提供云廠商自己維護的規則列表,可以一鍵打開防護,不需要訂閱第三方。
EC2+AMI+硬件廠家的虛擬化版本
此外,AWS的另一種實現WAF的方式,是通過Marketplace購買AMI的方式。也就是在EC2虛擬機上運行一個軟件版本的防火墻軟件,即可以理解為F5、Paloalto等硬件盒子的虛擬機版本。然后,將流量通過NLB送給這個EC2實例,進行流量過濾和清洗,再將干凈流量送到應用服務器所在的EC2上。這種方式,可以享受到全功能的硬件體驗,硬件盒子的管理界面、功能配置都是高度一致的。這種方式的優勢:體驗與過去用硬件盒子高度一致,功能非常強大,廠家覆蓋全面,包括Cisco、Fortinet、Checkpoint、Paloalto等等一票國際大牌廠家。缺點:天然不高可用,需要多個EC2分別跑在不同AZ上實現高可用,還需要NLB調度流量,大帶寬處理能力受到EC2網絡限制。
注:這種實現方式,中國本土的幾家友商,提供的多為本土廠家的虛擬防火墻鏡像,例如深信服、綠盟等。
一、AWS新產品 – AWS管理的托管規則
在2019年底,AWS在以上第一種實現方式“空白WAF引擎+第三方托管的規則”的基礎上,發布了由AWS自行管理的訂閱規則,被稱為第二代WAF,即WAF V2。在這個版本上,WAF控制臺界面提供了一系列AWS自己維護的防護規則可以訂閱。這種實現方式,如此,大大方便了使用,不需要再去關聯第三方應用了。當然,這個訂閱規則也是黑盒模型,不對外公開具體規則列表。
于此同時,原先的合作伙伴的訂閱規則繼續存在,可以作為相互的補充。
二、Wordpress兼容問題
這個規則上線后,第一時間放到了wordpress上防護體驗,發現一些規則與wordpress不兼容,會影響正常使用,包括:發帖、上傳圖片等多種操作。錯誤現象可能表現為:發帖失敗報告無效JSON,上傳圖片失敗等。
排查錯誤是否是代碼錯誤還是WAF攔截可以從WAF控制臺引擎入手。如下圖所示,進入WEB ACLs界面,看到頁面下方會顯示最近近期規則攔截的情況(有幾分鐘延遲)。
查看日志可以通過源IP、訪問地址、時間來判斷是否是用戶正常訪問觸發、還是惡意攻擊掃描觸發、還是自己調適錯誤觸發。確定了要檢查的是那一條后,看其中rules規則,即是觸發攔截的規則。例如上圖中是“AWS#AWSManagedRulesCommonRuleSet#CrossSiteScripting_BODY”這一條。
接下來進去rules界面,找到觸發規則的“AWSManagedRulesCommonRuleSet”,在下面的截圖中處于最上方第一條。點擊右上角的Edit按鈕。
編輯界面下,從清單中,找到鏈接的規則,將其設置為override。如下截圖中還有一條紅色的也是類似方式檢查出來的規則需要被跳過。
此時還需要注意,編輯規則的頁面最上方還有一個統一的按鈕:Enable count mode。注意這個開關需要處于關閉模式。只修改下方單獨規則的跳過就可以,不要修改整個rule的actions。否則整個rule里邊所有規則都將變成只計數不攔截了。
點擊頁面最下方的保存。
現在,再去訪問Wordpress,嘗試剛才觸發攔截的操作,即可正常通過。
至此就給AWS WAF V2設置了針對的wordpress的bypass規則。