當(dāng)談及安全性和云計(jì)算模型時(shí),平臺(tái)即服務(wù)(PaaS)有著它自己特殊的挑戰(zhàn)。與其他的云計(jì)算模型不同,PaaS安全性所要求的應(yīng)用程序安全性專(zhuān)業(yè)知識(shí)往往是大多數(shù)公司無(wú)法投入巨資就能夠擁有的。這個(gè)問(wèn)題很復(fù)雜,因?yàn)楸姸喙径际褂?ldquo;進(jìn)駐式”基礎(chǔ)設(shè)施級(jí)安全控制戰(zhàn)略作為應(yīng)用程序級(jí)安全性風(fēng)險(xiǎn)的應(yīng)對(duì)措施(例如,一旦應(yīng)用程序代碼發(fā)布生產(chǎn),使用WAF以緩解所發(fā)現(xiàn)的跨網(wǎng)站腳本程序或其他前端問(wèn)題)。由于缺乏對(duì)PaaS中底層基礎(chǔ)設(shè)施的控制,這一戰(zhàn)略在PaaS部署應(yīng)用中變得不具實(shí)際操作性。
考慮到PaaS與控制相關(guān)的靈活性,你必須對(duì)底層計(jì)算環(huán)境具有一定的控制能力。如同IaaS一樣,PaaS提供了近乎無(wú)限的設(shè)計(jì)靈活性:你可以基于社交網(wǎng)站構(gòu)建任何應(yīng)用,以實(shí)現(xiàn)內(nèi)聯(lián)網(wǎng)網(wǎng)站或CRM應(yīng)用程序。但是,與IaaS不同的是,應(yīng)用程序下的“堆棧”是不透明的,這就意味著支持應(yīng)用程序的組件和基礎(chǔ)設(shè)施都是(根據(jù)設(shè)計(jì))一個(gè)“黑盒”。也就是說(shuō),與SaaS類(lèi)似,安全性控制必須內(nèi)置于應(yīng)用程序本身中;但與SaaS中服務(wù)供應(yīng)商通常實(shí)施應(yīng)用于所有客戶的應(yīng)用程序級(jí)安全控制不同的是,在IaaS中安全控制措施是針對(duì)你的應(yīng)用程序的。這就意味著必須由你自己承擔(dān)責(zé)任以確定那些控制措施是合適的并執(zhí)行具體的實(shí)施。
這里的一個(gè)簡(jiǎn)單圖示,表明了模型與客戶之間的差異:
應(yīng)用程序設(shè)計(jì)靈活性
功能控制比
底層透明度
對(duì)于那些在應(yīng)用程序安全方面已投入巨資的組織來(lái)說(shuō),他們擁有固定滿編訓(xùn)練有素的開(kāi)發(fā)人員,獨(dú)立的開(kāi)發(fā)、測(cè)試以及生產(chǎn)流程,所以應(yīng)對(duì)PaaS安全性問(wèn)題應(yīng)該是駕輕就熟的。而那些還未作出這些投資的機(jī)構(gòu)可以遵循如下步驟,從而在一定程度上有助于應(yīng)對(duì)PaaS安全性的挑戰(zhàn)。
步驟一:建立安全措施
應(yīng)用程序安全性的根本挑戰(zhàn)遠(yuǎn)在PaaS實(shí)施前就已經(jīng)存在。因此,對(duì)于如何完善生產(chǎn)安全、魯棒的應(yīng)用程序的部署措施已有相當(dāng)?shù)难芯。有一個(gè)可提供直接支持的技術(shù)被稱(chēng)為應(yīng)用程序威脅建模。一些很好的著力點(diǎn)是OWASP威脅建模頁(yè)以及微軟公司的安全性開(kāi)發(fā)生命周期資源頁(yè)。從工具的角度來(lái)看,是免費(fèi)跨網(wǎng)站腳本(XSS)和SQL注入。擁有內(nèi)部工具的企業(yè)可以將其應(yīng)用于PaaS的安全性措施,或者眾多PaaS供應(yīng)商為客戶以免費(fèi)或打折的價(jià)格提供了具有類(lèi)似功能的工具。而當(dāng)企業(yè)希望使用一個(gè)更為廣泛的掃描策略時(shí),他們還可以使用諸如Google公司的skipfish這樣的免費(fèi)工具。
步驟二:掃描網(wǎng)絡(luò)應(yīng)用程序
眾多公司已經(jīng)接受了應(yīng)用程序掃描,這是一個(gè)用于解決通用安全問(wèn)題(例如跨平臺(tái)腳本(XSS)和SQL導(dǎo)入)的網(wǎng)絡(luò)應(yīng)用程序掃描工具。擁有內(nèi)部工具的企業(yè)可以將其應(yīng)用于PaaS安全性措施,或者眾多PaaS供應(yīng)商為客戶以免費(fèi)或打折的價(jià)格提供了類(lèi)似功能的工具。而當(dāng)企業(yè)希望使用一個(gè)更為廣泛的掃描策略時(shí),他們還可以使用諸如Google公司的skipfish這樣的免費(fèi)工具。
步驟三:培訓(xùn)開(kāi)發(fā)人員
應(yīng)用程序開(kāi)發(fā)人員完全通盤(pán)精通應(yīng)用程序安全性原則是非常關(guān)鍵的。這可以包括語(yǔ)言級(jí)培訓(xùn)(即他們目前用于構(gòu)建應(yīng)用程序所使用語(yǔ)言中的安全編碼原則)以及更廣泛的議題,如安全性設(shè)計(jì)原則等。由于開(kāi)發(fā)人員的減員和流動(dòng)性等原因,這往往要求培訓(xùn)必須定期重復(fù)并作為常態(tài)保持下去,所以開(kāi)發(fā)人員應(yīng)用程序的安全性培訓(xùn)成本可能是較為昂貴的。幸運(yùn)的是,還有一些免費(fèi)的資源,例如Texas A&M/FEMA國(guó)內(nèi)防備校園計(jì)劃提供了一些安全性軟件開(kāi)發(fā)的免費(fèi)電子學(xué)習(xí)資料。微軟公司也通過(guò)其Clinic 2806提供了免費(fèi)培訓(xùn):微軟開(kāi)發(fā)人員安全性知道培訓(xùn),這是一個(gè)開(kāi)始你自己定制程序有用的入門(mén)級(jí)培訓(xùn)材料。
步驟四:擁有專(zhuān)用的測(cè)試數(shù)據(jù)
這樣的情況總是在不斷發(fā)生中的:開(kāi)發(fā)人員使用生產(chǎn)數(shù)據(jù)進(jìn)行測(cè)試。這是一個(gè)需要正確認(rèn)識(shí)的問(wèn)題,因?yàn)闄C(jī)密數(shù)據(jù)(例如客戶私人可辨識(shí)的數(shù)據(jù))可能在測(cè)試過(guò)程中泄漏,特別是在開(kāi)發(fā)或試運(yùn)行環(huán)境中并沒(méi)有執(zhí)行與生產(chǎn)環(huán)境相同的安全措施時(shí)。PaaS的環(huán)境敏感性更甚,而眾多PaaS服務(wù)更易于實(shí)現(xiàn)部署、試運(yùn)行以及生產(chǎn)之間的數(shù)據(jù)庫(kù)共享以簡(jiǎn)化部署。如開(kāi)源Databene Benerator之類(lèi)的工具可以產(chǎn)生符合你數(shù)據(jù)庫(kù)特定結(jié)構(gòu)的高容量數(shù)據(jù),而數(shù)據(jù)格式調(diào)整有助于擁有專(zhuān)用的生產(chǎn)數(shù)據(jù)。通常,這些處理是屬于特定框架的,因此你需要留意找出一個(gè)能夠在你的特定環(huán)境中正常工作的。
步驟五:重新調(diào)整優(yōu)先級(jí)
這最后一個(gè)步驟是你可以實(shí)施的最重要的一個(gè)步驟。既然PaaS可能意味著一種文化和優(yōu)先級(jí)的調(diào)整,那么相應(yīng)地接受這一調(diào)整并將其真正納入自己的思想行為體系中。使用PaaS,所有都是與應(yīng)用程序相關(guān);這意味著組織的安全性將高度依賴(lài)于組織中的開(kāi)發(fā)團(tuán)隊(duì)。如果這不是PaaS的問(wèn)題,那么這將會(huì)是一場(chǎng)噩夢(mèng)了,因?yàn)樵诨A(chǔ)設(shè)施級(jí)你無(wú)法實(shí)施多少措施以緩解已識(shí)別的風(fēng)險(xiǎn)。如果你一直以來(lái)都是依賴(lài)于基礎(chǔ)設(shè)施級(jí)的控制以滿足在應(yīng)用程序級(jí)的安全挑戰(zhàn),現(xiàn)在是時(shí)候重新考慮。