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