阿碼外傳-阿碼科技非官方中文 Blog: 2008/9/5

2008年9月5日

你期望的WAF是?

這是一個重要的問題,尤其對我們而言。

網頁應用程式防火牆 (Web Application Firewall, WAF) 顧名思義,是用來保護網頁應用程式,對抗各式各樣針對網頁應用程式的攻擊的,當壞人的攻擊對象從網路轉向伺服器、再轉向應用系統,攻擊內容從網路層向上爬升到應用層時,好人的防禦措施也從防火牆、IDS逐步演進為 AP Firewall、IPS 等,而隨著 WWW 佔了極大量的網際網路服務比重與惡意攻擊比重,既有的對抗措施又不足以聚焦與回應針對 Web 的攻擊,才衍生出 WAF 這個特殊的資安產品類別。

我們從去年底推出網頁應用程式防火牆產品 SmartWAF,正式跨足 WAF 產品領域以來,可以看到客戶對 WAF 的期望:

1.簡單,好用 (那是當然的)
2.設定簡單(最好不用設定),免維護免管理,讓你忘了它的存在 (呃...)
3.防禦能力滴水不漏,刀槍不入

如果真的有那麼好就好了.....

系統在安裝佈署、管理維護、設定調校上的改進是各家持續努力的目標,這部份也是比較容易讓使用者感受到的效果。以 SmartWAF 來說,安裝系統用不到五分鐘就完成,加上基本的黑名單設定,不到十五分鐘便可佈署完成,怕誤擋還可以開成影子模式觀察有沒有誤擋的 Log ,而這僅僅需要十五分鐘的設定,就已經可以阻擋許多常見的網頁程式攻擊如 SQL Injection、 XSS 等,以及許多網頁弱點掃描程式的探測,而這時,還沒有使用到 SmartWAF 的白名單自動學習功能。

什麼? SmartWAF 有白名單學習功能?是唬爛的吧?

並沒有唬爛,只是我們的人在提供產品試用與操作說明時,的確很少使用到白名單自動學習功能,有些同業道聽塗說、以訛傳訛,還真的以為 SmartWAF 的白名單自動學習功能還在開發中,殊不知名為 Parameter Ruleset Creation Wizard 早已經可以從 HTTP Requests 自動學習並建立白名單,在最近推出的 SmartWAF v2.5 還新增了一個從 HTTP Responses 自動學習並建立規則的 Suggest Rules Wizard ,需要手動設定的部份又更少了!



而 SmartWAF 中的 Vulnerability Description Import Wizard ,可以將 CodeSecure 的源碼檢測報告直接匯入 SmartWAF 並產生出相對應的防護規則,直接針對弱點與弱點的進入點重點防護,更精準也更可靠。

以上的這些設定,總共設定起來也不到30分鐘(不含自動學習的期間),還沒有繁複的 Regular Expressions ,就可以將黑白名單設定完畢,常見攻擊也幾乎一網打盡,不知道這樣對使用者來說夠不夠方便了?

當然,還是會有觀察影子模式的紀錄中有沒有誤擋並且進行微調與排除的工作,這似乎很難避免,我們也在嘗試更好更快更簡單的方法,希望不久的未來就有新功能面世。

話說回來,當WAF設定了黑名單與白名單後,是不是就真的萬無一失、滴水不漏了?從 Wayne 之前發表的blog中(這裡這裡)就可以發現,BH & DC 都有講師提及 WAF 的使用限制,Arian Evans提的編碼問題就是一個例子,SmartWAF 可以解 URL Encoding ,但是如果碰上編碼過的 JavaScript ,尤其是多重編碼過的 JavaScript 也是沒輒,只能希望白名單能有效限制 XSS 的發揮空間了。

Wendel打穿 WAFWayne 的敘述)其實將 WAF 的限制整理的很好,例如他也有提到編碼,另外 XSS 的變形也是相當頭痛的,Rsnake 的 XSS Cheat Sheet 就列出了上百種變形攻擊的方法,要用黑名單窮舉是一件很要命的事,搭配白名單的限制功能也不容易完全防範,想要 100% Security,光靠 WAF 真的不容易,因為問題的根源還是在於程式的漏洞。

講到 Wendel 就先小小離題一下,他的觀念是對的,去利用這些跡象找出攻擊對象使用哪台 WAF 進行防禦,這是可以辦得到的,但是先決條件仍然是攻擊對象未妥善設定 WAF 。至於攻擊穿透 WAF 又是另一回事了,許多 WAF 的設定人員未必使用預設的規則來提供防護,加上白名單護體,就算知道攻擊對象用哪一種 WAF ,也未必就因此輕鬆穿了過去,即便是只有97%的防禦率,要真的能打穿也並不是就那麼的容易啊。

所以我們通常都跟客戶說的很清楚:『期望裝了 SmartWAF 後就天下太平,防火防水又防彈,網頁應用程式的漏洞也不用補,這樣有點不切實際,SmartWAF 的最大效益是可以爭取更多的時間,讓網頁應用程式漏洞有比較從容的時間修復,並且能夠顧及網頁應用程式以外的安全問題,例如 Session 、 Cookie 或 HTTP Method 等應用程式以外的安全問題。』在這樣的前提下, WAF 的防禦能力是否達到100%就不是最重要的事情了。

你期待的 WAF 又是什麼呢?

作者 Wisely 為 阿碼科技 產品經理

繼續閱讀全文...