如何選擇:源代碼審查還是Web應(yīng)用程序防火墻
在你決定用源代碼審查或者Web應(yīng)用程序防火墻來(lái)滿足PCI DSS規(guī)則遵從的需求時(shí),我建議你抽點(diǎn)時(shí)間,全面了解一下PCI的Web應(yīng)用程序要求,包括澄清文檔(clarification documents),并考慮這兩種選擇應(yīng)該如何同你的架構(gòu)和資源結(jié)合起來(lái)。目前,企業(yè)有多種途徑進(jìn)行規(guī)則遵從,如果執(zhí)行恰當(dāng)?shù)脑?,任何一種選擇都可以幫助企業(yè)達(dá)到規(guī)則遵從要求,而且能夠提高Web應(yīng)用程序的安全性。
當(dāng)然,在應(yīng)用程序安全方面并不存在萬(wàn)全之策。除非你很幸運(yùn),既能進(jìn)行代碼審查又能運(yùn)行WAF,不過這樣做依然需要人工去完成。企業(yè)是否有員工可以完成以下工作:
配置和維護(hù)應(yīng)用層防火墻?
進(jìn)行代碼審查?
使用第三方漏洞監(jiān)測(cè)工具,并處理在審查中所發(fā)現(xiàn)的問題?
當(dāng)然,這個(gè)決定還要考慮架構(gòu),以及WAF與現(xiàn)有系統(tǒng)及設(shè)備的兼容性如何。其中一個(gè)需要考慮的因素(尤其是對(duì)那些傾向于使用第三方代碼審查的企業(yè)而言)是企業(yè)對(duì)其代碼狀態(tài)的滿意度如何。隨著時(shí)間的推移,支付卡應(yīng)用程序的開發(fā)可能會(huì)包含來(lái)歷不明以及目的不明確的遺留代碼。安全人員可能不想冒破壞任務(wù)優(yōu)先應(yīng)用程序的風(fēng)險(xiǎn)而刪除這些遺留代碼。在應(yīng)用程序前面放置一個(gè)防火墻可能會(huì)比在代碼審查中重寫程序成本要低,或者破壞性要小。
另一種方法是用威脅模型(threat modeling)來(lái)識(shí)別和評(píng)估應(yīng)用程序的風(fēng)險(xiǎn)。我們以三大關(guān)鍵風(fēng)險(xiǎn)為例,并確定哪些方法能***地處理它們:代碼審查、漏洞評(píng)估、WAF產(chǎn)品。但是請(qǐng)注意,部署WAF并不能減少你的安全軟件開發(fā)過程需求(要求6.3)!而應(yīng)用程序漏洞評(píng)估和代碼審查卻都能加強(qiáng)開發(fā)和質(zhì)量保證周期。
對(duì)于小型商業(yè)網(wǎng)站來(lái)說,上述選擇過于昂貴。所以,我建議把支付任務(wù)外包給第三方支付服務(wù)供應(yīng)商,不必?fù)?dān)心所有昂貴的安全要求,包括Web安全、以及實(shí)際的PCI DSS遵從等。只要你不處理任何卡支付,你就不需要遵從PCI DSS標(biāo)準(zhǔn)。
規(guī)則遵從與安全的權(quán)衡
不管你選擇什么方式,許多人都會(huì)爭(zhēng)論P(yáng)CI遵從是否同可接受的安全水平一致。負(fù)責(zé)安全的人員需要了解上述每種選擇的局限性和能力。源代碼分析本身可以進(jìn)行規(guī)則遵從,但它不是保障應(yīng)用程序安全的好辦法。事實(shí)上,沒有一種方法能完全保證所有的要求。PCI DSS側(cè)重于與PCI相關(guān)的支付卡應(yīng)用程序和組件,但它并不是以整體方式查看企業(yè)及其全部網(wǎng)絡(luò)操作,而需要在整個(gè)企業(yè)中全面部署安全措施。
即使有了PCI要求6.6信息補(bǔ)充的澄清說明,許多商戶還是不確定哪些行動(dòng)能夠很好地進(jìn)行規(guī)則遵從。這就導(dǎo)致了典型的規(guī)則遵從困境(compliance dilemma)。如果你要公布一個(gè)可以增加安全性的標(biāo)準(zhǔn),你就必須回答這個(gè)問題:“我必須做哪些工作來(lái)滿足這個(gè)標(biāo)準(zhǔn)?”而該問題又會(huì)迅速演變?yōu)椋?ldquo;滿足標(biāo)準(zhǔn)的最小工作量是多少?”如果你只是以“選中復(fù)選框并繼續(xù)”的觀點(diǎn)來(lái)看待PCI規(guī)則遵從的話,那么WAF將是快速、簡(jiǎn)單的選擇。
然而,PCI DSS的確給企業(yè)提供了創(chuàng)建安全架構(gòu)和業(yè)務(wù)模型的基礎(chǔ)。它還讓企業(yè)高層關(guān)注安全問題。如果你關(guān)心安全,那么遵從PCI要求只是順理成章的事情。在你的開發(fā)人員能夠安全編程之前,多層次的安全方案將永遠(yuǎn)是減輕風(fēng)險(xiǎn)的***方法,因?yàn)樵谶@種情況下,安全方案包括了代碼審查、漏洞評(píng)估和WAF產(chǎn)品。一旦漏洞掃描的結(jié)果整合到WAF的配置中,WAF將更加有效。這樣做將會(huì)為程序提供保護(hù),同時(shí)對(duì)源代碼進(jìn)行分析和修正,以消除漏洞。
在PCI審查之后,漏洞還會(huì)不會(huì)暴露出來(lái)?當(dāng)然會(huì),但是不會(huì)那么多,也可能不會(huì)那么嚴(yán)重。降低成本和商業(yè)因素可能導(dǎo)致低水平的評(píng)估和保護(hù),但在真實(shí)的商業(yè)世界中,安全必須引起人們的重視。
【編輯推薦】