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