DevOps如何在不犧牲安全性的情況下遷移到云端
企業(yè)采用DevOps意味著開發(fā)進行將比以往任何時候都要快。那么如何確保一切都是安全的,尤其是將業(yè)務(wù)遷移到云端時?行業(yè)專家對如何在不留下大量安全漏洞的情況下保持一切順利進行了研究。
為了讓企業(yè)在未來幾年蓬勃發(fā)展,業(yè)務(wù)可能會以云計算為基礎(chǔ)。亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)公司自從2002年推出公共云以來,云計算業(yè)務(wù)成為企業(yè)的主要增長領(lǐng)域。
調(diào)研機構(gòu)Gartner公司預(yù)測, 2022年全球云計算服務(wù)市場規(guī)模和增長率幾乎是整體IT服務(wù)的三倍。云計算服務(wù)無疑正在顛覆各個行業(yè)的發(fā)展,越來越多的企業(yè)采用云優(yōu)先戰(zhàn)略。
如今,數(shù)字化轉(zhuǎn)型正在引領(lǐng)企業(yè)的業(yè)務(wù)增長,云計算加速了這一轉(zhuǎn)變,簡化了流程,促進了團隊之間的協(xié)作。云計算的作用還包括:
- 使用開發(fā)和運行應(yīng)用程序所需的按需計算能力替換昂貴的硬件,并降低相關(guān)的管理和運營成本;
- 使應(yīng)用程序和底層微服務(wù)能夠快速擴展,而無需鎖定任何特定的硬件配置。
- 簡化IT管理選項,同時提高內(nèi)部IT基礎(chǔ)設(shè)施的可靠性。
盡管如此,像任何革命性的轉(zhuǎn)變一樣,云遷移也會帶來影響人們應(yīng)該如何安全地推進業(yè)務(wù)的變化。
了解云原生架構(gòu)的影響和新的安全挑戰(zhàn)
企業(yè)首先需要了解云計算將如何影響DevOps和安全環(huán)境。云計算架構(gòu)如何改變業(yè)務(wù)具有兩個重大影響、相互依存的趨勢:基于新架構(gòu)的技術(shù)催化劑,以及業(yè)務(wù)流程挑戰(zhàn)將如何在基礎(chǔ)設(shè)施中引起反響。
云端的技術(shù)挑戰(zhàn)
云計算是一種技術(shù)性的游戲改變者。由于傳統(tǒng)的安全問題讓位于云中出現(xiàn)的新安全概念,因此需要權(quán)衡利弊。從良好的一方面來說,云計算將擴大業(yè)務(wù)規(guī)模,并要求運營團隊學(xué)習(xí)更多的專業(yè)知識。
解決首席技術(shù)官和首席安全官及其內(nèi)部團隊以前必須承擔(dān)的許多問題。構(gòu)建、維護、保護計算資源的物理設(shè)施不再是開發(fā)成功的試金石。例如,一旦遷移到云端,就不必擔(dān)心備份是內(nèi)部部署還是外部部署。然而,云計算帶來了一些顯著的安全挑戰(zhàn):容器安全性以及管理員不斷發(fā)展的IT專業(yè)知識。
新環(huán)境要求更多地依賴API。但是,傳統(tǒng)的解決方案并不是為處理API級的漏洞而設(shè)計的,而且隨著API的發(fā)展,網(wǎng)絡(luò)攻擊變得越來越復(fù)雜。企業(yè)需要管理和傳遞復(fù)雜的數(shù)據(jù)結(jié)構(gòu),執(zhí)行應(yīng)用程序邏輯,并在各個容器之間提供流量,從而協(xié)調(diào)操作Web應(yīng)用程序。此外,還有許多類型的API:面向用戶的API提供在瀏覽器中顯示的信息;東西流量API將應(yīng)用程序和微服務(wù)連接在一起;服務(wù)API允許監(jiān)視、警報和應(yīng)用程序管理;移動后端API使設(shè)備,如iPhone等真正智能化設(shè)備。還有一個完整的第三方生態(tài)系統(tǒng),它完全通過API提供數(shù)據(jù)服務(wù)。例如,任何移動應(yīng)用程序或網(wǎng)站現(xiàn)在都可以以適中的費用訂閱API,向應(yīng)用程序提供天氣或交通信息。
API是現(xiàn)代體系結(jié)構(gòu)的基礎(chǔ),并滲透到處理最敏感數(shù)據(jù)的應(yīng)用程序中。但是,API使用不同的語言或協(xié)議,這使得它們很難監(jiān)控。這就是為什么有API優(yōu)化的安全性是至關(guān)重要的,以確保內(nèi)部API和任何傳入數(shù)據(jù)都被仔細監(jiān)視和標記,并且問題得到適當(dāng)?shù)膬?yōu)先處理和解決。
新體系結(jié)構(gòu)面臨的另一個主要挑戰(zhàn)是對容器和微服務(wù)的依賴。像Kubernetes這樣的微服務(wù)管理系統(tǒng)簡化了遷移。它們可以在私有云和公共云中使用,如Google、Azure或Amazon。盡管如此,這些系統(tǒng)有自己的一套安全概念。例如,即使企業(yè)的入口控制器上安裝了一個解決方案,也需要確保它能夠跟上流量和云計算規(guī)模的自動擴展。但沒有人愿意為了速度犧牲安全。
此外,云計算的靈活性意味著,管理對基礎(chǔ)設(shè)施的訪問可能是一個挑戰(zhàn),而訪問云計算管理層可以獲得控制權(quán)。重要的是要確保訪問點的安全并限制共享憑據(jù),以避免它們受到危害。與其為根帳戶創(chuàng)建訪問密鑰,不如實現(xiàn)可靠的基于角色的訪問控制(RBAC)。
最后,采用者對安全工具和最佳實踐的關(guān)注不夠。如今出現(xiàn)了很多新興技術(shù),使得保護這一新的計算前沿變得復(fù)雜起來??焖俨捎玫膯栴}在于,這些新技術(shù)、基礎(chǔ)設(shè)施以及更大數(shù)量的工具和第三方并不是既定課程的一部分,很少有人了解大局或細節(jié)。
適用于云計算的新DevOps
除了技術(shù)革新之外,云計算還與業(yè)務(wù)流程的重大變化和挑戰(zhàn)緊密相關(guān)。
云計算和特定DevOps流程的加速演變是相關(guān)的。為了真正解決云中的安全問題,人們必須解決安全性如何與現(xiàn)有DevOps工作流程集成的問題。
快速的開發(fā)周期意味著預(yù)測和引入生產(chǎn)需求以及不可能提前測試。在采購過程中的一切操作,從物理服務(wù)器的部署到基本的訂購,都必須跟上發(fā)展。因此,DevOps是一種自然的合并。
云計算的靈活性是處理不可預(yù)測的服務(wù)器負載和架構(gòu)、最終用戶以及從持續(xù)集成(CI)/持續(xù)交付(CD)變量的推動因素。如果沒有內(nèi)部部署和公共云架構(gòu)的必然結(jié)果,很難想象持續(xù)集成(CI)/持續(xù)交付(CD)的發(fā)展速度。但這些快速的持續(xù)集成(CI)/持續(xù)交付(CD)流程正在改變業(yè)務(wù)預(yù)期,并加強了向市場交付的競爭。
更快的開發(fā)周期對業(yè)務(wù)的技術(shù)影響不容忽視。企業(yè)了解到保險公司可以提供數(shù)據(jù)保護網(wǎng)絡(luò)保險,并尋求有助于量化違規(guī)風(fēng)險和安全保護質(zhì)量的答案。人們認為監(jiān)管討論將會影響技術(shù)采購和地理位置。即使企業(yè)向開源社區(qū)投入數(shù)十億美元的研發(fā)費用,有關(guān)安全責(zé)任和影響的問題仍然存在。
對于他們來說,企業(yè)團隊必須優(yōu)先考慮安全和組織內(nèi)的最佳實踐。DevOps團隊可能會抵制這些變化,因為他們必須獲得新的技能集才能安全有效地管理DevOps和持續(xù)集成(CI)/持續(xù)交付(CD)流程。但是,企業(yè)的整體安全健康取決于每個人理解他們在安全意識和維護等方面的作用。
為了跟上快速持續(xù)集成(CI)/持續(xù)交付(CD)工作流中業(yè)務(wù)和技術(shù)轉(zhuǎn)型的一致性、安全性必須適應(yīng)云計算。它不僅必須部署在新技術(shù)架構(gòu)的關(guān)鍵領(lǐng)域,還必須與新的業(yè)務(wù)實踐相結(jié)合。安全性必須與云計算本身一樣靈活,響應(yīng)迅速,并且功能強大。
誰需要負責(zé)云計算安全?
遷移到云端的最明顯轉(zhuǎn)變是外包。企業(yè)的物理硬件和數(shù)據(jù)基礎(chǔ)設(shè)施不再完全屬于其職權(quán)范圍。當(dāng)數(shù)據(jù)通過基礎(chǔ)設(shè)施即服務(wù)(IaaS)或平臺即服務(wù)(PaaS)時,那么誰需要負責(zé)安全性?
企業(yè)與云計算提供商合作可以將二者之間的安全責(zé)任分開。企業(yè)團隊需要了解他們負責(zé)保護的整體解決方案,以及保護這些解決方案的最佳實踐。
總體而言,云計算提供的強大功能和敏捷性正在加快開發(fā)周期,使新的更改不能影響安全性。這就是開發(fā)周期包含安全基礎(chǔ)設(shè)施和最佳實踐的重要性的原因。
例如,企業(yè)不知道需要重點保護哪些基礎(chǔ)結(jié)構(gòu)層,這可能會導(dǎo)致發(fā)生數(shù)據(jù)泄露等事件。根據(jù)Verizon公司2019年數(shù)據(jù)泄露的調(diào)查報告,企業(yè)內(nèi)部員工所犯的錯誤占所有數(shù)據(jù)泄露事件的34%。這些違規(guī)行為給企業(yè)帶來了慘重的財務(wù)和聲譽損失,而中小型企業(yè)難以承受這些損失而破產(chǎn)。
技術(shù)解決方案還有助于了解DevOps工作流程的緊迫性,并幫助將安全測試和解決方案集成到工具鏈和工作流程中。但是,這些工具和解決方案最終將依賴于DevOps內(nèi)部的安全措施,而不是單獨的安全團隊。
云計算提供商在安全責(zé)任和客戶端責(zé)任方面的份額
企業(yè)與公共云提供商合作的一個主要好處是,提供商非常重視安全性和合規(guī)性。云計算提供商在保護云計算環(huán)境方面投入了大量資金,以確保比內(nèi)部部署環(huán)境更安全。公共云提供商運營和管理服務(wù)器位置、硬件本身、主機操作系統(tǒng)、虛擬化層的物理訪問安全性。或者簡而言之,它提供為企業(yè)業(yè)務(wù)服務(wù)的基礎(chǔ)設(shè)施。
DevOps團隊負責(zé)保護企業(yè)數(shù)據(jù)、操作系統(tǒng)、應(yīng)用程序邏輯和端點。雖然與云計算提供商分擔(dān)安全責(zé)任可以減輕管理負擔(dān),但重要的是使持續(xù)維護成為持續(xù)集成(CI)/持續(xù)交付(CD)流程的一部分,而不只是依靠云計算提供商來處理。另外值得一提的是,使用開源組件的開發(fā)人員必須維護這些資源,以確保不會帶來漏洞。這可以通過運營發(fā)現(xiàn)來識別和跟蹤所有開源組件來完成。
為了根據(jù)不同組織的特定需求提供量身定制的服務(wù),云計算提供商提供了幾種云計算模型,包括軟件即服務(wù)(SaaS)、平臺即服務(wù)(PaaS)和基礎(chǔ)設(shè)施即服務(wù)(IaaS),每種模型都涵蓋不同級別的數(shù)字解決方案以及相應(yīng)的安全。
根據(jù)云計算標準客戶委員會(CSCC)的說法,當(dāng)用戶從SaaS遷移到PaaS到IaaS時,其責(zé)任往往會增加。
使用SaaS模型的團隊在安全方面參與最少,因為他們使用的是預(yù)先設(shè)計好的服務(wù),而云計算提供商則負責(zé)處理所有的技術(shù)方面。這意味著他們可以依靠提供者來管理基礎(chǔ)設(shè)施、軟件棧,以及大多數(shù)相關(guān)的應(yīng)用程序邏輯。
對于安全所有權(quán)和責(zé)任,企業(yè)團隊應(yīng)檢查其首選云計算服務(wù)提供商的服務(wù)級別協(xié)議。一旦團隊清楚地了解了他們的安全職責(zé),他們就可以將時間集中在保護自己的組件上,并確保他們的云計算提供商將處理剩下的組件。這種政策一個很好的例子是AWS公司的共享責(zé)任模型。它清楚地記錄了客戶對其AWS基礎(chǔ)設(shè)施中的數(shù)據(jù)、API和軟件堆棧的責(zé)任。
在云遷移的安全解決方案中需要注意什么?
依靠云計算提供商進行監(jiān)控和保護是企業(yè)安全面臨的巨大挑戰(zhàn)。以AWS公司為例。作為早期的IaaS提供商之一,AWS公司奠定了用戶基礎(chǔ),并花費了大量資源來教育客戶。AWS公司強制執(zhí)行服務(wù)。他們采取了令人難以置信的措施來確保他們提供的物理設(shè)施和技術(shù)安全性。因此,企業(yè)通常不太擔(dān)心網(wǎng)絡(luò)安全、服務(wù)器、路由器等問題。但是,AWS公司也非常了解應(yīng)用程序所有者負責(zé)的其他組件。
正如AWS公司對云計算安全共同責(zé)任立場所解釋的那樣,他們負責(zé)管理系統(tǒng)。但是,應(yīng)用程序中的數(shù)據(jù)、與用戶相關(guān)的安全性以及企業(yè)如何采用應(yīng)用程序都不在他們的管轄范圍之內(nèi)。甚至還有一些論點指出,試圖確保這一點可能意味著企業(yè)過度擴張或阻礙了進展。
只是相信開發(fā)商和提供商將會保護應(yīng)用程序和微服務(wù)是不夠的。企業(yè)必須確保自己的軟件解決方案在邏輯級別是安全的,這是發(fā)生變化最多的地方。企業(yè)需要尋找:
- 在應(yīng)用程序級別部署的工具
- 在持續(xù)集成(CI)/持續(xù)交付(CD)中運行的解決方案
- 不增加資源需求的集成工具集和流程
- 允許靈活響應(yīng)的自動化
這是安全管理云平臺并將企業(yè)的業(yè)務(wù)轉(zhuǎn)變?yōu)閺姶箪`活的解決方案的一部分。
支持安全的API和微服務(wù)使企業(yè)能夠靈活地擴展云計算。無論企業(yè)是決定補充現(xiàn)有的技術(shù)堆棧,還是完全轉(zhuǎn)向新一代的容器和微服務(wù),都非常關(guān)注這一新的動態(tài)基礎(chǔ)設(shè)施是如何、在哪里以及由誰來管理的。這就是需要新的治理過程和自動化策略的地方。采用云計算是企業(yè)的業(yè)務(wù)轉(zhuǎn)型之一。
安全性必須與企業(yè)業(yè)務(wù)運作的具體情況相適應(yīng),并且只在特定的環(huán)境中才能有效。這并不總是意味著繁瑣的自定義,但這意味著企業(yè)需要能夠適應(yīng)并運營基礎(chǔ)設(shè)施、業(yè)務(wù)邏輯和流量的解決方案。在更深層次安裝的機器學(xué)習(xí)使企業(yè)業(yè)務(wù)獨一無二,這是確保這一點的一種方法。
鼓勵DevOps和安全團隊之間的協(xié)作
除了技術(shù)影響之外,云計算將需要在組織上進行新的重組。例如,如果企業(yè)負責(zé)管理云平臺,那么組織結(jié)構(gòu)圖是什么樣的?誰對風(fēng)險承擔(dān)責(zé)任?首席信息安全官和首席技術(shù)官的角色將如何變化?安全專家如何適應(yīng)企業(yè)的組織結(jié)構(gòu)?
傳統(tǒng)上,企業(yè)開發(fā)、運營、安全團隊在孤島中工作。隨著開發(fā)和運營融入統(tǒng)一的DevOps實踐,問題在于DevOps是否從根本上削弱了安全性。在DevOps中,開發(fā)速度是決策制定的首要考慮因素,特別是在使用外部軟件和平臺時,安全性往往是事后的想法。隨著新威脅和脆弱性的引入,安全格局正在迅速變化,這一挑戰(zhàn)進一步擴大。
企業(yè)期望開發(fā)商一夜之間成為安全專家是不現(xiàn)實的。然而,隨著應(yīng)用程序開發(fā)速度的提高,以適應(yīng)當(dāng)今企業(yè)所需的速度和靈活性,許多企業(yè)沒有在其產(chǎn)品中構(gòu)建安全性。
為了解決這個問題,DevOps和安全團隊需要進行協(xié)作,以便從開發(fā)生命周期的開始階段就將安全性納入其中。
為了最好地整合角色,應(yīng)考慮以下一些關(guān)鍵的最佳實踐:
- 考慮質(zhì)量保證。最重要的是建立一種將安全視為高質(zhì)量產(chǎn)品的推動者、共同責(zé)任和首要任務(wù)的文化。它應(yīng)該被視為應(yīng)用程序性能和用戶體驗的關(guān)鍵指標之一。
- 將安全性集成到DevOps中。DevOps過程的所有部分涉及安全團隊或指定安全角色,以確保從一開始就具有透明度和協(xié)作性;安全團隊可以檢測應(yīng)用程序特定的漏洞,并提供可操作的DevOps建議,這將為安全編碼實踐提供信息。
- 支持開發(fā)人員。由于大多數(shù)開發(fā)人員對需要注意的內(nèi)容了解有限,所以在團隊中任命安全管理人員是一件好事。他們可能不像白帽黑客那樣有深入的知識,但在安全方面有足夠的參與度,以理解其概念并知道在哪里尋找合適的工具和資源。
- 獲得正確的工具和工具鏈。部署可以管理安全任務(wù)的自動化工具,使小型安全團隊能夠更多地關(guān)注關(guān)鍵優(yōu)先級,例如定義框架并更加關(guān)注開發(fā)過程;在云端和持續(xù)集成(CI)/持續(xù)交付(CD)過程中自動生成和運行安全測試的工具將有助于實現(xiàn)這一目標。
- 加強編碼。最后,許多安全問題來自最明顯的錯誤。組織需要投資培訓(xùn)開發(fā)人員以在云中安全地編碼,并將安全測試作為流程的一部分。通過機器學(xué)習(xí)監(jiān)控代碼的高級安全解決方案可以在代碼中找到漏洞,幫助開發(fā)人員增強代碼運行的穩(wěn)定性。