精品主題,實戰(zhàn)科普,最新行業(yè)熱點話題,隨時掌握云上咨訊。
先人一步的企業(yè)正開始采用安全編程方法和工具,在軟件開發(fā)生命周期的早期階段處理安全問題。MaaS360 by Fiberlink公司的信息安全官David Lingenfelter說:“如果企業(yè)組織在軟件開發(fā)生命周期的早期階段采用安全編程方法,安全問題就比較少?!?/span>
如何在開發(fā)生命周期之初改善軟件質(zhì)量
對大多數(shù)云軟件產(chǎn)品而言,開發(fā)和部署的節(jié)奏非常快,以至于如果在開發(fā)生命周期的開始階段不兼顧安全,代碼發(fā)布后,如果繼續(xù)進行安全測試,隨后會發(fā)現(xiàn)需要解決的問題?!斑@導(dǎo)致了第二次重大調(diào)整,沒有采用安全編程方法的公司不得不發(fā)布更多的安全代碼補丁,數(shù)量比改善產(chǎn)品的代碼變更還要多?!?/span>
實施安全代碼審查
一個合理的做法就是,一開始就執(zhí)行安全代碼審查。這有助于緩解新安全漏洞的一些威脅,無論是凈化數(shù)據(jù)還是核實輸入。這還可以幫助開發(fā)團隊確立一套合適的安全編程方法,從而有助于盡量減少風(fēng)險部位。此外,如果采用安全編程方法,發(fā)現(xiàn)和審查新安全漏洞的工作就不會淪為事后諸葛亮。
云應(yīng)用程序和服務(wù)極具競爭力,而云的本質(zhì)就是能夠迅速變化、適應(yīng)。這就需要迅速改變云服務(wù),以便與對手不相上下,或者領(lǐng)先對手一步。Lingenfelter說:“一大挑戰(zhàn)就是,安全的本質(zhì)就是增加了開銷,因為它延長了開發(fā)周期?!?/span>
這在傳統(tǒng)老牌企業(yè)可能是個比較大的挑戰(zhàn)。在項目啟動后整合安全,甚至在生產(chǎn)環(huán)境中整合安全會給現(xiàn)有環(huán)境帶來極大的破壞。這是由于,一開始可能會發(fā)現(xiàn)許多問題需要解決,不僅僅是代碼方面,還有可能是整個流程方面。需要得到管理層的認可,才能面對這一現(xiàn)實:給開發(fā)生命周期增添安全將會在整個流程中增添一些障礙。這可能會阻礙或者延長升階周期。別試圖一下子實施所有安全做法,而是要逐漸分階段實施。
將安全外包給PaaS
平臺即服務(wù)(PaaS)提供商OutSystems公司的產(chǎn)品戰(zhàn)略主管Sean Allen問道:“即使你讓開發(fā)人員重視安全,但是如果你迫于趕期限,最初注意的事項有哪些會在開發(fā)周期的后期階段也會注意到?要是根本沒有一套嚴格的程序,最初注意的事項(比如安全)就會被忽略,因為你要么沒有時間,要么認為這并不重要,或者是不想因浪費人才而分心?!?/span>
一種辦法就是考慮采用合適的應(yīng)用程序快速交付(RAD)平臺。這有助于趕在最后期限前完工,可以處理開發(fā)安全應(yīng)用程序的大多數(shù)繁瑣事務(wù)。現(xiàn)代的RAD平臺可以自動將安全納入到開發(fā)的應(yīng)用程序當中。
Allen說:“借助合適的基于云的安全RAD平臺(作為PaaS來提供),你就讓能自己準備好迎接最終的成功。你不僅一開始就奠定了安全基礎(chǔ),而且你開發(fā)的應(yīng)用程序一開始就考慮到了安全?!?/span>
使用云端代碼分析
就在不久前,企業(yè)組織要想確保其應(yīng)用程序的安全性,還不得不購買成本高昂的軟件包,并且安裝在企業(yè)內(nèi)部。Brian Russell是全美安全、健康和工程解決方案公司Leidos專門負責(zé)網(wǎng)絡(luò)安全解決方案的工程師,他說:“如今,靜態(tài)代碼分析、動態(tài)代碼分析和Web應(yīng)用程序安全測試之類的工作現(xiàn)在可以通過云來實現(xiàn),作為按需提供的服務(wù)?!彼€負責(zé)云安全聯(lián)盟(Cloud Security Alliance)的安全物聯(lián)網(wǎng)項目。
IBM和惠普等傳統(tǒng)的軟件質(zhì)量保證開發(fā)商分別通過各自的AppScan和Fortify產(chǎn)品線來提供這項服務(wù)。還有一些更新穎的方案,借助眾包專家來審查代碼,并提供發(fā)現(xiàn)的軟件缺陷方面的報告。BugCrowd就是這方面的一個典例。Russell解釋:“這些服務(wù)意味著,企業(yè)組織可以有效地外包這些關(guān)鍵的安全職能,不過有必要指出,企業(yè)自身仍然需要具備軟件開發(fā)方面的專長?!?/span>
SDLC期間的不同活動
Russell建議,一個好的做法就是明確劃定周期中每個階段的安全活動。在軟件設(shè)計階段,確保執(zhí)行威脅建模工作,發(fā)現(xiàn)代碼的高價值方面,了解數(shù)據(jù)流動情況,并深入了解某人有可能如何濫用應(yīng)用程序。
在開發(fā)階段,充分利用安全開發(fā)最佳實踐,比如代碼安全審查。Russell補充說:“采用結(jié)對編程之類的做法也是明智之舉,這同時帶來了功能和安全方面的好處,如果之前已有所投入,訓(xùn)練開發(fā)人員掌握安全編程做法,更是明智?!?/span>
新代碼進入到整合階段后,就要充分利用持續(xù)整合(CI)軟件來整合代碼,并且定期測試以查找軟件缺陷。在軟件開發(fā)生命周期(SDLC)的這個環(huán)節(jié),適合使用基于云的軟件保證服務(wù),其中許多服務(wù)直接整合到CI環(huán)境中。還有一些服務(wù)(比如Veracode提供的服務(wù))可以對二進制代碼執(zhí)行靜態(tài)分析,而不是非得提供整個代碼庫。Web應(yīng)用程序部署后,繼續(xù)使用基于云的服務(wù),這些服務(wù)可以定期掃描,查找運行中軟件所存在的安全漏洞。
Russell提醒道:“與軟件配套的安全基礎(chǔ)設(shè)施不應(yīng)該在最后擴充上去了事。就最初的架構(gòu)和實施而言,網(wǎng)絡(luò)防火墻、Web應(yīng)用程序防火墻和身份管理系統(tǒng)應(yīng)該是設(shè)計的一部分?!痹谶^去,由于這些安全硬件設(shè)備需要高昂成本,很難將這種安全基礎(chǔ)設(shè)施部署到開發(fā)環(huán)境中。
安全廠商們正開始擯棄資本成本高企的安全硬件設(shè)備,改用可以迅速部署、價格靈活的虛擬安全設(shè)備。這讓安全得以一開始就在云端成為開發(fā)流程的一部分。隨著開發(fā)人員編寫軟件、擴建系統(tǒng),虛擬安全環(huán)如同虛擬安全設(shè)備那樣已經(jīng)實施到位。Russell建議:“務(wù)必要與支持真正的動態(tài)云環(huán)境的安全廠商合作,那樣才能夠無縫、低成本地搭建安全基礎(chǔ)設(shè)施,以支持整個軟件開發(fā)生命周期?!薄?/span>