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