隨著越來越的企業尋找著可部署在雲廠商環境中的應用程序,業界對於健全的安全措施與技術的需求也變得至關重要起來。
隨著越來越的企業尋找著可部署在雲廠商環境中的應用程序,業界對於健全的安全措施與技術的需求也變得至關重要起來。那麼,應當如何開發雲計算環境中的應用程序以便於實現安全性的最大化呢?這些雲應用是否有別於傳統的內部應用程序呢?在開發周期和質保(QA)過程中,需要有什麼樣的變化呢?在把應用程序遷往公有雲環境前,就必須解決所有上述這些問題。
在本文中,我們會提供指導,介紹如何特別地為更易於受到當今最常見攻擊的雲開發安全的應用。我們還將討論一些需要落實到位的控制措施以便於在應用開發和部署之後還能確保這些雲應用的安全性。
如何安全地開發雲應用
在企業一頭扎進雲應用開發過程之前,企業的安全團隊就應當鼓勵他們的開發人員摸索安全開發平台、編程安全產品以及由雲廠商所提供的相關工具。采用代碼安全措施和安全開發措施的平台即服務(PaaS)供應商的典型代表之一就是Salesforce.com的Force.com,他們在維基上有專門的一個頁面介紹開發人員安全與編程最佳實踐。Force.com的維基頁面對設計、開發、測試以及發布各個階段的安全問題分別進行了全面的概述,這基本上就是一個相當標准的軟件開發生命周期(SDLC)了。Force.com提供了一些最佳實踐的文章,一個可以幫助指導安全決策的自評估工具以及專供SDLC各個階段使用的特定工具。同樣,微軟公司也提供了一些適合開發人員使用的資源,其中包括該公司的“雲計算基礎”系列視頻。
如何基於網絡應用經驗開發雲應用
雖然有了這些可用的資源,但是目前還沒有任何一家雲廠商能夠提供所有的資源和其他的程序組件,以便於滿足在公有雲和混合雲環境中確保安全應用程序健全開發的需求。成功的安全雲應用開發要求我們能夠根據雲應用的風險特點采取有針對性的措施。安全開發的責任人應當把雲應用視為比標准內部應用程序更具開放性的開發對象。這是為什麼呢?首先,雲應用通常都存在於一個獨立於企業核心IT設備以外的環境中被托管和維護,因此與傳統的內部應用程序相比,企業對雲應用的控制權限更少。其次,大多數雲應用都是基於網絡的,這就意味著很可能需要面對各種各樣標准尚未流行的網絡應用程序的安全威脅,其中包括了跨網站的腳本程序、SQL注入以及目錄遍歷等。
一個信息安全團隊應當建議其開發人員認真考慮開放式網絡應用程序安全項目(OWASP)提出的十大網絡應用程序攻擊,然後在發布應用程序並部署至雲計算環境前開發和集成針對這些攻擊的緩解措施。很多網絡應用程序受到攻擊的主要原因就在於缺乏對輸入的過濾,所以開發人員應當嚴格定義應用程序可接受的數據類型、長度和格式。開發人員還應當小心謹慎,盡可能地避免在他們的雲應用中暴露應用程序編程接口(API)。一直以來,API濫用被雲計算安全聯盟列為雲計算的主要威脅之一。
雲應用安全性意味著認證和加密
鑒於雲應用游離於企業網絡和企業監控的范圍之外,要實現他們的認證和授權就必須施以更高強度的控制。開發人員應當確保認證頁面或接口能夠完全駕馭所有的應用程序內容和功能。賬戶劫持則是另一個常見的雲計算安全問題,所以開發人員可能需要實施一種比內部應用程序更嚴格的身份認證策略,他們應盡可能地充分利用多元認證方法、強大的密碼復雜性和長度策略。鑒於雲應用被托管在多租戶環境中,使用文件和應用程序級加密技術可能是非常適合的。雖然惡意合作租戶妥協方案的可能性是難以預料的,但是使用加密技術和認真審查庫及其他第三方代碼組件是可以遵循的穩健做法。
一個企業的現行SDLC也應適用於雲應用的開發和發布。在正式發布至雲計算平台前,應考慮強制性地仔細測試代碼和執行QA流程。由於考慮到雲計算資源固有的可伸縮性,應執行可用性測試、性能測試以及一定程度的壓力測試。
安全開發需要一定的時間
一般情況下,隨著企業越來越迅速地實施雲計算,目前業界已出現了一個快速開發程序(如Agile)的發展趨勢。除非企業能夠在開發項目的每個階段都能夠投入必要的時間和資源以確保代碼的安全性,否則這些希望實現他們雲應用安全性的企業就應當在交付這樣的應用程序時特別地審慎。顯而易見,當開發安全雲應用時,有大量的問題需要予以關注和解決,所以加快這一過程的後果只能是增加出現有問題應用程序的風險而已。