https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

導入WAF成功關鍵 成事在人

2009 / 07 / 27
吳依恂
導入WAF成功關鍵 成事在人

由於網站攻擊成主流,不安全的程式碼漏洞將導致網頁「包藏禍心」,除了使用Code Review產品來協助修改程式碼之外,用作過濾、阻擋的網頁應用程式防火牆也就成了最快速提供解決方式的產品。

近來網頁應用程式防火牆可以說是一個相當熱門的議題,各家大廠包括入侵防禦廠商、UTM廠商、負載平衡設備等紛紛推出相關的解決方案,其原理與功能多有差異。

自網頁應用程式防火牆(WAF, Web Application Firewall)於05年進到台灣市場以來,由過去的每年約1家企業導入,到近年來每年約5家企業導入,WAF在台灣的市場正在逐漸走向它的巔峰期,Forrester Research的報告中呈現的是國外的市場規模(如圖),因此大略可推估出台灣市場約在此圖中07年的位置,預估尚有2年持續向上攀升。而有此需求的企業多半是倚賴Web Service甚深的線上購物、遊戲、網銀等,更由於該產品所費不貲,自然在台灣市場受到一些限制。此外,敦陽科技資安服務處資安顧問劉俊雄提到,近來由於政策使然,教育界對該類產品出現不少需求,這也是當初所沒有想到的。

WAF選擇的正確觀念 認清需求與限制

使用者在選擇WAF的時候,一來會有錯誤的認知,麟瑞科技產品應用開發處產品經理田習庸說,有些使用者其實也會搞不清楚自己的需求在哪,覺得WAF這樣東西炒得火熱就想要選購看看,不過,有時候可能只是client端的需求,以傳統防火牆的觀念來思考,把它當成網頁內容過濾的工具。

再者,許多單位會找WAF工具來測試,通常都是因為真正出過事情。若是在上線的狀況,當正常行為被擋下來時,就會有人反應出現異常或是直接追蹤block log裡有沒有正常行為被誤判。但在測試過程當中user通常怕會影響到線上服務,因此往往會要求不要開block功能,而只是單純的監控。在進行概念驗證(POC, Proof of concept)的過程中,因為沒有真正的攻擊者存在,就看不出效果,無法瞭解到實際誤判率的狀況,一方面也因為網站過於複雜,一定會有比IPS還要高的誤判率,舉傳統的防火牆例子來說,擋掉常見的攻擊port然後其他全開,以及自己設定要開的port然後其他全關。這時候WAF是以黑、白名單哪個為主?哪個為輔?這時就會出現差異性了,無論如何在佈署時如何透過學習降低誤判率就是一個導入WAF的大重點。

WAF定義及主要功能

而何謂網頁應用程式防火牆?IT人員或許知道卻不熟悉,有些管理階層甚至尚未聽過。簡單的說,它專門處理網頁上的流量控管,如HTTP以及HTTPS連線。除了可以透過單一硬體設備來佈建,亦可在建置在網站伺服器上運作,大部分的WAF皆包括對HTTP/HTTPS協定的強化、異常連線的過濾,其他的保護方式還包括了URL正規表示式和黑/白名單,其中,白名單功能雖然會導致導入的複雜度以及影響效能,不過卻也提供良好的安全功能。此外還有記錄部分的工作流程,像是依進出的HTTP/HTML以追蹤網站的存取行為,自動學習功能以自動更新安全政策,能夠防禦OWASP TOP10和SQL Injection、Cross Site Script等常見的多種網站入侵行為。

WAF可分成網路型硬體設備以及主機式軟體,前者為獨立出來的硬體設備,配置方式可有旁路監聽或在線部署,後者則是將軟體安裝在原有的Web Server設備上,幾乎不用動到原有的網路架構,不過吃的資源當然是來自Web Server。動力安全資訊技術總監盧亞德說,大部分SI會建議客戶導入硬體式WAF的原因是評估到風險問題,將軟體WAF裝設到客戶端,屆時可能會有責任劃分的問題,例如某些公司比較核心的伺服器都不允許裝代理程式了,更何況是WAF,應用程式跟應用程式之間的衝突是很難去釐清的,有可能會因為應用程式之間共用某些DLL檔或Service Port衝突,當它沒辦法證明不會受到影響時就只好釐清、隔離,把不重要、不需要的先移除。而在營運上若很仰賴網站服務的企業,通常都會考慮到將WAF建在網站伺服器上也會耗掉伺服器的資源,可能會造成網站伺服器不穩定等問題。不過若有成本或稽核考量的企業,泰半還是會選擇使用軟體式WAF,一台WAF硬體設備並不便宜,約要百萬新台幣,中小企業多半負擔不起。

以功能上來考量,有幾家廠商是對HTTPS作即時分析並阻擋,這是因為內建硬體SSL處理晶片,所以能夠直接做,而不至於影響效能,但純軟體式的就只能先放過,然後丟在buffer慢慢分析。

WAF的變化與組合 不同的附加價值

目前在WAF市場上,網路型硬體設備依然是較為主流且大宗的選擇,以下表格我們羅列一些目前市場常見的廠商。 (表標:WAF類別.doc)

如果我們要將WAF以功能特性來分,在不同產業裡,的確會有一些差異,但這些差異大的部份並不在WAF本身功能,而是端看它能夠結合的其他功能。由表中我們可以看出幾種主要的類型:硬體式設備的有單純作WAF的產品,目前在台灣市場僅有Imperva,其有別於其他競爭對手之處其中有一是可以做資料庫的稽核,因此像是金融單位,可能會喜歡能夠同時作資料庫稽核的功能、整合;應用程式傳遞功能類的,例如網站多、大的企業,就可能需要同時作LB,入口網站或購物拍賣網站,可能會作更深入的應用程式傳遞需求;至於IPS/UTM裡的簡單WAF功能類,可能是極小的單位或缺乏IT資源、人力的單位,使用UTM裡的部份模組功能,一併達到小部份WAF需求;以及裝在網站伺服器主機、proxy server上的軟體式,可能適用中小型企業或網站伺服器數量少的單位;以及特殊應用的XML Firewall,則是應用在不一樣的場合,一般網站都是標準的HTTP/HTML,該產品則是針對Web Service/XML,與WAF差異較大。

使用者測試經驗分享導入重點

一名資安人員與我們分享他的經驗。

「當初測到WAF是知道有這東西,想測試看看,注意的重點優先順序是1.對現有網站效能影響,看看呈現出的結果。2.產品功能是否完善,是否真像SI說的那麼天花亂墜?3.系統整合流程,看看真要搞這東西要花多久時間來準備 4.價格。報表當然也是個重點,因為那是唯一能拿出來和老大要錢買東西的籌碼啊!」

由於WAF採行的原理就是透過它的機器去過濾每一個HTTP Request,在內容龐大且瀏覽人數高的網站架構下使用,因此不免會存在效能瓶頸的問題,在該名資安人員測試的結果下,儘管是測硬體式WAF,在該公司的網站架構下依然效能不彰。他覺得網站是必須重視,也非常重要的一環,不過XSS、SQL Injection等等這些網頁弱點,在根本上還是要由網頁程式碼來改善,在寫Code時就應該把這些問題考慮進去,而不是在問題發生後才靠系統來擋。WAF是一種過渡時期的東西,是迫於現狀所產生的應急方案,對於眼下的網頁應用程式漏洞不見得能完全有效的阻絕掉。

儘管資安人員有此理念,但該公司的網頁應用程式開發工程師們顯然不怎麼配合,認為抵擋威脅是資安人員應當作的事,怎麼會把工作丟到程式開發上來?如果程式開發人員不願意配合程式碼的改善,看來他所謂的過渡期也不會太短。

最後該公司的結論是,由於在前次測試時遇到嚴重的效能瓶頸,所以最後採取的方式是透過Code Review及內部自己定時的黑、白箱測試來降低網站弱點威脅。透過該公司現有的人力資源運用上,來彌補這個問題的,所以在評估後暫時不打算使用WAF這類的產品。

然而他也坦承,資訊安全這東西誰都說不準,或許那一天遇到某些安全事件排除不了,迫在眉睫之下的解決之道,也可能就真的只能將WAF的環境建置起來。更由於Web Application Vulnerability是未來的趨勢,也是一塊市場大餅,目前WAF依然是唯一可以拿出來應急的解決方案。

從使用者經驗,可看出幾個導入重點:價格、效能、功能、報表。預算當然決定了一開始的大方向,若沒有充足預算,能夠選擇的產品就很有限了,尤其是硬體式WAF的價格難免會讓人裹足不前,至少都要1~2百萬,一般企業通常會比較難一次買2台來做HA(High Availability)或LB(Load Balance)。效能,產品能提供的佈署模式-reverse proxy、in-line、sniffer,以及user「可以」佈署的模式,加起來是否能產生出最不影響web service效能的條件。功能,產品名稱都冠上「WAF」,基本功能或許都有,但是做到的程度究竟有多少?以及其附加價值,可搭配資料庫安全使用?可在網路功能上做加值?讓使用者寫入的規則具有彈性?報表,有時候會有主觀上的偏好,或客觀的要求,例如有人有法規上的需求,選擇能夠立即產生符合法規需求報表的產品,使用者越省事,也有的只是單純想做一些統計、找出攻擊的來源或目標等等,因此只要透過客製化,將該產品的log匯出後再產生需求報表,亦能符合需求。

導入廠商技術能量 決定了WAF穩定與否

正由於各家廠商採用不同的架構、切入點去達到過濾、阻擋的目的,因此各家導入廠商如何有效運用產品,也成了導入成功與否的重要因素。不管是原廠、經銷商或系統服務整合商,負責導入WAF的廠商,通常都佔了成功與否關鍵的7成左右,餘下的3成則為使用者自身的條件,而當然,使用者在相關的技術層次上若越不成熟,此時廠商專業與否則更顯其重要性。因此良好的廠商應當具備熟悉市面上現有的產品設備之外,更需同時兼備瞭解web security以及application security的領域知識。

微調是WAF重要的關鍵,一般都會有維護上的問題,例如說誤擋或漏擋的時候怎麼辦?這多半需要靠人工和技術,當WAF裝上去之後,通常只要網頁一更動,如果WAF沒有學習好的話可能就會擋到,這時就需要一個懂得正規表示法(RE, Regular Expression)的人力來處理,例如說URL的後面接了一些參數,透過正規表示法來寫特徵碼,表現出哪些參數可以?哪些不行?除了要會正規表示法,同時也要看得懂攻擊手法,這些動作通常都是透過維護廠商來做,一來有其技術門檻,二來通常使用者也沒有時間學習或微調。

漢昕科技產品技術經理蔡和燁提到,若買了很好的設備卻選錯維護商,就會無法發揮其功效。要看WAF是否穩定,跑得順不順,就知道廠商功力如何,假設網頁後台突然被擋住了,打電話請廠商處理,結果搞了半天或是要一整個下午才能弄好,可能就是微調能力比較差,目前市場商各SI之間還是有一定的差異性存在,一般的SI都是裝機工程師,但如果是懂正規表示法,可以寫程式的,可能是較有功力的。一般若MIS功力不錯的都可以先拿免費版的來試用,由於是開放原始碼,自然也有許多人提供特徵碼,不過要是通通都放進去,就會造成效能變差,而好的WAF雖然特徵碼不多,但大部分的主流攻擊都能夠阻擋掉,因此使用者也可以等到有預算或需求明確了再換更專業性的產品。

當WAF裝上去之後,就要讓它學習正常的網站作業流程,例如說跑一個正常的下訂單過程,這些自動學習到的成果就是白名單的一部分,但亦有可能學習到錯誤的動作,因此要能適時的排除,雖然有經驗的廠商或許可以提供一些範本來修改,不過由於每家網站寫法不同,白名單依然會是客製化程度較高的部分,並不像黑名單一樣可以直接套用。一般來說白名單功能較強,雖然防禦效果較好,但是設定上也較複雜,因此若企業的資安能量,也就是IT人員技術較強可考慮選擇白箱為主比較好反之亦然

而理論上白名單應該是要由甲方,也就是企業本身處理掉的,因為他們應該會比較熟悉自家網站的架構,但現實狀況中多半是由SI廠商來處理。這時便是考驗SI導入經驗的時候了,有些使用單位環境單純,光是廠商提供的黑名單就就很夠用了,而有些使用單位可能由於網路環境架構特殊,例如早期某些疊床架屋的網站架構可能作法是錯的,但已經沒辦法修了,只好維持現況,讓其它設備去配合。如此,在導入過程中較容易遇到誤判的情形,這時候就需要廠商根據經驗以及W3C分析的能力來協助找出問題點,並且做policy的修正。

由以上看來,要導入WAF的成功關鍵,還在於維護廠商是否具有良好的微調能力,確實發揮產品的功效。