Web應(yīng)用防火墻是如何為客戶提供防護的
基于Web的應(yīng)用程序帶來的是,要求安全增值廠商和系統(tǒng)集成商為了web應(yīng)用防火墻一系列的服務(wù)增加對防火墻設(shè)備的安裝、配置和支持。防火墻產(chǎn)品因其協(xié)助遵從支付卡行業(yè)數(shù)據(jù)安全標準(PCI DSS)而獲得了關(guān)注(PCI法規(guī) 6.6要求機構(gòu)自身檢查web應(yīng)用程序的所有代碼,或者安裝一個Web應(yīng)用防火墻來防范已知的攻擊方式),對為其應(yīng)用程序提供web訪問的組織而言,它們已成為一種必須。
什么是Web應(yīng)用防火墻?
Web應(yīng)用防火墻是專門為保護基于web的應(yīng)用程序而設(shè)計的,它不像傳統(tǒng)的防火墻,基于互聯(lián)網(wǎng)地址和端口號來監(jiān)控和阻止數(shù)據(jù)包。一個標準的端口號對應(yīng)一種網(wǎng)絡(luò)應(yīng)用程序類型。例如,telnet接收發(fā)送到端口23的數(shù)據(jù)包,郵件服務(wù)器接收發(fā)送到端口25的數(shù)據(jù)包。
傳統(tǒng)的防火墻允許向郵件服務(wù)器相對應(yīng)的互聯(lián)網(wǎng)地址發(fā)送數(shù)據(jù),讓數(shù)據(jù)包通過25端口送達目的地。發(fā)送數(shù)據(jù)包給一個不是郵件服務(wù)器系統(tǒng)的互聯(lián)網(wǎng)地址和25端口,就是一個攻擊。防火墻會阻止這些數(shù)據(jù)包。
Web服務(wù)器理應(yīng)通過80端口傳送數(shù)據(jù)包。所以所有發(fā)給支撐web服務(wù)器系統(tǒng)80端口的數(shù)據(jù)包必須被允許通過防火墻。傳統(tǒng)的防火墻沒有辦法測定一個地址指向正確的數(shù)據(jù)包是否包含威脅,但Web應(yīng)用防火墻可以仔細檢查數(shù)據(jù)包的內(nèi)容來檢測并阻止威脅。
Web應(yīng)用程序如何遭受攻擊
黑客們不斷開發(fā)新的方法獲得未經(jīng)授權(quán)的Web應(yīng)用程序訪問,但是也有一些通用的技術(shù)。
- SQL注入:一些應(yīng)用程序通過復制Web客戶端輸入來創(chuàng)建數(shù)據(jù)庫查詢。黑客通過構(gòu)造一些應(yīng)用程序沒有仔細檢查和會被拒絕的字符串,來獲取返回的機密數(shù)據(jù)。
- 跨站點腳本:黑客插入腳本代碼(如JavaScript或ActiveX)到一個輸入字符串,導致Web服務(wù)器泄漏用戶名和密碼等信息。
- 操作系統(tǒng)命令注入:一些應(yīng)用程序從web輸入來創(chuàng)建操作系統(tǒng)命令,就像訪問一個文件和顯示文件內(nèi)容。如果輸入的字符串沒有仔細檢查機制,黑客就可以創(chuàng)建輸入來顯示未經(jīng)授權(quán)的數(shù)據(jù)、修改文件或系統(tǒng)參數(shù)。
- 會話劫持:黑客通過猜測基于令牌格式知識的會話令牌的內(nèi)容來獲得登錄會話的權(quán)利。這使得黑客能接管會話并可以得到原來的用戶帳戶信息。
- 篡改參數(shù)或URL:web應(yīng)用程序通常在返回的的web頁面中嵌入?yún)?shù)和URL,或者用授權(quán)的參數(shù)更新緩存。黑客可以修改這些參數(shù)、URL或緩存,使Web服務(wù)器返回不應(yīng)泄漏的信息。
- 緩沖區(qū)溢出:應(yīng)用程序代碼應(yīng)該檢查輸入數(shù)據(jù)的長度,以確保輸入數(shù)據(jù)不會超出剩余的緩沖區(qū)和修改相鄰的存儲。黑客很快就會發(fā)現(xiàn)應(yīng)用程序不檢查溢出,并創(chuàng)建輸入來導致溢出。
如何阻止web應(yīng)用攻擊
Web應(yīng)用防火墻檢查每一個傳入的數(shù)據(jù)包的內(nèi)容來檢測上述類型的攻擊。例如,web應(yīng)用防火墻會掃描SQL查詢字符串,來檢測和刪除那些導致返回的數(shù)據(jù)多余應(yīng)用程序要求的字符串。增值廠商應(yīng)仔細監(jiān)測新發(fā)展的攻擊類型并跟蹤檢測他們的最新產(chǎn)品。
Web應(yīng)用防火墻不僅檢測上述已知類型的攻擊,而且還監(jiān)測異常的使用模式來檢測目前未知的攻擊方法。例如,通常Web應(yīng)用程序與web客戶端的信息交流數(shù)量是有限的。如果Web應(yīng)用防火墻檢測到Web服務(wù)器正在返回一個比預期大很多的數(shù)據(jù)量,它就會及時切斷傳輸,以防止更多的數(shù)據(jù)泄露。
目前有基于軟件和基于應(yīng)用程序的web應(yīng)用防火墻。基于軟件的產(chǎn)品布置在Web服務(wù)器上,而基于應(yīng)用程序的產(chǎn)品放置在Web服務(wù)器和互聯(lián)網(wǎng)接口之間。兩種類型的防火墻都會在數(shù)據(jù)傳入和傳出web服務(wù)器之前檢查數(shù)據(jù)。
一般基于軟件的產(chǎn)品成本低于基于應(yīng)用程序的產(chǎn)品成本,基于軟件的產(chǎn)品供應(yīng)商聲稱這類防火墻具有更低的延遲和更高的吞吐量。但是在web服務(wù)器上安裝額外的軟件勢必會增加額外的處理負荷和系統(tǒng)上軟件的復雜性。
基于應(yīng)用程序的防火墻廠商聲稱,這類防火墻安裝和使用簡單,因為沒有額外的軟件安裝在Web服務(wù)器系統(tǒng)上。 Web服務(wù)器的性能不受Web應(yīng)用程序防火墻處理的影響。
除了商業(yè)產(chǎn)品外,也有許多開放源碼的Web應(yīng)用防火墻可用。這些產(chǎn)品成本低于商業(yè)產(chǎn)品(就開放的源代碼工具來說,他們是免費的,或者就基于開放源代碼的商業(yè)產(chǎn)品來說,極有可能降低成本)。過去開源代碼關(guān)注的是,黑客們將檢查代碼并設(shè)法逃避保護措施。有了應(yīng)用Linux這類開源代碼軟件的豐富經(jīng)驗,這些都不是什么問題。
所有的產(chǎn)品,不論是購買的還是開源代碼,無論是基于軟件的還是基于應(yīng)用程序的,都應(yīng)該得到支持。商業(yè)產(chǎn)品得到了供應(yīng)商的支持。開放源代碼為增值廠商和系統(tǒng)集成商提供了一個整合安全知識的機會。為 Web應(yīng)用程序防火墻提供持續(xù)的支持,確保合作伙伴與客戶保持密切的關(guān)系,給供應(yīng)商在未來為客戶提供更多產(chǎn)品和服務(wù)提供了機會。
因為每個客戶的環(huán)境和應(yīng)用程序設(shè)置是不同的,VARs和系統(tǒng)集成商必須評估每個客戶的獨特需求,以確定哪種類型的Web應(yīng)用防火墻將是最合適的。但是,毫無疑問所有客戶的Web應(yīng)用程序都應(yīng)該得到Web應(yīng)用防火墻的保護。如果用戶不理解這種需求或者不同意該做法,一定要介紹給他們Web應(yīng)用程序可能受到攻擊的多種方式。
仔細檢查應(yīng)用程序代碼是一種替代web應(yīng)用防火墻的方法。攻擊都是在編譯出錯或者缺乏內(nèi)部數(shù)據(jù)檢查的地方取得成功。從理論上來講,一個通過代碼檢查員逐行檢查過錯誤的web應(yīng)用程序,可以替代web應(yīng)用防火墻。
在實踐中,盡管軟件工程師通常不相信他們的代碼有缺陷,但對應(yīng)用程序的不斷更新使得詳細的代碼檢查變得幾乎不可能,更不用說代碼檢查員很容易的就會忽略不安全的代碼,特別是那些沒有安全背景的檢查員。此外,黑客技術(shù)迅速發(fā)展。網(wǎng)絡(luò)防火墻供應(yīng)商時時關(guān)注新攻擊類型的新聞、及時更新它們的產(chǎn)品。有些客戶可能覺得經(jīng)過代碼審查的程序可以使他們避免實施一個web應(yīng)用防火墻所帶來的花費和工作量,但解決方案供應(yīng)商應(yīng)幫助客戶認識到安全代碼審查只能帶來虛假的安全感,實際上并不能代替Web應(yīng)用防火墻提供的全面安全保護。
【編輯推薦】