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